We now have a robust task middleware system (including middleware that can modify task/resque enqueuing) and more sensible binary commands.
During this release we talked a lot about the release cadence of ActionHero.
Now that we have a fair number of enterprises using ActionHero, we need to be more mindful about handling the upgrade process, and making it as painless as possible. We’ve been folowing Semantic Versioning for a while now (since before v9.0.0), ensuring that any breaking changes result in a new major version increase. However… when there is that breaking version change, how do you upgrade your project? To that end, we’ve launched a new section of the AcitonHero documentation which includes release guides for each major verion.
We’ve discussed wether or not we should release major versions in many small bathes (leading to more, but smaller, breaking change releases) or if we should group collections of breaking changes into one release (creating bigger releases less often).
Operating under the assumption that work will continue at the same rate, and we’ll be *creating* the same number of breaking changes, we’ve opted to stick with "smaller breaking releases more often". The main reason for the decision was that folks don’t want to have to wait for a new feature to land in the master branch and be released. ActionHero’s release strategies are now defined:
Yes, #2 and #3 contradict on purpose! Finding the right balance is a job for the community. I do expect this cadence to slow down as the product continues to mature, until we release ~1 breaking release every 6 months. I expect us to reach that point in about a year.
One thing the AcitonHero community needs is a Backporter. Since we have agreed to release often, if there is a bugfix to the master branch, it is very likley that it won’t be easily translatable to an older branch. We are actively looking for a maintainer to own a major version that they are actively using.This will allow us to have a sort of "LTS" model for some older releases. Please join us on our Slack channel if this interests you.