lang: Add a new type unification test pgraph: Quote graphviz strings properly pgraph: Use pointers for unique vertex identifiers lang: types: Remove unnecessary prefix in generated kinds lang, lang: types: Add automatic stringer generation lang: Print the actual stream error on test failure lang: funcs: structs: Make error message more precise lang: Add var prefix to var expr to avoid ambiguity test: Fix typos, these aren't cats lang: types: Workaround stringer regression in golang 1.11 lib: Fix gofmt regression in golang 1.11.x misc: Update to golang 1.11.x etcd: Move to etcd v3.3.13 all: Switch the --lang syntax to use argv instead lang: funcs: Add a weekday function to the datetime package docs, readme: Improve new user experience lang: funcs: Add a mod function to the math package docs: Add build issue to FAQ docs: Update FAQ to mention go mod engine: graph: Add a mutex around waits map access examples: lang: Update autoedges example examples: lang: Add a unicode example lang: funcs: core: Make module names public lang: funcs: core: Allow nested system imports docs: Fix typo and grammar issue lang: Use the short flag to list subtests lang: funcs: Verify that simple polyfunc list is not empty lang: funcs: Use the correct arg names when running a pure func lang: Move type duplicates checker into a separate package lang: Add the NamedArgs interface lang: funcs: Add better logging to the function engine lang: Name the expr call graph differently lang: types: Improve ComplexCmp function lang: If the test fails earlier than expected, exit early lang: Add function types to the yacc type parser misc: Add graphviz deps for travis lang: Add function values and lambdas lang: Avoid running graphviz in tests by default travis: Try to work around CI slowdowns test: Split up long tests into multiple sub tests lib: Update dep for uuid - Adam Sigal (1): pgraph: Add a test for FindEdge() and HasVertex() functions - Christian Rebischke (1): lang: funcs: Add ArchLinux family detection - Felix Frank (1): engine: resources: mount: Fix the dbus call for reloading systemd - Jan Martens (1): engine: resources: nspawn: Trim possible systemd version suffix - Johan Bloemberg (1): lang: funcs: Add uptime implementation for macOS - John Hooks (1): lib: Support for systemd STATE_DIRECTORY or XDG cache dir - Ward Vandewege (1): docs: Fix link to puppet guide * Tue Apr 23 2019 James Shubin 0.0.19 - James Shubin (60): examples: lang: Add is_debian and is_redhat family example lang: funcs: Allow the len function to determine str length lang: funcs: Avoid erroneous empty message in readfile lang: Print a clear message on module import containing unused stmt engine: resources: Improve exec resource test: shell: Fix rare breakage in load test engine: resources: Improve test case readability test: Improve govet log newline check lang: funcs: Add runner pure func execution lang: funcs: Add live function stream test infrastructure lang: funcs: Add a new test for readfile and fix a small bug engine: resources: Fix missing file when specified without content resources: file: Make some small cleanups to file res engine: resources: Remove possible panic from within file res engine: resources: Improve file Cmp function engine: traits: Make encoded fields public engine: resources: Replace the cached values with a live calculation engine: resources: Add missing struct tags engine: util: Improve StructTagToFieldName and add tests engine: util: Add a new utility function for send/recv examples: lang: Add a basic file example lang: Small fixes about send/recv lang: Improve the test case infra so it can detect different errors engine, lang: Improve send/recv significantly lang: Improve test case with more specific errors lang: funcs: Don't allow interpolation in printf format string engine: resources: Clean up KV resource examples: lang: Refresh examples util: Add errwrap package test: Improve test depth test: Improve test depth engine, pgp: Fixup incorrect error usage util: Port all code to new errwrap package util: Port all multierr code to new errwrap package test: Port yaml test to mcl engine: util, resources: virt: Clean up virt resource docs: Add two faq entries docs: Move faq entry to more appropriate resource docs legal: Happy 2019 everyone... lib: Add static hello message docs: Add FAQ entry about root requirements engine: resources: Remove named return params github: Add funding information util: Add context wait signal to easy exit util: Add subscribed signal primitive util: Add safe easy ack that allows multiple ack's util: Add context utility functions docs: Add faq entry about locked binary test: Skip net test in travis etcd: Rewrite embed etcd implementation lib: Clean up logging util: Make test more resistant to races etcd: Make error more specific test: shell: Increase etcd timeouts for slow travis lib, gapi: Display deploy ID to add some clarity lang: funcs: Add regexp package and match function lang: Fix import scoping issue with classes test: shell: Increase etcd timeouts for slow travis again lang: Quote printed strings lang: unification: Improve type unification algorithm - Nicolas Charles (2): lang: funcs: Added a function to detect Debian and RedHat like systems engine: resources: print: Add RefreshOnly option - Adam Sigal (1): faq: Amended faq mailing list information - Felix Frank (1): docs: Slightly clarify parameter defaults - Jonathan Gold (1): engine: resources: mount: Restart remote-fs target - Michael Schubert (1): docs: Fix link - Mitch Fossen (1): lang, funcs: Remove deprecated syscall import - Wouter Dullaert (1): cli: Removed obsolete no-watch-config flag * Tue Feb 26 2019 James Shubin 0.0.18 - James Shubin (50): lang: unification: Add missing return to exit early lang: unification: Add logging to make capturing errors easier lang: unification: Allow err string comparisons in tests lang: Check that set type matches actual expression lang: If expression was missing two invariants lang: unification: Catch unification error on typed if expr lang: unification: Catch unification error on typed var expr lang: unification: Fix up small typos in example code test: Fix a small copy pasta typo lang: test: Add a new giant test infra for matching static output lang: Edges should allow lists of strings engine: resources: pkg: Clarify that correct state is newest examples: lang: Update examples to fix imports and port from yaml engine: resources: Fix a possible panic on closed channel engine: resources: Fix a small typo in error message lang: funcs: Rename template functions to remove periods lang: funcs: Add a new readfile function lang: funcs: Add str2int example function lang: funcs: Add a trim space function to the new strings module engine: resources: virt: Clean up virt resource for lang examples: Improve dynamic cpus virt example integration: Avoid duplicate events from recwatch engine: nspawn: Add an nspawn example with an improved exec examples: Add missing mcl files examples: Add more examples and clean up some examples: Add uncommited nspawn example lang: funcs: core: Drop unnecessary core prefix from imports lang: funcs: core: Rename core module files lang: funcs: core: Move world API functions lang: Remove unnecessary log package engine: resources: Add a test running for testing individual resources engine: resources: file: Update the format string test: Split travis tests into three blocks test: Add expanders when running in travis lang: funcs: funcgen: Clean up some small details util: Add an easy ACK sync primitive converger: Rewrite the converger module engine: Rewrite the core algorithm engine: Add the retry loop around Watch engine: Add limit delay before Process can run engine: Add the retry loop around Process test: Enable and fix up some more tests util: Improve the sync primitives. make: Clean up the Makefiles so the output is more elegant test: Shell tests should use unified timeout command misc: Add two test helpers resources: exec: Avoid possible deadlock race engine: resources: Add CheckApply event detection to resource tests examples: Remove old hcl examples test: shell: Improve load test - Kevin Kuehler (5): util: Move socketset from net resource to util util: Libify socketset lang: funcs: Add cpucount fact util: Add TestShutdown to socketset engine: lang: util: Kill race in socketset - Lander Van den Bulcke (4): make: Use gem --no-document instead of deprecated flags lang: funcs: Add sqrt function lang: funcs: Add tests for sqrt function lang: funcs: Add strings.split function - Johan Bloemberg (3): misc: Add goimports dep misc: Make build on macOS work etcd: Connection options (socket file, ipv6) - Julien Pivotto (3): docker: Update FROM to go:1.11 lang: Add to_lower and to_upper functions lang: Add more string functions, autogenerated - Felix Frank (1): langpuppet: Fix Cli method invocations for wrapped GAPIs - Jeff Waugh (1): build: Fix macOS build - Toshaan Bharvani (1): lang: funcs: Added an uptime function * Thu Jan 17 2019 James Shubin 0.0.17 - James Shubin (73): test: Add doc note about skipping docker tests travis: Work around broken travis NO_PUBKEY error travis: Bump to golang 1.10 engine: resources: file: Require paths to be absolute engine: resources: svc: Add symmetric closing engine: resources: Work around a subtle embedded res bug util: Add an fs helper and a test helper util: Improve the test helper function and add a better one util: Add a test for CopyFs test: Increase the vet testing for irregular strings util: Fix small linting error test: Fix up token vet test lang: Add logging and debug info via a new Init method lang: Add an Apply iterator to the Stmt and Expr API util: Add a UInt64Slice and associated sorting functionality. lang: Allow dotted identifiers lang: Detect sub tests with the same name lang: Support lexing and parsing a list of files with offsets lang: Add import spec parsing and tests lang: Add resource specific tokens in lexer and parser lang: Allow matching underscores in some of the identifier's lang: Add lexing/parsing of import statements lang: Tidy up grouping of lexer tokens in the parser lang: Refactor most functions to support modules bindata: Add infrastructure for building core mcl files gapi: Add a prefix variable in case we want to namespace on disk git: Ignore some WIP files that won't get tracked in git lang: Add a URL result to the import name parser lang: Add beginning of user defined functions test: Clean up and improve golang tests lang: Add some lambda function parsing and tests lang: Improve empty scope and output lang: Add a top-level stmt safety method util: Add some useful path parsing functions gapi: Add a bytes helper lang: Add module imports and more lang, util: Tests that depend on the fs should be sorted lang: test: Add a test of duplicate resource generation engine: resources: cron: Fix typo in error message engine: resources: pkg: Remove old Compare method engine: resources: pkg: Replace state strings with constants engine: resources: pkg: Simplify state check lang: Improve sub testing lang: Validate the edge field names in our resources engine: Add setters for the trait interfaces engine: Add a resource copy interface and implementation engine: Add an interface for compatible resources lang: Handle merging of compatible resources properly engine: resources: pkg: Implement the CompatibleRes interface travis: Workaround another broken apt repo travis: Print debug info to catch travis regressions test: Fix golang cache regression lang: Move capitalized res identifier into parser lang: Add meta parameter parsing to resources travis: Clean up my grammar docs: Add sub categories to the language guide lang: Refactor resource creation into a helper method lang: Refactor edges helper method lang: Add a placeholder "ExprAny" expression for unification hacks lang: Allow a list of strings in the resource name lang: Refactor the res metaparams helper lang: Add autoedge and autogroup meta params to mcl engine: Fix typos engine: graph: Prevent converged timeout of dirty res test: Add a semaphore shell test test: Enable t8 to test for two host etcd clusters test: Rename t8 to be more descriptive test: Add a three host variant of the empty etcd test test: Don't be unnecessarily noisy in this test engine: event: Switch events system to use simpler structs engine: Work around bad timestamp panic engine: graph: Avoid a possible panic sending on a closed channel etcd: Workaround a nil ptr bug - Jonathan Gold (24): etcd: Fix deploy transaction error message lang: Fix error message format strings engine: resources: net: test: Add some go tests puppet: Fix error message when puppet conf copy fails engine: resources: net: Allow addr without gateway engine: resources: net: test: Add shell test for net resource travis: Build on Xenial engine: resources: packagekit: Fix dbus addmatch rule engine: resources: file: Fix bug preventing use of source field engine: resources: file: Add shell test for source field etcd: Use source filepath base in CopyFs destination path etcd: Use mgmt backend for fs tests engine: resources: group: Make group edgeable engine: resources: svc: Use dbus session bus for user session svc engine: resources: cron: Add a systemd-timer resource engine: util: Add EdgeCombiner() for combining auto edges engine: resources: cron: Add support for user session timers engine: resources: cron: Add lang examples engine: resources: cron: Add auto edges from SvcRes util: Add PathSlice type that satisfies sort.Interface etcd: Add TestEtcdCopyFs0 etcd: Add more test cases to TestEtcdCopyFs0 make: deps: Only install gometalinter on CI/CD servers test: Ensure gometalinter is available - Felix Frank (5): make: Remove spurious dependency package 'rubygems' for Debian-like systems make: Speed up the build by skipping gem docs gapi: langpuppet: Add initial implementation docs: Explain the langpuppet interface and function gitignore: Ignore vim swap files - Tom Payne (3): etcd: Add Chown (returns ErrNotImplemented) etcd: Add Lchown (returns ErrNotImplemented) etcd: Ensure that fs.Fs implements afero.Fs - Kevin Kuehler (2): util: Patch CopyFs and add tests lang: Add debug flag and Logf to fact init struct - Michael Lesko-Krleza (1): test: Increase test coverage for graphsync - Vincent Membré (1): engine: resources: exec: Use WatchShell in Exec resource when needed instead of Shell * Fri Nov 30 2018 James Shubin 0.0.16 - James Shubin (43): lang: Misc fixes for typos and grammar pgraph: Don't panic on new or nil graphs resources: svc: Add deactivating state lib: Remove remote execution from core recwatch: Remove the ConfigWatch functionality test, integration: Add an integration test framework test, integration: Add cluster primitives to integration framework integration: Log the instance output lang: funcs: Don't race when building an initial graph lang: Add mutex around Expr String/Value/SetValue calls readme: Add patreon link to README file lib: Remove hcl GAPI frontend lib, yamlgraph: Remove old yamlgraph GAPI frontend etcd: Pull in default URLs from upstream lang: Don't race with a ^C to the obj.lang calls engine: Resources package rewrite puppet: Clean up the GAPI and remove log package engine: Small fixes test: Improve commit message test docs, test: Remove old reference to resources package test: Catch naked returns and check for canonically named imports engine: test: Pass in the go test verbose flag test: Improve golang tests with root and disabling cache travis: Enable apt updates on builds engine: resources: print: Add missing Recvable trait lang: Error parser if SetType fails to avoid a panic lang: Add edges to StmtProg output lang: funcs: Registered functions map should be private lang: Simplify graph function for edge half in parser lang: Add indentation test to parser lang: Don't add identical resources to graph lang: Simplify struct interpolation pgraph: Handle empty graphs when merging two lang: Simplify bind stmt collection in the prog stmt lang: Add class and include statements lang: Add partial recursive support/detection to class lang: Update map type definition to include a prefix test: Add a test to ensure the parser doesn't have any conflicts readme: Add Liberapay link to README test: Improve commit message tests vendor: Add vendored docker modules with out of tree fix engine: resources: Add nodocker build tag make: Improve release pipeline - Jonathan Gold (11): util: Rename SortedStrSliceCompare and move to util package engine: resources: nspawn: Remove godbus channel buffer util: Move dbus AddMatch const to util package engine: resources: mount: Add a mount resource engine: DBus cleanup build: Fix ldflags pattern for 1.10 docs: Add netlink post to on-the-web.md docs: Update url for AWS EC2 blog post build: Add rubygems to make deps target engine: resources: docker: Add a docker container resource make: Release pipeline - phaer (3): vagrant: Bump to fedora 28 vagrant: Add gem package vagrant: Fix example path in motd - Alan Jenkins (1): engine: resources: packagekit: Add Arch mapping 'any' for Arch Linux compatibility - Lauri Ojansivu (1): resources: svc: Add activating state - jesus m. rodriguez (1): build: Add help to main Makefile - jonathangold (1): resources: net: Add net resource * Tue Feb 27 2018 James Shubin 0.0.15 - James Shubin (45): lang: Initial implementation of the mgmt language test: Add new test for language prefix etcd: Update broken link travis: Disable fast finish for now test: Increase timeouts for when travis is slow docs: Add FAQ entry about vendoring dependencies readme: Fix broken link test: Fix broken gometalinter test docs: Add newly recorded talks and blog posts about mgmt resources: nspawn: Don't panic if one svc is nil build: Improve speed of make etcd: Fix golint issue in test build: Add -i flag to go build test: Improve gometalinter test so that it skips generated files authors: Clarify wording in AUTHORS file etcd: Bump to etcd v3.3 and golang 1.9 docs: Add faq entry about production readiness travis: Add golang 1.10.x to builds docs: Add an entry to the faq about converged timeouts test: Show test output as it happens etcd: Increase the default max txn op count etcd: scheduler: Remove etcd 3.2 specific hacks lang: funcs: Rename things for consistency travis: Avoid notification noise from forks lang: types, funcs: Add simple function API test, docs: Add a linter for testing markdown, and fix up our docs lang: funcs: Fix up some old comments golint: Fix ineffassign mistakes misc: Add dependency on time package misc: Update golint to new location test, docs: Restrict long lines in markdown linter docs: Add two faq entries about the type system build: Relocate time command to the front for readability lang: funcs: simple: Don't block on simple, pure, static functions travis: Attempt to workaround the constant travis failures docs: Add two new faq entries all: Misc fixes and test fixes lang: types, funcs: Add simple polymorphic function API lang: Add edges to lexer and parser lang: funcs: Add math pow function and a few examples lang: unification: Fix panic in struct/func cmp of partials travis: Attempt to cut down on flaky failures travis: Fix the OSX builds lang: Add a resource-specific elvis operator lang: Add internal, resource specific edges - Johan Bloemberg (19): build, docs: Improve macOS building lang: Use universal way to retrieve load resources: Do not return GID for UID lookup misc: Fix graphviz output for hostnames with dot in them debian: Add graphviz and packagekit runtime dependencies build: Unify build/crossbuild test: Streamline test suite a little test: Export the mgmt command to be used during test test: Fix augeas test for macOS, improve test debuggability test: Exclude generated files from golint cli: Log errors return by Run functions etcd: Warn about invalid configuration, clarify --no-server lib: Provide detailed feedback about invalid URLs travis: Improve travis speed by only building 1 go version for osx travis: Retry flaky apt update at build start recwatch: Fix watching newly created files on macOS docs, misc: Add tool references, .editorconfig for mcl lang: Add `getenv` function project: Add me - Carsten Thiel (2): docs: Improve file resource documentation test: Refactor unification_test to subtests - Joe Julian (2): misc: Use bash's `command` instead of `which` misc: Don't install packages that are already installed - Toshaan Bharvani (2): build: Add cross building option lang: Interface sorting order - Wim (2): docs: Add GOPATH/bin to PATH build: Add gcc,pkg-config deps - Jonathan Gold (1): project: Add Jonathan Gold to AUTHORS - Oliver Frommel (1): misc: Small fixes for makedeps script - Peter Oliver (1): emacs: Bundle an Emacs major mode, mgmtconfig-mode - dsx (1): debian: Add packaging - jonathangold (1): misc: Replace missing go-bindata dependency - karimb (1): docs: Add docs for docker usage * Thu Jan 11 2018 James Shubin 0.0.14 - Jonathan Gold (29): etcd: Add advertise urls to cli etcd: Plumbed in the new cli flags for advertise urls resources: Add UserData field to AwsEc2 resources: aws: ec2: Move Watch to longpollWatch resources: aws: ec2: Remove extra wait from Watch resources: aws: ec2: Reorganized consts resources: aws: ec2: Move chanStruct type out of longpollWatch resources: aws: ec2: Move watch channels into struct resource: aws: ec2: Move waitgroup to resource struct resource: aws: ec2: Add http server resources: aws: ec2: Add method to make sns topic resources: aws: ec2: Start and stop SNS endpoint in snsWatch resources: aws: ec2: Change event messages to iota consts travis: Allow travis builds to access target branches resources: virt: Update libvirt-xml target cli: Add license flag resources: aws: ec2: Use custom listener for snsServer resources: aws: ec2: Subscribe SNS endpoint to topic resources: aws: ec2: Add CloudWatch rule and target SNS resources: aws: ec2: Authorize CloudWatch to publish to sns resources: aws: ec2: Update postHandler to process messages resources: aws: ec2: Close closeChan before server shutdown resources: aws: ec2: Check that policy.Statement != nil resources: aws: ec2: Verify SNS message signatures resources: aws: ec2: CheckApply fix pending and stopping cases resources: aws: ec2: Retry on exceeded wait attempts error resources: aws: ec2: Wait for stop and terminate concurrently resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Refactor CheckApply - James Shubin (15): examples: Add longpoll server and client github: Use third-party settings app to sync github settings github: Add new label for design discussions and trackers github: This event is over yamlgraph: Improve error output resources: aws: ec2: Fix deadlock on rare error scenarios test: Add extra commit message tests for some common mistakes test: Add check for common doc vs docs ambiguity resources: Replace golang 1.6 specific code with newer 1.7 version test: Add another check for off-by-one-error commit tags docs: Refresh documentation to provide a better new user experience docs: Add missing blog post about augeas resource legal: Happy 2018 everyone... misc: Don't display script name in output test: Don't fail on tag builds - Julien Pivotto (7): doc: Fix link to the prometheus wiki prometheus: Initialize mgmt_checkapply_total metrics build: Build mgmt on any go file change exec: Add autoEdges between ExecRes and PkgRes prometheus: Initialize all metrics build: Remove go 1.3 and 1.4 support example: Remove content out of directory definition - Guillaume Herail (4): docker: Bump to golang 1.8 resources: Move FileRes.uid()/.gid() to util.go resources: Add User/Group to ExecRes test: Switch to goimports instead of gofmt - jonathangold (3): resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Send IP addresses and InstanceID resources: aws: ec2: Fix closed channel handling - Paul Morgan (2): git: Ensure the tagging script is idempotent git: Configure editorconfig to indent with tabs in bash scripts - Felix Frank (1): puppet: Avoid empty parameters to puppet mgmtgraph - Toshaan Bharvani (1): build: Added build option to strip binary * Mon Oct 23 2017 James Shubin 0.0.13 - James Shubin (30): misc: Update my tag script to deal with large releases resources: Unify resource creation and kind setting resources: Panic if attempting to register a duplicate resource pgraph: Improve testing and refactor out some test utilities resources: Do not panic on autogrouped graph switches resources: Add resource sorting and clean tests resources: Compare grouped resources properly test: Don't be noisy when running cd during testing remote: Add a Ready method to know when startup is finished resources: Fix golint issues hcl: Consistent formatting resources: Add a utility to map from struct fields resources: Add NewNamedResource helper readme: Add new recording travis: Update to golang 1.8 as the default resources: Include default MetaParams so Validate will pass in tests etcd: Bump to version 3.2.6 and update all the grpc deps test: Increase timeouts because travis is slow test: Fix another intermittent failure yaml2: Meta should keep defaults, and Res should have kind github: Add a PR template to help new users github: Improve the PR template test: Increase timeouts for slow travis resources: Fix formatting legal: Re-license to GPLv3 git: Ignore .envrc file from direnv vendor: Add codec package because of breakage etcd: Bump to newer versions test: Use stable version of gometalinter test: Fix linter issues - Jonathan Gold (7): virt: Allow more than 26 disks resources: Add user resource resources: Add an Aws resource resources: Improve nspawn resource resources: Fix user gid compare resources: Add a group resource resources: Enhancements to user and group - ChrisMcKenzie (3): hcl: Added basic hcl frontend hcl: Removed edge object in favor of depends_on field in resource hcl: Added hil string interpolation to hcl frontend - Dennis Kliban (2): vagrant: Increase amount of RAM allocated to boxes backed by libvirt resources: Add validation for Msg Priority field - Juan Luis de Sousa-Valadas Castaño (2): vagrant: Fix PATH resources: Refresh packagekit cache before install - AdnanLFC (1): pgraph: test: Added tests for DeleteEdge - Arthur Mello (1): virt: Added support for ~user into expandHome - Ismael Puerto (1): vagrant: Change box to F26 - Juan-Luis de Sousa-Valadas Castaño (1): docs: Change go required version to 1.8 * Sat Jun 03 2017 James Shubin 0.0.12 - James Shubin (49): main: Update log messages for consistency misc: Replace sloppy use of %v with %s resources: svc: Add basic support for user services misc: Fixup documentation lib: examples: Update to most recent API gapi: Move separate etcd Watch method into GAPI lib, gapi: Next method of GAPI should generate first event resources: Make resource kind and baseuid fields public readme: Add new links etcd, resources, world: Add World API for shared keys pgraph: Use the correct vertex handle to prevent a race pgraph: Clean up pgraph module to get ready for clean lib status pgraph: Remove use of Flags struct in favour of Value API pgraph: Untangle the semaphore code from the pgraph implementation pgraph: Replace CompareMatch with VertexMatchFn pgraph: Update graph API to remove Get prefix and add Adjacency pgraph: Move GraphMetas function out of package pgraph: Move AssociateData function out of the package test: Run go vet with -source flag in newer releases test: Run go vet across whole packages not individual files pgraph: Move the AutoEdges mechanism into the resource package pgraph: Move get/set state methods out to resource package pgraph: Move the timestamp storage into the resource resources: Map to semaphores doesn't need to be a pointer pgraph, resources: Major refactor to remove pgraph to resource dep pgraph, resources: Major refactoring continued pgraph: Replace edge struct with interface resources: nspawn: Fix small style issues pgraph: Add a GraphCmp method pgraph: Add logic functions for adding subgraphs pgraph: Add sort function to sort a list of vertices resources: Simplify the resource Compare functions resources: Add proper edge compare method resources: graph: Add partial implementation of a graph resource pgraph: Remove NewVertex and NewEdge methods and fix examples resources: Clean up converger and make it easier for tests resources: exec: Add send/recv for exec output, stdout and stderr resources: Rename the Data struct to ResData to avoid ambiguity test: Make sure our examples build gapi: Allow the GAPI implementer to specify fast and exit resources: Reorganize package and split into multiple files resources: Replace stored pgraph with mgraph and clean up hacks resources: Improve AutoEdge API and pkg breakage resources: autoedges: Process in a deterministic order resources: pkg: Add a simple test based on internal logic etcd: Small cleanup of the package etcd: Wait for server to start before continuing test: Remove debugging echo from go vet test test: Add gometalinter to our test suite - Julien Pivotto (2): vagrant: Install make in the Vagrant box vagrant: Setup Packagekit in the box - Mildred Ki'Lya (1): yamlgraph: Refactor parsing for dynamic resource registration * Thu Mar 16 2017 James Shubin 0.0.11 - James Shubin (15): git: Add more features to tag.sh script pgraph: semaphore: Add lock around semaphore map resources: exec: Remove the pollint parameter resources: exec: Don't invalidate state on poke resources: exec: Remove state checks that are done in the engine resources: exec: Clean up command error processing resources: exec: Ignore signals sent to main process resources: exit: Misc cleanups pgraph: Move the quiesce done indicator to avoid deadlock pgraph: Move the BackPoke to before the semaphores pgraph: semaphore: Refactor semaphore size function and test pgraph, resources: Run the resource Setup in parallel pgraph: Add fast pausing and exiting of graphs examples: Add missing file example todo: Update the TODO file to be more current - Julien Pivotto (1): prometheus: Add detailed metrics * Sat Mar 11 2017 James Shubin 0.0.10 - James Shubin (24): compiling: Add -i flag to go build to speed up builds test: Small fixups to t4 and a rename semaphore: Create a semaphore metaparam remote: Replace builtin semaphore type with common util lib semaphore, pgraph: Add semaphore grouping and tests pgraph: Clean up tests spelling: Fix typos as found by goreportcard readme: Add new blog post about metaparameters travis: Ensure recent golang versions in test test: Avoid matching three X's gapi, etcd: Define and implement a string sharing API for the World etcd: Switch to buffered channel to remove duplicates lib: Refactor instantiation of world API lib, pgraph, resources: Refactor data association API gapi: Move the World interface into resources resources: Split util functions into separate file resources: kv: Add new KV resource which sets key value pairs pgraph: graphviz: Update Graphviz lib to quote names properly resources: svc: Add failed state resources, yamlgraph: Drop the kind capitalization pgraph, resources: Quiesce when pausing or exiting the resource pgraph, resources: Discard BackPokes during pause and resume test: Disable prometheus-3.sh test temporarily git: Improve tagging script - Julien Pivotto (3): compilation: Make build the default target prometheus: Move the prometheus nil check inside the prometheus function prometheus: Add mgmt_pgraph_start_time_seconds metric - Michael Borden (2): misc: Add pacman support travis: Add go_import_path * Sat Feb 25 2017 James Shubin 0.0.9 - James Shubin (81): todo: Make TODO file more current resources: Rename Converger to ConvergerUID resources: virt: Add missing converger call converger: Wait till the timer exits resources: Add poll metaparameter resources: timer: Polish the timer resource resources: Add a `Default` method to the resource API docs: Add missing headings to table of contents resources: Officially add Validate method docs: Split out a separate quick start guide docs: Rename puppet guide and small cleanups docs: Improve README docs: Add an introductory paragraph to the quick start guide docs: Add new blog post link docs: Add missing newline docs: Small fixes to the README resources: Overhaul legacy code around the resource API resources: Improve composition of Validate API in resources resources: rate limiting: Implement resource rate limiting resources: Force a sane default for zero value limiting pgraph: Remove unnecessary indentation in Process code path resources: Update state checks pgraph: Parallelize the BackPoke facility pgraph: Add debug messages converger: Block converging in the engine converger: Remove converger boilerplate from the resources virt: Allow the use of ~ to expand to home directory resources: Rename GetUIDs to UIDs pgraph: Set the false starter value too examples: Update example to be Validate safe etcd: Update example to ignore pgp examples: Have libmgmt work around the lack of rate defaults travis: Limit notifications now that travis cron is enabled examples: etcd: Simplify the etcd examples resources: Don't double close on Running restart recwatch: Do not send to channel if closed. lib: Make initial one-shot start pattern more elegant gapi: Unblock from a waiting send on GAPI close resources: Parse YAML infinity specifications correctly examples: Update the examples pgraph, yamlgraph: Allow specifying notify value from YAML test: Small nitpicks with messages resources: augeas: Turn augeas namespace into a constant etcd: Remove stuttering in package test: prometheus: Fix up test docs: Update the quick start guide with git clone and vagrant github: Show a friendly message in issues template resources: file: Use the computed path in our resource docs: Add missing newline and remove extra one legal: Oh yeah, it is 2017 resources: file: Small fixups and force additions resources: Remove "NewRes" constructors resources: file: Don't modify resource in Init resources: Specify defaults for the MetaParams build: Require golang 1.6 or greater test: Fix tests by hooking up go test properly test: Improve go vet so that it is less noisy test: Fix false negative on go vet test: Fix yamlfmt test test: Make test status more clear resources: virt: Allow hotplugging pgraph, resources: Improve Init/Close and Worker status resources, pgraph: Refactor Worker and simplify API resources: The user should not call Init pgraph, resources: Add proper start/stop signals recwatch: Close cleanly after Watcher finishes recwatch: Unblock from sending on exit lib: Misc cleanups and new log message test: Don't block on graph transitions pgraph, resources: Clean up the event system around the resources recwatch: Close the ConfigWatch properly yamlgraph: Close the recwatcher properly after use resources: virt: Cleanup cleanly on Close travis: Start building golang 1.8 as well golint: Fixup issues found in the report test: Fix up probable timeout failures due to slow ci pgraph, resources: Wait for innerWorker to exit cleanly pgraph: Wait for Process routine to exit resources: virt: Don't block exit in callbacks resources: virt: Catch bad calls to CheckApply resources: virt: Remove unnecessary early exit from CheckApply - Julien Pivotto (21): prometheus: Implement basic Prometheus support Prometheus: fix URL to the "Default port allocations" prometheus: Add a new test, with --prometheus-listen travis: add a test regarding commit messages test: file: test the behaviour of inotify on parent dir moves travis: more strict commit messages tests test: commit: Improve commit message testing recwatch: Remove watcher on file move compilation: virt: Make libvirt support optional resources: augeas: New resource prometheus: Implement mgmt_checkapply_total metric resources: augeas: Make augeas support optional documentation: prometheus: Improvements resources: file: Do not error on os.Stat in noop mode prometheus: Add mgmt_process_start_time_seconds metric prometheus: Remove mgmt_process_start_time_seconds metric documentation: Embed command-line syntax in a code block resources: augeas: comments: Improvements documentation: Implement sphinx documentation travis: Run apt update before installing dependencies project: Add $me to AUTHORS - Felix Frank (3): tests: simplify shell code, skip YAML test if Ruby is too old vagrant: Add Vagrantfile and some basic configuration project: Reluctantly add myself as an author - Mildred Ki'Lya (3): resources: file: Implement file attributes misc: Split OPTS variable of systemd unit resources: file: Allow creation of empty directories - Daniel P. Berrange (1): resources: virt: convert to use github.com/libvirt/libvirt-go - Daniele Sluijters (1): TODO: Point to current file improvement issue - Kaushal M (1): build: Use GOTAGS for static builds as well - Lars Kulseng (1): readme: Changed wording of quick start section - Sean Jones (1): test: Enable macOS shell testing - Steve Milner (1): spec: Fix rpmlint warnings - Tom Ritserveldt (1): point to the correct puppet-guide path in docs. - goberghen (1): docs: Fix headers formating * Wed Dec 21 2016 James Shubin 0.0.8 - James Shubin (15): docs: Create a dedicated documentation folder resources: Simplify resource Converger and Startup code resources: Don't dirty resource when poked with activity resources: Remove SetWatching/IsWatching code from Watch resources: msg: Remove legacy comment docs: Add resource guide resources: file: Fix small typo in the compare function gapi: Rename SwitchStream to Next pgraph: Build the sync group into the graph structure pgraph, resources: Integrate properly with the startup logic pgraph: Simplify graph exit waiting pgraph: Mutex must be a pointer pgraph: Remember to unpause the vertices! test: Allow devel versions to run gofmt golint: Fix some golint issues * Thu Dec 08 2016 James Shubin 0.0.7 - James Shubin (26): pgraph: Fix ineffassign warning resources: Clean up errors and string printing resources: file: Allow undefined file contents etcd: Watch for obvious failures on first startup resources: nspawn: Tweaks and updates resources: nspawn: Use new API resources: Add stable go-systemd branch for now resources: nspawn: Update grammer for Joe readme: Add video link from High Load Strategy readme: Add video from NLUUG misc: Exclude vendor/ directory from ack matching resources: Add VarDir support misc: Cleanup unnecessary use of %v and small nitpicks resources: Implement Send -> Recv resources, pgraph: split logical chunks into separate files resources: Improve the state/cache system resources: Improve notification system and notify refreshes resources: Reduce logging on Send/Recv resources: Fix poke/refresh race misc: Improve gofmt test case resources: Polish the password PoC and build out send/recv resources: Actually verify which send/recv elements changed resources: Re-order send/recv display messages. gapi: Add world interface and refactor existing code to use it readme: Add new blog post about send/recv misc: Rename mgmtmain to lib and remove global package - Joe Julian (5): virt: Do not restrict VIR_ERR_NO_DOMAIN to qemu. Add IntelliJ Idea to .gitignore virt: Add logic to parse the libvirt uri nspawn: Add systemd-machined support for nspawn containers nspawn: bump go-systemd commit - Vinzenz Feenstra (5): virt: Avoid parsing URI all the time virt: Authentication support resources: Add new hostname resource examples: rename hostname.yml to hostname.yaml misc: Prefer dnf over yum when present - Nicolas Nadeau (1): pgp: Base pgp code * Thu Nov 03 2016 James Shubin 0.0.6 - James Shubin (27): golint: Outdent else statement godoc: Document resources package godoc: Document packagekit package readme: Update repository with information about remote execution etcd: Verify struct is not nil before accessing retries value test: update lint checker to support packages etcd: Fix type issue make: Sed needs g option to replace multiple PROGRAM names resources: List resources in alphabetical order resources: Interfaces parameters can be named to help documentation resources: Check that resource kind is set. all: Rename UUID to UID. resources: virt: Add a virt resource based on libvirt misc: Add libvirt header file dependency test: Fix travis so it pulls in our deps resources: virt: Update to new function signature resources: Use Events() method instead of raw channel spec: Improve the rpm package resources: Set the defaults for metaparameters resources: Update constructor signature to return error as well resources: virt: Update CPUs variable to new uint16 signature main: Split apart logic in main readme: Update README file to make it clearer for new hackers main: Libify mgmt with a golang API cli: Pass through program and version strings gapi: Split out graph generation into a proper graph API examples: make the libmgmt example more fun - Joe Julian (2): Use the download-only flag when fetching dependencies virt: don't set emulator path - Alexandre-Xavier Labonté-Lamoureux (1): test: Tokens should always have a colon - Juergen Hoetzel (1): readme: Fix go get command - Marc Antoine Dumont (1): Add the link to a new dependencies in README.md * Mon Oct 03 2016 James Shubin 0.0.5 - James Shubin (28): file: Overhaul file resource and add recursion todo: Update TODO file etcd: Update examples to be more useful for single machine tests test: temporarily disable test art: Add a logo readme: We now have an arch aur build. readme: Add information for new users travis: bump to newer golang version (fedora 23) Resources: Prototype retry and retry delay meta parameters Resources: Add retry and retry delay meta parameters resources: Compare Delay and Retry metaparams on graph change golang: Split things into packages Makefile: Limit depth for yamlfmt TODO: add TODO item about DHT idea Resources: Update interface to support errors vendor: Update etcd to working version and fix grpc stuff golang: Update to version 1.6 as the minimum readme: Add link to godoc resources: svc: Catch reload states too golint: Fix issues caught by the linter golint: Fix nested else statement file: Fix regression in fsnotify code resources: msg: Turn on journal logging in the example resources: fix deadlock on recursion recwatch: Split recursive watching into sub-package test: Catch go vet issues in subpackages recwatch: Rearrange condition to unconfuse golinter resources: Use named fields to avoid bothering go vet - Felix Frank (3): add puppet support documentation have 'make clean' get rid of generated code files again resources: msg: Introduce new resource type to log arbitrary messages - Michaël Faille (3): cli : Prefer github.com/urfave/cli as cli Let `env` find bash in shebang. travis : use go1.7 to be future proof. - Antoine Racine (1): Add pcap.h dependency on Debian/Ubuntu to fix make deps error * Wed Sep 07 2016 James Shubin 0.0.4 - James Shubin (86): Rework the converged detection and provide a clean interface Add additional autogrouping example Update TODO file Update docs and README to mention new blog post Allow stubborn users to avoid having to move their project Small nitpick fixups Add flatten helper to take apart messy nested lists Fix go generate issue with path Update Makefile to be more useful for hackers Update TODO file Fix typo Add a base method for GroupCmp Pkg: cache state when it is correct Pkg: Immediately unconverge on events Fix cli API change Add logging workaround when embedding etcd Expand the event system slightly Add global --noop support Remove pesky spaces Add quote from notable automation specialist and author Update links Embedded etcd Copy in out of tree patches docs: add faq entry about using external etcd cluster Split formatting into two targets Add vendored etcd Add go report card! Update cli library path Fix stupid gofmt issue Update links Allow 1.6 to fail for now New blog post! Include video Bump to etcd v3.0.0 Revert "Allow 1.6 to fail for now" Remove manual etcd usage. No longer needed. Get travis results faster! Add exec3 example Revert "Revert "Allow 1.6 to fail for now"" Revert "Copy in out of tree patches" Port embedded etcd to embed API Add test case for urfave regression Do some gofmt simplifications Round of golint fixes to improve documentation. Be safe when closing in destroy in case client is nil Avoid a rare panic if DestroyServer is called early Don't block on member exits Improve README for first time users Docs: Add FAQ entry about similarly named band Update docs to add automatic clustering Update docs because they were out of date Fix typo Check for exit status of tests Fix up tests, and one small bug Start converger even if graph is empty Remote "agent-less" mode Add caching for remote execution Etcd: switch to using a directory prefix Automatically update remote files on change Improve prefix creation and feedback Run tests with a tmp prefix Improve the configWatcher array to allow N files Add more flexibility around the prefixes available Improve internal etcd error handling tests: Workaround regression in two host etcd clusters etcd: Add a timeout for etcd server to start correctly etcd: Rename loop to be more consistent in messages converger: Update the API for errors and naming converger: Add new methods to the API converger: Add new timer system for determining convergence etcd: Use new converged timers and allow skipping them miscellaneous cleanups and fixes remote: Add distributed converged timeout remote: allow converge during corner cases docs: Add additional documentation about remote execution remote: small cleanups to update misc notes test: provider usage text for shell test runner etcd: Catch possible raft grpc error misc: Golint fixes resources: golint fixes packagekit: golint fixes puppet: golint fixes test: Increase timeouts of t8 readme: Add new blog posts by Felix docs: Add an FAQ entry about difference between two similar methods thanks: More people really needed to be on the list - Paul Morgan (8): make life easier for people who have EditorConfig plugin improve portability of the Makefile add make target to build static binary allow to specify CLI options via environment vars add systemd unit file add myself as a contributor move systemd tip from README to DOCUMENTATION move doc files to /usr/share/doc/mgmt and tag as docs - Felix Frank (6): don't abort test suite on first failure packagekit: support Debian's 'all' architecture rename the 'stateok' return value to 'checkok' README: add the capnslog package to the build dependencies add puppet integration code add unit tests for UUID comparison and resource event passing - Martin Alfke (4): find on OS X needs the dot remove vet make go vet installation optional noop as resource meta param - Jack Henschel (2): Remove noop functionality from TODO Add recording and slides from DebConf16 presentation by James Shubin - Joe Julian (2): Change "uname -i" to "uname -m" to be portable Allow make overrides of version if git fails - Jeremy Thurgood (1): Check for old golang versions while installing dependencies. - Michał Czeraszkiewicz (1): Add Docker support - Raphaël Pinson (1): Typo in DOCUMENTATION.md - Sharad Ganapathy (1): Adding timer resource and usage examples * Mon Mar 28 2016 James Shubin 0.0.3 - James Shubin (53): This now works. w00t Update docs to refer to #mgmtlove patches Make debugging easier when running on Jenkins Switch to CentOS-7.1 for OMV tests. Add test case to match headers Update web articles Add a link to my article about debugging golang Add more mgmtlove tags Add DevConf.cz video recording Add link to slides from Walter Heck Update link to video Update README with new video Rename type to resource (res) and service to svc Add great article by felix frank Change API from StateOK/Apply to CheckApply() Update README with small fixes Make sure to error on test Fix golang 1.6 vet issue Add some fixes for building in tip or with golang 1.6 Fix Makefile warnings on Travis Add package (pkg) resource Improve go vet testing The svc resource should use the private system bus of course Update items for Jenkins tests Rename GetRes() which is not descriptive, to Kind() Clean up the examples/ directory Fix file resource regression Update Makefile plumbing and associated misc things Bump go versions in travis Actually update to 1.6 in travis Add initial "autoedge" plumbing Make resource "kind" determination more obvious Exec variable should use pre-existing error variable Split out some of the pkg CheckApply logic Add pkg auto edge basics with packagekit improvements Add some of the pkg and svc autoedge logic Golint fixes Add a threshold based golint test case Switch bc for awk Update make deps script to make it better for debian folks Update README and docs with information about new blog post Refactor out noop resource into a separate file Split the Res interface into a Base sub piece Update context since etcd upstream moved to vendor/ dir Add golint test improvements so we detect branches more cleverly Avoid errors on golint test with travis Support "noarch" style packages in arch check Add initial plumbing for autogroups Graph cleanups to make way for the autogroup feature! Add resource auto grouping Force process events to be synchronous Add grouping algorithm Allow failures in 1.4.x because of etcd problem - Daniele Sluijters (1): docs: Add Features and autoedges section - Rob Wilson (1): build requires (at least) stringer - add package which contains missing dependency - Xavi S.B (1): Fix broken link to graph.yaml section * Fri Feb 12 2016 James Shubin 0.0.2 - James Shubin (92): Add better reporting of errors in yaml formatting test Add travis-ci integration Fix small typo Put all the deps in one script Small grep flag fix so command is idempotent Add omv support Add missing watch event for files Add more shields! Add tag script Update gofmt test to allow version 1.5 Add equals sign to pass in variables Don't format or check omv.yaml syntax Reorganize testing for developer efficiency Mega patch Add graphviz generation and visualization Ira deserves to be mentioned in the THANKS list Update README Support N distributed agents Fix up go vet errors and integrate with ci Add missing stringer dependency Add information on which libraries are being used Refactor etcd into object and add exit timers Fix go vet error Hello 2016! Merge type comparison into a single function call Add exec type and fix up a few other things Fix effective off-by-one error in dependency processing Clean up better The noop type is not useful in this example Clean up the distributed example for clarity Simplify converge checker Catch a different form of etcd disconnect Fix dependency issue Fixup state related items Add state caching for most types Add state caching and invalidation to service type Avoid panic's when referencing non-existing objects Exit if program was not compiled correctly Limit the number of initial start poke's required Add link to first blog post Remove useless noop types Many examples now exist Improve wording in README.md for clarification Add information on providing good logs Make sure to unpause all elements when resuming Bump golang versions in travis Fix failure of go 1.4.3 due to missing `go vet` Golint fixes Don't generate file watch events if disabled Update faq to add etcd vs. consul answer I guess we'll have to stick with the name for now Add golang stringer to deps Add shell based test harness Avoid any possible errors with git describe Fix string issues in the build Travis: don't sully the homepage with broken test branches Enable shell tests Work around old go versions not supporting equals sign Add CentOS jenkins ci hooks Add gopath Makefile target Add centos-ci script to mgmt for independence and for make gopath Fix typo Skip yamlfmt on jenkins too Be more specific in error messages for easier debugging Work around missing JENKINS_URL regression Add missing ^ character Pass jenkins url through to child machine I give up, let's see some debug output Try and pass through with export Add gobin to path in an attempt to make it easy to find go binaries Add a fan in example and test Add the ability to run individual shell tests manually Allow unbound variables like "$1" Add a fan in, fan out example and test Cleanup the README file Make it easier to use converged-timeout Add a simple test for reproducibility Only format check tracked files Add a simple bashfmt test Binary is not reproducible on travis! Why not? Add a TODO list to serve as a near term roadmap Update README Will this fix Jenkins? Actually fix the CentOS-CI builds (I hope) Add some special path variables and add centos-ci dependencies Path fixes to avoid overwriting each other Fix up path issues with vtest+ Pave the way for Debian Improve shell scripts Make an initial RPM package for COPR Add build dependencies for remote COPR builder Add COPR badge - Felix Frank (3): README: make code actually display as multi line README: specify minimum golang version README: also list stringer as a dependency * Fri Sep 25 2015 James Shubin 0.0.1 - James Shubin (1): Initial public commit of mgmt * Fri Sep 20 2019 James Shubin 0.0.999 - James Shubin (47): lang: Add more tests for class and include lang: Add more tests for function test: Split up long tests into multiple sub tests again lang, test: Inline some overly indented tests lang: Detect windows style CR and return a better error lang: Add tests for slow unification lang: funcs: Fix a copypasta error with the not equals operator util: Add a remove path suffix util function lang: Add the world implementation to our test suite util: Ensure the afero copy function is working as intended lang, gapi: Work around a copy bug in the deploy lang: Add a new function interface to accept data lang: Make sure to call Init for functions that arrive via import lang: Pass through the Fs and the FsURI lang: funcs: Add deploy package with readfile related functions util: Add new `mkdirall` variants for the copy functions etcd: fs: Errors should start with lower case util: Add some path helper functions lang: Improve the gapi copying util: Fix typo lang: Remove the specialized info structs docs: Add newly recorded talks and blog post lang: funcs: Module name should be public misc: Use apt install of apt-get where possible misc: Warn users with weird computers lang: Clarify error message about missing field test: Catch capitalized error messages in tests engine: resources: file: Add Copy method to file res engine: resources: file: Use constants for state values engine: resources: file: Add undefined file state and validate it engine: Refactor state dir into a separate function engine: resources: Ensure the Kind and Name methods work engine: Improve the way we make a unique res path token engine: resources: Change the default file state engine: resources: Add another validation check engine: resource: Refactor helper functions engine: resources: Clean up test log message docs: Add missing docs on the rewatch and realize meta params engine: resources: Add reversible API and file resource lang, test: Fix copy paste error with log message lang: Remove duplicate log message engine: resources: Improve the file res and add strict state XXX MKOSI WIP XXX MORE MKOSI WIP XXX WIP all done? AHA done? XXX ARCH - Donald Bakong (2): pgraph: Add a test for FindEdge() function docs: Fix typo on quick-start-guide.md * Wed Jul 17 2019 James Shubin 0.0.20 - James Shubin (41): lang: Add a new type unification test pgraph: Quote graphviz strings properly pgraph: Use pointers for unique vertex identifiers lang: types: Remove unnecessary prefix in generated kinds lang, lang: types: Add automatic stringer generation lang: Print the actual stream error on test failure lang: funcs: structs: Make error message more precise lang: Add var prefix to var expr to avoid ambiguity test: Fix typos, these aren't cats lang: types: Workaround stringer regression in golang 1.11 lib: Fix gofmt regression in golang 1.11.x misc: Update to golang 1.11.x etcd: Move to etcd v3.3.13 all: Switch the --lang syntax to use argv instead lang: funcs: Add a weekday function to the datetime package docs, readme: Improve new user experience lang: funcs: Add a mod function to the math package docs: Add build issue to FAQ docs: Update FAQ to mention go mod engine: graph: Add a mutex around waits map access examples: lang: Update autoedges example examples: lang: Add a unicode example lang: funcs: core: Make module names public lang: funcs: core: Allow nested system imports docs: Fix typo and grammar issue lang: Use the short flag to list subtests lang: funcs: Verify that simple polyfunc list is not empty lang: funcs: Use the correct arg names when running a pure func lang: Move type duplicates checker into a separate package lang: Add the NamedArgs interface lang: funcs: Add better logging to the function engine lang: Name the expr call graph differently lang: types: Improve ComplexCmp function lang: If the test fails earlier than expected, exit early lang: Add function types to the yacc type parser misc: Add graphviz deps for travis lang: Add function values and lambdas lang: Avoid running graphviz in tests by default travis: Try to work around CI slowdowns test: Split up long tests into multiple sub tests lib: Update dep for uuid - Adam Sigal (1): pgraph: Add a test for FindEdge() and HasVertex() functions - Christian Rebischke (1): lang: funcs: Add ArchLinux family detection - Felix Frank (1): engine: resources: mount: Fix the dbus call for reloading systemd - Jan Martens (1): engine: resources: nspawn: Trim possible systemd version suffix - Johan Bloemberg (1): lang: funcs: Add uptime implementation for macOS - John Hooks (1): lib: Support for systemd STATE_DIRECTORY or XDG cache dir - Ward Vandewege (1): docs: Fix link to puppet guide * Tue Apr 23 2019 James Shubin 0.0.19 - James Shubin (60): examples: lang: Add is_debian and is_redhat family example lang: funcs: Allow the len function to determine str length lang: funcs: Avoid erroneous empty message in readfile lang: Print a clear message on module import containing unused stmt engine: resources: Improve exec resource test: shell: Fix rare breakage in load test engine: resources: Improve test case readability test: Improve govet log newline check lang: funcs: Add runner pure func execution lang: funcs: Add live function stream test infrastructure lang: funcs: Add a new test for readfile and fix a small bug engine: resources: Fix missing file when specified without content resources: file: Make some small cleanups to file res engine: resources: Remove possible panic from within file res engine: resources: Improve file Cmp function engine: traits: Make encoded fields public engine: resources: Replace the cached values with a live calculation engine: resources: Add missing struct tags engine: util: Improve StructTagToFieldName and add tests engine: util: Add a new utility function for send/recv examples: lang: Add a basic file example lang: Small fixes about send/recv lang: Improve the test case infra so it can detect different errors engine, lang: Improve send/recv significantly lang: Improve test case with more specific errors lang: funcs: Don't allow interpolation in printf format string engine: resources: Clean up KV resource examples: lang: Refresh examples util: Add errwrap package test: Improve test depth test: Improve test depth engine, pgp: Fixup incorrect error usage util: Port all code to new errwrap package util: Port all multierr code to new errwrap package test: Port yaml test to mcl engine: util, resources: virt: Clean up virt resource docs: Add two faq entries docs: Move faq entry to more appropriate resource docs legal: Happy 2019 everyone... lib: Add static hello message docs: Add FAQ entry about root requirements engine: resources: Remove named return params github: Add funding information util: Add context wait signal to easy exit util: Add subscribed signal primitive util: Add safe easy ack that allows multiple ack's util: Add context utility functions docs: Add faq entry about locked binary test: Skip net test in travis etcd: Rewrite embed etcd implementation lib: Clean up logging util: Make test more resistant to races etcd: Make error more specific test: shell: Increase etcd timeouts for slow travis lib, gapi: Display deploy ID to add some clarity lang: funcs: Add regexp package and match function lang: Fix import scoping issue with classes test: shell: Increase etcd timeouts for slow travis again lang: Quote printed strings lang: unification: Improve type unification algorithm - Nicolas Charles (2): lang: funcs: Added a function to detect Debian and RedHat like systems engine: resources: print: Add RefreshOnly option - Adam Sigal (1): faq: Amended faq mailing list information - Felix Frank (1): docs: Slightly clarify parameter defaults - Jonathan Gold (1): engine: resources: mount: Restart remote-fs target - Michael Schubert (1): docs: Fix link - Mitch Fossen (1): lang, funcs: Remove deprecated syscall import - Wouter Dullaert (1): cli: Removed obsolete no-watch-config flag * Tue Feb 26 2019 James Shubin 0.0.18 - James Shubin (50): lang: unification: Add missing return to exit early lang: unification: Add logging to make capturing errors easier lang: unification: Allow err string comparisons in tests lang: Check that set type matches actual expression lang: If expression was missing two invariants lang: unification: Catch unification error on typed if expr lang: unification: Catch unification error on typed var expr lang: unification: Fix up small typos in example code test: Fix a small copy pasta typo lang: test: Add a new giant test infra for matching static output lang: Edges should allow lists of strings engine: resources: pkg: Clarify that correct state is newest examples: lang: Update examples to fix imports and port from yaml engine: resources: Fix a possible panic on closed channel engine: resources: Fix a small typo in error message lang: funcs: Rename template functions to remove periods lang: funcs: Add a new readfile function lang: funcs: Add str2int example function lang: funcs: Add a trim space function to the new strings module engine: resources: virt: Clean up virt resource for lang examples: Improve dynamic cpus virt example integration: Avoid duplicate events from recwatch engine: nspawn: Add an nspawn example with an improved exec examples: Add missing mcl files examples: Add more examples and clean up some examples: Add uncommited nspawn example lang: funcs: core: Drop unnecessary core prefix from imports lang: funcs: core: Rename core module files lang: funcs: core: Move world API functions lang: Remove unnecessary log package engine: resources: Add a test running for testing individual resources engine: resources: file: Update the format string test: Split travis tests into three blocks test: Add expanders when running in travis lang: funcs: funcgen: Clean up some small details util: Add an easy ACK sync primitive converger: Rewrite the converger module engine: Rewrite the core algorithm engine: Add the retry loop around Watch engine: Add limit delay before Process can run engine: Add the retry loop around Process test: Enable and fix up some more tests util: Improve the sync primitives. make: Clean up the Makefiles so the output is more elegant test: Shell tests should use unified timeout command misc: Add two test helpers resources: exec: Avoid possible deadlock race engine: resources: Add CheckApply event detection to resource tests examples: Remove old hcl examples test: shell: Improve load test - Kevin Kuehler (5): util: Move socketset from net resource to util util: Libify socketset lang: funcs: Add cpucount fact util: Add TestShutdown to socketset engine: lang: util: Kill race in socketset - Lander Van den Bulcke (4): make: Use gem --no-document instead of deprecated flags lang: funcs: Add sqrt function lang: funcs: Add tests for sqrt function lang: funcs: Add strings.split function - Johan Bloemberg (3): misc: Add goimports dep misc: Make build on macOS work etcd: Connection options (socket file, ipv6) - Julien Pivotto (3): docker: Update FROM to go:1.11 lang: Add to_lower and to_upper functions lang: Add more string functions, autogenerated - Felix Frank (1): langpuppet: Fix Cli method invocations for wrapped GAPIs - Jeff Waugh (1): build: Fix macOS build - Toshaan Bharvani (1): lang: funcs: Added an uptime function * Thu Jan 17 2019 James Shubin 0.0.17 - James Shubin (73): test: Add doc note about skipping docker tests travis: Work around broken travis NO_PUBKEY error travis: Bump to golang 1.10 engine: resources: file: Require paths to be absolute engine: resources: svc: Add symmetric closing engine: resources: Work around a subtle embedded res bug util: Add an fs helper and a test helper util: Improve the test helper function and add a better one util: Add a test for CopyFs test: Increase the vet testing for irregular strings util: Fix small linting error test: Fix up token vet test lang: Add logging and debug info via a new Init method lang: Add an Apply iterator to the Stmt and Expr API util: Add a UInt64Slice and associated sorting functionality. lang: Allow dotted identifiers lang: Detect sub tests with the same name lang: Support lexing and parsing a list of files with offsets lang: Add import spec parsing and tests lang: Add resource specific tokens in lexer and parser lang: Allow matching underscores in some of the identifier's lang: Add lexing/parsing of import statements lang: Tidy up grouping of lexer tokens in the parser lang: Refactor most functions to support modules bindata: Add infrastructure for building core mcl files gapi: Add a prefix variable in case we want to namespace on disk git: Ignore some WIP files that won't get tracked in git lang: Add a URL result to the import name parser lang: Add beginning of user defined functions test: Clean up and improve golang tests lang: Add some lambda function parsing and tests lang: Improve empty scope and output lang: Add a top-level stmt safety method util: Add some useful path parsing functions gapi: Add a bytes helper lang: Add module imports and more lang, util: Tests that depend on the fs should be sorted lang: test: Add a test of duplicate resource generation engine: resources: cron: Fix typo in error message engine: resources: pkg: Remove old Compare method engine: resources: pkg: Replace state strings with constants engine: resources: pkg: Simplify state check lang: Improve sub testing lang: Validate the edge field names in our resources engine: Add setters for the trait interfaces engine: Add a resource copy interface and implementation engine: Add an interface for compatible resources lang: Handle merging of compatible resources properly engine: resources: pkg: Implement the CompatibleRes interface travis: Workaround another broken apt repo travis: Print debug info to catch travis regressions test: Fix golang cache regression lang: Move capitalized res identifier into parser lang: Add meta parameter parsing to resources travis: Clean up my grammar docs: Add sub categories to the language guide lang: Refactor resource creation into a helper method lang: Refactor edges helper method lang: Add a placeholder "ExprAny" expression for unification hacks lang: Allow a list of strings in the resource name lang: Refactor the res metaparams helper lang: Add autoedge and autogroup meta params to mcl engine: Fix typos engine: graph: Prevent converged timeout of dirty res test: Add a semaphore shell test test: Enable t8 to test for two host etcd clusters test: Rename t8 to be more descriptive test: Add a three host variant of the empty etcd test test: Don't be unnecessarily noisy in this test engine: event: Switch events system to use simpler structs engine: Work around bad timestamp panic engine: graph: Avoid a possible panic sending on a closed channel etcd: Workaround a nil ptr bug - Jonathan Gold (24): etcd: Fix deploy transaction error message lang: Fix error message format strings engine: resources: net: test: Add some go tests puppet: Fix error message when puppet conf copy fails engine: resources: net: Allow addr without gateway engine: resources: net: test: Add shell test for net resource travis: Build on Xenial engine: resources: packagekit: Fix dbus addmatch rule engine: resources: file: Fix bug preventing use of source field engine: resources: file: Add shell test for source field etcd: Use source filepath base in CopyFs destination path etcd: Use mgmt backend for fs tests engine: resources: group: Make group edgeable engine: resources: svc: Use dbus session bus for user session svc engine: resources: cron: Add a systemd-timer resource engine: util: Add EdgeCombiner() for combining auto edges engine: resources: cron: Add support for user session timers engine: resources: cron: Add lang examples engine: resources: cron: Add auto edges from SvcRes util: Add PathSlice type that satisfies sort.Interface etcd: Add TestEtcdCopyFs0 etcd: Add more test cases to TestEtcdCopyFs0 make: deps: Only install gometalinter on CI/CD servers test: Ensure gometalinter is available - Felix Frank (5): make: Remove spurious dependency package 'rubygems' for Debian-like systems make: Speed up the build by skipping gem docs gapi: langpuppet: Add initial implementation docs: Explain the langpuppet interface and function gitignore: Ignore vim swap files - Tom Payne (3): etcd: Add Chown (returns ErrNotImplemented) etcd: Add Lchown (returns ErrNotImplemented) etcd: Ensure that fs.Fs implements afero.Fs - Kevin Kuehler (2): util: Patch CopyFs and add tests lang: Add debug flag and Logf to fact init struct - Michael Lesko-Krleza (1): test: Increase test coverage for graphsync - Vincent Membré (1): engine: resources: exec: Use WatchShell in Exec resource when needed instead of Shell * Fri Nov 30 2018 James Shubin 0.0.16 - James Shubin (43): lang: Misc fixes for typos and grammar pgraph: Don't panic on new or nil graphs resources: svc: Add deactivating state lib: Remove remote execution from core recwatch: Remove the ConfigWatch functionality test, integration: Add an integration test framework test, integration: Add cluster primitives to integration framework integration: Log the instance output lang: funcs: Don't race when building an initial graph lang: Add mutex around Expr String/Value/SetValue calls readme: Add patreon link to README file lib: Remove hcl GAPI frontend lib, yamlgraph: Remove old yamlgraph GAPI frontend etcd: Pull in default URLs from upstream lang: Don't race with a ^C to the obj.lang calls engine: Resources package rewrite puppet: Clean up the GAPI and remove log package engine: Small fixes test: Improve commit message test docs, test: Remove old reference to resources package test: Catch naked returns and check for canonically named imports engine: test: Pass in the go test verbose flag test: Improve golang tests with root and disabling cache travis: Enable apt updates on builds engine: resources: print: Add missing Recvable trait lang: Error parser if SetType fails to avoid a panic lang: Add edges to StmtProg output lang: funcs: Registered functions map should be private lang: Simplify graph function for edge half in parser lang: Add indentation test to parser lang: Don't add identical resources to graph lang: Simplify struct interpolation pgraph: Handle empty graphs when merging two lang: Simplify bind stmt collection in the prog stmt lang: Add class and include statements lang: Add partial recursive support/detection to class lang: Update map type definition to include a prefix test: Add a test to ensure the parser doesn't have any conflicts readme: Add Liberapay link to README test: Improve commit message tests vendor: Add vendored docker modules with out of tree fix engine: resources: Add nodocker build tag make: Improve release pipeline - Jonathan Gold (11): util: Rename SortedStrSliceCompare and move to util package engine: resources: nspawn: Remove godbus channel buffer util: Move dbus AddMatch const to util package engine: resources: mount: Add a mount resource engine: DBus cleanup build: Fix ldflags pattern for 1.10 docs: Add netlink post to on-the-web.md docs: Update url for AWS EC2 blog post build: Add rubygems to make deps target engine: resources: docker: Add a docker container resource make: Release pipeline - phaer (3): vagrant: Bump to fedora 28 vagrant: Add gem package vagrant: Fix example path in motd - Alan Jenkins (1): engine: resources: packagekit: Add Arch mapping 'any' for Arch Linux compatibility - Lauri Ojansivu (1): resources: svc: Add activating state - jesus m. rodriguez (1): build: Add help to main Makefile - jonathangold (1): resources: net: Add net resource * Tue Feb 27 2018 James Shubin 0.0.15 - James Shubin (45): lang: Initial implementation of the mgmt language test: Add new test for language prefix etcd: Update broken link travis: Disable fast finish for now test: Increase timeouts for when travis is slow docs: Add FAQ entry about vendoring dependencies readme: Fix broken link test: Fix broken gometalinter test docs: Add newly recorded talks and blog posts about mgmt resources: nspawn: Don't panic if one svc is nil build: Improve speed of make etcd: Fix golint issue in test build: Add -i flag to go build test: Improve gometalinter test so that it skips generated files authors: Clarify wording in AUTHORS file etcd: Bump to etcd v3.3 and golang 1.9 docs: Add faq entry about production readiness travis: Add golang 1.10.x to builds docs: Add an entry to the faq about converged timeouts test: Show test output as it happens etcd: Increase the default max txn op count etcd: scheduler: Remove etcd 3.2 specific hacks lang: funcs: Rename things for consistency travis: Avoid notification noise from forks lang: types, funcs: Add simple function API test, docs: Add a linter for testing markdown, and fix up our docs lang: funcs: Fix up some old comments golint: Fix ineffassign mistakes misc: Add dependency on time package misc: Update golint to new location test, docs: Restrict long lines in markdown linter docs: Add two faq entries about the type system build: Relocate time command to the front for readability lang: funcs: simple: Don't block on simple, pure, static functions travis: Attempt to workaround the constant travis failures docs: Add two new faq entries all: Misc fixes and test fixes lang: types, funcs: Add simple polymorphic function API lang: Add edges to lexer and parser lang: funcs: Add math pow function and a few examples lang: unification: Fix panic in struct/func cmp of partials travis: Attempt to cut down on flaky failures travis: Fix the OSX builds lang: Add a resource-specific elvis operator lang: Add internal, resource specific edges - Johan Bloemberg (19): build, docs: Improve macOS building lang: Use universal way to retrieve load resources: Do not return GID for UID lookup misc: Fix graphviz output for hostnames with dot in them debian: Add graphviz and packagekit runtime dependencies build: Unify build/crossbuild test: Streamline test suite a little test: Export the mgmt command to be used during test test: Fix augeas test for macOS, improve test debuggability test: Exclude generated files from golint cli: Log errors return by Run functions etcd: Warn about invalid configuration, clarify --no-server lib: Provide detailed feedback about invalid URLs travis: Improve travis speed by only building 1 go version for osx travis: Retry flaky apt update at build start recwatch: Fix watching newly created files on macOS docs, misc: Add tool references, .editorconfig for mcl lang: Add `getenv` function project: Add me - Carsten Thiel (2): docs: Improve file resource documentation test: Refactor unification_test to subtests - Joe Julian (2): misc: Use bash's `command` instead of `which` misc: Don't install packages that are already installed - Toshaan Bharvani (2): build: Add cross building option lang: Interface sorting order - Wim (2): docs: Add GOPATH/bin to PATH build: Add gcc,pkg-config deps - Jonathan Gold (1): project: Add Jonathan Gold to AUTHORS - Oliver Frommel (1): misc: Small fixes for makedeps script - Peter Oliver (1): emacs: Bundle an Emacs major mode, mgmtconfig-mode - dsx (1): debian: Add packaging - jonathangold (1): misc: Replace missing go-bindata dependency - karimb (1): docs: Add docs for docker usage * Thu Jan 11 2018 James Shubin 0.0.14 - Jonathan Gold (29): etcd: Add advertise urls to cli etcd: Plumbed in the new cli flags for advertise urls resources: Add UserData field to AwsEc2 resources: aws: ec2: Move Watch to longpollWatch resources: aws: ec2: Remove extra wait from Watch resources: aws: ec2: Reorganized consts resources: aws: ec2: Move chanStruct type out of longpollWatch resources: aws: ec2: Move watch channels into struct resource: aws: ec2: Move waitgroup to resource struct resource: aws: ec2: Add http server resources: aws: ec2: Add method to make sns topic resources: aws: ec2: Start and stop SNS endpoint in snsWatch resources: aws: ec2: Change event messages to iota consts travis: Allow travis builds to access target branches resources: virt: Update libvirt-xml target cli: Add license flag resources: aws: ec2: Use custom listener for snsServer resources: aws: ec2: Subscribe SNS endpoint to topic resources: aws: ec2: Add CloudWatch rule and target SNS resources: aws: ec2: Authorize CloudWatch to publish to sns resources: aws: ec2: Update postHandler to process messages resources: aws: ec2: Close closeChan before server shutdown resources: aws: ec2: Check that policy.Statement != nil resources: aws: ec2: Verify SNS message signatures resources: aws: ec2: CheckApply fix pending and stopping cases resources: aws: ec2: Retry on exceeded wait attempts error resources: aws: ec2: Wait for stop and terminate concurrently resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Refactor CheckApply - James Shubin (15): examples: Add longpoll server and client github: Use third-party settings app to sync github settings github: Add new label for design discussions and trackers github: This event is over yamlgraph: Improve error output resources: aws: ec2: Fix deadlock on rare error scenarios test: Add extra commit message tests for some common mistakes test: Add check for common doc vs docs ambiguity resources: Replace golang 1.6 specific code with newer 1.7 version test: Add another check for off-by-one-error commit tags docs: Refresh documentation to provide a better new user experience docs: Add missing blog post about augeas resource legal: Happy 2018 everyone... misc: Don't display script name in output test: Don't fail on tag builds - Julien Pivotto (7): doc: Fix link to the prometheus wiki prometheus: Initialize mgmt_checkapply_total metrics build: Build mgmt on any go file change exec: Add autoEdges between ExecRes and PkgRes prometheus: Initialize all metrics build: Remove go 1.3 and 1.4 support example: Remove content out of directory definition - Guillaume Herail (4): docker: Bump to golang 1.8 resources: Move FileRes.uid()/.gid() to util.go resources: Add User/Group to ExecRes test: Switch to goimports instead of gofmt - jonathangold (3): resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Send IP addresses and InstanceID resources: aws: ec2: Fix closed channel handling - Paul Morgan (2): git: Ensure the tagging script is idempotent git: Configure editorconfig to indent with tabs in bash scripts - Felix Frank (1): puppet: Avoid empty parameters to puppet mgmtgraph - Toshaan Bharvani (1): build: Added build option to strip binary * Mon Oct 23 2017 James Shubin 0.0.13 - James Shubin (30): misc: Update my tag script to deal with large releases resources: Unify resource creation and kind setting resources: Panic if attempting to register a duplicate resource pgraph: Improve testing and refactor out some test utilities resources: Do not panic on autogrouped graph switches resources: Add resource sorting and clean tests resources: Compare grouped resources properly test: Don't be noisy when running cd during testing remote: Add a Ready method to know when startup is finished resources: Fix golint issues hcl: Consistent formatting resources: Add a utility to map from struct fields resources: Add NewNamedResource helper readme: Add new recording travis: Update to golang 1.8 as the default resources: Include default MetaParams so Validate will pass in tests etcd: Bump to version 3.2.6 and update all the grpc deps test: Increase timeouts because travis is slow test: Fix another intermittent failure yaml2: Meta should keep defaults, and Res should have kind github: Add a PR template to help new users github: Improve the PR template test: Increase timeouts for slow travis resources: Fix formatting legal: Re-license to GPLv3 git: Ignore .envrc file from direnv vendor: Add codec package because of breakage etcd: Bump to newer versions test: Use stable version of gometalinter test: Fix linter issues - Jonathan Gold (7): virt: Allow more than 26 disks resources: Add user resource resources: Add an Aws resource resources: Improve nspawn resource resources: Fix user gid compare resources: Add a group resource resources: Enhancements to user and group - ChrisMcKenzie (3): hcl: Added basic hcl frontend hcl: Removed edge object in favor of depends_on field in resource hcl: Added hil string interpolation to hcl frontend - Dennis Kliban (2): vagrant: Increase amount of RAM allocated to boxes backed by libvirt resources: Add validation for Msg Priority field - Juan Luis de Sousa-Valadas Castaño (2): vagrant: Fix PATH resources: Refresh packagekit cache before install - AdnanLFC (1): pgraph: test: Added tests for DeleteEdge - Arthur Mello (1): virt: Added support for ~user into expandHome - Ismael Puerto (1): vagrant: Change box to F26 - Juan-Luis de Sousa-Valadas Castaño (1): docs: Change go required version to 1.8 * Sat Jun 03 2017 James Shubin 0.0.12 - James Shubin (49): main: Update log messages for consistency misc: Replace sloppy use of %v with %s resources: svc: Add basic support for user services misc: Fixup documentation lib: examples: Update to most recent API gapi: Move separate etcd Watch method into GAPI lib, gapi: Next method of GAPI should generate first event resources: Make resource kind and baseuid fields public readme: Add new links etcd, resources, world: Add World API for shared keys pgraph: Use the correct vertex handle to prevent a race pgraph: Clean up pgraph module to get ready for clean lib status pgraph: Remove use of Flags struct in favour of Value API pgraph: Untangle the semaphore code from the pgraph implementation pgraph: Replace CompareMatch with VertexMatchFn pgraph: Update graph API to remove Get prefix and add Adjacency pgraph: Move GraphMetas function out of package pgraph: Move AssociateData function out of the package test: Run go vet with -source flag in newer releases test: Run go vet across whole packages not individual files pgraph: Move the AutoEdges mechanism into the resource package pgraph: Move get/set state methods out to resource package pgraph: Move the timestamp storage into the resource resources: Map to semaphores doesn't need to be a pointer pgraph, resources: Major refactor to remove pgraph to resource dep pgraph, resources: Major refactoring continued pgraph: Replace edge struct with interface resources: nspawn: Fix small style issues pgraph: Add a GraphCmp method pgraph: Add logic functions for adding subgraphs pgraph: Add sort function to sort a list of vertices resources: Simplify the resource Compare functions resources: Add proper edge compare method resources: graph: Add partial implementation of a graph resource pgraph: Remove NewVertex and NewEdge methods and fix examples resources: Clean up converger and make it easier for tests resources: exec: Add send/recv for exec output, stdout and stderr resources: Rename the Data struct to ResData to avoid ambiguity test: Make sure our examples build gapi: Allow the GAPI implementer to specify fast and exit resources: Reorganize package and split into multiple files resources: Replace stored pgraph with mgraph and clean up hacks resources: Improve AutoEdge API and pkg breakage resources: autoedges: Process in a deterministic order resources: pkg: Add a simple test based on internal logic etcd: Small cleanup of the package etcd: Wait for server to start before continuing test: Remove debugging echo from go vet test test: Add gometalinter to our test suite - Julien Pivotto (2): vagrant: Install make in the Vagrant box vagrant: Setup Packagekit in the box - Mildred Ki'Lya (1): yamlgraph: Refactor parsing for dynamic resource registration * Thu Mar 16 2017 James Shubin 0.0.11 - James Shubin (15): git: Add more features to tag.sh script pgraph: semaphore: Add lock around semaphore map resources: exec: Remove the pollint parameter resources: exec: Don't invalidate state on poke resources: exec: Remove state checks that are done in the engine resources: exec: Clean up command error processing resources: exec: Ignore signals sent to main process resources: exit: Misc cleanups pgraph: Move the quiesce done indicator to avoid deadlock pgraph: Move the BackPoke to before the semaphores pgraph: semaphore: Refactor semaphore size function and test pgraph, resources: Run the resource Setup in parallel pgraph: Add fast pausing and exiting of graphs examples: Add missing file example todo: Update the TODO file to be more current - Julien Pivotto (1): prometheus: Add detailed metrics * Sat Mar 11 2017 James Shubin 0.0.10 - James Shubin (24): compiling: Add -i flag to go build to speed up builds test: Small fixups to t4 and a rename semaphore: Create a semaphore metaparam remote: Replace builtin semaphore type with common util lib semaphore, pgraph: Add semaphore grouping and tests pgraph: Clean up tests spelling: Fix typos as found by goreportcard readme: Add new blog post about metaparameters travis: Ensure recent golang versions in test test: Avoid matching three X's gapi, etcd: Define and implement a string sharing API for the World etcd: Switch to buffered channel to remove duplicates lib: Refactor instantiation of world API lib, pgraph, resources: Refactor data association API gapi: Move the World interface into resources resources: Split util functions into separate file resources: kv: Add new KV resource which sets key value pairs pgraph: graphviz: Update Graphviz lib to quote names properly resources: svc: Add failed state resources, yamlgraph: Drop the kind capitalization pgraph, resources: Quiesce when pausing or exiting the resource pgraph, resources: Discard BackPokes during pause and resume test: Disable prometheus-3.sh test temporarily git: Improve tagging script - Julien Pivotto (3): compilation: Make build the default target prometheus: Move the prometheus nil check inside the prometheus function prometheus: Add mgmt_pgraph_start_time_seconds metric - Michael Borden (2): misc: Add pacman support travis: Add go_import_path * Sat Feb 25 2017 James Shubin 0.0.9 - James Shubin (81): todo: Make TODO file more current resources: Rename Converger to ConvergerUID resources: virt: Add missing converger call converger: Wait till the timer exits resources: Add poll metaparameter resources: timer: Polish the timer resource resources: Add a `Default` method to the resource API docs: Add missing headings to table of contents resources: Officially add Validate method docs: Split out a separate quick start guide docs: Rename puppet guide and small cleanups docs: Improve README docs: Add an introductory paragraph to the quick start guide docs: Add new blog post link docs: Add missing newline docs: Small fixes to the README resources: Overhaul legacy code around the resource API resources: Improve composition of Validate API in resources resources: rate limiting: Implement resource rate limiting resources: Force a sane default for zero value limiting pgraph: Remove unnecessary indentation in Process code path resources: Update state checks pgraph: Parallelize the BackPoke facility pgraph: Add debug messages converger: Block converging in the engine converger: Remove converger boilerplate from the resources virt: Allow the use of ~ to expand to home directory resources: Rename GetUIDs to UIDs pgraph: Set the false starter value too examples: Update example to be Validate safe etcd: Update example to ignore pgp examples: Have libmgmt work around the lack of rate defaults travis: Limit notifications now that travis cron is enabled examples: etcd: Simplify the etcd examples resources: Don't double close on Running restart recwatch: Do not send to channel if closed. lib: Make initial one-shot start pattern more elegant gapi: Unblock from a waiting send on GAPI close resources: Parse YAML infinity specifications correctly examples: Update the examples pgraph, yamlgraph: Allow specifying notify value from YAML test: Small nitpicks with messages resources: augeas: Turn augeas namespace into a constant etcd: Remove stuttering in package test: prometheus: Fix up test docs: Update the quick start guide with git clone and vagrant github: Show a friendly message in issues template resources: file: Use the computed path in our resource docs: Add missing newline and remove extra one legal: Oh yeah, it is 2017 resources: file: Small fixups and force additions resources: Remove "NewRes" constructors resources: file: Don't modify resource in Init resources: Specify defaults for the MetaParams build: Require golang 1.6 or greater test: Fix tests by hooking up go test properly test: Improve go vet so that it is less noisy test: Fix false negative on go vet test: Fix yamlfmt test test: Make test status more clear resources: virt: Allow hotplugging pgraph, resources: Improve Init/Close and Worker status resources, pgraph: Refactor Worker and simplify API resources: The user should not call Init pgraph, resources: Add proper start/stop signals recwatch: Close cleanly after Watcher finishes recwatch: Unblock from sending on exit lib: Misc cleanups and new log message test: Don't block on graph transitions pgraph, resources: Clean up the event system around the resources recwatch: Close the ConfigWatch properly yamlgraph: Close the recwatcher properly after use resources: virt: Cleanup cleanly on Close travis: Start building golang 1.8 as well golint: Fixup issues found in the report test: Fix up probable timeout failures due to slow ci pgraph, resources: Wait for innerWorker to exit cleanly pgraph: Wait for Process routine to exit resources: virt: Don't block exit in callbacks resources: virt: Catch bad calls to CheckApply resources: virt: Remove unnecessary early exit from CheckApply - Julien Pivotto (21): prometheus: Implement basic Prometheus support Prometheus: fix URL to the "Default port allocations" prometheus: Add a new test, with --prometheus-listen travis: add a test regarding commit messages test: file: test the behaviour of inotify on parent dir moves travis: more strict commit messages tests test: commit: Improve commit message testing recwatch: Remove watcher on file move compilation: virt: Make libvirt support optional resources: augeas: New resource prometheus: Implement mgmt_checkapply_total metric resources: augeas: Make augeas support optional documentation: prometheus: Improvements resources: file: Do not error on os.Stat in noop mode prometheus: Add mgmt_process_start_time_seconds metric prometheus: Remove mgmt_process_start_time_seconds metric documentation: Embed command-line syntax in a code block resources: augeas: comments: Improvements documentation: Implement sphinx documentation travis: Run apt update before installing dependencies project: Add $me to AUTHORS - Felix Frank (3): tests: simplify shell code, skip YAML test if Ruby is too old vagrant: Add Vagrantfile and some basic configuration project: Reluctantly add myself as an author - Mildred Ki'Lya (3): resources: file: Implement file attributes misc: Split OPTS variable of systemd unit resources: file: Allow creation of empty directories - Daniel P. Berrange (1): resources: virt: convert to use github.com/libvirt/libvirt-go - Daniele Sluijters (1): TODO: Point to current file improvement issue - Kaushal M (1): build: Use GOTAGS for static builds as well - Lars Kulseng (1): readme: Changed wording of quick start section - Sean Jones (1): test: Enable macOS shell testing - Steve Milner (1): spec: Fix rpmlint warnings - Tom Ritserveldt (1): point to the correct puppet-guide path in docs. - goberghen (1): docs: Fix headers formating * Wed Dec 21 2016 James Shubin 0.0.8 - James Shubin (15): docs: Create a dedicated documentation folder resources: Simplify resource Converger and Startup code resources: Don't dirty resource when poked with activity resources: Remove SetWatching/IsWatching code from Watch resources: msg: Remove legacy comment docs: Add resource guide resources: file: Fix small typo in the compare function gapi: Rename SwitchStream to Next pgraph: Build the sync group into the graph structure pgraph, resources: Integrate properly with the startup logic pgraph: Simplify graph exit waiting pgraph: Mutex must be a pointer pgraph: Remember to unpause the vertices! test: Allow devel versions to run gofmt golint: Fix some golint issues * Thu Dec 08 2016 James Shubin 0.0.7 - James Shubin (26): pgraph: Fix ineffassign warning resources: Clean up errors and string printing resources: file: Allow undefined file contents etcd: Watch for obvious failures on first startup resources: nspawn: Tweaks and updates resources: nspawn: Use new API resources: Add stable go-systemd branch for now resources: nspawn: Update grammer for Joe readme: Add video link from High Load Strategy readme: Add video from NLUUG misc: Exclude vendor/ directory from ack matching resources: Add VarDir support misc: Cleanup unnecessary use of %v and small nitpicks resources: Implement Send -> Recv resources, pgraph: split logical chunks into separate files resources: Improve the state/cache system resources: Improve notification system and notify refreshes resources: Reduce logging on Send/Recv resources: Fix poke/refresh race misc: Improve gofmt test case resources: Polish the password PoC and build out send/recv resources: Actually verify which send/recv elements changed resources: Re-order send/recv display messages. gapi: Add world interface and refactor existing code to use it readme: Add new blog post about send/recv misc: Rename mgmtmain to lib and remove global package - Joe Julian (5): virt: Do not restrict VIR_ERR_NO_DOMAIN to qemu. Add IntelliJ Idea to .gitignore virt: Add logic to parse the libvirt uri nspawn: Add systemd-machined support for nspawn containers nspawn: bump go-systemd commit - Vinzenz Feenstra (5): virt: Avoid parsing URI all the time virt: Authentication support resources: Add new hostname resource examples: rename hostname.yml to hostname.yaml misc: Prefer dnf over yum when present - Nicolas Nadeau (1): pgp: Base pgp code * Thu Nov 03 2016 James Shubin 0.0.6 - James Shubin (27): golint: Outdent else statement godoc: Document resources package godoc: Document packagekit package readme: Update repository with information about remote execution etcd: Verify struct is not nil before accessing retries value test: update lint checker to support packages etcd: Fix type issue make: Sed needs g option to replace multiple PROGRAM names resources: List resources in alphabetical order resources: Interfaces parameters can be named to help documentation resources: Check that resource kind is set. all: Rename UUID to UID. resources: virt: Add a virt resource based on libvirt misc: Add libvirt header file dependency test: Fix travis so it pulls in our deps resources: virt: Update to new function signature resources: Use Events() method instead of raw channel spec: Improve the rpm package resources: Set the defaults for metaparameters resources: Update constructor signature to return error as well resources: virt: Update CPUs variable to new uint16 signature main: Split apart logic in main readme: Update README file to make it clearer for new hackers main: Libify mgmt with a golang API cli: Pass through program and version strings gapi: Split out graph generation into a proper graph API examples: make the libmgmt example more fun - Joe Julian (2): Use the download-only flag when fetching dependencies virt: don't set emulator path - Alexandre-Xavier Labonté-Lamoureux (1): test: Tokens should always have a colon - Juergen Hoetzel (1): readme: Fix go get command - Marc Antoine Dumont (1): Add the link to a new dependencies in README.md * Mon Oct 03 2016 James Shubin 0.0.5 - James Shubin (28): file: Overhaul file resource and add recursion todo: Update TODO file etcd: Update examples to be more useful for single machine tests test: temporarily disable test art: Add a logo readme: We now have an arch aur build. readme: Add information for new users travis: bump to newer golang version (fedora 23) Resources: Prototype retry and retry delay meta parameters Resources: Add retry and retry delay meta parameters resources: Compare Delay and Retry metaparams on graph change golang: Split things into packages Makefile: Limit depth for yamlfmt TODO: add TODO item about DHT idea Resources: Update interface to support errors vendor: Update etcd to working version and fix grpc stuff golang: Update to version 1.6 as the minimum readme: Add link to godoc resources: svc: Catch reload states too golint: Fix issues caught by the linter golint: Fix nested else statement file: Fix regression in fsnotify code resources: msg: Turn on journal logging in the example resources: fix deadlock on recursion recwatch: Split recursive watching into sub-package test: Catch go vet issues in subpackages recwatch: Rearrange condition to unconfuse golinter resources: Use named fields to avoid bothering go vet - Felix Frank (3): add puppet support documentation have 'make clean' get rid of generated code files again resources: msg: Introduce new resource type to log arbitrary messages - Michaël Faille (3): cli : Prefer github.com/urfave/cli as cli Let `env` find bash in shebang. travis : use go1.7 to be future proof. - Antoine Racine (1): Add pcap.h dependency on Debian/Ubuntu to fix make deps error * Wed Sep 07 2016 James Shubin 0.0.4 - James Shubin (86): Rework the converged detection and provide a clean interface Add additional autogrouping example Update TODO file Update docs and README to mention new blog post Allow stubborn users to avoid having to move their project Small nitpick fixups Add flatten helper to take apart messy nested lists Fix go generate issue with path Update Makefile to be more useful for hackers Update TODO file Fix typo Add a base method for GroupCmp Pkg: cache state when it is correct Pkg: Immediately unconverge on events Fix cli API change Add logging workaround when embedding etcd Expand the event system slightly Add global --noop support Remove pesky spaces Add quote from notable automation specialist and author Update links Embedded etcd Copy in out of tree patches docs: add faq entry about using external etcd cluster Split formatting into two targets Add vendored etcd Add go report card! Update cli library path Fix stupid gofmt issue Update links Allow 1.6 to fail for now New blog post! Include video Bump to etcd v3.0.0 Revert "Allow 1.6 to fail for now" Remove manual etcd usage. No longer needed. Get travis results faster! Add exec3 example Revert "Revert "Allow 1.6 to fail for now"" Revert "Copy in out of tree patches" Port embedded etcd to embed API Add test case for urfave regression Do some gofmt simplifications Round of golint fixes to improve documentation. Be safe when closing in destroy in case client is nil Avoid a rare panic if DestroyServer is called early Don't block on member exits Improve README for first time users Docs: Add FAQ entry about similarly named band Update docs to add automatic clustering Update docs because they were out of date Fix typo Check for exit status of tests Fix up tests, and one small bug Start converger even if graph is empty Remote "agent-less" mode Add caching for remote execution Etcd: switch to using a directory prefix Automatically update remote files on change Improve prefix creation and feedback Run tests with a tmp prefix Improve the configWatcher array to allow N files Add more flexibility around the prefixes available Improve internal etcd error handling tests: Workaround regression in two host etcd clusters etcd: Add a timeout for etcd server to start correctly etcd: Rename loop to be more consistent in messages converger: Update the API for errors and naming converger: Add new methods to the API converger: Add new timer system for determining convergence etcd: Use new converged timers and allow skipping them miscellaneous cleanups and fixes remote: Add distributed converged timeout remote: allow converge during corner cases docs: Add additional documentation about remote execution remote: small cleanups to update misc notes test: provider usage text for shell test runner etcd: Catch possible raft grpc error misc: Golint fixes resources: golint fixes packagekit: golint fixes puppet: golint fixes test: Increase timeouts of t8 readme: Add new blog posts by Felix docs: Add an FAQ entry about difference between two similar methods thanks: More people really needed to be on the list - Paul Morgan (8): make life easier for people who have EditorConfig plugin improve portability of the Makefile add make target to build static binary allow to specify CLI options via environment vars add systemd unit file add myself as a contributor move systemd tip from README to DOCUMENTATION move doc files to /usr/share/doc/mgmt and tag as docs - Felix Frank (6): don't abort test suite on first failure packagekit: support Debian's 'all' architecture rename the 'stateok' return value to 'checkok' README: add the capnslog package to the build dependencies add puppet integration code add unit tests for UUID comparison and resource event passing - Martin Alfke (4): find on OS X needs the dot remove vet make go vet installation optional noop as resource meta param - Jack Henschel (2): Remove noop functionality from TODO Add recording and slides from DebConf16 presentation by James Shubin - Joe Julian (2): Change "uname -i" to "uname -m" to be portable Allow make overrides of version if git fails - Jeremy Thurgood (1): Check for old golang versions while installing dependencies. - Michał Czeraszkiewicz (1): Add Docker support - Raphaël Pinson (1): Typo in DOCUMENTATION.md - Sharad Ganapathy (1): Adding timer resource and usage examples * Mon Mar 28 2016 James Shubin 0.0.3 - James Shubin (53): This now works. w00t Update docs to refer to #mgmtlove patches Make debugging easier when running on Jenkins Switch to CentOS-7.1 for OMV tests. Add test case to match headers Update web articles Add a link to my article about debugging golang Add more mgmtlove tags Add DevConf.cz video recording Add link to slides from Walter Heck Update link to video Update README with new video Rename type to resource (res) and service to svc Add great article by felix frank Change API from StateOK/Apply to CheckApply() Update README with small fixes Make sure to error on test Fix golang 1.6 vet issue Add some fixes for building in tip or with golang 1.6 Fix Makefile warnings on Travis Add package (pkg) resource Improve go vet testing The svc resource should use the private system bus of course Update items for Jenkins tests Rename GetRes() which is not descriptive, to Kind() Clean up the examples/ directory Fix file resource regression Update Makefile plumbing and associated misc things Bump go versions in travis Actually update to 1.6 in travis Add initial "autoedge" plumbing Make resource "kind" determination more obvious Exec variable should use pre-existing error variable Split out some of the pkg CheckApply logic Add pkg auto edge basics with packagekit improvements Add some of the pkg and svc autoedge logic Golint fixes Add a threshold based golint test case Switch bc for awk Update make deps script to make it better for debian folks Update README and docs with information about new blog post Refactor out noop resource into a separate file Split the Res interface into a Base sub piece Update context since etcd upstream moved to vendor/ dir Add golint test improvements so we detect branches more cleverly Avoid errors on golint test with travis Support "noarch" style packages in arch check Add initial plumbing for autogroups Graph cleanups to make way for the autogroup feature! Add resource auto grouping Force process events to be synchronous Add grouping algorithm Allow failures in 1.4.x because of etcd problem - Daniele Sluijters (1): docs: Add Features and autoedges section - Rob Wilson (1): build requires (at least) stringer - add package which contains missing dependency - Xavi S.B (1): Fix broken link to graph.yaml section * Fri Feb 12 2016 James Shubin 0.0.2 - James Shubin (92): Add better reporting of errors in yaml formatting test Add travis-ci integration Fix small typo Put all the deps in one script Small grep flag fix so command is idempotent Add omv support Add missing watch event for files Add more shields! Add tag script Update gofmt test to allow version 1.5 Add equals sign to pass in variables Don't format or check omv.yaml syntax Reorganize testing for developer efficiency Mega patch Add graphviz generation and visualization Ira deserves to be mentioned in the THANKS list Update README Support N distributed agents Fix up go vet errors and integrate with ci Add missing stringer dependency Add information on which libraries are being used Refactor etcd into object and add exit timers Fix go vet error Hello 2016! Merge type comparison into a single function call Add exec type and fix up a few other things Fix effective off-by-one error in dependency processing Clean up better The noop type is not useful in this example Clean up the distributed example for clarity Simplify converge checker Catch a different form of etcd disconnect Fix dependency issue Fixup state related items Add state caching for most types Add state caching and invalidation to service type Avoid panic's when referencing non-existing objects Exit if program was not compiled correctly Limit the number of initial start poke's required Add link to first blog post Remove useless noop types Many examples now exist Improve wording in README.md for clarification Add information on providing good logs Make sure to unpause all elements when resuming Bump golang versions in travis Fix failure of go 1.4.3 due to missing `go vet` Golint fixes Don't generate file watch events if disabled Update faq to add etcd vs. consul answer I guess we'll have to stick with the name for now Add golang stringer to deps Add shell based test harness Avoid any possible errors with git describe Fix string issues in the build Travis: don't sully the homepage with broken test branches Enable shell tests Work around old go versions not supporting equals sign Add CentOS jenkins ci hooks Add gopath Makefile target Add centos-ci script to mgmt for independence and for make gopath Fix typo Skip yamlfmt on jenkins too Be more specific in error messages for easier debugging Work around missing JENKINS_URL regression Add missing ^ character Pass jenkins url through to child machine I give up, let's see some debug output Try and pass through with export Add gobin to path in an attempt to make it easy to find go binaries Add a fan in example and test Add the ability to run individual shell tests manually Allow unbound variables like "$1" Add a fan in, fan out example and test Cleanup the README file Make it easier to use converged-timeout Add a simple test for reproducibility Only format check tracked files Add a simple bashfmt test Binary is not reproducible on travis! Why not? Add a TODO list to serve as a near term roadmap Update README Will this fix Jenkins? Actually fix the CentOS-CI builds (I hope) Add some special path variables and add centos-ci dependencies Path fixes to avoid overwriting each other Fix up path issues with vtest+ Pave the way for Debian Improve shell scripts Make an initial RPM package for COPR Add build dependencies for remote COPR builder Add COPR badge - Felix Frank (3): README: make code actually display as multi line README: specify minimum golang version README: also list stringer as a dependency * Fri Sep 25 2015 James Shubin 0.0.1 - James Shubin (1): Initial public commit of mgmt * Fri Sep 20 2019 James Shubin 0.0.999 - James Shubin (47): lang: Add more tests for class and include lang: Add more tests for function test: Split up long tests into multiple sub tests again lang, test: Inline some overly indented tests lang: Detect windows style CR and return a better error lang: Add tests for slow unification lang: funcs: Fix a copypasta error with the not equals operator util: Add a remove path suffix util function lang: Add the world implementation to our test suite util: Ensure the afero copy function is working as intended lang, gapi: Work around a copy bug in the deploy lang: Add a new function interface to accept data lang: Make sure to call Init for functions that arrive via import lang: Pass through the Fs and the FsURI lang: funcs: Add deploy package with readfile related functions util: Add new `mkdirall` variants for the copy functions etcd: fs: Errors should start with lower case util: Add some path helper functions lang: Improve the gapi copying util: Fix typo lang: Remove the specialized info structs docs: Add newly recorded talks and blog post lang: funcs: Module name should be public misc: Use apt install of apt-get where possible misc: Warn users with weird computers lang: Clarify error message about missing field test: Catch capitalized error messages in tests engine: resources: file: Add Copy method to file res engine: resources: file: Use constants for state values engine: resources: file: Add undefined file state and validate it engine: Refactor state dir into a separate function engine: resources: Ensure the Kind and Name methods work engine: Improve the way we make a unique res path token engine: resources: Change the default file state engine: resources: Add another validation check engine: resource: Refactor helper functions engine: resources: Clean up test log message docs: Add missing docs on the rewatch and realize meta params engine: resources: Add reversible API and file resource lang, test: Fix copy paste error with log message lang: Remove duplicate log message engine: resources: Improve the file res and add strict state XXX MKOSI WIP XXX MORE MKOSI WIP XXX WIP all done? AHA done? XXX ARCH - Donald Bakong (2): pgraph: Add a test for FindEdge() function docs: Fix typo on quick-start-guide.md * Wed Jul 17 2019 James Shubin 0.0.20 - James Shubin (41): lang: Add a new type unification test pgraph: Quote graphviz strings properly pgraph: Use pointers for unique vertex identifiers lang: types: Remove unnecessary prefix in generated kinds lang, lang: types: Add automatic stringer generation lang: Print the actual stream error on test failure lang: funcs: structs: Make error message more precise lang: Add var prefix to var expr to avoid ambiguity test: Fix typos, these aren't cats lang: types: Workaround stringer regression in golang 1.11 lib: Fix gofmt regression in golang 1.11.x misc: Update to golang 1.11.x etcd: Move to etcd v3.3.13 all: Switch the --lang syntax to use argv instead lang: funcs: Add a weekday function to the datetime package docs, readme: Improve new user experience lang: funcs: Add a mod function to the math package docs: Add build issue to FAQ docs: Update FAQ to mention go mod engine: graph: Add a mutex around waits map access examples: lang: Update autoedges example examples: lang: Add a unicode example lang: funcs: core: Make module names public lang: funcs: core: Allow nested system imports docs: Fix typo and grammar issue lang: Use the short flag to list subtests lang: funcs: Verify that simple polyfunc list is not empty lang: funcs: Use the correct arg names when running a pure func lang: Move type duplicates checker into a separate package lang: Add the NamedArgs interface lang: funcs: Add better logging to the function engine lang: Name the expr call graph differently lang: types: Improve ComplexCmp function lang: If the test fails earlier than expected, exit early lang: Add function types to the yacc type parser misc: Add graphviz deps for travis lang: Add function values and lambdas lang: Avoid running graphviz in tests by default travis: Try to work around CI slowdowns test: Split up long tests into multiple sub tests lib: Update dep for uuid - Adam Sigal (1): pgraph: Add a test for FindEdge() and HasVertex() functions - Christian Rebischke (1): lang: funcs: Add ArchLinux family detection - Felix Frank (1): engine: resources: mount: Fix the dbus call for reloading systemd - Jan Martens (1): engine: resources: nspawn: Trim possible systemd version suffix - Johan Bloemberg (1): lang: funcs: Add uptime implementation for macOS - John Hooks (1): lib: Support for systemd STATE_DIRECTORY or XDG cache dir - Ward Vandewege (1): docs: Fix link to puppet guide * Tue Apr 23 2019 James Shubin 0.0.19 - James Shubin (60): examples: lang: Add is_debian and is_redhat family example lang: funcs: Allow the len function to determine str length lang: funcs: Avoid erroneous empty message in readfile lang: Print a clear message on module import containing unused stmt engine: resources: Improve exec resource test: shell: Fix rare breakage in load test engine: resources: Improve test case readability test: Improve govet log newline check lang: funcs: Add runner pure func execution lang: funcs: Add live function stream test infrastructure lang: funcs: Add a new test for readfile and fix a small bug engine: resources: Fix missing file when specified without content resources: file: Make some small cleanups to file res engine: resources: Remove possible panic from within file res engine: resources: Improve file Cmp function engine: traits: Make encoded fields public engine: resources: Replace the cached values with a live calculation engine: resources: Add missing struct tags engine: util: Improve StructTagToFieldName and add tests engine: util: Add a new utility function for send/recv examples: lang: Add a basic file example lang: Small fixes about send/recv lang: Improve the test case infra so it can detect different errors engine, lang: Improve send/recv significantly lang: Improve test case with more specific errors lang: funcs: Don't allow interpolation in printf format string engine: resources: Clean up KV resource examples: lang: Refresh examples util: Add errwrap package test: Improve test depth test: Improve test depth engine, pgp: Fixup incorrect error usage util: Port all code to new errwrap package util: Port all multierr code to new errwrap package test: Port yaml test to mcl engine: util, resources: virt: Clean up virt resource docs: Add two faq entries docs: Move faq entry to more appropriate resource docs legal: Happy 2019 everyone... lib: Add static hello message docs: Add FAQ entry about root requirements engine: resources: Remove named return params github: Add funding information util: Add context wait signal to easy exit util: Add subscribed signal primitive util: Add safe easy ack that allows multiple ack's util: Add context utility functions docs: Add faq entry about locked binary test: Skip net test in travis etcd: Rewrite embed etcd implementation lib: Clean up logging util: Make test more resistant to races etcd: Make error more specific test: shell: Increase etcd timeouts for slow travis lib, gapi: Display deploy ID to add some clarity lang: funcs: Add regexp package and match function lang: Fix import scoping issue with classes test: shell: Increase etcd timeouts for slow travis again lang: Quote printed strings lang: unification: Improve type unification algorithm - Nicolas Charles (2): lang: funcs: Added a function to detect Debian and RedHat like systems engine: resources: print: Add RefreshOnly option - Adam Sigal (1): faq: Amended faq mailing list information - Felix Frank (1): docs: Slightly clarify parameter defaults - Jonathan Gold (1): engine: resources: mount: Restart remote-fs target - Michael Schubert (1): docs: Fix link - Mitch Fossen (1): lang, funcs: Remove deprecated syscall import - Wouter Dullaert (1): cli: Removed obsolete no-watch-config flag * Tue Feb 26 2019 James Shubin 0.0.18 - James Shubin (50): lang: unification: Add missing return to exit early lang: unification: Add logging to make capturing errors easier lang: unification: Allow err string comparisons in tests lang: Check that set type matches actual expression lang: If expression was missing two invariants lang: unification: Catch unification error on typed if expr lang: unification: Catch unification error on typed var expr lang: unification: Fix up small typos in example code test: Fix a small copy pasta typo lang: test: Add a new giant test infra for matching static output lang: Edges should allow lists of strings engine: resources: pkg: Clarify that correct state is newest examples: lang: Update examples to fix imports and port from yaml engine: resources: Fix a possible panic on closed channel engine: resources: Fix a small typo in error message lang: funcs: Rename template functions to remove periods lang: funcs: Add a new readfile function lang: funcs: Add str2int example function lang: funcs: Add a trim space function to the new strings module engine: resources: virt: Clean up virt resource for lang examples: Improve dynamic cpus virt example integration: Avoid duplicate events from recwatch engine: nspawn: Add an nspawn example with an improved exec examples: Add missing mcl files examples: Add more examples and clean up some examples: Add uncommited nspawn example lang: funcs: core: Drop unnecessary core prefix from imports lang: funcs: core: Rename core module files lang: funcs: core: Move world API functions lang: Remove unnecessary log package engine: resources: Add a test running for testing individual resources engine: resources: file: Update the format string test: Split travis tests into three blocks test: Add expanders when running in travis lang: funcs: funcgen: Clean up some small details util: Add an easy ACK sync primitive converger: Rewrite the converger module engine: Rewrite the core algorithm engine: Add the retry loop around Watch engine: Add limit delay before Process can run engine: Add the retry loop around Process test: Enable and fix up some more tests util: Improve the sync primitives. make: Clean up the Makefiles so the output is more elegant test: Shell tests should use unified timeout command misc: Add two test helpers resources: exec: Avoid possible deadlock race engine: resources: Add CheckApply event detection to resource tests examples: Remove old hcl examples test: shell: Improve load test - Kevin Kuehler (5): util: Move socketset from net resource to util util: Libify socketset lang: funcs: Add cpucount fact util: Add TestShutdown to socketset engine: lang: util: Kill race in socketset - Lander Van den Bulcke (4): make: Use gem --no-document instead of deprecated flags lang: funcs: Add sqrt function lang: funcs: Add tests for sqrt function lang: funcs: Add strings.split function - Johan Bloemberg (3): misc: Add goimports dep misc: Make build on macOS work etcd: Connection options (socket file, ipv6) - Julien Pivotto (3): docker: Update FROM to go:1.11 lang: Add to_lower and to_upper functions lang: Add more string functions, autogenerated - Felix Frank (1): langpuppet: Fix Cli method invocations for wrapped GAPIs - Jeff Waugh (1): build: Fix macOS build - Toshaan Bharvani (1): lang: funcs: Added an uptime function * Thu Jan 17 2019 James Shubin 0.0.17 - James Shubin (73): test: Add doc note about skipping docker tests travis: Work around broken travis NO_PUBKEY error travis: Bump to golang 1.10 engine: resources: file: Require paths to be absolute engine: resources: svc: Add symmetric closing engine: resources: Work around a subtle embedded res bug util: Add an fs helper and a test helper util: Improve the test helper function and add a better one util: Add a test for CopyFs test: Increase the vet testing for irregular strings util: Fix small linting error test: Fix up token vet test lang: Add logging and debug info via a new Init method lang: Add an Apply iterator to the Stmt and Expr API util: Add a UInt64Slice and associated sorting functionality. lang: Allow dotted identifiers lang: Detect sub tests with the same name lang: Support lexing and parsing a list of files with offsets lang: Add import spec parsing and tests lang: Add resource specific tokens in lexer and parser lang: Allow matching underscores in some of the identifier's lang: Add lexing/parsing of import statements lang: Tidy up grouping of lexer tokens in the parser lang: Refactor most functions to support modules bindata: Add infrastructure for building core mcl files gapi: Add a prefix variable in case we want to namespace on disk git: Ignore some WIP files that won't get tracked in git lang: Add a URL result to the import name parser lang: Add beginning of user defined functions test: Clean up and improve golang tests lang: Add some lambda function parsing and tests lang: Improve empty scope and output lang: Add a top-level stmt safety method util: Add some useful path parsing functions gapi: Add a bytes helper lang: Add module imports and more lang, util: Tests that depend on the fs should be sorted lang: test: Add a test of duplicate resource generation engine: resources: cron: Fix typo in error message engine: resources: pkg: Remove old Compare method engine: resources: pkg: Replace state strings with constants engine: resources: pkg: Simplify state check lang: Improve sub testing lang: Validate the edge field names in our resources engine: Add setters for the trait interfaces engine: Add a resource copy interface and implementation engine: Add an interface for compatible resources lang: Handle merging of compatible resources properly engine: resources: pkg: Implement the CompatibleRes interface travis: Workaround another broken apt repo travis: Print debug info to catch travis regressions test: Fix golang cache regression lang: Move capitalized res identifier into parser lang: Add meta parameter parsing to resources travis: Clean up my grammar docs: Add sub categories to the language guide lang: Refactor resource creation into a helper method lang: Refactor edges helper method lang: Add a placeholder "ExprAny" expression for unification hacks lang: Allow a list of strings in the resource name lang: Refactor the res metaparams helper lang: Add autoedge and autogroup meta params to mcl engine: Fix typos engine: graph: Prevent converged timeout of dirty res test: Add a semaphore shell test test: Enable t8 to test for two host etcd clusters test: Rename t8 to be more descriptive test: Add a three host variant of the empty etcd test test: Don't be unnecessarily noisy in this test engine: event: Switch events system to use simpler structs engine: Work around bad timestamp panic engine: graph: Avoid a possible panic sending on a closed channel etcd: Workaround a nil ptr bug - Jonathan Gold (24): etcd: Fix deploy transaction error message lang: Fix error message format strings engine: resources: net: test: Add some go tests puppet: Fix error message when puppet conf copy fails engine: resources: net: Allow addr without gateway engine: resources: net: test: Add shell test for net resource travis: Build on Xenial engine: resources: packagekit: Fix dbus addmatch rule engine: resources: file: Fix bug preventing use of source field engine: resources: file: Add shell test for source field etcd: Use source filepath base in CopyFs destination path etcd: Use mgmt backend for fs tests engine: resources: group: Make group edgeable engine: resources: svc: Use dbus session bus for user session svc engine: resources: cron: Add a systemd-timer resource engine: util: Add EdgeCombiner() for combining auto edges engine: resources: cron: Add support for user session timers engine: resources: cron: Add lang examples engine: resources: cron: Add auto edges from SvcRes util: Add PathSlice type that satisfies sort.Interface etcd: Add TestEtcdCopyFs0 etcd: Add more test cases to TestEtcdCopyFs0 make: deps: Only install gometalinter on CI/CD servers test: Ensure gometalinter is available - Felix Frank (5): make: Remove spurious dependency package 'rubygems' for Debian-like systems make: Speed up the build by skipping gem docs gapi: langpuppet: Add initial implementation docs: Explain the langpuppet interface and function gitignore: Ignore vim swap files - Tom Payne (3): etcd: Add Chown (returns ErrNotImplemented) etcd: Add Lchown (returns ErrNotImplemented) etcd: Ensure that fs.Fs implements afero.Fs - Kevin Kuehler (2): util: Patch CopyFs and add tests lang: Add debug flag and Logf to fact init struct - Michael Lesko-Krleza (1): test: Increase test coverage for graphsync - Vincent Membré (1): engine: resources: exec: Use WatchShell in Exec resource when needed instead of Shell * Fri Nov 30 2018 James Shubin 0.0.16 - James Shubin (43): lang: Misc fixes for typos and grammar pgraph: Don't panic on new or nil graphs resources: svc: Add deactivating state lib: Remove remote execution from core recwatch: Remove the ConfigWatch functionality test, integration: Add an integration test framework test, integration: Add cluster primitives to integration framework integration: Log the instance output lang: funcs: Don't race when building an initial graph lang: Add mutex around Expr String/Value/SetValue calls readme: Add patreon link to README file lib: Remove hcl GAPI frontend lib, yamlgraph: Remove old yamlgraph GAPI frontend etcd: Pull in default URLs from upstream lang: Don't race with a ^C to the obj.lang calls engine: Resources package rewrite puppet: Clean up the GAPI and remove log package engine: Small fixes test: Improve commit message test docs, test: Remove old reference to resources package test: Catch naked returns and check for canonically named imports engine: test: Pass in the go test verbose flag test: Improve golang tests with root and disabling cache travis: Enable apt updates on builds engine: resources: print: Add missing Recvable trait lang: Error parser if SetType fails to avoid a panic lang: Add edges to StmtProg output lang: funcs: Registered functions map should be private lang: Simplify graph function for edge half in parser lang: Add indentation test to parser lang: Don't add identical resources to graph lang: Simplify struct interpolation pgraph: Handle empty graphs when merging two lang: Simplify bind stmt collection in the prog stmt lang: Add class and include statements lang: Add partial recursive support/detection to class lang: Update map type definition to include a prefix test: Add a test to ensure the parser doesn't have any conflicts readme: Add Liberapay link to README test: Improve commit message tests vendor: Add vendored docker modules with out of tree fix engine: resources: Add nodocker build tag make: Improve release pipeline - Jonathan Gold (11): util: Rename SortedStrSliceCompare and move to util package engine: resources: nspawn: Remove godbus channel buffer util: Move dbus AddMatch const to util package engine: resources: mount: Add a mount resource engine: DBus cleanup build: Fix ldflags pattern for 1.10 docs: Add netlink post to on-the-web.md docs: Update url for AWS EC2 blog post build: Add rubygems to make deps target engine: resources: docker: Add a docker container resource make: Release pipeline - phaer (3): vagrant: Bump to fedora 28 vagrant: Add gem package vagrant: Fix example path in motd - Alan Jenkins (1): engine: resources: packagekit: Add Arch mapping 'any' for Arch Linux compatibility - Lauri Ojansivu (1): resources: svc: Add activating state - jesus m. rodriguez (1): build: Add help to main Makefile - jonathangold (1): resources: net: Add net resource * Tue Feb 27 2018 James Shubin 0.0.15 - James Shubin (45): lang: Initial implementation of the mgmt language test: Add new test for language prefix etcd: Update broken link travis: Disable fast finish for now test: Increase timeouts for when travis is slow docs: Add FAQ entry about vendoring dependencies readme: Fix broken link test: Fix broken gometalinter test docs: Add newly recorded talks and blog posts about mgmt resources: nspawn: Don't panic if one svc is nil build: Improve speed of make etcd: Fix golint issue in test build: Add -i flag to go build test: Improve gometalinter test so that it skips generated files authors: Clarify wording in AUTHORS file etcd: Bump to etcd v3.3 and golang 1.9 docs: Add faq entry about production readiness travis: Add golang 1.10.x to builds docs: Add an entry to the faq about converged timeouts test: Show test output as it happens etcd: Increase the default max txn op count etcd: scheduler: Remove etcd 3.2 specific hacks lang: funcs: Rename things for consistency travis: Avoid notification noise from forks lang: types, funcs: Add simple function API test, docs: Add a linter for testing markdown, and fix up our docs lang: funcs: Fix up some old comments golint: Fix ineffassign mistakes misc: Add dependency on time package misc: Update golint to new location test, docs: Restrict long lines in markdown linter docs: Add two faq entries about the type system build: Relocate time command to the front for readability lang: funcs: simple: Don't block on simple, pure, static functions travis: Attempt to workaround the constant travis failures docs: Add two new faq entries all: Misc fixes and test fixes lang: types, funcs: Add simple polymorphic function API lang: Add edges to lexer and parser lang: funcs: Add math pow function and a few examples lang: unification: Fix panic in struct/func cmp of partials travis: Attempt to cut down on flaky failures travis: Fix the OSX builds lang: Add a resource-specific elvis operator lang: Add internal, resource specific edges - Johan Bloemberg (19): build, docs: Improve macOS building lang: Use universal way to retrieve load resources: Do not return GID for UID lookup misc: Fix graphviz output for hostnames with dot in them debian: Add graphviz and packagekit runtime dependencies build: Unify build/crossbuild test: Streamline test suite a little test: Export the mgmt command to be used during test test: Fix augeas test for macOS, improve test debuggability test: Exclude generated files from golint cli: Log errors return by Run functions etcd: Warn about invalid configuration, clarify --no-server lib: Provide detailed feedback about invalid URLs travis: Improve travis speed by only building 1 go version for osx travis: Retry flaky apt update at build start recwatch: Fix watching newly created files on macOS docs, misc: Add tool references, .editorconfig for mcl lang: Add `getenv` function project: Add me - Carsten Thiel (2): docs: Improve file resource documentation test: Refactor unification_test to subtests - Joe Julian (2): misc: Use bash's `command` instead of `which` misc: Don't install packages that are already installed - Toshaan Bharvani (2): build: Add cross building option lang: Interface sorting order - Wim (2): docs: Add GOPATH/bin to PATH build: Add gcc,pkg-config deps - Jonathan Gold (1): project: Add Jonathan Gold to AUTHORS - Oliver Frommel (1): misc: Small fixes for makedeps script - Peter Oliver (1): emacs: Bundle an Emacs major mode, mgmtconfig-mode - dsx (1): debian: Add packaging - jonathangold (1): misc: Replace missing go-bindata dependency - karimb (1): docs: Add docs for docker usage * Thu Jan 11 2018 James Shubin 0.0.14 - Jonathan Gold (29): etcd: Add advertise urls to cli etcd: Plumbed in the new cli flags for advertise urls resources: Add UserData field to AwsEc2 resources: aws: ec2: Move Watch to longpollWatch resources: aws: ec2: Remove extra wait from Watch resources: aws: ec2: Reorganized consts resources: aws: ec2: Move chanStruct type out of longpollWatch resources: aws: ec2: Move watch channels into struct resource: aws: ec2: Move waitgroup to resource struct resource: aws: ec2: Add http server resources: aws: ec2: Add method to make sns topic resources: aws: ec2: Start and stop SNS endpoint in snsWatch resources: aws: ec2: Change event messages to iota consts travis: Allow travis builds to access target branches resources: virt: Update libvirt-xml target cli: Add license flag resources: aws: ec2: Use custom listener for snsServer resources: aws: ec2: Subscribe SNS endpoint to topic resources: aws: ec2: Add CloudWatch rule and target SNS resources: aws: ec2: Authorize CloudWatch to publish to sns resources: aws: ec2: Update postHandler to process messages resources: aws: ec2: Close closeChan before server shutdown resources: aws: ec2: Check that policy.Statement != nil resources: aws: ec2: Verify SNS message signatures resources: aws: ec2: CheckApply fix pending and stopping cases resources: aws: ec2: Retry on exceeded wait attempts error resources: aws: ec2: Wait for stop and terminate concurrently resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Refactor CheckApply - James Shubin (15): examples: Add longpoll server and client github: Use third-party settings app to sync github settings github: Add new label for design discussions and trackers github: This event is over yamlgraph: Improve error output resources: aws: ec2: Fix deadlock on rare error scenarios test: Add extra commit message tests for some common mistakes test: Add check for common doc vs docs ambiguity resources: Replace golang 1.6 specific code with newer 1.7 version test: Add another check for off-by-one-error commit tags docs: Refresh documentation to provide a better new user experience docs: Add missing blog post about augeas resource legal: Happy 2018 everyone... misc: Don't display script name in output test: Don't fail on tag builds - Julien Pivotto (7): doc: Fix link to the prometheus wiki prometheus: Initialize mgmt_checkapply_total metrics build: Build mgmt on any go file change exec: Add autoEdges between ExecRes and PkgRes prometheus: Initialize all metrics build: Remove go 1.3 and 1.4 support example: Remove content out of directory definition - Guillaume Herail (4): docker: Bump to golang 1.8 resources: Move FileRes.uid()/.gid() to util.go resources: Add User/Group to ExecRes test: Switch to goimports instead of gofmt - jonathangold (3): resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Send IP addresses and InstanceID resources: aws: ec2: Fix closed channel handling - Paul Morgan (2): git: Ensure the tagging script is idempotent git: Configure editorconfig to indent with tabs in bash scripts - Felix Frank (1): puppet: Avoid empty parameters to puppet mgmtgraph - Toshaan Bharvani (1): build: Added build option to strip binary * Mon Oct 23 2017 James Shubin 0.0.13 - James Shubin (30): misc: Update my tag script to deal with large releases resources: Unify resource creation and kind setting resources: Panic if attempting to register a duplicate resource pgraph: Improve testing and refactor out some test utilities resources: Do not panic on autogrouped graph switches resources: Add resource sorting and clean tests resources: Compare grouped resources properly test: Don't be noisy when running cd during testing remote: Add a Ready method to know when startup is finished resources: Fix golint issues hcl: Consistent formatting resources: Add a utility to map from struct fields resources: Add NewNamedResource helper readme: Add new recording travis: Update to golang 1.8 as the default resources: Include default MetaParams so Validate will pass in tests etcd: Bump to version 3.2.6 and update all the grpc deps test: Increase timeouts because travis is slow test: Fix another intermittent failure yaml2: Meta should keep defaults, and Res should have kind github: Add a PR template to help new users github: Improve the PR template test: Increase timeouts for slow travis resources: Fix formatting legal: Re-license to GPLv3 git: Ignore .envrc file from direnv vendor: Add codec package because of breakage etcd: Bump to newer versions test: Use stable version of gometalinter test: Fix linter issues - Jonathan Gold (7): virt: Allow more than 26 disks resources: Add user resource resources: Add an Aws resource resources: Improve nspawn resource resources: Fix user gid compare resources: Add a group resource resources: Enhancements to user and group - ChrisMcKenzie (3): hcl: Added basic hcl frontend hcl: Removed edge object in favor of depends_on field in resource hcl: Added hil string interpolation to hcl frontend - Dennis Kliban (2): vagrant: Increase amount of RAM allocated to boxes backed by libvirt resources: Add validation for Msg Priority field - Juan Luis de Sousa-Valadas Castaño (2): vagrant: Fix PATH resources: Refresh packagekit cache before install - AdnanLFC (1): pgraph: test: Added tests for DeleteEdge - Arthur Mello (1): virt: Added support for ~user into expandHome - Ismael Puerto (1): vagrant: Change box to F26 - Juan-Luis de Sousa-Valadas Castaño (1): docs: Change go required version to 1.8 * Sat Jun 03 2017 James Shubin 0.0.12 - James Shubin (49): main: Update log messages for consistency misc: Replace sloppy use of %v with %s resources: svc: Add basic support for user services misc: Fixup documentation lib: examples: Update to most recent API gapi: Move separate etcd Watch method into GAPI lib, gapi: Next method of GAPI should generate first event resources: Make resource kind and baseuid fields public readme: Add new links etcd, resources, world: Add World API for shared keys pgraph: Use the correct vertex handle to prevent a race pgraph: Clean up pgraph module to get ready for clean lib status pgraph: Remove use of Flags struct in favour of Value API pgraph: Untangle the semaphore code from the pgraph implementation pgraph: Replace CompareMatch with VertexMatchFn pgraph: Update graph API to remove Get prefix and add Adjacency pgraph: Move GraphMetas function out of package pgraph: Move AssociateData function out of the package test: Run go vet with -source flag in newer releases test: Run go vet across whole packages not individual files pgraph: Move the AutoEdges mechanism into the resource package pgraph: Move get/set state methods out to resource package pgraph: Move the timestamp storage into the resource resources: Map to semaphores doesn't need to be a pointer pgraph, resources: Major refactor to remove pgraph to resource dep pgraph, resources: Major refactoring continued pgraph: Replace edge struct with interface resources: nspawn: Fix small style issues pgraph: Add a GraphCmp method pgraph: Add logic functions for adding subgraphs pgraph: Add sort function to sort a list of vertices resources: Simplify the resource Compare functions resources: Add proper edge compare method resources: graph: Add partial implementation of a graph resource pgraph: Remove NewVertex and NewEdge methods and fix examples resources: Clean up converger and make it easier for tests resources: exec: Add send/recv for exec output, stdout and stderr resources: Rename the Data struct to ResData to avoid ambiguity test: Make sure our examples build gapi: Allow the GAPI implementer to specify fast and exit resources: Reorganize package and split into multiple files resources: Replace stored pgraph with mgraph and clean up hacks resources: Improve AutoEdge API and pkg breakage resources: autoedges: Process in a deterministic order resources: pkg: Add a simple test based on internal logic etcd: Small cleanup of the package etcd: Wait for server to start before continuing test: Remove debugging echo from go vet test test: Add gometalinter to our test suite - Julien Pivotto (2): vagrant: Install make in the Vagrant box vagrant: Setup Packagekit in the box - Mildred Ki'Lya (1): yamlgraph: Refactor parsing for dynamic resource registration * Thu Mar 16 2017 James Shubin 0.0.11 - James Shubin (15): git: Add more features to tag.sh script pgraph: semaphore: Add lock around semaphore map resources: exec: Remove the pollint parameter resources: exec: Don't invalidate state on poke resources: exec: Remove state checks that are done in the engine resources: exec: Clean up command error processing resources: exec: Ignore signals sent to main process resources: exit: Misc cleanups pgraph: Move the quiesce done indicator to avoid deadlock pgraph: Move the BackPoke to before the semaphores pgraph: semaphore: Refactor semaphore size function and test pgraph, resources: Run the resource Setup in parallel pgraph: Add fast pausing and exiting of graphs examples: Add missing file example todo: Update the TODO file to be more current - Julien Pivotto (1): prometheus: Add detailed metrics * Sat Mar 11 2017 James Shubin 0.0.10 - James Shubin (24): compiling: Add -i flag to go build to speed up builds test: Small fixups to t4 and a rename semaphore: Create a semaphore metaparam remote: Replace builtin semaphore type with common util lib semaphore, pgraph: Add semaphore grouping and tests pgraph: Clean up tests spelling: Fix typos as found by goreportcard readme: Add new blog post about metaparameters travis: Ensure recent golang versions in test test: Avoid matching three X's gapi, etcd: Define and implement a string sharing API for the World etcd: Switch to buffered channel to remove duplicates lib: Refactor instantiation of world API lib, pgraph, resources: Refactor data association API gapi: Move the World interface into resources resources: Split util functions into separate file resources: kv: Add new KV resource which sets key value pairs pgraph: graphviz: Update Graphviz lib to quote names properly resources: svc: Add failed state resources, yamlgraph: Drop the kind capitalization pgraph, resources: Quiesce when pausing or exiting the resource pgraph, resources: Discard BackPokes during pause and resume test: Disable prometheus-3.sh test temporarily git: Improve tagging script - Julien Pivotto (3): compilation: Make build the default target prometheus: Move the prometheus nil check inside the prometheus function prometheus: Add mgmt_pgraph_start_time_seconds metric - Michael Borden (2): misc: Add pacman support travis: Add go_import_path * Sat Feb 25 2017 James Shubin 0.0.9 - James Shubin (81): todo: Make TODO file more current resources: Rename Converger to ConvergerUID resources: virt: Add missing converger call converger: Wait till the timer exits resources: Add poll metaparameter resources: timer: Polish the timer resource resources: Add a `Default` method to the resource API docs: Add missing headings to table of contents resources: Officially add Validate method docs: Split out a separate quick start guide docs: Rename puppet guide and small cleanups docs: Improve README docs: Add an introductory paragraph to the quick start guide docs: Add new blog post link docs: Add missing newline docs: Small fixes to the README resources: Overhaul legacy code around the resource API resources: Improve composition of Validate API in resources resources: rate limiting: Implement resource rate limiting resources: Force a sane default for zero value limiting pgraph: Remove unnecessary indentation in Process code path resources: Update state checks pgraph: Parallelize the BackPoke facility pgraph: Add debug messages converger: Block converging in the engine converger: Remove converger boilerplate from the resources virt: Allow the use of ~ to expand to home directory resources: Rename GetUIDs to UIDs pgraph: Set the false starter value too examples: Update example to be Validate safe etcd: Update example to ignore pgp examples: Have libmgmt work around the lack of rate defaults travis: Limit notifications now that travis cron is enabled examples: etcd: Simplify the etcd examples resources: Don't double close on Running restart recwatch: Do not send to channel if closed. lib: Make initial one-shot start pattern more elegant gapi: Unblock from a waiting send on GAPI close resources: Parse YAML infinity specifications correctly examples: Update the examples pgraph, yamlgraph: Allow specifying notify value from YAML test: Small nitpicks with messages resources: augeas: Turn augeas namespace into a constant etcd: Remove stuttering in package test: prometheus: Fix up test docs: Update the quick start guide with git clone and vagrant github: Show a friendly message in issues template resources: file: Use the computed path in our resource docs: Add missing newline and remove extra one legal: Oh yeah, it is 2017 resources: file: Small fixups and force additions resources: Remove "NewRes" constructors resources: file: Don't modify resource in Init resources: Specify defaults for the MetaParams build: Require golang 1.6 or greater test: Fix tests by hooking up go test properly test: Improve go vet so that it is less noisy test: Fix false negative on go vet test: Fix yamlfmt test test: Make test status more clear resources: virt: Allow hotplugging pgraph, resources: Improve Init/Close and Worker status resources, pgraph: Refactor Worker and simplify API resources: The user should not call Init pgraph, resources: Add proper start/stop signals recwatch: Close cleanly after Watcher finishes recwatch: Unblock from sending on exit lib: Misc cleanups and new log message test: Don't block on graph transitions pgraph, resources: Clean up the event system around the resources recwatch: Close the ConfigWatch properly yamlgraph: Close the recwatcher properly after use resources: virt: Cleanup cleanly on Close travis: Start building golang 1.8 as well golint: Fixup issues found in the report test: Fix up probable timeout failures due to slow ci pgraph, resources: Wait for innerWorker to exit cleanly pgraph: Wait for Process routine to exit resources: virt: Don't block exit in callbacks resources: virt: Catch bad calls to CheckApply resources: virt: Remove unnecessary early exit from CheckApply - Julien Pivotto (21): prometheus: Implement basic Prometheus support Prometheus: fix URL to the "Default port allocations" prometheus: Add a new test, with --prometheus-listen travis: add a test regarding commit messages test: file: test the behaviour of inotify on parent dir moves travis: more strict commit messages tests test: commit: Improve commit message testing recwatch: Remove watcher on file move compilation: virt: Make libvirt support optional resources: augeas: New resource prometheus: Implement mgmt_checkapply_total metric resources: augeas: Make augeas support optional documentation: prometheus: Improvements resources: file: Do not error on os.Stat in noop mode prometheus: Add mgmt_process_start_time_seconds metric prometheus: Remove mgmt_process_start_time_seconds metric documentation: Embed command-line syntax in a code block resources: augeas: comments: Improvements documentation: Implement sphinx documentation travis: Run apt update before installing dependencies project: Add $me to AUTHORS - Felix Frank (3): tests: simplify shell code, skip YAML test if Ruby is too old vagrant: Add Vagrantfile and some basic configuration project: Reluctantly add myself as an author - Mildred Ki'Lya (3): resources: file: Implement file attributes misc: Split OPTS variable of systemd unit resources: file: Allow creation of empty directories - Daniel P. Berrange (1): resources: virt: convert to use github.com/libvirt/libvirt-go - Daniele Sluijters (1): TODO: Point to current file improvement issue - Kaushal M (1): build: Use GOTAGS for static builds as well - Lars Kulseng (1): readme: Changed wording of quick start section - Sean Jones (1): test: Enable macOS shell testing - Steve Milner (1): spec: Fix rpmlint warnings - Tom Ritserveldt (1): point to the correct puppet-guide path in docs. - goberghen (1): docs: Fix headers formating * Wed Dec 21 2016 James Shubin 0.0.8 - James Shubin (15): docs: Create a dedicated documentation folder resources: Simplify resource Converger and Startup code resources: Don't dirty resource when poked with activity resources: Remove SetWatching/IsWatching code from Watch resources: msg: Remove legacy comment docs: Add resource guide resources: file: Fix small typo in the compare function gapi: Rename SwitchStream to Next pgraph: Build the sync group into the graph structure pgraph, resources: Integrate properly with the startup logic pgraph: Simplify graph exit waiting pgraph: Mutex must be a pointer pgraph: Remember to unpause the vertices! test: Allow devel versions to run gofmt golint: Fix some golint issues * Thu Dec 08 2016 James Shubin 0.0.7 - James Shubin (26): pgraph: Fix ineffassign warning resources: Clean up errors and string printing resources: file: Allow undefined file contents etcd: Watch for obvious failures on first startup resources: nspawn: Tweaks and updates resources: nspawn: Use new API resources: Add stable go-systemd branch for now resources: nspawn: Update grammer for Joe readme: Add video link from High Load Strategy readme: Add video from NLUUG misc: Exclude vendor/ directory from ack matching resources: Add VarDir support misc: Cleanup unnecessary use of %v and small nitpicks resources: Implement Send -> Recv resources, pgraph: split logical chunks into separate files resources: Improve the state/cache system resources: Improve notification system and notify refreshes resources: Reduce logging on Send/Recv resources: Fix poke/refresh race misc: Improve gofmt test case resources: Polish the password PoC and build out send/recv resources: Actually verify which send/recv elements changed resources: Re-order send/recv display messages. gapi: Add world interface and refactor existing code to use it readme: Add new blog post about send/recv misc: Rename mgmtmain to lib and remove global package - Joe Julian (5): virt: Do not restrict VIR_ERR_NO_DOMAIN to qemu. Add IntelliJ Idea to .gitignore virt: Add logic to parse the libvirt uri nspawn: Add systemd-machined support for nspawn containers nspawn: bump go-systemd commit - Vinzenz Feenstra (5): virt: Avoid parsing URI all the time virt: Authentication support resources: Add new hostname resource examples: rename hostname.yml to hostname.yaml misc: Prefer dnf over yum when present - Nicolas Nadeau (1): pgp: Base pgp code * Thu Nov 03 2016 James Shubin 0.0.6 - James Shubin (27): golint: Outdent else statement godoc: Document resources package godoc: Document packagekit package readme: Update repository with information about remote execution etcd: Verify struct is not nil before accessing retries value test: update lint checker to support packages etcd: Fix type issue make: Sed needs g option to replace multiple PROGRAM names resources: List resources in alphabetical order resources: Interfaces parameters can be named to help documentation resources: Check that resource kind is set. all: Rename UUID to UID. resources: virt: Add a virt resource based on libvirt misc: Add libvirt header file dependency test: Fix travis so it pulls in our deps resources: virt: Update to new function signature resources: Use Events() method instead of raw channel spec: Improve the rpm package resources: Set the defaults for metaparameters resources: Update constructor signature to return error as well resources: virt: Update CPUs variable to new uint16 signature main: Split apart logic in main readme: Update README file to make it clearer for new hackers main: Libify mgmt with a golang API cli: Pass through program and version strings gapi: Split out graph generation into a proper graph API examples: make the libmgmt example more fun - Joe Julian (2): Use the download-only flag when fetching dependencies virt: don't set emulator path - Alexandre-Xavier Labonté-Lamoureux (1): test: Tokens should always have a colon - Juergen Hoetzel (1): readme: Fix go get command - Marc Antoine Dumont (1): Add the link to a new dependencies in README.md * Mon Oct 03 2016 James Shubin 0.0.5 - James Shubin (28): file: Overhaul file resource and add recursion todo: Update TODO file etcd: Update examples to be more useful for single machine tests test: temporarily disable test art: Add a logo readme: We now have an arch aur build. readme: Add information for new users travis: bump to newer golang version (fedora 23) Resources: Prototype retry and retry delay meta parameters Resources: Add retry and retry delay meta parameters resources: Compare Delay and Retry metaparams on graph change golang: Split things into packages Makefile: Limit depth for yamlfmt TODO: add TODO item about DHT idea Resources: Update interface to support errors vendor: Update etcd to working version and fix grpc stuff golang: Update to version 1.6 as the minimum readme: Add link to godoc resources: svc: Catch reload states too golint: Fix issues caught by the linter golint: Fix nested else statement file: Fix regression in fsnotify code resources: msg: Turn on journal logging in the example resources: fix deadlock on recursion recwatch: Split recursive watching into sub-package test: Catch go vet issues in subpackages recwatch: Rearrange condition to unconfuse golinter resources: Use named fields to avoid bothering go vet - Felix Frank (3): add puppet support documentation have 'make clean' get rid of generated code files again resources: msg: Introduce new resource type to log arbitrary messages - Michaël Faille (3): cli : Prefer github.com/urfave/cli as cli Let `env` find bash in shebang. travis : use go1.7 to be future proof. - Antoine Racine (1): Add pcap.h dependency on Debian/Ubuntu to fix make deps error * Wed Sep 07 2016 James Shubin 0.0.4 - James Shubin (86): Rework the converged detection and provide a clean interface Add additional autogrouping example Update TODO file Update docs and README to mention new blog post Allow stubborn users to avoid having to move their project Small nitpick fixups Add flatten helper to take apart messy nested lists Fix go generate issue with path Update Makefile to be more useful for hackers Update TODO file Fix typo Add a base method for GroupCmp Pkg: cache state when it is correct Pkg: Immediately unconverge on events Fix cli API change Add logging workaround when embedding etcd Expand the event system slightly Add global --noop support Remove pesky spaces Add quote from notable automation specialist and author Update links Embedded etcd Copy in out of tree patches docs: add faq entry about using external etcd cluster Split formatting into two targets Add vendored etcd Add go report card! Update cli library path Fix stupid gofmt issue Update links Allow 1.6 to fail for now New blog post! Include video Bump to etcd v3.0.0 Revert "Allow 1.6 to fail for now" Remove manual etcd usage. No longer needed. Get travis results faster! Add exec3 example Revert "Revert "Allow 1.6 to fail for now"" Revert "Copy in out of tree patches" Port embedded etcd to embed API Add test case for urfave regression Do some gofmt simplifications Round of golint fixes to improve documentation. Be safe when closing in destroy in case client is nil Avoid a rare panic if DestroyServer is called early Don't block on member exits Improve README for first time users Docs: Add FAQ entry about similarly named band Update docs to add automatic clustering Update docs because they were out of date Fix typo Check for exit status of tests Fix up tests, and one small bug Start converger even if graph is empty Remote "agent-less" mode Add caching for remote execution Etcd: switch to using a directory prefix Automatically update remote files on change Improve prefix creation and feedback Run tests with a tmp prefix Improve the configWatcher array to allow N files Add more flexibility around the prefixes available Improve internal etcd error handling tests: Workaround regression in two host etcd clusters etcd: Add a timeout for etcd server to start correctly etcd: Rename loop to be more consistent in messages converger: Update the API for errors and naming converger: Add new methods to the API converger: Add new timer system for determining convergence etcd: Use new converged timers and allow skipping them miscellaneous cleanups and fixes remote: Add distributed converged timeout remote: allow converge during corner cases docs: Add additional documentation about remote execution remote: small cleanups to update misc notes test: provider usage text for shell test runner etcd: Catch possible raft grpc error misc: Golint fixes resources: golint fixes packagekit: golint fixes puppet: golint fixes test: Increase timeouts of t8 readme: Add new blog posts by Felix docs: Add an FAQ entry about difference between two similar methods thanks: More people really needed to be on the list - Paul Morgan (8): make life easier for people who have EditorConfig plugin improve portability of the Makefile add make target to build static binary allow to specify CLI options via environment vars add systemd unit file add myself as a contributor move systemd tip from README to DOCUMENTATION move doc files to /usr/share/doc/mgmt and tag as docs - Felix Frank (6): don't abort test suite on first failure packagekit: support Debian's 'all' architecture rename the 'stateok' return value to 'checkok' README: add the capnslog package to the build dependencies add puppet integration code add unit tests for UUID comparison and resource event passing - Martin Alfke (4): find on OS X needs the dot remove vet make go vet installation optional noop as resource meta param - Jack Henschel (2): Remove noop functionality from TODO Add recording and slides from DebConf16 presentation by James Shubin - Joe Julian (2): Change "uname -i" to "uname -m" to be portable Allow make overrides of version if git fails - Jeremy Thurgood (1): Check for old golang versions while installing dependencies. - Michał Czeraszkiewicz (1): Add Docker support - Raphaël Pinson (1): Typo in DOCUMENTATION.md - Sharad Ganapathy (1): Adding timer resource and usage examples * Mon Mar 28 2016 James Shubin 0.0.3 - James Shubin (53): This now works. w00t Update docs to refer to #mgmtlove patches Make debugging easier when running on Jenkins Switch to CentOS-7.1 for OMV tests. Add test case to match headers Update web articles Add a link to my article about debugging golang Add more mgmtlove tags Add DevConf.cz video recording Add link to slides from Walter Heck Update link to video Update README with new video Rename type to resource (res) and service to svc Add great article by felix frank Change API from StateOK/Apply to CheckApply() Update README with small fixes Make sure to error on test Fix golang 1.6 vet issue Add some fixes for building in tip or with golang 1.6 Fix Makefile warnings on Travis Add package (pkg) resource Improve go vet testing The svc resource should use the private system bus of course Update items for Jenkins tests Rename GetRes() which is not descriptive, to Kind() Clean up the examples/ directory Fix file resource regression Update Makefile plumbing and associated misc things Bump go versions in travis Actually update to 1.6 in travis Add initial "autoedge" plumbing Make resource "kind" determination more obvious Exec variable should use pre-existing error variable Split out some of the pkg CheckApply logic Add pkg auto edge basics with packagekit improvements Add some of the pkg and svc autoedge logic Golint fixes Add a threshold based golint test case Switch bc for awk Update make deps script to make it better for debian folks Update README and docs with information about new blog post Refactor out noop resource into a separate file Split the Res interface into a Base sub piece Update context since etcd upstream moved to vendor/ dir Add golint test improvements so we detect branches more cleverly Avoid errors on golint test with travis Support "noarch" style packages in arch check Add initial plumbing for autogroups Graph cleanups to make way for the autogroup feature! Add resource auto grouping Force process events to be synchronous Add grouping algorithm Allow failures in 1.4.x because of etcd problem - Daniele Sluijters (1): docs: Add Features and autoedges section - Rob Wilson (1): build requires (at least) stringer - add package which contains missing dependency - Xavi S.B (1): Fix broken link to graph.yaml section * Fri Feb 12 2016 James Shubin 0.0.2 - James Shubin (92): Add better reporting of errors in yaml formatting test Add travis-ci integration Fix small typo Put all the deps in one script Small grep flag fix so command is idempotent Add omv support Add missing watch event for files Add more shields! Add tag script Update gofmt test to allow version 1.5 Add equals sign to pass in variables Don't format or check omv.yaml syntax Reorganize testing for developer efficiency Mega patch Add graphviz generation and visualization Ira deserves to be mentioned in the THANKS list Update README Support N distributed agents Fix up go vet errors and integrate with ci Add missing stringer dependency Add information on which libraries are being used Refactor etcd into object and add exit timers Fix go vet error Hello 2016! Merge type comparison into a single function call Add exec type and fix up a few other things Fix effective off-by-one error in dependency processing Clean up better The noop type is not useful in this example Clean up the distributed example for clarity Simplify converge checker Catch a different form of etcd disconnect Fix dependency issue Fixup state related items Add state caching for most types Add state caching and invalidation to service type Avoid panic's when referencing non-existing objects Exit if program was not compiled correctly Limit the number of initial start poke's required Add link to first blog post Remove useless noop types Many examples now exist Improve wording in README.md for clarification Add information on providing good logs Make sure to unpause all elements when resuming Bump golang versions in travis Fix failure of go 1.4.3 due to missing `go vet` Golint fixes Don't generate file watch events if disabled Update faq to add etcd vs. consul answer I guess we'll have to stick with the name for now Add golang stringer to deps Add shell based test harness Avoid any possible errors with git describe Fix string issues in the build Travis: don't sully the homepage with broken test branches Enable shell tests Work around old go versions not supporting equals sign Add CentOS jenkins ci hooks Add gopath Makefile target Add centos-ci script to mgmt for independence and for make gopath Fix typo Skip yamlfmt on jenkins too Be more specific in error messages for easier debugging Work around missing JENKINS_URL regression Add missing ^ character Pass jenkins url through to child machine I give up, let's see some debug output Try and pass through with export Add gobin to path in an attempt to make it easy to find go binaries Add a fan in example and test Add the ability to run individual shell tests manually Allow unbound variables like "$1" Add a fan in, fan out example and test Cleanup the README file Make it easier to use converged-timeout Add a simple test for reproducibility Only format check tracked files Add a simple bashfmt test Binary is not reproducible on travis! Why not? Add a TODO list to serve as a near term roadmap Update README Will this fix Jenkins? Actually fix the CentOS-CI builds (I hope) Add some special path variables and add centos-ci dependencies Path fixes to avoid overwriting each other Fix up path issues with vtest+ Pave the way for Debian Improve shell scripts Make an initial RPM package for COPR Add build dependencies for remote COPR builder Add COPR badge - Felix Frank (3): README: make code actually display as multi line README: specify minimum golang version README: also list stringer as a dependency * Fri Sep 25 2015 James Shubin 0.0.1 - James Shubin (1): Initial public commit of mgmt * Fri Sep 20 2019 James Shubin 0.0.999 - James Shubin (47): lang: Add more tests for class and include lang: Add more tests for function test: Split up long tests into multiple sub tests again lang, test: Inline some overly indented tests lang: Detect windows style CR and return a better error lang: Add tests for slow unification lang: funcs: Fix a copypasta error with the not equals operator util: Add a remove path suffix util function lang: Add the world implementation to our test suite util: Ensure the afero copy function is working as intended lang, gapi: Work around a copy bug in the deploy lang: Add a new function interface to accept data lang: Make sure to call Init for functions that arrive via import lang: Pass through the Fs and the FsURI lang: funcs: Add deploy package with readfile related functions util: Add new `mkdirall` variants for the copy functions etcd: fs: Errors should start with lower case util: Add some path helper functions lang: Improve the gapi copying util: Fix typo lang: Remove the specialized info structs docs: Add newly recorded talks and blog post lang: funcs: Module name should be public misc: Use apt install of apt-get where possible misc: Warn users with weird computers lang: Clarify error message about missing field test: Catch capitalized error messages in tests engine: resources: file: Add Copy method to file res engine: resources: file: Use constants for state values engine: resources: file: Add undefined file state and validate it engine: Refactor state dir into a separate function engine: resources: Ensure the Kind and Name methods work engine: Improve the way we make a unique res path token engine: resources: Change the default file state engine: resources: Add another validation check engine: resource: Refactor helper functions engine: resources: Clean up test log message docs: Add missing docs on the rewatch and realize meta params engine: resources: Add reversible API and file resource lang, test: Fix copy paste error with log message lang: Remove duplicate log message engine: resources: Improve the file res and add strict state XXX MKOSI WIP XXX MORE MKOSI WIP XXX WIP all done? AHA done? XXX ARCH - Donald Bakong (2): pgraph: Add a test for FindEdge() function docs: Fix typo on quick-start-guide.md * Wed Jul 17 2019 James Shubin 0.0.20 - James Shubin (41): lang: Add a new type unification test pgraph: Quote graphviz strings properly pgraph: Use pointers for unique vertex identifiers lang: types: Remove unnecessary prefix in generated kinds lang, lang: types: Add automatic stringer generation lang: Print the actual stream error on test failure lang: funcs: structs: Make error message more precise lang: Add var prefix to var expr to avoid ambiguity test: Fix typos, these aren't cats lang: types: Workaround stringer regression in golang 1.11 lib: Fix gofmt regression in golang 1.11.x misc: Update to golang 1.11.x etcd: Move to etcd v3.3.13 all: Switch the --lang syntax to use argv instead lang: funcs: Add a weekday function to the datetime package docs, readme: Improve new user experience lang: funcs: Add a mod function to the math package docs: Add build issue to FAQ docs: Update FAQ to mention go mod engine: graph: Add a mutex around waits map access examples: lang: Update autoedges example examples: lang: Add a unicode example lang: funcs: core: Make module names public lang: funcs: core: Allow nested system imports docs: Fix typo and grammar issue lang: Use the short flag to list subtests lang: funcs: Verify that simple polyfunc list is not empty lang: funcs: Use the correct arg names when running a pure func lang: Move type duplicates checker into a separate package lang: Add the NamedArgs interface lang: funcs: Add better logging to the function engine lang: Name the expr call graph differently lang: types: Improve ComplexCmp function lang: If the test fails earlier than expected, exit early lang: Add function types to the yacc type parser misc: Add graphviz deps for travis lang: Add function values and lambdas lang: Avoid running graphviz in tests by default travis: Try to work around CI slowdowns test: Split up long tests into multiple sub tests lib: Update dep for uuid - Adam Sigal (1): pgraph: Add a test for FindEdge() and HasVertex() functions - Christian Rebischke (1): lang: funcs: Add ArchLinux family detection - Felix Frank (1): engine: resources: mount: Fix the dbus call for reloading systemd - Jan Martens (1): engine: resources: nspawn: Trim possible systemd version suffix - Johan Bloemberg (1): lang: funcs: Add uptime implementation for macOS - John Hooks (1): lib: Support for systemd STATE_DIRECTORY or XDG cache dir - Ward Vandewege (1): docs: Fix link to puppet guide * Tue Apr 23 2019 James Shubin 0.0.19 - James Shubin (60): examples: lang: Add is_debian and is_redhat family example lang: funcs: Allow the len function to determine str length lang: funcs: Avoid erroneous empty message in readfile lang: Print a clear message on module import containing unused stmt engine: resources: Improve exec resource test: shell: Fix rare breakage in load test engine: resources: Improve test case readability test: Improve govet log newline check lang: funcs: Add runner pure func execution lang: funcs: Add live function stream test infrastructure lang: funcs: Add a new test for readfile and fix a small bug engine: resources: Fix missing file when specified without content resources: file: Make some small cleanups to file res engine: resources: Remove possible panic from within file res engine: resources: Improve file Cmp function engine: traits: Make encoded fields public engine: resources: Replace the cached values with a live calculation engine: resources: Add missing struct tags engine: util: Improve StructTagToFieldName and add tests engine: util: Add a new utility function for send/recv examples: lang: Add a basic file example lang: Small fixes about send/recv lang: Improve the test case infra so it can detect different errors engine, lang: Improve send/recv significantly lang: Improve test case with more specific errors lang: funcs: Don't allow interpolation in printf format string engine: resources: Clean up KV resource examples: lang: Refresh examples util: Add errwrap package test: Improve test depth test: Improve test depth engine, pgp: Fixup incorrect error usage util: Port all code to new errwrap package util: Port all multierr code to new errwrap package test: Port yaml test to mcl engine: util, resources: virt: Clean up virt resource docs: Add two faq entries docs: Move faq entry to more appropriate resource docs legal: Happy 2019 everyone... lib: Add static hello message docs: Add FAQ entry about root requirements engine: resources: Remove named return params github: Add funding information util: Add context wait signal to easy exit util: Add subscribed signal primitive util: Add safe easy ack that allows multiple ack's util: Add context utility functions docs: Add faq entry about locked binary test: Skip net test in travis etcd: Rewrite embed etcd implementation lib: Clean up logging util: Make test more resistant to races etcd: Make error more specific test: shell: Increase etcd timeouts for slow travis lib, gapi: Display deploy ID to add some clarity lang: funcs: Add regexp package and match function lang: Fix import scoping issue with classes test: shell: Increase etcd timeouts for slow travis again lang: Quote printed strings lang: unification: Improve type unification algorithm - Nicolas Charles (2): lang: funcs: Added a function to detect Debian and RedHat like systems engine: resources: print: Add RefreshOnly option - Adam Sigal (1): faq: Amended faq mailing list information - Felix Frank (1): docs: Slightly clarify parameter defaults - Jonathan Gold (1): engine: resources: mount: Restart remote-fs target - Michael Schubert (1): docs: Fix link - Mitch Fossen (1): lang, funcs: Remove deprecated syscall import - Wouter Dullaert (1): cli: Removed obsolete no-watch-config flag * Tue Feb 26 2019 James Shubin 0.0.18 - James Shubin (50): lang: unification: Add missing return to exit early lang: unification: Add logging to make capturing errors easier lang: unification: Allow err string comparisons in tests lang: Check that set type matches actual expression lang: If expression was missing two invariants lang: unification: Catch unification error on typed if expr lang: unification: Catch unification error on typed var expr lang: unification: Fix up small typos in example code test: Fix a small copy pasta typo lang: test: Add a new giant test infra for matching static output lang: Edges should allow lists of strings engine: resources: pkg: Clarify that correct state is newest examples: lang: Update examples to fix imports and port from yaml engine: resources: Fix a possible panic on closed channel engine: resources: Fix a small typo in error message lang: funcs: Rename template functions to remove periods lang: funcs: Add a new readfile function lang: funcs: Add str2int example function lang: funcs: Add a trim space function to the new strings module engine: resources: virt: Clean up virt resource for lang examples: Improve dynamic cpus virt example integration: Avoid duplicate events from recwatch engine: nspawn: Add an nspawn example with an improved exec examples: Add missing mcl files examples: Add more examples and clean up some examples: Add uncommited nspawn example lang: funcs: core: Drop unnecessary core prefix from imports lang: funcs: core: Rename core module files lang: funcs: core: Move world API functions lang: Remove unnecessary log package engine: resources: Add a test running for testing individual resources engine: resources: file: Update the format string test: Split travis tests into three blocks test: Add expanders when running in travis lang: funcs: funcgen: Clean up some small details util: Add an easy ACK sync primitive converger: Rewrite the converger module engine: Rewrite the core algorithm engine: Add the retry loop around Watch engine: Add limit delay before Process can run engine: Add the retry loop around Process test: Enable and fix up some more tests util: Improve the sync primitives. make: Clean up the Makefiles so the output is more elegant test: Shell tests should use unified timeout command misc: Add two test helpers resources: exec: Avoid possible deadlock race engine: resources: Add CheckApply event detection to resource tests examples: Remove old hcl examples test: shell: Improve load test - Kevin Kuehler (5): util: Move socketset from net resource to util util: Libify socketset lang: funcs: Add cpucount fact util: Add TestShutdown to socketset engine: lang: util: Kill race in socketset - Lander Van den Bulcke (4): make: Use gem --no-document instead of deprecated flags lang: funcs: Add sqrt function lang: funcs: Add tests for sqrt function lang: funcs: Add strings.split function - Johan Bloemberg (3): misc: Add goimports dep misc: Make build on macOS work etcd: Connection options (socket file, ipv6) - Julien Pivotto (3): docker: Update FROM to go:1.11 lang: Add to_lower and to_upper functions lang: Add more string functions, autogenerated - Felix Frank (1): langpuppet: Fix Cli method invocations for wrapped GAPIs - Jeff Waugh (1): build: Fix macOS build - Toshaan Bharvani (1): lang: funcs: Added an uptime function * Thu Jan 17 2019 James Shubin 0.0.17 - James Shubin (73): test: Add doc note about skipping docker tests travis: Work around broken travis NO_PUBKEY error travis: Bump to golang 1.10 engine: resources: file: Require paths to be absolute engine: resources: svc: Add symmetric closing engine: resources: Work around a subtle embedded res bug util: Add an fs helper and a test helper util: Improve the test helper function and add a better one util: Add a test for CopyFs test: Increase the vet testing for irregular strings util: Fix small linting error test: Fix up token vet test lang: Add logging and debug info via a new Init method lang: Add an Apply iterator to the Stmt and Expr API util: Add a UInt64Slice and associated sorting functionality. lang: Allow dotted identifiers lang: Detect sub tests with the same name lang: Support lexing and parsing a list of files with offsets lang: Add import spec parsing and tests lang: Add resource specific tokens in lexer and parser lang: Allow matching underscores in some of the identifier's lang: Add lexing/parsing of import statements lang: Tidy up grouping of lexer tokens in the parser lang: Refactor most functions to support modules bindata: Add infrastructure for building core mcl files gapi: Add a prefix variable in case we want to namespace on disk git: Ignore some WIP files that won't get tracked in git lang: Add a URL result to the import name parser lang: Add beginning of user defined functions test: Clean up and improve golang tests lang: Add some lambda function parsing and tests lang: Improve empty scope and output lang: Add a top-level stmt safety method util: Add some useful path parsing functions gapi: Add a bytes helper lang: Add module imports and more lang, util: Tests that depend on the fs should be sorted lang: test: Add a test of duplicate resource generation engine: resources: cron: Fix typo in error message engine: resources: pkg: Remove old Compare method engine: resources: pkg: Replace state strings with constants engine: resources: pkg: Simplify state check lang: Improve sub testing lang: Validate the edge field names in our resources engine: Add setters for the trait interfaces engine: Add a resource copy interface and implementation engine: Add an interface for compatible resources lang: Handle merging of compatible resources properly engine: resources: pkg: Implement the CompatibleRes interface travis: Workaround another broken apt repo travis: Print debug info to catch travis regressions test: Fix golang cache regression lang: Move capitalized res identifier into parser lang: Add meta parameter parsing to resources travis: Clean up my grammar docs: Add sub categories to the language guide lang: Refactor resource creation into a helper method lang: Refactor edges helper method lang: Add a placeholder "ExprAny" expression for unification hacks lang: Allow a list of strings in the resource name lang: Refactor the res metaparams helper lang: Add autoedge and autogroup meta params to mcl engine: Fix typos engine: graph: Prevent converged timeout of dirty res test: Add a semaphore shell test test: Enable t8 to test for two host etcd clusters test: Rename t8 to be more descriptive test: Add a three host variant of the empty etcd test test: Don't be unnecessarily noisy in this test engine: event: Switch events system to use simpler structs engine: Work around bad timestamp panic engine: graph: Avoid a possible panic sending on a closed channel etcd: Workaround a nil ptr bug - Jonathan Gold (24): etcd: Fix deploy transaction error message lang: Fix error message format strings engine: resources: net: test: Add some go tests puppet: Fix error message when puppet conf copy fails engine: resources: net: Allow addr without gateway engine: resources: net: test: Add shell test for net resource travis: Build on Xenial engine: resources: packagekit: Fix dbus addmatch rule engine: resources: file: Fix bug preventing use of source field engine: resources: file: Add shell test for source field etcd: Use source filepath base in CopyFs destination path etcd: Use mgmt backend for fs tests engine: resources: group: Make group edgeable engine: resources: svc: Use dbus session bus for user session svc engine: resources: cron: Add a systemd-timer resource engine: util: Add EdgeCombiner() for combining auto edges engine: resources: cron: Add support for user session timers engine: resources: cron: Add lang examples engine: resources: cron: Add auto edges from SvcRes util: Add PathSlice type that satisfies sort.Interface etcd: Add TestEtcdCopyFs0 etcd: Add more test cases to TestEtcdCopyFs0 make: deps: Only install gometalinter on CI/CD servers test: Ensure gometalinter is available - Felix Frank (5): make: Remove spurious dependency package 'rubygems' for Debian-like systems make: Speed up the build by skipping gem docs gapi: langpuppet: Add initial implementation docs: Explain the langpuppet interface and function gitignore: Ignore vim swap files - Tom Payne (3): etcd: Add Chown (returns ErrNotImplemented) etcd: Add Lchown (returns ErrNotImplemented) etcd: Ensure that fs.Fs implements afero.Fs - Kevin Kuehler (2): util: Patch CopyFs and add tests lang: Add debug flag and Logf to fact init struct - Michael Lesko-Krleza (1): test: Increase test coverage for graphsync - Vincent Membré (1): engine: resources: exec: Use WatchShell in Exec resource when needed instead of Shell * Fri Nov 30 2018 James Shubin 0.0.16 - James Shubin (43): lang: Misc fixes for typos and grammar pgraph: Don't panic on new or nil graphs resources: svc: Add deactivating state lib: Remove remote execution from core recwatch: Remove the ConfigWatch functionality test, integration: Add an integration test framework test, integration: Add cluster primitives to integration framework integration: Log the instance output lang: funcs: Don't race when building an initial graph lang: Add mutex around Expr String/Value/SetValue calls readme: Add patreon link to README file lib: Remove hcl GAPI frontend lib, yamlgraph: Remove old yamlgraph GAPI frontend etcd: Pull in default URLs from upstream lang: Don't race with a ^C to the obj.lang calls engine: Resources package rewrite puppet: Clean up the GAPI and remove log package engine: Small fixes test: Improve commit message test docs, test: Remove old reference to resources package test: Catch naked returns and check for canonically named imports engine: test: Pass in the go test verbose flag test: Improve golang tests with root and disabling cache travis: Enable apt updates on builds engine: resources: print: Add missing Recvable trait lang: Error parser if SetType fails to avoid a panic lang: Add edges to StmtProg output lang: funcs: Registered functions map should be private lang: Simplify graph function for edge half in parser lang: Add indentation test to parser lang: Don't add identical resources to graph lang: Simplify struct interpolation pgraph: Handle empty graphs when merging two lang: Simplify bind stmt collection in the prog stmt lang: Add class and include statements lang: Add partial recursive support/detection to class lang: Update map type definition to include a prefix test: Add a test to ensure the parser doesn't have any conflicts readme: Add Liberapay link to README test: Improve commit message tests vendor: Add vendored docker modules with out of tree fix engine: resources: Add nodocker build tag make: Improve release pipeline - Jonathan Gold (11): util: Rename SortedStrSliceCompare and move to util package engine: resources: nspawn: Remove godbus channel buffer util: Move dbus AddMatch const to util package engine: resources: mount: Add a mount resource engine: DBus cleanup build: Fix ldflags pattern for 1.10 docs: Add netlink post to on-the-web.md docs: Update url for AWS EC2 blog post build: Add rubygems to make deps target engine: resources: docker: Add a docker container resource make: Release pipeline - phaer (3): vagrant: Bump to fedora 28 vagrant: Add gem package vagrant: Fix example path in motd - Alan Jenkins (1): engine: resources: packagekit: Add Arch mapping 'any' for Arch Linux compatibility - Lauri Ojansivu (1): resources: svc: Add activating state - jesus m. rodriguez (1): build: Add help to main Makefile - jonathangold (1): resources: net: Add net resource * Tue Feb 27 2018 James Shubin 0.0.15 - James Shubin (45): lang: Initial implementation of the mgmt language test: Add new test for language prefix etcd: Update broken link travis: Disable fast finish for now test: Increase timeouts for when travis is slow docs: Add FAQ entry about vendoring dependencies readme: Fix broken link test: Fix broken gometalinter test docs: Add newly recorded talks and blog posts about mgmt resources: nspawn: Don't panic if one svc is nil build: Improve speed of make etcd: Fix golint issue in test build: Add -i flag to go build test: Improve gometalinter test so that it skips generated files authors: Clarify wording in AUTHORS file etcd: Bump to etcd v3.3 and golang 1.9 docs: Add faq entry about production readiness travis: Add golang 1.10.x to builds docs: Add an entry to the faq about converged timeouts test: Show test output as it happens etcd: Increase the default max txn op count etcd: scheduler: Remove etcd 3.2 specific hacks lang: funcs: Rename things for consistency travis: Avoid notification noise from forks lang: types, funcs: Add simple function API test, docs: Add a linter for testing markdown, and fix up our docs lang: funcs: Fix up some old comments golint: Fix ineffassign mistakes misc: Add dependency on time package misc: Update golint to new location test, docs: Restrict long lines in markdown linter docs: Add two faq entries about the type system build: Relocate time command to the front for readability lang: funcs: simple: Don't block on simple, pure, static functions travis: Attempt to workaround the constant travis failures docs: Add two new faq entries all: Misc fixes and test fixes lang: types, funcs: Add simple polymorphic function API lang: Add edges to lexer and parser lang: funcs: Add math pow function and a few examples lang: unification: Fix panic in struct/func cmp of partials travis: Attempt to cut down on flaky failures travis: Fix the OSX builds lang: Add a resource-specific elvis operator lang: Add internal, resource specific edges - Johan Bloemberg (19): build, docs: Improve macOS building lang: Use universal way to retrieve load resources: Do not return GID for UID lookup misc: Fix graphviz output for hostnames with dot in them debian: Add graphviz and packagekit runtime dependencies build: Unify build/crossbuild test: Streamline test suite a little test: Export the mgmt command to be used during test test: Fix augeas test for macOS, improve test debuggability test: Exclude generated files from golint cli: Log errors return by Run functions etcd: Warn about invalid configuration, clarify --no-server lib: Provide detailed feedback about invalid URLs travis: Improve travis speed by only building 1 go version for osx travis: Retry flaky apt update at build start recwatch: Fix watching newly created files on macOS docs, misc: Add tool references, .editorconfig for mcl lang: Add `getenv` function project: Add me - Carsten Thiel (2): docs: Improve file resource documentation test: Refactor unification_test to subtests - Joe Julian (2): misc: Use bash's `command` instead of `which` misc: Don't install packages that are already installed - Toshaan Bharvani (2): build: Add cross building option lang: Interface sorting order - Wim (2): docs: Add GOPATH/bin to PATH build: Add gcc,pkg-config deps - Jonathan Gold (1): project: Add Jonathan Gold to AUTHORS - Oliver Frommel (1): misc: Small fixes for makedeps script - Peter Oliver (1): emacs: Bundle an Emacs major mode, mgmtconfig-mode - dsx (1): debian: Add packaging - jonathangold (1): misc: Replace missing go-bindata dependency - karimb (1): docs: Add docs for docker usage * Thu Jan 11 2018 James Shubin 0.0.14 - Jonathan Gold (29): etcd: Add advertise urls to cli etcd: Plumbed in the new cli flags for advertise urls resources: Add UserData field to AwsEc2 resources: aws: ec2: Move Watch to longpollWatch resources: aws: ec2: Remove extra wait from Watch resources: aws: ec2: Reorganized consts resources: aws: ec2: Move chanStruct type out of longpollWatch resources: aws: ec2: Move watch channels into struct resource: aws: ec2: Move waitgroup to resource struct resource: aws: ec2: Add http server resources: aws: ec2: Add method to make sns topic resources: aws: ec2: Start and stop SNS endpoint in snsWatch resources: aws: ec2: Change event messages to iota consts travis: Allow travis builds to access target branches resources: virt: Update libvirt-xml target cli: Add license flag resources: aws: ec2: Use custom listener for snsServer resources: aws: ec2: Subscribe SNS endpoint to topic resources: aws: ec2: Add CloudWatch rule and target SNS resources: aws: ec2: Authorize CloudWatch to publish to sns resources: aws: ec2: Update postHandler to process messages resources: aws: ec2: Close closeChan before server shutdown resources: aws: ec2: Check that policy.Statement != nil resources: aws: ec2: Verify SNS message signatures resources: aws: ec2: CheckApply fix pending and stopping cases resources: aws: ec2: Retry on exceeded wait attempts error resources: aws: ec2: Wait for stop and terminate concurrently resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Refactor CheckApply - James Shubin (15): examples: Add longpoll server and client github: Use third-party settings app to sync github settings github: Add new label for design discussions and trackers github: This event is over yamlgraph: Improve error output resources: aws: ec2: Fix deadlock on rare error scenarios test: Add extra commit message tests for some common mistakes test: Add check for common doc vs docs ambiguity resources: Replace golang 1.6 specific code with newer 1.7 version test: Add another check for off-by-one-error commit tags docs: Refresh documentation to provide a better new user experience docs: Add missing blog post about augeas resource legal: Happy 2018 everyone... misc: Don't display script name in output test: Don't fail on tag builds - Julien Pivotto (7): doc: Fix link to the prometheus wiki prometheus: Initialize mgmt_checkapply_total metrics build: Build mgmt on any go file change exec: Add autoEdges between ExecRes and PkgRes prometheus: Initialize all metrics build: Remove go 1.3 and 1.4 support example: Remove content out of directory definition - Guillaume Herail (4): docker: Bump to golang 1.8 resources: Move FileRes.uid()/.gid() to util.go resources: Add User/Group to ExecRes test: Switch to goimports instead of gofmt - jonathangold (3): resources: aws: ec2: Refactor longpollWatch resources: aws: ec2: Send IP addresses and InstanceID resources: aws: ec2: Fix closed channel handling - Paul Morgan (2): git: Ensure the tagging script is idempotent git: Configure editorconfig to indent with tabs in bash scripts - Felix Frank (1): puppet: Avoid empty parameters to puppet mgmtgraph - Toshaan Bharvani (1): build: Added build option to strip binary * Mon Oct 23 2017 James Shubin 0.0.13 - James Shubin (30): misc: Update my tag script to deal with large releases resources: Unify resource creation and kind setting resources: Panic if attempting to register a duplicate resource pgraph: Improve testing and refactor out some test utilities resources: Do not panic on autogrouped graph switches resources: Add resource sorting and clean tests resources: Compare grouped resources properly test: Don't be noisy when running cd during testing remote: Add a Ready method to know when startup is finished resources: Fix golint issues hcl: Consistent formatting resources: Add a utility to map from struct fields resources: Add NewNamedResource helper readme: Add new recording travis: Update to golang 1.8 as the default resources: Include default MetaParams so Validate will pass in tests etcd: Bump to version 3.2.6 and update all the grpc deps test: Increase timeouts because travis is slow test: Fix another intermittent failure yaml2: Meta should keep defaults, and Res should have kind github: Add a PR template to help new users github: Improve the PR template test: Increase timeouts for slow travis resources: Fix formatting legal: Re-license to GPLv3 git: Ignore .envrc file from direnv vendor: Add codec package because of breakage etcd: Bump to newer versions test: Use stable version of gometalinter test: Fix linter issues - Jonathan Gold (7): virt: Allow more than 26 disks resources: Add user resource resources: Add an Aws resource resources: Improve nspawn resource resources: Fix user gid compare resources: Add a group resource resources: Enhancements to user and group - ChrisMcKenzie (3): hcl: Added basic hcl frontend hcl: Removed edge object in favor of depends_on field in resource hcl: Added hil string interpolation to hcl frontend - Dennis Kliban (2): vagrant: Increase amount of RAM allocated to boxes backed by libvirt resources: Add validation for Msg Priority field - Juan Luis de Sousa-Valadas Castaño (2): vagrant: Fix PATH resources: Refresh packagekit cache before install - AdnanLFC (1): pgraph: test: Added tests for DeleteEdge - Arthur Mello (1): virt: Added support for ~user into expandHome - Ismael Puerto (1): vagrant: Change box to F26 - Juan-Luis de Sousa-Valadas Castaño (1): docs: Change go required version to 1.8 * Sat Jun 03 2017 James Shubin 0.0.12 - James Shubin (49): main: Update log messages for consistency misc: Replace sloppy use of %v with %s resources: svc: Add basic support for user services misc: Fixup documentation lib: examples: Update to most recent API gapi: Move separate etcd Watch method into GAPI lib, gapi: Next method of GAPI should generate first event resources: Make resource kind and baseuid fields public readme: Add new links etcd, resources, world: Add World API for shared keys pgraph: Use the correct vertex handle to prevent a race pgraph: Clean up pgraph module to get ready for clean lib status pgraph: Remove use of Flags struct in favour of Value API pgraph: Untangle the semaphore code from the pgraph implementation pgraph: Replace CompareMatch with VertexMatchFn pgraph: Update graph API to remove Get prefix and add Adjacency pgraph: Move GraphMetas function out of package pgraph: Move AssociateData function out of the package test: Run go vet with -source flag in newer releases test: Run go vet across whole packages not individual files pgraph: Move the AutoEdges mechanism into the resource package pgraph: Move get/set state methods out to resource package pgraph: Move the timestamp storage into the resource resources: Map to semaphores doesn't need to be a pointer pgraph, resources: Major refactor to remove pgraph to resource dep pgraph, resources: Major refactoring continued pgraph: Replace edge struct with interface resources: nspawn: Fix small style issues pgraph: Add a GraphCmp method pgraph: Add logic functions for adding subgraphs pgraph: Add sort function to sort a list of vertices resources: Simplify the resource Compare functions resources: Add proper edge compare method resources: graph: Add partial implementation of a graph resource pgraph: Remove NewVertex and NewEdge methods and fix examples resources: Clean up converger and make it easier for tests resources: exec: Add send/recv for exec output, stdout and stderr resources: Rename the Data struct to ResData to avoid ambiguity test: Make sure our examples build gapi: Allow the GAPI implementer to specify fast and exit resources: Reorganize package and split into multiple files resources: Replace stored pgraph with mgraph and clean up hacks resources: Improve AutoEdge API and pkg breakage resources: autoedges: Process in a deterministic order resources: pkg: Add a simple test based on internal logic etcd: Small cleanup of the package etcd: Wait for server to start before continuing test: Remove debugging echo from go vet test test: Add gometalinter to our test suite - Julien Pivotto (2): vagrant: Install make in the Vagrant box vagrant: Setup Packagekit in the box - Mildred Ki'Lya (1): yamlgraph: Refactor parsing for dynamic resource registration * Thu Mar 16 2017 James Shubin 0.0.11 - James Shubin (15): git: Add more features to tag.sh script pgraph: semaphore: Add lock around semaphore map resources: exec: Remove the pollint parameter resources: exec: Don't invalidate state on poke resources: exec: Remove state checks that are done in the engine resources: exec: Clean up command error processing resources: exec: Ignore signals sent to main process resources: exit: Misc cleanups pgraph: Move the quiesce done indicator to avoid deadlock pgraph: Move the BackPoke to before the semaphores pgraph: semaphore: Refactor semaphore size function and test pgraph, resources: Run the resource Setup in parallel pgraph: Add fast pausing and exiting of graphs examples: Add missing file example todo: Update the TODO file to be more current - Julien Pivotto (1): prometheus: Add detailed metrics * Sat Mar 11 2017 James Shubin 0.0.10 - James Shubin (24): compiling: Add -i flag to go build to speed up builds test: Small fixups to t4 and a rename semaphore: Create a semaphore metaparam remote: Replace builtin semaphore type with common util lib semaphore, pgraph: Add semaphore grouping and tests pgraph: Clean up tests spelling: Fix typos as found by goreportcard readme: Add new blog post about metaparameters travis: Ensure recent golang versions in test test: Avoid matching three X's gapi, etcd: Define and implement a string sharing API for the World etcd: Switch to buffered channel to remove duplicates lib: Refactor instantiation of world API lib, pgraph, resources: Refactor data association API gapi: Move the World interface into resources resources: Split util functions into separate file resources: kv: Add new KV resource which sets key value pairs pgraph: graphviz: Update Graphviz lib to quote names properly resources: svc: Add failed state resources, yamlgraph: Drop the kind capitalization pgraph, resources: Quiesce when pausing or exiting the resource pgraph, resources: Discard BackPokes during pause and resume test: Disable prometheus-3.sh test temporarily git: Improve tagging script - Julien Pivotto (3): compilation: Make build the default target prometheus: Move the prometheus nil check inside the prometheus function prometheus: Add mgmt_pgraph_start_time_seconds metric - Michael Borden (2): misc: Add pacman support travis: Add go_import_path * Sat Feb 25 2017 James Shubin 0.0.9 - James Shubin (81): todo: Make TODO file more current resources: Rename Converger to ConvergerUID resources: virt: Add missing converger call converger: Wait till the timer exits resources: Add poll metaparameter resources: timer: Polish the timer resource resources: Add a `Default` method to the resource API docs: Add missing headings to table of contents resources: Officially add Validate method docs: Split out a separate quick start guide docs: Rename puppet guide and small cleanups docs: Improve README docs: Add an introductory paragraph to the quick start guide docs: Add new blog post link docs: Add missing newline docs: Small fixes to the README resources: Overhaul legacy code around the resource API resources: Improve composition of Validate API in resources resources: rate limiting: Implement resource rate limiting resources: Force a sane default for zero value limiting pgraph: Remove unnecessary indentation in Process code path resources: Update state checks pgraph: Parallelize the BackPoke facility pgraph: Add debug messages converger: Block converging in the engine converger: Remove converger boilerplate from the resources virt: Allow the use of ~ to expand to home directory resources: Rename GetUIDs to UIDs pgraph: Set the false starter value too examples: Update example to be Validate safe etcd: Update example to ignore pgp examples: Have libmgmt work around the lack of rate defaults travis: Limit notifications now that travis cron is enabled examples: etcd: Simplify the etcd examples resources: Don't double close on Running restart recwatch: Do not send to channel if closed. lib: Make initial one-shot start pattern more elegant gapi: Unblock from a waiting send on GAPI close resources: Parse YAML infinity specifications correctly examples: Update the examples pgraph, yamlgraph: Allow specifying notify value from YAML test: Small nitpicks with messages resources: augeas: Turn augeas namespace into a constant etcd: Remove stuttering in package test: prometheus: Fix up test docs: Update the quick start guide with git clone and vagrant github: Show a friendly message in issues template resources: file: Use the computed path in our resource docs: Add missing newline and remove extra one legal: Oh yeah, it is 2017 resources: file: Small fixups and force additions resources: Remove "NewRes" constructors resources: file: Don't modify resource in Init resources: Specify defaults for the MetaParams build: Require golang 1.6 or greater test: Fix tests by hooking up go test properly test: Improve go vet so that it is less noisy test: Fix false negative on go vet test: Fix yamlfmt test test: Make test status more clear resources: virt: Allow hotplugging pgraph, resources: Improve Init/Close and Worker status resources, pgraph: Refactor Worker and simplify API resources: The user should not call Init pgraph, resources: Add proper start/stop signals recwatch: Close cleanly after Watcher finishes recwatch: Unblock from sending on exit lib: Misc cleanups and new log message test: Don't block on graph transitions pgraph, resources: Clean up the event system around the resources recwatch: Close the ConfigWatch properly yamlgraph: Close the recwatcher properly after use resources: virt: Cleanup cleanly on Close travis: Start building golang 1.8 as well golint: Fixup issues found in the report test: Fix up probable timeout failures due to slow ci pgraph, resources: Wait for innerWorker to exit cleanly pgraph: Wait for Process routine to exit resources: virt: Don't block exit in callbacks resources: virt: Catch bad calls to CheckApply resources: virt: Remove unnecessary early exit from CheckApply - Julien Pivotto (21): prometheus: Implement basic Prometheus support Prometheus: fix URL to the "Default port allocations" prometheus: Add a new test, with --prometheus-listen travis: add a test regarding commit messages test: file: test the behaviour of inotify on parent dir moves travis: more strict commit messages tests test: commit: Improve commit message testing recwatch: Remove watcher on file move compilation: virt: Make libvirt support optional resources: augeas: New resource prometheus: Implement mgmt_checkapply_total metric resources: augeas: Make augeas support optional documentation: prometheus: Improvements resources: file: Do not error on os.Stat in noop mode prometheus: Add mgmt_process_start_time_seconds metric prometheus: Remove mgmt_process_start_time_seconds metric documentation: Embed command-line syntax in a code block resources: augeas: comments: Improvements documentation: Implement sphinx documentation travis: Run apt update before installing dependencies project: Add $me to AUTHORS - Felix Frank (3): tests: simplify shell code, skip YAML test if Ruby is too old vagrant: Add Vagrantfile and some basic configuration project: Reluctantly add myself as an author - Mildred Ki'Lya (3): resources: file: Implement file attributes misc: Split OPTS variable of systemd unit resources: file: Allow creation of empty directories - Daniel P. Berrange (1): resources: virt: convert to use github.com/libvirt/libvirt-go - Daniele Sluijters (1): TODO: Point to current file improvement issue - Kaushal M (1): build: Use GOTAGS for static builds as well - Lars Kulseng (1): readme: Changed wording of quick start section - Sean Jones (1): test: Enable macOS shell testing - Steve Milner (1): spec: Fix rpmlint warnings - Tom Ritserveldt (1): point to the correct puppet-guide path in docs. - goberghen (1): docs: Fix headers formating * Wed Dec 21 2016 James Shubin 0.0.8 - James Shubin (15): docs: Create a dedicated documentation folder resources: Simplify resource Converger and Startup code resources: Don't dirty resource when poked with activity resources: Remove SetWatching/IsWatching code from Watch resources: msg: Remove legacy comment docs: Add resource guide resources: file: Fix small typo in the compare function gapi: Rename SwitchStream to Next pgraph: Build the sync group into the graph structure pgraph, resources: Integrate properly with the startup logic pgraph: Simplify graph exit waiting pgraph: Mutex must be a pointer pgraph: Remember to unpause the vertices! test: Allow devel versions to run gofmt golint: Fix some golint issues * Thu Dec 08 2016 James Shubin 0.0.7 - James Shubin (26): pgraph: Fix ineffassign warning resources: Clean up errors and string printing resources: file: Allow undefined file contents etcd: Watch for obvious failures on first startup resources: nspawn: Tweaks and updates resources: nspawn: Use new API resources: Add stable go-systemd branch for now resources: nspawn: Update grammer for Joe readme: Add video link from High Load Strategy readme: Add video from NLUUG misc: Exclude vendor/ directory from ack matching resources: Add VarDir support misc: Cleanup unnecessary use of %v and small nitpicks resources: Implement Send -> Recv resources, pgraph: split logical chunks into separate files resources: Improve the state/cache system resources: Improve notification system and notify refreshes resources: Reduce logging on Send/Recv resources: Fix poke/refresh race misc: Improve gofmt test case resources: Polish the password PoC and build out send/recv resources: Actually verify which send/recv elements changed resources: Re-order send/recv display messages. gapi: Add world interface and refactor existing code to use it readme: Add new blog post about send/recv misc: Rename mgmtmain to lib and remove global package - Joe Julian (5): virt: Do not restrict VIR_ERR_NO_DOMAIN to qemu. Add IntelliJ Idea to .gitignore virt: Add logic to parse the libvirt uri nspawn: Add systemd-machined support for nspawn containers nspawn: bump go-systemd commit - Vinzenz Feenstra (5): virt: Avoid parsing URI all the time virt: Authentication support resources: Add new hostname resource examples: rename hostname.yml to hostname.yaml misc: Prefer dnf over yum when present - Nicolas Nadeau (1): pgp: Base pgp code * Thu Nov 03 2016 James Shubin 0.0.6 - James Shubin (27): golint: Outdent else statement godoc: Document resources package godoc: Document packagekit package readme: Update repository with information about remote execution etcd: Verify struct is not nil before accessing retries value test: update lint checker to support packages etcd: Fix type issue make: Sed needs g option to replace multiple PROGRAM names resources: List resources in alphabetical order resources: Interfaces parameters can be named to help documentation resources: Check that resource kind is set. all: Rename UUID to UID. resources: virt: Add a virt resource based on libvirt misc: Add libvirt header file dependency test: Fix travis so it pulls in our deps resources: virt: Update to new function signature resources: Use Events() method instead of raw channel spec: Improve the rpm package resources: Set the defaults for metaparameters resources: Update constructor signature to return error as well resources: virt: Update CPUs variable to new uint16 signature main: Split apart logic in main readme: Update README file to make it clearer for new hackers main: Libify mgmt with a golang API cli: Pass through program and version strings gapi: Split out graph generation into a proper graph API examples: make the libmgmt example more fun - Joe Julian (2): Use the download-only flag when fetching dependencies virt: don't set emulator path - Alexandre-Xavier Labonté-Lamoureux (1): test: Tokens should always have a colon - Juergen Hoetzel (1): readme: Fix go get command - Marc Antoine Dumont (1): Add the link to a new dependencies in README.md * Mon Oct 03 2016 James Shubin 0.0.5 - James Shubin (28): file: Overhaul file resource and add recursion todo: Update TODO file etcd: Update examples to be more useful for single machine tests test: temporarily disable test art: Add a logo readme: We now have an arch aur build. readme: Add information for new users travis: bump to newer golang version (fedora 23) Resources: Prototype retry and retry delay meta parameters Resources: Add retry and retry delay meta parameters resources: Compare Delay and Retry metaparams on graph change golang: Split things into packages Makefile: Limit depth for yamlfmt TODO: add TODO item about DHT idea Resources: Update interface to support errors vendor: Update etcd to working version and fix grpc stuff golang: Update to version 1.6 as the minimum readme: Add link to godoc resources: svc: Catch reload states too golint: Fix issues caught by the linter golint: Fix nested else statement file: Fix regression in fsnotify code resources: msg: Turn on journal logging in the example resources: fix deadlock on recursion recwatch: Split recursive watching into sub-package test: Catch go vet issues in subpackages recwatch: Rearrange condition to unconfuse golinter resources: Use named fields to avoid bothering go vet - Felix Frank (3): add puppet support documentation have 'make clean' get rid of generated code files again resources: msg: Introduce new resource type to log arbitrary messages - Michaël Faille (3): cli : Prefer github.com/urfave/cli as cli Let `env` find bash in shebang. travis : use go1.7 to be future proof. - Antoine Racine (1): Add pcap.h dependency on Debian/Ubuntu to fix make deps error * Wed Sep 07 2016 James Shubin 0.0.4 - James Shubin (86): Rework the converged detection and provide a clean interface Add additional autogrouping example Update TODO file Update docs and README to mention new blog post Allow stubborn users to avoid having to move their project Small nitpick fixups Add flatten helper to take apart messy nested lists Fix go generate issue with path Update Makefile to be more useful for hackers Update TODO file Fix typo Add a base method for GroupCmp Pkg: cache state when it is correct Pkg: Immediately unconverge on events Fix cli API change Add logging workaround when embedding etcd Expand the event system slightly Add global --noop support Remove pesky spaces Add quote from notable automation specialist and author Update links Embedded etcd Copy in out of tree patches docs: add faq entry about using external etcd cluster Split formatting into two targets Add vendored etcd Add go report card! Update cli library path Fix stupid gofmt issue Update links Allow 1.6 to fail for now New blog post! Include video Bump to etcd v3.0.0 Revert "Allow 1.6 to fail for now" Remove manual etcd usage. No longer needed. Get travis results faster! Add exec3 example Revert "Revert "Allow 1.6 to fail for now"" Revert "Copy in out of tree patches" Port embedded etcd to embed API Add test case for urfave regression Do some gofmt simplifications Round of golint fixes to improve documentation. Be safe when closing in destroy in case client is nil Avoid a rare panic if DestroyServer is called early Don't block on member exits Improve README for first time users Docs: Add FAQ entry about similarly named band Update docs to add automatic clustering Update docs because they were out of date Fix typo Check for exit status of tests Fix up tests, and one small bug Start converger even if graph is empty Remote "agent-less" mode Add caching for remote execution Etcd: switch to using a directory prefix Automatically update remote files on change Improve prefix creation and feedback Run tests with a tmp prefix Improve the configWatcher array to allow N files Add more flexibility around the prefixes available Improve internal etcd error handling tests: Workaround regression in two host etcd clusters etcd: Add a timeout for etcd server to start correctly etcd: Rename loop to be more consistent in messages converger: Update the API for errors and naming converger: Add new methods to the API converger: Add new timer system for determining convergence etcd: Use new converged timers and allow skipping them miscellaneous cleanups and fixes remote: Add distributed converged timeout remote: allow converge during corner cases docs: Add additional documentation about remote execution remote: small cleanups to update misc notes test: provider usage text for shell test runner etcd: Catch possible raft grpc error misc: Golint fixes resources: golint fixes packagekit: golint fixes puppet: golint fixes test: Increase timeouts of t8 readme: Add new blog posts by Felix docs: Add an FAQ entry about difference between two similar methods thanks: More people really needed to be on the list - Paul Morgan (8): make life easier for people who have EditorConfig plugin improve portability of the Makefile add make target to build static binary allow to specify CLI options via environment vars add systemd unit file add myself as a contributor move systemd tip from README to DOCUMENTATION move doc files to /usr/share/doc/mgmt and tag as docs - Felix Frank (6): don't abort test suite on first failure packagekit: support Debian's 'all' architecture rename the 'stateok' return value to 'checkok' README: add the capnslog package to the build dependencies add puppet integration code add unit tests for UUID comparison and resource event passing - Martin Alfke (4): find on OS X needs the dot remove vet make go vet installation optional noop as resource meta param - Jack Henschel (2): Remove noop functionality from TODO Add recording and slides from DebConf16 presentation by James Shubin - Joe Julian (2): Change "uname -i" to "uname -m" to be portable Allow make overrides of version if git fails - Jeremy Thurgood (1): Check for old golang versions while installing dependencies. - Michał Czeraszkiewicz (1): Add Docker support - Raphaël Pinson (1): Typo in DOCUMENTATION.md - Sharad Ganapathy (1): Adding timer resource and usage examples * Mon Mar 28 2016 James Shubin 0.0.3 - James Shubin (53): This now works. w00t Update docs to refer to #mgmtlove patches Make debugging easier when running on Jenkins Switch to CentOS-7.1 for OMV tests. Add test case to match headers Update web articles Add a link to my article about debugging golang Add more mgmtlove tags Add DevConf.cz video recording Add link to slides from Walter Heck Update link to video Update README with new video Rename type to resource (res) and service to svc Add great article by felix frank Change API from StateOK/Apply to CheckApply() Update README with small fixes Make sure to error on test Fix golang 1.6 vet issue Add some fixes for building in tip or with golang 1.6 Fix Makefile warnings on Travis Add package (pkg) resource Improve go vet testing The svc resource should use the private system bus of course Update items for Jenkins tests Rename GetRes() which is not descriptive, to Kind() Clean up the examples/ directory Fix file resource regression Update Makefile plumbing and associated misc things Bump go versions in travis Actually update to 1.6 in travis Add initial "autoedge" plumbing Make resource "kind" determination more obvious Exec variable should use pre-existing error variable Split out some of the pkg CheckApply logic Add pkg auto edge basics with packagekit improvements Add some of the pkg and svc autoedge logic Golint fixes Add a threshold based golint test case Switch bc for awk Update make deps script to make it better for debian folks Update README and docs with information about new blog post Refactor out noop resource into a separate file Split the Res interface into a Base sub piece Update context since etcd upstream moved to vendor/ dir Add golint test improvements so we detect branches more cleverly Avoid errors on golint test with travis Support "noarch" style packages in arch check Add initial plumbing for autogroups Graph cleanups to make way for the autogroup feature! Add resource auto grouping Force process events to be synchronous Add grouping algorithm Allow failures in 1.4.x because of etcd problem - Daniele Sluijters (1): docs: Add Features and autoedges section - Rob Wilson (1): build requires (at least) stringer - add package which contains missing dependency - Xavi S.B (1): Fix broken link to graph.yaml section * Fri Feb 12 2016 James Shubin 0.0.2 - James Shubin (92): Add better reporting of errors in yaml formatting test Add travis-ci integration Fix small typo Put all the deps in one script Small grep flag fix so command is idempotent Add omv support Add missing watch event for files Add more shields! Add tag script Update gofmt test to allow version 1.5 Add equals sign to pass in variables Don't format or check omv.yaml syntax Reorganize testing for developer efficiency Mega patch Add graphviz generation and visualization Ira deserves to be mentioned in the THANKS list Update README Support N distributed agents Fix up go vet errors and integrate with ci Add missing stringer dependency Add information on which libraries are being used Refactor etcd into object and add exit timers Fix go vet error Hello 2016! Merge type comparison into a single function call Add exec type and fix up a few other things Fix effective off-by-one error in dependency processing Clean up better The noop type is not useful in this example Clean up the distributed example for clarity Simplify converge checker Catch a different form of etcd disconnect Fix dependency issue Fixup state related items Add state caching for most types Add state caching and invalidation to service type Avoid panic's when referencing non-existing objects Exit if program was not compiled correctly Limit the number of initial start poke's required Add link to first blog post Remove useless noop types Many examples now exist Improve wording in README.md for clarification Add information on providing good logs Make sure to unpause all elements when resuming Bump golang versions in travis Fix failure of go 1.4.3 due to missing `go vet` Golint fixes Don't generate file watch events if disabled Update faq to add etcd vs. consul answer I guess we'll have to stick with the name for now Add golang stringer to deps Add shell based test harness Avoid any possible errors with git describe Fix string issues in the build Travis: don't sully the homepage with broken test branches Enable shell tests Work around old go versions not supporting equals sign Add CentOS jenkins ci hooks Add gopath Makefile target Add centos-ci script to mgmt for independence and for make gopath Fix typo Skip yamlfmt on jenkins too Be more specific in error messages for easier debugging Work around missing JENKINS_URL regression Add missing ^ character Pass jenkins url through to child machine I give up, let's see some debug output Try and pass through with export Add gobin to path in an attempt to make it easy to find go binaries Add a fan in example and test Add the ability to run individual shell tests manually Allow unbound variables like "$1" Add a fan in, fan out example and test Cleanup the README file Make it easier to use converged-timeout Add a simple test for reproducibility Only format check tracked files Add a simple bashfmt test Binary is not reproducible on travis! Why not? Add a TODO list to serve as a near term roadmap Update README Will this fix Jenkins? Actually fix the CentOS-CI builds (I hope) Add some special path variables and add centos-ci dependencies Path fixes to avoid overwriting each other Fix up path issues with vtest+ Pave the way for Debian Improve shell scripts Make an initial RPM package for COPR Add build dependencies for remote COPR builder Add COPR badge - Felix Frank (3): README: make code actually display as multi line README: specify minimum golang version README: also list stringer as a dependency * Fri Sep 25 2015 James Shubin 0.0.1 - James Shubin (1): Initial public commit of mgmt