Skip to content

Change version numbering and other related things #1268

@bensku

Description

@bensku

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementFeature request, an issue about something that could be improved, or a PR improving something.priority: lowIssues that are not harmful to the experience but are related to useful changes or additions.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions