This is intended to start a discussion and exchange on how we can improve the experience for package authors, which was brought up by @robert on github in this issue:
What’s still unsolved is the problem that, through breaking changes we loose compatibility with many user-contributed packages, which makes timely upgrades to new Neos / Flow versions much harder.
I think that this can be improved greatly through tooling – if we provide a good concept for package authors how to maintain multiple branches and give them tools to make code adjustments a no-brainer, we can progress faster with more fundamental changes.
So thanks Robert for bringing this up. I do think we have some way to improve in this regard.
The problem to solve is allowing package authors to support multiple (breaking) major versions of Flow Framework with as little effort as necessary.
This could start with some best practices documentation on how to manage this up to tooling to automatically migrate code.
Right now, our go-to solution is code migrations, but those are not always used and if might not cover all cases. Maybe those need some more documentation on how to create them, or maybe there is some room for improvement in available logic (parse code to AST and replace tokens would be one idea).
So, please add your suggestions and ideas. If you are a package maintainer and are currently dealing with this issue, share your experience - what did you suffer with the most, what did help you? Do you have some process and what does it look like?