diff --git a/docs/release-notes/0.0.27 b/docs/release-notes/0.0.27 new file mode 100644 index 00000000..cd5f9e41 --- /dev/null +++ b/docs/release-notes/0.0.27 @@ -0,0 +1,205 @@ +I've just released version 0.0.27 of mgmt! + +> 854 files changed, 28882 insertions(+), 16049 deletions(-) + +This is rather large release, as I'm not making regular releases unless there's +a specific ask. Most folks that are playing with mgmt are using `git master`. + +With that, here are a few highlights from the release: + +* Type unification is now extremely fast for all scenarios. + +* Added a modules/ directory with shared mcl code for everyone to use. This +includes code for virtualization, cups, shorewall, dhcp, routers, and more! + +* New core mgmt commands including setup, firstboot, and docs were added! + +* The provisioner got lots of improvements including handoff, and iPXE support. + +And much more... + + +DOWNLOAD + +Prebuilt binaries are available here for this release: +https://github.com/purpleidea/mgmt/releases/tag/0.0.27 + +They can also be found on the Fedora mirror: +https://dl.fedoraproject.org/pub/alt/purpleidea/mgmt/releases/0.0.27/ + + +NEWS + +* Primary community channel is now on Matrix. IRC is deprecated until someone +wants to run a bridge for us. + +* Type unification is now textbook, and blazingly (linearly) fast. The large +programs I'm writing now unify in under 200ms. Most small programs typically +unify in ~5ms. + +* Resource and edge names are always lists of strings now unless they're static. + +* We're up to golang 1.23 now. Older versions may still work. + +* Our type system now supports unification variables like ?1, ?2 and so on. + +* I fixed a bug in my contrib.sh script which omitted the Co-authored-by people! +This means Samuel Gélineau might have previously been missed in past release +notes which is tragic, since he has been by far the most important contributor +to mgmt. + +* Made toposort deterministic which fixes some spurious non-determinism. + +* Added the iterator filter function. (An important core primitive.) + +* Cleaned up the output of many resources to make logs more useful / less noisy. + +* Added constants, although I plan to change this to a `const` import package. + +* Added the list and map core packages. + +* Catch $ in metaparams to make the obvious bug cases easier for users to avoid. + +* Consul is now behind a build tag for now, since it's non-free. We'll remove it +eventually if there isn't a suitable free replacement. + +* Added mcl modules directory with a good initial set of interesting code. + +* Added the the "vardir" API to our "local" package. This is a helpful primitive +which I use in almost every module that I write. + +* Added a gzip resource! + +* Added a tar resource! + +* We moved the template() function to the golang.template namespace. This makes +it clear what kind of template it is and de-emphasizes our "love" for it as the +blessed template engine at least for now. + +* Added a sysctl resource! + +* Added a virt-builder resource for building images. We can now automate virtual +machines really elegantly. + +* A bunch of core functions were added including stuff in net, strings, deploy, +and more! + +* The local package got a neat "pool" function. There are lots of possibilities +to use this in creative ways! + +* The GAPI/deploy code got more testing and we found some edge cases and patched +them. You can now deploy in all sorts of creative ways and things should work +as expected! + +* Added a resource for archiving a deploy. This is deploy:tar and helps with +bootstrapping new machines. + +* Found a sneaky DHCP bug and fixed it! + +* Added mgmt setup and firstboot commands! This helps bootstrap things without +needing to re-implement that logic everywhere as bash too! + +* Added a "docs" command for generating resources and function documentation! + +* The provisioner got lots of improvements including handoff, and iPXE support. + +* New mcl modules include shorewall, dhcp, cups, some meta modules, misc modules +and more! + +* Added a BMC resource in case you want to automate your server hardware. + +* We now allow multiple star (*) imports although it's not recommended. + +* Hostname handoff is now also part of the provisioner. + +* Fixed two type unification corner cases with magic struct functions. + +* Added iPXE support to the provisioner. + +* Added pprof support to make it easy to generate performance information. + +* Added anonymous function calling. These are occasionally useful, and now the +language has them. They were fun and concise to implement! + +* 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. + +* The arm64 version doesn't support augeas, so it was built with: +GOTAGS='noaugeas' to get the build out. + + +TALKS + +After FOSDEM/CfgMgmtCamp 2025, I don't have anything planned until CfgMgmtCamp +2026. If you'd like to book me for a private event, or sponsor my travel for +your conference, please let me know. + + +PARTNER PROGRAM + +Interest in the partner program has been limited to small individuals with no +real corporate backing, so its been officially discontinued for now. If you're +interested in partnering with us and receiving support, mgmt products early +access to releases, bug fixes, support, and many other goodies, please sign-up +today: https://bit.ly/mgmt-partner-program + + +MISC + +Our mailing list host (Red Hat) is no longer letting non-Red Hat employees use +their infrastructure. We're looking for a new home. I've opened a ticket with +Freedesktop. If you have any sway with them or other recommendations, please let +me know: +https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/1082 + +We're still looking for new contributors, and while 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 (preferred) and ping us if you'd like +help getting started! For details please see: + +https://github.com/purpleidea/mgmt/blob/master/docs/faq.md#how-do-i-contribute-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 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: +Cian Yong Leow, Felix Frank, James Shubin, Joe Groocock, Julian Rüth, Omar Al-Shuha, Samuel Gélineau, xlai89 +We had 8 unique committers since 0.0.26, and have had 96 overall. +Run 'git log 0.0.26..0.0.27' to see what has changed since 0.0.26 + + +Happy hacking, +James +@purpleidea diff --git a/releases/fedora-latest.release b/releases/fedora-latest.release index 0d4c7d67..1187e028 100644 --- a/releases/fedora-latest.release +++ b/releases/fedora-latest.release @@ -1 +1 @@ -#fedora-39 +#fedora-41 diff --git a/releases/fedora-older.release b/releases/fedora-older.release index 4cc0e7ce..6125f4e6 100644 --- a/releases/fedora-older.release +++ b/releases/fedora-older.release @@ -1 +1 @@ -#fedora-38 +#fedora-40 diff --git a/releases/stream-latest.release b/releases/stream-latest.release index a79b9371..74d8ef2e 100644 --- a/releases/stream-latest.release +++ b/releases/stream-latest.release @@ -1 +1 @@ -#stream-9 +#stream-10 diff --git a/releases/ubuntu-latest.release b/releases/ubuntu-latest.release index 0a387704..b6876983 100644 --- a/releases/ubuntu-latest.release +++ b/releases/ubuntu-latest.release @@ -1 +1 @@ -#ubuntu-mantic +#ubuntu-noble