162 lines
5.7 KiB
Plaintext
162 lines
5.7 KiB
Plaintext
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
|
|
behaviour 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
|