releases: Add release notes for 0.0.27
I did this build with: `make release` followed by: GOTAGS='noaugeas' make release when the arm64 build failed.
This commit is contained in:
205
docs/release-notes/0.0.27
Normal file
205
docs/release-notes/0.0.27
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user