Ash Framework 3.0: Release Candidates!
The day is finally here! This is the culmination of years of work from the Ash team and community
We are ready for the adventurous folks to try out the latest release candidates of Ash and associated packages! Every Ash package (that the Ash team maintains) now has a published release candidate. See the GitHub issue for the status of known community packages. That same issue tracks our progress in updating example applications. While we can’t update those packages, any authors of community packages that need assistance with the upgrade should feel free to reach out with any questions/issues that they face.
We’ll be spending the next 3-4 weeks working on revamping our documentation, rewriting guides and adding a new cookbook (as well as giving a training at ElixirConf EU and Gig City Elixir!). During that time, we’ll be responding to feedback on 3.0, working out any kinks, and getting things ship-shape for the official launch.
What is changing?
While there are far too many things to put them all here, I want to give those who haven’t been following along with our 3.0 teasers an idea of where the focus is for Ash 3.0. There are three themes that cover most of the changes:
-
Security: We want to make sure that Ash is safe and secure by default, and that it is free of foot guns that could lead to security issues, data consistency or other critical failures. Some examples of this are:
-
Simplicity: Ash is a huge ecosystem, and there is a lot to learn about how it works. Every confusing term and inconsistency increases the mental burden on developers, and increases the likelihood of bugs and wasted time. Some examples of this are:
-
Developer Experience: With 2.x versions adding support for atomics and bulk actions, the core functionality of Ash is in a very good place. This gives us the time and mental cycles to devote to developer experience. While many of the 3.0 changes are focused on DX, we also expect to see a much greater focus on this moving forward! Some examples of this are:
How do I upgrade?
It is very important that you read and follow the upgrade guide! You will need to go through it section by section and consider if there are changes from that section that you must make. Don’t forget that some packages have their own upgrade guides for breaking changes contained in that package. Links to those guides are at the top.
We were initially targeting 1 developer day for an upgrade. I don’t think we managed to keep things quite so simple, but our initial feedback is good that the upgrade is a manageable piece of work.
What if I need help?
If you encounter an issue or change that is not covered in the upgrade guide please contact us or open a PR to add to the guide. Even if it’s just a note reminding folks to look out for something that might be a gotcha. Every little bit helps
Feel free to ask questions here on the forums or on our discord server if you need assistance.
What about 2.x?
Once 3.0 is out of release candidacy phase, Ash 2.x will receive a minimum of 6 months of critical bug fixes and security upgrades. Critical bug fixes include issues that have no reasonable workaround. Security upgrades includes things like updating potentially vulnerable packages, or fixing any issues related to policies, authentication, etc. We won’t be leaving folks in the dust, but it will absolutely be in your best interest to find a time in the next few months to upgrade, as there are many features in 3.0 to take advantage of and there are already more on the way!
Closing
It truly is a great time to be an Elixirist, and it is my sincerest hope that Ash Framework can contribute to Elixir and Elixir developers in tangible and significant ways. Thank you all for your time, contributions but above all, thank you for being an amazing community to be a part of!
I can’t wait to see what folks think of 3.0
Oh, and one more thing…
I’d like to tease a project that we’ve been formulating for some time now, and is finally underway in earnest.
This is just a mockup, not the final cover, we’re not graphic designers
You’ll be hearing more from @sevenseacat in the coming weeks