From 46b2fe0ebafd348ab96861785c74821a75f03f0a Mon Sep 17 00:00:00 2001 From: James Shubin Date: Tue, 26 Mar 2024 14:38:26 -0400 Subject: [PATCH] docs: Add old release notes These release notes used to live on the mailing list at: https://listman.redhat.com/archives/mgmtconfig-list/ until Red Hat killed off this excellent service recently. I'm adding them all here for reference. Before 0.0.9 there were no release notes. --- docs/release-notes/0.0.10 | 51 ++++++++++++ docs/release-notes/0.0.11 | 59 ++++++++++++++ docs/release-notes/0.0.12 | 87 ++++++++++++++++++++ docs/release-notes/0.0.13 | 89 +++++++++++++++++++++ docs/release-notes/0.0.14 | 81 +++++++++++++++++++ docs/release-notes/0.0.15 | 116 +++++++++++++++++++++++++++ docs/release-notes/0.0.16 | 104 ++++++++++++++++++++++++ docs/release-notes/0.0.17 | 111 ++++++++++++++++++++++++++ docs/release-notes/0.0.18 | 106 +++++++++++++++++++++++++ docs/release-notes/0.0.19 | 131 +++++++++++++++++++++++++++++++ docs/release-notes/0.0.20 | 145 ++++++++++++++++++++++++++++++++++ docs/release-notes/0.0.21 | 133 +++++++++++++++++++++++++++++++ docs/release-notes/0.0.22 | 160 +++++++++++++++++++++++++++++++++++++ docs/release-notes/0.0.23 | 102 ++++++++++++++++++++++++ docs/release-notes/0.0.24 | 161 ++++++++++++++++++++++++++++++++++++++ docs/release-notes/0.0.9 | 71 +++++++++++++++++ 16 files changed, 1707 insertions(+) create mode 100644 docs/release-notes/0.0.10 create mode 100644 docs/release-notes/0.0.11 create mode 100644 docs/release-notes/0.0.12 create mode 100644 docs/release-notes/0.0.13 create mode 100644 docs/release-notes/0.0.14 create mode 100644 docs/release-notes/0.0.15 create mode 100644 docs/release-notes/0.0.16 create mode 100644 docs/release-notes/0.0.17 create mode 100644 docs/release-notes/0.0.18 create mode 100644 docs/release-notes/0.0.19 create mode 100644 docs/release-notes/0.0.20 create mode 100644 docs/release-notes/0.0.21 create mode 100644 docs/release-notes/0.0.22 create mode 100644 docs/release-notes/0.0.23 create mode 100644 docs/release-notes/0.0.24 create mode 100644 docs/release-notes/0.0.9 diff --git a/docs/release-notes/0.0.10 b/docs/release-notes/0.0.10 new file mode 100644 index 00000000..4a266312 --- /dev/null +++ b/docs/release-notes/0.0.10 @@ -0,0 +1,51 @@ +I've just released version 0.0.10 of mgmt! + +NEWS + +57 files changed, 1991 insertions(+), 752 deletions(-) + +* There's a new resource called `KV`. Short examples exist, but I +haven't yet published a whole integration showing the usefulness. + +* A major race was fixed. The issue of what to do with BackPokes during +start/pause was never previously solved. I had this as an open issue on +my whiteboard for a while, and I finally got some time to work through +it. The answer wasn't that difficult, but I think it was shrouded in +some tunnel vision. See the commit messages and source comments for the +details. + +* The GAPI grew four new associated World API methods: StrWatch, +StrGet, StrSet, StrDel, and the associated etcd backed implementations. +These are quite useful when combined with the KV resource. + +* There are now P/V style counting semaphores available as metaparams. +This is particularly cool because the implementation is (AFAIK, +assuming no bugs) dead-lock free! This is mentioned in my recent blog +post. + +* See the git log for more NEWS, and sorry for anything notable I left +out! + +BUGS + +* There's a `concurrent map write` bug in the semaphore implementation +which is fixed in git master. Since it was a race, it was only caught +after this release was made. I should also figure out if the sema check +should go after the BackPoke or not. + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +James Shubin, Julien Pivotto, Michael Borden. +We had 3 unique committers since 0.0.9, and have had 30 overall. + +Happy hacking, +James diff --git a/docs/release-notes/0.0.11 b/docs/release-notes/0.0.11 new file mode 100644 index 00000000..7ee0ac3a --- /dev/null +++ b/docs/release-notes/0.0.11 @@ -0,0 +1,59 @@ +I've just released version 0.0.11 of mgmt! + +NEWS + + 20 files changed, 579 insertions(+), 126 deletions(-) + +* Added a missing mutex around the semaphore map which prevents +occasional panics + +* Removed exec pollint param which is not needed because of the poll +metaparam + +* Fixed a state rechecking bug in exec resource (things are faster now) + +* Fixed the major annoyance of exec resources receiving main's signals. +If we would ^C the main mgmt, the child processes would receive this +too which was incorrect. + +* Fixed the deadlock on resource errors. This meant that previously if +a resource failed, we would deadlock the graph from shutting down. This +was bad and I'm glad it's now fixed. Sorry about that! + +* Improved the backpoke logic to not require semaphores since we used +to take the lock even when we were going to backpoke which was +unnecessary. + +* Added fast pausing to the graph. This means that a ^C or a pause +transition used to wait for the whole graph to roll through, but it now +finishes after the currently running resources finish executing. Read +the commit messages for more background here including the discussion +about a possible Interrupt() addition to the resource API. + +* Prometheus support has been updated! + +* See the git log for more NEWS, and sorry for anything notable I left +out! + +BUGS + +* We're in pretty good shape now. There are some small issues, but +nothing major that I don't know about. + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +James Shubin, Julien Pivotto +We had 2 unique committers since 0.0.10, and have had 30 overall. + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.12 b/docs/release-notes/0.0.12 new file mode 100644 index 00000000..1bd612da --- /dev/null +++ b/docs/release-notes/0.0.12 @@ -0,0 +1,87 @@ +I've just released version 0.0.12 of mgmt! + +Sorry if I've been more quiet than usual, I've had to focus a lot of my +time on GlusterFS related features ($dayjob official directives) and +work there. + +One goal is to try and use libmgmt to either wholly or partially re- +implement glusterd. As a result, a lot of my upstream focus has been +re-prioritized to features needed for that effort. + +I wrote a PoC called gd3: https://github.com/purpleidea/gd3 +(It has now bit-rotted compared to upstream mgmt, but is easy to fix.) +The initial scope looks like it will be much smaller, but hopefully +this is interesting to you too. Ping me if you'd like to help. + +We desperately need your contributions if we're going to get mgmt +standalone into a MVP. To motivate you, there's some great new stuff +that landed since 0.0.11, including: + +* a great new YAML parser from contributor Mildred + +* a huge pgraph refactor (to remove internal deps and cycles) + +* a great amount of new tests and testing + +and so much more... + +NEWS + + 76 files changed, 7549 insertions(+), 4269 deletions(-) + +* The svc resource now also supports user services + +* There's a fabulous new yaml parser that fixes a longstanding issue in +my original code. Try it with --yaml2. I'll remove the old one +eventually. Thanks to contributor Mildred for this great work! + +* Refactored the lib/ etcd usage into the GAPI's for a cleaner main + +* World API grew some new methods for libmgmt users + +* pgraph refactor and cleanup, now it's a fairly clean standalone pkg + +* pgraph functions to flatten/merge in subgraphs along with examples + +* Giant resource refactor to hopefully make things more logical, and to +simplify the resource API. This also introduces the mgraph struct to +add the higher level graph knowledge outside of pgraph. + +* A partial implementation of a "Graph" (recursive subgraph?) resource! +See the code for details, as help is wanted to finish this. This should +help elucidate what the most elegant design for the mgmt core should +be. + +* Send/Recv support for the exec resource as output, stdout, and stderr + +* GAPI improvements to support exit requests and fast pausing + +* AutoEdge API improvements including a fix+test for a regression + +* A possible fix for the possible etcd server startup race + +* A fun amount of new tests all over including for gometalinter + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* We fixed a bunch of stuff, and added more tests! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +James Shubin, Julien Pivotto, Mildred Ki'Lya +We had 3 unique committers since 0.0.11, and have had 30 overall. + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.13 b/docs/release-notes/0.0.13 new file mode 100644 index 00000000..9d661c78 --- /dev/null +++ b/docs/release-notes/0.0.13 @@ -0,0 +1,89 @@ +I've just released version 0.0.13 of mgmt! + +I guess this is an appropriate number for a scary October release. + +We recently re-licensed to the more permissive GPL. I put a lot of +thought into it, and also wrote up a short blog post about some of the +reasoning. It's here: + +https://ttboj.wordpress.com/2017/10/17/copyleft-is-dead-long-live-copyl +eft/ + +If you read to the end you'll also see that Red Hat is not funding my +mgmt work anymore. This is too bad, and means I'll only have small +amounts of personal time available to work on this. If you'd like to +help fund my work, or know someone who'd like to, please let me know! + +Having said that, there's some great new stuff that landed since +0.0.12, including: + +* new resources from new contributor Jonathan Gold (aws, group, user) + +* an HCL frontend from new contributor Chris McKenzie + +* polish in a number of places including in the nspawn resource + +and so much more... If you'd prefer to have releases more often, then +please let me know! Lastly, the language and a number of associated +parts are on its way. I hope to push this monster patch to git master +before February. + +It's also worth mentioning that we have 17 resources now! wow. + +NEWS + + 140 files changed, 3921 insertions(+), 848 deletions(-) + +* Many improvements to tests, testing and small fixes to avoid false- +failures on travis. + +* golint now reports 0 issues. + +* An HCL frontend if you'd prefer that to the YAML. Also a great +example of how to plug in a new frontend. + +* An update to golang 1.8 as the minimum version required. + +* Bump the etcd version to 3.2.6+ -- Looking forward to a 3.3 release +which should probably include some patches we upstreamed. + +* Addition of new user and group resources. These also include a bunch +of automatic edges. + +* Addition of an AWS resource! I've wanted this for a while, as it +demonstrates nicely how event based cloud resources can fit nicely into +our design. There's still a lot to do, and we have some suggestions for +Amazon too. If you have a contact there, please put me in touch! + +* Our nspawn resource is more polished now. + +* See the git log for more NEWS, and for anything notable I left out! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is free and friendly. You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +AdnanLFC, Arthur Mello, ChrisMcKenzie, Dennis Kliban, Ismael Puerto, +James Shubin, Jonathan Gold, Juan Luis de Sousa-Valadas Castaño, Juan- +Luis de Sousa-Valadas Castaño (although I suspect the last two are the +same ;)) + +We had 9 unique committers since 0.0.12, and have had 38 overall. +Run 'git log 0.0.12..0.0.13' to see what has changed since 0.0.12 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.14 b/docs/release-notes/0.0.14 new file mode 100644 index 00000000..8173fc4e --- /dev/null +++ b/docs/release-notes/0.0.14 @@ -0,0 +1,81 @@ +I've just released version 0.0.14 of mgmt! + +> 118 files changed, 2688 insertions(+), 974 deletions(-) + +There's some great new stuff that landed since +0.0.13, including: + +* amazon AWS EC2 resource is now in git master. + +* more automatic edges from new contributor Guillaume Herail (xiu) + +* a move to golang 1.8 or higher + +and so much more... This will probably be the last release before the +language lands in git master. It's a pretty giant patch coming :/ + +NEWS + +* We're > 1k stars on GitHub now. It's a silly metric, but ¯\_(ツ)_/¯ + +* Jonathan Gold has done a lot of hard work on the AWS EC2 resource, +and it's now in git master. There are still many things we'd like to +do, but it's a great start on what is a *monster* resource, and +hopefully it will inspire others to get involved. + +In particular, it was a great learning experience (for me in +particular!) about how bad the EC2 golang API is. There are some +notable design bugs we found, and if anyone from Amazon engineering +would like to reach out to us, we'd love to provide some constructive +ideas. + +* Guillaume Herail (xiu) wrote some really nice patches, and picked up +on the autoedges API very quickly. Hopefully he'll have time to work on +even more! + +* Paul Morgan sent us some nice shell fixups-- many more exist in an +open PR that didn't make it into this release. Hopefully we'll get +those merged by 0.0.15 + +* Felix Frank did a few Puppet compiler fix ups. I think he's been +refreshing his work with new resources recently... + +* We're looking for help writing Google, DigitalOcean, Rackspace, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* See the git log for more NEWS, and for anything notable I left out! + +EVENTS + +There are a bunch of upcoming mgmt talks and events! Stay tuned for +details in the coming email, but TL;DR: Linux Conf Australia, FOSDEM, & +CfgMgmtCamp.eu -- from three different speakers, and including a +hackathon too! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! Expect many new tagged #mgmtlove +issues within the month. + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is free and friendly. You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Felix Frank, Guillaume Herail, James Shubin, Jonathan Gold, +jonathangold, Julien Pivotto, Paul Morgan, Toshaan Bharvani +We had 8 unique committers since 0.0.13, and have had 41 overall. +run 'git log 0.0.13..0.0.14' to see what has changed since 0.0.13 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.15 b/docs/release-notes/0.0.15 new file mode 100644 index 00000000..4ba89dc0 --- /dev/null +++ b/docs/release-notes/0.0.15 @@ -0,0 +1,116 @@ +I've just released version 0.0.15 of mgmt! + +> 328 files changed, 29869 insertions(+), 943 deletions(-) + +(Yeah, that's almost 30k+ LOC) + +There's some great new stuff that landed since 0.0.14, including: + +* THE LANGUAGE (mcl) + +* "Deploys": a distributed way to push code into your cluster + +* Scheduling (as a reactive function) + +* Better testing + +* a move to etcd 3.3+ and golang 1.9+ + +and so much more... This is a monster release. Please try out the +language and all the other new features today :) + +NEWS + +* We released the language. Please play around with it :) It's time to +get used to this cool new paradigm. Learn more from the... + +Blog post: +https://purpleidea.com/blog/2018/02/05/mgmt-configuration-language/ + +Video: +https://www.youtube.com/watch?v=NxObmwZDyrI + +Docs: +https://github.com/purpleidea/mgmt/blob/master/docs/language-guide.md + +Function guide: +https://github.com/purpleidea/mgmt/blob/master/docs/function-guide.md + +And tons of code all over git master. Check the lang/ folder. + +* There is a reactive scheduler in the language. Use your imagination, +or play around with: +https://github.com/purpleidea/mgmt/blob/3ad7097c8aa7eab7f895aab9af22338 +c0cf82986/lang/funcs/core/schedule_polyfunc.go#L18 + +* There is a "deploys" feature. It's not documented yet. You should +poke around if you're curious. Consider this an early soft release. + +* There is a FS implementation to store files in a POSIX-like layer on +top of etcd. It's used by deploys. It needs more tests though :) + +* The language grew two "simple" API's for implementing functions, so +that new functionality can be exposed in the mgmt language. + +* The language grew two ways to specify edges between resources: either +internal to the resource, or externally as standalone edges. + +* The language now supports optional resource parameters via the +"elvis" operator. This keeps things type safe and avoids needing an +"undef" or "nil" in the language. This operator also works for edge +declarations. + +* New contributor Johan Bloemberg has been on fire sending patches! +He has already made some great improvements to our Makefile for +testing, and the addition of the env* functions in the language, with +much more code pending in open PR's. + +* Initial debian packaging has been added. It now needs a maintainer to +build, upload, and love it :) + +* We have an early emacs major mode for "mcl", our language. + +* Lots of new documentation has been added. Particularly for developers +wanting to contribute to the project. + +* We're looking for help writing Google, DigitalOcean, Rackspace, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* See the git log for more NEWS, and for anything notable I left out! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many new tagged #mgmtlove issues were tagged: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. +This is free and friendly. You get to improve your skills, +and we get +some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Carsten Thiel, dsx, James Shubin, Joe Julian, Johan Bloemberg, Jonathan +Gold, jonathangold, karimb, Oliver Frommel, Peter Oliver, Toshaan +Bharvani, Wim +We had 12 unique committers since 0.0.14, and have had 48 overall. +run 'git log 0.0.14..0.0.15' to see what has changed since 0.0.14 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.16 b/docs/release-notes/0.0.16 new file mode 100644 index 00000000..b964a092 --- /dev/null +++ b/docs/release-notes/0.0.16 @@ -0,0 +1,104 @@ +I've just released version 0.0.16 of mgmt! + +> 220 files changed, 14243 insertions(+), 9491 deletions(-) + +Woo... + +There's some great new stuff that landed since 0.0.15, including: + +* A giant engine re-write! (Makes resource writing more elegant too.) + +* New resources!! + +* New language features!!! + +and so much more... This is a monster release. Please try out the new +features today :) + +NEWS + +* New resources include: net, mount and docker:container. Jonathan was +responsible for all of these. Please take them for a spin! He's looking +for a job too, and would probably be happy to get paid to work on mgmt. + +* We're > 1.5k stars on GitHub now. It's a silly metric, but ¯\_(ツ)_/¯ + +* A giant engine refactoring/re-write was done. This cleaned up the +code significantly, and made it more elegant to write resources. +Unfortunately there is one small bug that I missed and that I haven't +fixed yet. It rarely happens except during some of our tests during +shutdown, which causes intermittent failures. It shouldn't block you +playing with mgmt. + +* The language "class" and "include" statements have been added. These +are important pieces for writing reusable modules which are coming +soon. Try them out! (This comes with a bunch of tests too.) + +* We have an integration testing framework. It's pretty cool, it spins +up a full mgmt cluster and runs stuff. Try it out or add some tests. + +* I had fun fixing a big bug: 06ee05026b0c743d19c7d62675f8ddeabdc8dd4f + +* I removed the remote execution functionality from core. I realized it +could be re-written as a resource, and it was also in the way from some +other cleanups that were more important. Half the new code is done, +ping me if this is a priority for you or you want to help. + +* I also removed the HCL front-end, because mcl is usable enough to be +more fun to play with, and I wanted to refactor some code. If someone +really wants it back, let me know. + +* We have some release building scripts in git master, so you can now +download pre-built (with fpm) RPM, DEB, or PACMAN packages! They're +signed too. https://github.com/purpleidea/mgmt/releases/tag/0.0.16 + +* We're looking for help writing Google, DigitalOcean, Rackspace, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +MISC + +I took a bit of a break recently to catch up on some life stuff, but I +think I'm back on track. While git master hasn't been especially busy, +there's an active feature branch at feat/import which contains some fun +stuff, with a very WIP giant patch still sitting on my machine. I hope +to finish it up soon and then do another release. That branch contains +one of the last big features before I'll really be ready to run mgmt on +my personal servers! + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many new tagged #mgmtlove issues were tagged: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. +This is free and friendly. You get to improve your skills, +and we get +some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Alan Jenkins, James Shubin, jesus m. rodriguez, Jonathan Gold, +jonathangold, Lauri Ojansivu, phaer +We had 7 unique committers since 0.0.15, and have had 52 overall. +run 'git log 0.0.15..0.0.16' to see what has changed since 0.0.15 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.17 b/docs/release-notes/0.0.17 new file mode 100644 index 00000000..a7643a29 --- /dev/null +++ b/docs/release-notes/0.0.17 @@ -0,0 +1,111 @@ +I've just released version 0.0.17 of mgmt! + +> 269 files changed, 13281 insertions(+), 1633 deletions(-) + +There's some very useful stuff that landed since 0.0.16, including: + +* Modules and import system now exists! +* A lot of tests, fixes and a huge new test infra was added +* Merging puppet with mcl code is now possible (madness!) +* We made a small change to the cli UI +* Bump to golang 1.10 (please update your environments) + +And much more... + +DOWNLOAD + +Prebuilt binaries are available here: +https://github.com/purpleidea/mgmt/releases/tag/0.0.17 + +NEWS + +* One of the biggest missing features was the lack of a module/import +system. After some initial exploration on what turned out to be a dead- +end, I found what I think is a very elegant approach, which is now in +this release. Please try it out, there are docs available. I hope to +write a blog post about it soon. + +(There's one additional "kind" of import that I'm considering, similar +to a macro "#include", that I might add. To be determined. Let me know +if you find anything missing as of today.) + +* Felix added the first version of his mcl+puppet frontend. This should +allow you to more cleverly merge legacy puppet environments with mcl +code. It's fantastic, take a look. + +* Jonathan added a systemd-timer resource. This is a great replacement +for cron. + +* We changed the CLI ui to improve the determinism of the frontend +selection. Basically we changed from: `mgmt run --lang code.mcl` to: +`mgmt run lang --lang code.mcl`. Remember to put --tmp-prefix after +`run` directly where it is used. + +* We made a whole bunch of cleanups to the test infra, added new test +infra for testing complex mcl modules and the import/module system, and +of course added new tests. + +* You can pass a list of strings as the resource name to build that +many resources. (Looping/iteration!) + +* You can specify all the metaparams and auto-* properties in mcl now. + +* Native mcl code can be used to write imported core code. + +* There was a bug that snuck into the pkg res. This has now been fixed. + +* A small, long-time copy+pasta error bug was fixed in Exec. + +* Virtually all the imports of the "log" package are at the top-level +now. This will make moving to a new logger easier in the future. I have +an innovative logger idea that I have a design for that I'll eventually +get to. + +* A few workarounds for occasional test failures were added. Some +legacy code needs a cleanup, and it's not done yet. Fortunately, none +of these issues seem to occur in real-life as far as I can tell, and +are caused by closing down mgmt at weird times. + +* Found a bug (now fixed) in the upstream lexer Yikes! See: +57ce3fa587897d74634c1216af67dd42252c64e5 + +* We're looking for help writing Amazon, Google, DigitalOcean, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many new tagged #mgmtlove issues were tagged: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Felix Frank, James Shubin, Jonathan Gold, Kevin Kuehler, Michael Lesko- +Krleza, Tom Payne, Vincent Membré +We had 7 unique committers since 0.0.16, and have had 56 overall. +run 'git log 0.0.16..0.0.17' to see what has changed since 0.0.16 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.18 b/docs/release-notes/0.0.18 new file mode 100644 index 00000000..546b4223 --- /dev/null +++ b/docs/release-notes/0.0.18 @@ -0,0 +1,106 @@ +I've just released version 0.0.18 of mgmt! + +> 202 files changed, 5606 insertions(+), 1880 deletions(-) + +There's some great stuff that landed since 0.0.17, including: + +* A re-write of the core engine algorithm +* Tests are very stable +* At least three old bugs were killed +* An infra to write tests for individual resources was added + +And much more... + +This adds a significant amount of polish and bug fixes to mgmt. We're +on the home stretch to MVP! + +DOWNLOAD + +Prebuilt binaries are available here: +https://github.com/purpleidea/mgmt/releases/tag/0.0.18 + +NEWS + +* There was a rare race that would panic the engine on shutdown. This +only seemed to happen in CPU/system call starved environments like +travis-ci. This was due to some ignorance when writing this early part +of the code base. The algorithm has been re-written, and this also +removed the use of at least one mutex. Things should be stable now, and +also much faster. (Although perf was never an issue.) + +* A hidden race/deadlock in the exec resource was found and killed. +Woo! Some new tools to help find these and other problems are in misc/ + +* The early converger code was re-written. I was not as knowledgeable +about golang in the very beginning, and this code needed refreshing. It +contained a rare deadlock which needed to be killed. + +* Toshaan added an uptime() function. + +* Julien added a method for generating some simple functions for the +language. + +* Lander added two new functions. + +* James added a new readfile() function, and other examples. + +* The template function now allows you to use imported functions. They +use underscores instead of periods for namespace separation due to a +limitation in the template library. + +* Kevin and I killed a tricky race in the SocketSet code! Woo :) Kevin +also added a great cpucount() fact! + +* James gave a number of presentations at FOSDEM. Some recordings are +available: https://purpleidea.com/talks/ + +* We're looking for help writing Amazon, Google, DigitalOcean, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* An unfortunate bug in the type unification code was found. This can +cause small code bases to take a lot of ram/cpu to run. This will be +prioritized in an upcoming release. Until then you'll have to avoid +fancy type unification. (Specify types you know when it has to guess.) + +If efficient type unification algorithms are your specialty, please let +us know, we'd like your help! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Felix Frank, James Shubin, Jeff Waugh, Johan Bloemberg, Julien Pivotto, +Kevin Kuehler, Lander Van den Bulcke, Toshaan Bharvani +We had 8 unique committers since 0.0.17, and have had 58 overall. +run 'git log 0.0.17..0.0.18' to see what has changed since 0.0.17 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.19 b/docs/release-notes/0.0.19 new file mode 100644 index 00000000..262777c2 --- /dev/null +++ b/docs/release-notes/0.0.19 @@ -0,0 +1,131 @@ +I've just released version 0.0.19 of mgmt! + +> 361 files changed, 10451 insertions(+), 3919 deletions(-) + +This is a very important (and huge) release and has some important +fixes that landed since 0.0.18, including: + +* A huge re-write of the elastic etcd clustering code base +* A significant improvement in the type unification algorithm +* An important import/class scoping bug was discovered and fixed +* New mcl functions and resource improvements + +And much more... + +What comes next is just polish, new features and small bug fixes! + +DOWNLOAD + +Prebuilt binaries are available here: +https://github.com/purpleidea/mgmt/releases/tag/0.0.19 + +NEWS + +* A giant etcd re-write was completed and merged. The elastic +clustering algorithm is not perfect, however it should suffice for most +use cases, and it's always possible to point mgmt at an external etcd +cluster if you don't understand the limitations of the automatic +clustering algorithm. The important part is that the core code is much +cleaner now, so hopefully races and bugs of ignorance are gone now. :) + +* I found an unfortunate bug in the type unification algorithm that +severely impacted performance for some types of code bases. This is now +fixed, and I hope we should not experience problems again! Special +thanks to Sam for talking me through the problem and understanding the +space better! Woo \o/ + +* An important import/class scoping bug was fixed. Thanks to Nicolas +for the bug report. We also added tests for this too! + +* Nicolas also added our first os detection function. os.is_debian and +os.is_redhat are now in core. Get your favourite os added today! + +* The polymorphic len function can also check str length. + +* The exec resource got a big cleanup. It also learned the interrupt +trait so that long running commands can be forcefully killed if need +be. + +* A fancy new test infra for testing functions over time was added. +Anytime we want to check our individual FRP functions are working as +expected, this is an easy way to add a test. This way, if we ever find +a bug, we can drop in a test with the fix. This actually helped find a +very subtle bug in readfile that nobody had experienced yet! + +* File res with state => exists but no content now performs as +expected. + +* Improved send/recv, since it was neglected a bit. Hopefully it ends +up being a useful primitive. + +* Added a new synchronization primitive that I'm called +SubscribedSignal. I found it very useful for building some of my code, +and I hope you'll find it useful too. I'd offer it upstream to the sync +package if Google didn't force their crappy CLA nonsense on everyone +who wanted to send a patch. :/ Death by 1000 paper cuts, I guess. + +* Added a match function in the new regexp core package. Try it out and +add some more functions! + +* Wouter has been testing mgmt and filling all sorts of useful bug +reports. We fixed at least one related to a report, and more are +planned for the next release. Wouter also sent in one cleanup patch to +remove some dead code. Welcome to the project! + +* We're looking for help writing Amazon, Google, DigitalOcean, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* There are a few known issues, in particular with some over eager +checking done in the Validate portion of two resources, that should +actually be runtime checks in CheckApply. As a result, if you intend to +change some state during the graph execution, the resource won't see +it. These should be very easy to fix if someone is interested in +writing the patch! + +TALKS + +* James will be presenting at this year's OSDC in Berlin. There will be +a workshop: https://osdc.de/events/mgmt-config-workshop/ +and a talk: +https://osdc.de/events/mgmt-config-the-future-of-your-autonomous-datacentre/ +Sign up soon if you want to guarantee a spot, as they're limited! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Adam Sigal, Felix Frank, James Shubin, Jonathan Gold, Michael Schubert, +Mitch Fossen, Nicolas Charles, Wouter Dullaert +We had 8 unique committers since 0.0.18, and have had 63 overall. +run 'git log 0.0.18..0.0.19' to see what has changed since 0.0.18 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.20 b/docs/release-notes/0.0.20 new file mode 100644 index 00000000..69092d58 --- /dev/null +++ b/docs/release-notes/0.0.20 @@ -0,0 +1,145 @@ +I've just released version 0.0.20 of mgmt! + +> 295 files changed, 8585 insertions(+), 1413 deletions(-) + +This was a very challenging release but it includes many useful changes +since 0.0.19, including: + +* Function values / lambdas exist and are first-class +* Over 70 new tests have been added! +* Core functions, classes, and globals can now be written in mcl code +* A new compiler "Ordering" step was added + +And much more... + +DOWNLOAD + +Prebuilt binaries are available here: +https://github.com/purpleidea/mgmt/releases/tag/0.0.20 + +NEWS + +* After a long and challenging road, I finally got function values and +lambdas merged. If you find any bugs, please let me know! You can now +treat functions as first-class values, and even use them as closures by +capturing variable state. + +* Over 70 new tests were added, most of which test the behaviour of the +new functions. + +* Core packages always allowed you to write new functions in pure +golang, but now you can implement new functions, classes, and even +variables in native mcl code! It's still desirable and perhaps +efficient in some cases to want native golang implementations, but all +good programs self-host some of their stdlib in their own language +eventually. + +* A new compiler step called "Ordering" was added. It's hidden inside +the SetScope step, but now lets us generate code ordering graphs and +determine exactly what to run first. + +* Light copying of Node's allows more correct and efficient function +graphs that can share common vertices and edges. For example, if two +different closures capture a variable $x, they'll both use the same +copy when running the function, since the compiler can prove if they're +identical. + +* Improved the type system slightly to allow advanced type comparisons. + +* The type unification algorithm was improved. Hopefully it should +solve all scenarios without needing the recursive solver which was very +slow. If you find a case that isn't speedy, please let us know! + +* Added subtest listing by using -short and -v in a test. This lets you +know what's available and how to run individual sub tests easily. + +* Support for the systemd STATE_DIRECTORY and xdg cache dir was added +by new contributor John! Thanks! + +* New contributor Adam added a pgraph test. + +* A bug in the systemd mount resource was fixed. Hopefully it should +work correctly now. + +* A bug that prevented us from allowing nested system imports was +fixed. Nest away! This will pave the way for us to automatically import +most of the golang standard library by doing: import "golang/regexp" or +golang/whatever". + +* Added an example showing that unicode is allowed in strings. + +* Fixed a rare race in the engine. + +* Added some new core functions including math.mod and datetime +improvements. + +* Changed the API to remove the use of --lang. This avoids the +stuttering. + +* Moved to golang 1.11 and etcd 3.3.13. The later includes a fix for an +un-catchable error scenario which we fixed in etcd. + +* Improved the pgraph library significantly so that we can generate +better graphs with accurate vertices based on the vertex pointers. + +* Added ArchLinux OS family detection. + +* We're looking for help writing Amazon, Google, DigitalOcean, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* There are a few known issues with some disabled code paths in the new +function value code. These issues don't *need* to be fixed, but if they +are, then we should see a slight performance increase. Happy to have +someone dig into these, and they shouldn't bother anyone. + +* Some of the pre-built binaries might not work on your system. We need +to start building them with the right dependencies so that `ldd` +related things are happy. For now, please try building yourself if the +build doesn't work for you, or help improve our build system. + +TALKS + +I'll be giving a talk at an upcoming mini-conference in Montreal. If +you're interested in attending, please let me know. +If you'd like to give an mgmt talk somewhere, please let me know! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Adam Sigal, Christian Rebischke, Felix Frank, James Shubin, Jan +Martens, Johan Bloemberg, John Hooks, Ward Vandewege +We had 8 unique committers since 0.0.19, and have had 67 overall. +run 'git log 0.0.19..0.0.20' to see what has changed since 0.0.19 + + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.21 b/docs/release-notes/0.0.21 new file mode 100644 index 00000000..d61f4537 --- /dev/null +++ b/docs/release-notes/0.0.21 @@ -0,0 +1,133 @@ +I've just released version 0.0.21 of mgmt! + +> 178 files changed, 4351 insertions(+), 829 deletions(-) + +This was a very lonely release but it includes some very useful +additions since 0.0.20, including: + +* The first mgmt meme! +* Working distro packages for Fedora, Debian, Ubuntu and Arch! +* Reversible resources! +* A deploy package to let you read files from the active deploy +* Improved file resource behaviours + +And much more... + +DOWNLOAD + +Prebuilt binaries are available here: +https://github.com/purpleidea/mgmt/releases/tag/0.0.21 + +NEWS + +* Someone made a cool mgmt meme. Look in art/mgmt_*_meme.jpg + +* Distro packages are now built properly, so they should all work now. +We have builds for Fedora-30, Fedora-29, Debian-10, Ubuntu-Bionic, and +Archlinux. If you'd like a build for a different distro/version please +let me know. + +* We finally got rid of the old `Compare(...) bool` API, and moved to +`Cmp(...) error`. We'll now get more useful information from Res +compares when they differ. Thanks to new contributor Donald Bakong for +working on this. He's ramping up his golang contributions, so we expect +to see more from him in the future! + +* We now have reversible resources. Basically if you create a resource +and specify the reverse metaparam, eg: `Meta:reverse => true`, then if +a resource is removed (either because a new version of code doesn't +have it anymore OR more importantly if it was inside an `if` block that +became false) then the engine will perform some "reverse" action for +it. For a file, if it was added, we'll remove it. If it was edited, +we'll undo the edit. If we added ugo+w, we'll remove that. And so on. +The engine bits are done, and as well so have the file resource bits. +It should be easy to add this for any other resource where it makes +sense. This will likely be a very powerful feature that we use a lot. + +* The file resource was changed slightly so that by default the "state" +is undefined. As a result, if you want a file to be created and none is +present, you need to specify the state. Otherwise specifying "content" +will only edit a file if it already exists, and otherwise be an error. +It turns out this is actually a better behaviour, even if it's not +necessarily intuitive for puppet users. It turns out it simplifies the +code drastically and makes the reversible file resource much more +logical. It seems that Puppet and Ansible got this wrong, but Cfengine +got it right. IIRC. Do you agree? (Look at the code!) + +* We now catch CR \r characters in code so that you don't wonder why +the compiler is telling you about unexpected whitespace. This should +make your life easier. + +* You can now read files from within the deploy. This can be used for +templates or anything else. This was one of the last missing things +that was blocking me from writing useful mcl modules. + +* Fixed a copy-pasta bug where the != operator (for strings only) was +actually doing an ==. Woops! The good news is that we've been shaking +out silly bugs because I've been using mgmt more and more. Hopefully +there aren't any woops ones like this left! + +* A bunch of function, class, and include tests were added. We're +getting really well tested! + +* We're looking for help writing Amazon, Google, DigitalOcean, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* Function values as args don't work yet. This is blocking us from +implementing functions like map/reduce/filter, because they'd want to +receive a function as input. TBH, I'm a bit tunnel-visioned on this, +because I'm not the compilers genius that you are. If you can help, +please let me know. I'll be posting a bunch of test cases that show +what's needed shortly. + +* Three patches have been submitted to mkosi to support the image +building I've been doing. They're not merged yet, so you'll have to +apply them yourself if you want to make your own distro images. This +isn't a major requirement anyone should have, but if they're not +merged, we'll store them here and apply them as needed. + +TALKS + +I'll be in Belgium for FOSDEM and CfgMgmtCamp in 2020. If I'm lucky +I'll have at least one mgmt presentation. I might also consider going +to DevConf.cz if I get a talk accepted. Feel to ping me if you'd like +to hack, get consulting, training, etc while I'm in Europe! + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Freenode IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +bjanssens, Donald Bakong, James Shubin +We had 3 unique committers since 0.0.20, and have had 69 overall. +run 'git log 0.0.20..0.0.21' to see what has changed since 0.0.20 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.22 b/docs/release-notes/0.0.22 new file mode 100644 index 00000000..c25d15c3 --- /dev/null +++ b/docs/release-notes/0.0.22 @@ -0,0 +1,160 @@ +I've just released version 0.0.22 of mgmt! + +> 579 files changed, 17984 insertions(+), 3136 deletions(-) + +Compared to the last release, this is a monster. Previously: + +> 178 files changed, 4351 insertions(+), 829 deletions(-) + +I apologize for not doing a release earlier, but to be quite honest, +I've been busy, the people who are playing with mgmt are doing their +own builds anyways, and there are still some unimplemented, pre- +production features missing. + +Also, I started a new job. News on my blog and how (if at all) it +affects mgmt is there. + +This is still an incredibly important release, so let's cover some of +the points! + +* This is the last release before we switch to go.mod +* IRC channel moved to #mgmtconfig on libera.chat after Freenode died +* New resources including tftp, dhcp, and http (all as servers, wow!) +* New string interpolation implementation with many tests +* Resource fields can accept complex structs and other types now +* Improved type unification solver and new invariants like generator +* A new polymorphic function API interface + +And much more... + +DOWNLOAD + +Prebuilt binaries are NOT available here for this release: +https://github.com/purpleidea/mgmt/releases/tag/0.0.22 + +NEWS + +* The file resource supports building files from other "fragments". +This is magic and automatic and real-time. Docs and examples are in the +repo. + +* The file resource (and others) have a new trait and queryable API to +make decisions based on what other resources are in the graph. + +* The file resource has a "purge" option to remove unmanaged files from +a managed directory. + +* A lot of built-in functions are auto-generated from the stdlib. Most +things you would want are now present, particularly if they're pure +functions. + +* There's a new consul KV resource. + +* File resources support symbolic modes now! + +* New tftp related resources are now present. They're great and I use +them to provision things! + +* A docker image resource was added. + +* First-class constants now exist. So you can do +$const.res.file.state.exists instead of typing "exists" which is prone +to typos. This is more verbose, but it's safer if that's your priority. + +* We found a bug with fuzzing! Cool, thanks Patrick! + +* We have dhcp server related resources. This is pretty cool when +combined with the tftp resource and you can provision a lot of stuff +from your laptop and one binary now. + +* We also have http server resources. Combined with the tftp and dhcp +resources mgmt starts to look like a powerful tool to greenfield a new +datacentre and then take over and manage it continuous. All from a +single, type-safe, code base. Of course you can do other things with +this, and I'm looking forward to seeing the ideas that I haven't +thought of yet! PS: An http:ui has been partially implemented too. Ping +if you want to know more. + +* Resource fields couldn't previously accept anonymous structs as types +because of how golang built its reflect library. Joe found an elegant +workaround, thanks! + +* The type unification solver was improved to support some new +invariants. This makes a lot of new things possible, and was done to +support new complex functions including the eventual addition of map, +reduce, and filter. One of the new invariants is a "generator" +invariant, so that unification can take into account the entire +relevant parts of the AST. It's not a textbook CS implementation, but +it's based on sound theory I think, and it seems to work great. If you +find an edge case, please let us know. + +* The polymorphic function interface was changed to use the new +unification logic. This makes a lot more sense. All the functions have +been ported to the new interface. + +* 42 + +* We're looking for help writing Amazon, Google, DigitalOcean, etc +resources if anyone is interested, reach out to us. Particularly if +there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* Function values as args don't work yet. This is blocking us from +implementing functions like map/reduce/filter, because they'd want to +receive a function as input. TBH, I'm a bit tunnel-visioned on this, +because I'm not the compilers genius that you are. If you can help, +please let me know. I'll be posting a bunch of test cases that show +what's needed shortly. + +(This is the exact message I wrote last time. I've made a lot of +progress since then, but motivation here has been low. Reach out if you +can help.) + +TALKS + +Hopefully CfgMgmtCamp in 2022 will be back on. If we're lucky and safe, +maybe I can travel there. TBD... Feel to ping me if you'd like to hack, +talk, whatever if I'm in Europe. + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Libera IRC, or ping this list if +you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +Although asking in IRC is the best way to find something to work on. + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +Adam Sigal, Ahmed Al-Hulaibi, David Randall, Derek Buckley, Donald +Bakong, Felix Frank, Francois Rompre-Lanctot, Ivan Pejić, James Shubin, +Jean-Philippe Evrard, Jimmy Tang, Joe Groocock, Jonathan Gold, Julien +Pivotto, Kenneth Hoste, Matthew Lesko-Krleza, Patrick Meyer, viq, Yohan +Belval +We had 19 unique committers since 0.0.21, and have had 82 overall. +run 'git log 0.0.21..0.0.22' to see what has changed since 0.0.21 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.23 b/docs/release-notes/0.0.23 new file mode 100644 index 00000000..e56a7dd7 --- /dev/null +++ b/docs/release-notes/0.0.23 @@ -0,0 +1,102 @@ +I've just released version 0.0.23 of mgmt! + +> 424 files changed, 7051 insertions(+), 2256 deletions(-) + +This is a fairly quiet release, and I'm mostly doing this to have a +permanent tag before I start really breaking git master. + +I'd like to apologize for things being kind of quiet. I've had to focus +on life and making money to pay my bills, and I've been struggling a +bit to complete some of the tougher algorithmic parts that I think are +necessary for a solid MVP. Hopefully I will succeed, but to do so, it's +going to be easier if I break git master and then sort things out +later. + +I'm feeling optimistic about the future, although help with some +complex concurrent programming would certainly be appreciated. + +With that, here are a few highlights from the release: + +* We're using go.mod, but I'm not keeping it up-to-date regularly yet. + +* We have an os.system(`cmd`) function! + +* We replaced go-bindata with the embed package. + +* We added a hetzner vm resource. + +* We did a giant lang/ package refactor. + +* Printf supports %v now (any type). + +And much more... + +DOWNLOAD + +Prebuilt binaries are NOT available here for this release: +https://github.com/purpleidea/mgmt/releases/tag/0.0.23 + +NEWS + +* We have our Libera IRC channel bridged to Matrix, so you can join +that way too. + +* We're looking for help writing Amazon, Google, DigitalOcean, Hetzner, +etc, resources if anyone is interested, reach out to us. Particularly +if there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS + +* Function values as args don't work yet. This is blocking us from +implementing functions like map/reduce/filter, because they'd want to +receive a function as input. + +(This is the exact message I wrote last time. I've made a lot of +progress since then, but motivation here has been low. Reach out if you +can help.) + +TALKS + +I don't have anything planned until CfgMgmtCamp 2024. If you'd like to +book me for a private event, or sponsor my travel for your conference, +please let me know. + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Libera IRC or Matrix, or ping this +list if you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +Although asking in IRC is the best way to find something to work on. + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +dantefromhell, James Shubin, Jef Masereel, Joe Groocock, Samuel +Gélineau +We had 5 unique committers since 0.0.22, and have had 85 overall. +run 'git log 0.0.22..0.0.23' to see what has changed since 0.0.22 + + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.24 b/docs/release-notes/0.0.24 new file mode 100644 index 00000000..019b9434 --- /dev/null +++ b/docs/release-notes/0.0.24 @@ -0,0 +1,161 @@ +I've just released version 0.0.24 of mgmt! + + +> 600 files changed, 13622 insertions(+), 6907 deletions(-) + +This is a huge and hugely important release! It has been a long time +coming. We have lambdas! I could not have done this without the +unrelentingly supportive and brilliant Samuel Gélineau. + +Getting past the blockers and tricky code changes was all thanks to +him. Cleanups, polish and making it more golang idiomatic was my doing. +(The easy stuff.) If Sam wanted to be a golang expert, he could have +done it all, but it was more sensible than I do all the mundane and +filler stuff. + +With that, here are a few highlights from the release: + +* We have working lambdas, including iter.map =D + +* We have a new function engine! + +* We have improved type unification! + +* We have an improved resource engine! + +* We have improved many of the internal API's. + +* We have so many tests. + +And much more... + +DOWNLOAD + +Prebuilt binaries are NOT available here for this release: +https://github.com/purpleidea/mgmt/releases/tag/0.0.24 + +NEWS + +* Our main tests are now in the excellent .txtar format. This makes +things much easier to manage. + +* The iter.map function can be named as such due to parser tricks! No +need to name it xmap anymore! + +* The unification solver has been greatly improved. We can infer a lot +more about function types. + +* The resources API uses the context package for closing Watch and +returning early from CheckApply. The next step would be to remove all +the resource-specific timeout code and make that a metaparam. + +* A new sync primitive has been added in case you'd like to use it +somewhere. We'd love help adding an even more complex one. Look in +util/sync.go for more information. + +* Sam added some beautiful type inference debugging that makes things +easier for those familiar with the standard literature. + +* An important bug in standalone etcd has been fixed. While embedded +etcd and automatic clustering isn't "supported" (it's buggy) the +status-quo of using your own etcd cluster is stable, and you can even +use the embedded etcd server in standalone mode... + +* This means you can run `mgmt etcd` and get the standard etcd binary +behviour that you'd get from running `etcd` normally. This makes it +easy to use both together since you only need to transport one binary +around. (And maybe mgmt will do that for you!) + +* I fixed and cleaned up some sketchy code in the resource engine. I +had been unmotivated to fix this for a while because I really wanted +lambdas first, but now that they are in, I took a good look at the +code, made some fixes, and I'm really happy with it now. + +* Metaparams are appropriately stateful between graph switches now. +Retry is the easy example. Limit/Burst need to be ported if you care +about these fine details. + +* A RetryReset metaparam has been added. This is another good example +of how powerful metaparams are and how much potential there is for +building systems with these and future ones. + +* A bunch of internal API's have been updated. This makes it better for +function and resource writers! Some GAPI changes also got pushed +through that make things clearer for those reading code. + +* We have a listlookup function. It's still missing syntactic sugar +though! + +* Our new function graph engine is called "dage". I think it's pretty +clever. There's a chance there is still a bug inside, but it's unclear. +Please report any issues. If you have some large machines I can test +very large and fast graphs on, please let me know. + +* Lambdas really work now! The txn and ref/gc code is pretty fantastic. + +* Many bugs have been killed! + +* We're looking for help writing Amazon, Google, DigitalOcean, Hetzner, +etc, resources if anyone is interested, reach out to us. Particularly +if there is support from those organizations as well. + +* Many other bug fixes, changes, etc... + +* See the git log for more NEWS, and for anything notable I left out! + +BUGS/TODO + +* Function values getting _passed_ to resources doesn't work yet, but +it's not a blocker, but it would definitely be useful. We're looking +into it. + +* Function graphs are unnecessarily dynamic. We might make them more +static so that we don't need as many transactions. This is really a +compiler optimization and not a bug, but it's something important we'd +like to have. + +* Running two Txn's during the same pause would be really helpful. I'm +not sure how much of a performance improvement we'd get from this, but +it would sure be interesting to build. If you want to build a fancy +synchronization primitive, then let us know! Again this is not a bug. + +TALKS + +I don't have anything planned until CfgMgmtCamp 2024. If you'd like to +book me for a private event, or sponsor my travel for your conference, +please let me know. + +MISC + +We're still looking for new contributors, and there are easy, medium +and hard issues available! You're also welcome to suggest your own! +Please join us in #mgmtconfig on Libera IRC or Matrix, or ping this +list if you'd like help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-con +tribute-to-the-project-if-i-dont-know-golang + +Many tagged #mgmtlove issues exist: +https://github.com/purpleidea/mgmt/issues?q=is%3Aissue+is%3Aopen+label% +3Amgmtlove + +Although asking in IRC/matrix is the best way to find something to work +on. + +MENTORING + +We offer mentoring for new golang/mgmt hackers who want to get +involved. This is fun and friendly! You get to improve your skills, +and we get some patches in return. Ping me off-list for details. + +THANKS + +Thanks (alphabetically) to everyone who contributed to the latest +release: +James Shubin, Kaushal, Laurent Indermuehle, Ofek Atar, Samuel Gélineau +We had 5 unique committers since 0.0.23, and have had 88 overall. +run 'git log 0.0.23..0.0.24' to see what has changed since 0.0.23 + +Happy hacking, +James +@purpleidea diff --git a/docs/release-notes/0.0.9 b/docs/release-notes/0.0.9 new file mode 100644 index 00000000..e9dda50c --- /dev/null +++ b/docs/release-notes/0.0.9 @@ -0,0 +1,71 @@ +I've just released 0.0.9! + +Release tags are now signed with my GPG key. + +From now on, I'm going to try and write a release email to the list +with information about each release. Here we go! + +NEWS + +* There were far more commits that went into this release than I was +expecting. I delayed a while because of some nasty races and deadlocks +I encountered when cleaning some cruft out of the engine. + +134 files changed, 5394 insertions(+), 2168 deletions(-) + +* We grew initial integration with Prometheus thanks to new contributor +`roidelapluie`. + +* The file resource can now chown/chmod files! Thanks to new +contributor `mildred`. + +* The virt resource can now hotplug/hotunplug cpus. This made for some +dope demos at CfgMgmtCamp. Special thanks to pkrempa for helping me +with the libvirt API. + +* Native testing of all the golang code is now enabled again. I broke +this when I split mgmt up into multiple packages. (Sorry!) Golang tests +in foo_test.go should now run and be tested automatically. I'd +especially like it if someone wrote some for pgraph/pgraph.go: +GraphSync(). + +* Documentation has been significantly improved. We have a resource +guide (for writing new native resources) and much more. We also now +build the docs as a RTD project: +https://mgmt.readthedocs.io/en/master/ +Patches welcome to make it style as pretty as GitHub markdown does. + +* See the git log for more NEWS, and sorry for anything notable I left +out! + +BUGS + +* I hope to resolve this soon, but it shouldn't block further +development on git master for now. The issue: if you make extremely +high speed graph changes to graphs involving the virt resource, it can +eventually cause a panic. This is being tracked here: +https://github.com/libvirt/libvirt-go/issues/7 (help welcome!) + +GLUSTERFS + +I've started working on some stuff for Glusterd so that it can embed +mgmt as a lib, and use the resource model to simplify cluster +management. This will involve writing Gluster resources in mgmt +(volume, brick, etc...) and all sorts of other fun stuff. If you'd like +to participate, please LMK! + +MISC + +We're still looking for new contributors, and there are easy, medium and hard issues available! You're also welcome to suggest your own! Please join us in #mgmtconfig on Freenode IRC, or ping this list if you'd like help getting started! + +THANKS + +We had 12 unique committers since 0.0.8, and have had 29 overall. +Thanks (alphabetically) to everyone who contributed to the latest +release: Daniele Sluijters, Daniel P. Berrange, Felix Frank, goberghen, +James Shubin, Julien Pivotto, Kaushal M, Lars Kulseng, Mildred Ki'Lya, +Sean Jones, Steve Milner, Tom Ritserveldt. + +Happy hacking, +James +@purpleidea