Skript's current release system is not ideal. In case someone doesn't know, we have
- Development releases: usually quite stable, but sometimes utterly broken
- Nightly builds: broken more often than not, plus no changelog available
Release Numbering
I suggest the following scheme: MAJOR.MINOR.PATCH
MAJOR: new, breaking changes, or a huge amount of changes
MINOR: new features, bug fixes, no major breaking changes
PATCH: only bug fixes, no new features, absolutely no breaking changes
Code Organization
Most of Skript development, including pull requests, targets next MINOR release, and goes into master branch. If particularly breaking changes are put in, that MINOR release might transform into a MAJOR one.
Each MINOR release gets its own branch. Until next MINOR or MAJOR release comes, all bug fixes should be done in that branch, then immediately merged to master.
Feature branches (aliases-rework, for example) do not likely need any chances. The developer who has a feature branch can work pretty much however they want in that branch. It'll be merged to master when it is ready, as would happen currently.
Creating a Release
When a new MINOR or MAJOR release is somewhat ready, it will get its own branch, which tracks master. No new features should be added to that branch. Instead, a beta release should be created from it. If there are (serious) bugs, they should be fixed, and after that, new beta release should be created. When no new breaking bugs can be found from a beta release, it can be promoted to stable release.
Development releases from master branch can probably work as they do now. Their userbase will likely shrink significantly, since most people seem to prefer (apparent) stability of old Skript versions even now and would likely update to stable Skript versions instead.
Nightly builds can probably continue as they do now.
Transitioning
Next stable release has been labeled to be 2.3. However, the amount of changes since 2.2 is quite insane. Number of breaking changes is low, though. At least I hope so. We should consider making it 3.0, but that has its own problems too.
Challenges
Publishing stable releases does require that they are, in fact, stable. We need to test them more than current dev releases.
Github releases page is not be ideal for distributing beta, stable and development releases. Users might find it confusing, not knowing what to download. On the other hand, it requires no maintenance.
Everyone, please comment. What do you think about this idea? Would it be improvement over current situation?
@SkriptLang/developers @TheBentoBox
Skript's current release system is not ideal. In case someone doesn't know, we have
Release Numbering
I suggest the following scheme: MAJOR.MINOR.PATCH
MAJOR: new, breaking changes, or a huge amount of changes
MINOR: new features, bug fixes, no major breaking changes
PATCH: only bug fixes, no new features, absolutely no breaking changes
Code Organization
Most of Skript development, including pull requests, targets next MINOR release, and goes into master branch. If particularly breaking changes are put in, that MINOR release might transform into a MAJOR one.
Each MINOR release gets its own branch. Until next MINOR or MAJOR release comes, all bug fixes should be done in that branch, then immediately merged to master.
Feature branches (aliases-rework, for example) do not likely need any chances. The developer who has a feature branch can work pretty much however they want in that branch. It'll be merged to master when it is ready, as would happen currently.
Creating a Release
When a new MINOR or MAJOR release is somewhat ready, it will get its own branch, which tracks master. No new features should be added to that branch. Instead, a beta release should be created from it. If there are (serious) bugs, they should be fixed, and after that, new beta release should be created. When no new breaking bugs can be found from a beta release, it can be promoted to stable release.
Development releases from master branch can probably work as they do now. Their userbase will likely shrink significantly, since most people seem to prefer (apparent) stability of old Skript versions even now and would likely update to stable Skript versions instead.
Nightly builds can probably continue as they do now.
Transitioning
Next stable release has been labeled to be 2.3. However, the amount of changes since 2.2 is quite insane. Number of breaking changes is low, though. At least I hope so. We should consider making it 3.0, but that has its own problems too.
Challenges
Publishing stable releases does require that they are, in fact, stable. We need to test them more than current dev releases.
Github releases page is not be ideal for distributing beta, stable and development releases. Users might find it confusing, not knowing what to download. On the other hand, it requires no maintenance.
Everyone, please comment. What do you think about this idea? Would it be improvement over current situation?
@SkriptLang/developers @TheBentoBox