Ash Weekly: Issue #8
AshOps has joined the chat 🤯, reactor 🤝 mermaid, a small newsletter update, `ash_postgres.gen.migrations` gets cleaned up, and Beacon CMS is added to the installer!
Ash Weekly!
This is a super quick, informal update about the goings on in and around Ash Framework each week. If you find something interesting and think it should make it on this newsletter, drop a message in the #ash-weekly channel in our Discord server.
Shameless Plugs
Check out Ash Premium Support from Alembic.
Sponsor me if you like what I do.
AshOps - A mind-blowing surprise
James Harton, Ash core team member and local legend surprised us all *out of nowhere* with the sickest extension we’ve had in ages. AshOps lets you create mix tasks for your actions to essentially get a free CLI for any action in your app. This is utterly bonkers, and it “just works” so well. It’s packed with tons of amazing stuff (check out the `--filter` option for list actions 🤯). I didn’t even know he was working on this until he announced it, so we’re all discovering it together 🎉. Check out the example screenshot and demo! You can try it out in your apps right now 😎
Generate mermaid charts from reactors
Continuing on as the star player of today’s news letter, James also made it possible to generate mermaid charts from your reactors and it its *chefs kiss* awesome 🔥.
No more bug fixes in the newsletter
I want to keep iterating on the format of this newsletter. That includes making it better for readers but also easier for myself. I really screwed up by calling this Ash Weekly because now I’m on the hook every Friday 😂. From here on I won’t be including bug fixes unless they are very significant in some way. You’ll notice the newsletter is a lot shorter this way. This will save me a bunch of time and, well, I’m busy y’all.
AshPostgres resource generator improvements
Thanks to Lars Wikman doing some really interesting and fancy stuff with the `mix ash_postgres.gen.resources` task and subsequently finding a bunch of bugs and quirks in its behavior, it's been significantly cleaned up. I think this is a great time to remind folks of its existence. Did you know that you can generate Ash resources for every table in a postgres database with one command? Just point your repo at the database and run mix ash_postgres.gen.resources. 💰And then profit💰
Beacon CMS Installer
Beacon CMS is now installable on the Ash HQ installer! More and more awesome packages are adding igniter installers, and those installers are playing nicely with our packages and other tools too! Great for us, great for everyone 🎉 Ash and beacon play great together, myself and Leandro can’t wait to see what you all get up to with it.
Releases
Ash: 3.4.66-3.4.67
add `touching?` option to `changing/2` validation, which includes values that were touched at all even if they aren’t actually changing
don't show required errors for fields that have other errors. Often you end up with a situation where you get an error for an attribute, and therefore that field is not set, so you also get required error. This cleans up a bunch of form UX nicely.
Reactor: 0.14.0
You can now convert Reactors into Mermaid flow charts!
Igniter 0.5.30-0.5.32
Added `mix local.igniter` for easier upgrading
Improvements
Show docs for exception function, and list available keys automatically.
AshPostgres 2.5.7-2.5.10
Add a `--public` flag to `ash_postgres.gen.resources`, and default it to `true`. It makes the fields public, which makes for far easier prototyping which is typically what this task is used for.
Add a `--default-actions` flag to `ash_postgres.gen.resources`, which has it add default crud actions for the same reason as above.
AshOban 0.3.5
Add an atomic callback for the `run_oban_trigger/1` change, so you don’t have to `require_atomic? false` on actions that enqueue oban jobs. Barnabas has been really putting Oban through its paces and this is one of many great improvements he’s been handing down to `AshOban`.
Thank you!