Releases, tags and version strings
Closed this issue · 2 comments
Hi there!
First of all, thanks for maintaining this fork, it's very useful.
I have created an Arch Linux User repository (AUR) package (https://aur.archlinux.org/packages/cops-mikespub-org) for your cops fork, and I am a little confused about what the release/development status is, and what I should be using in the package as an upstream source.
I notice there are tags that are created with a semver type name, and assumed those were the releases. However, within these tagged releases, the version strings (such as here:
seblucas-cops/src/Input/Config.php
Line 20 in a0cd882
So, are the tags just a development thing and should I only track actual github releases in the AUR? It's a bit confusing that when one installs from the 3.5.1 tag one ends up with COPS 3.4.6
written on the About page...
Thanks for any information or clarification you can provide.
Best regards,
Mark.
Hi @Marcool04 - sorry for the confusion and thanks for creating the package.
The git tags are indeed mainly used for development, people installing COPS directly from source (zip or git), or checking out bug fixes and changes before the next "release".
The Github releases are mainly used for packaging, e.g.:
- automatically trigger a new linuxserver/docker-cops container image,
- let other people know they might want to check out the new release and update their package, like
- synocommunity for the COPS package,
- @dunxd for the HA COPS Addon
- etc.
And that's when I typically update Config::VERSION as well, sorry about that.
As for the versioning itself, the major version corresponds to PHP compatibility (1.x, 2.x, 3.x) due to some restrictions e.g. with supported Synology or QNAP PHP versions, and I tend to finish any breaking changes in COPS before making the first release.
The minor version may include refactoring or package dependency changes, and smaller breaking changes within COPS, while the patch version is really for bug fixing or preparing changes for the next release.
Now the next question would be: which should you follow? That mainly depends on your target "audience", and how often you intend to release new versions. The Github releases are meant to be "stable", while the tags are more of a moving target...
Does that help at all?
Hi @mikespub !
Thanks for a fast, very clear and thorough answer. I understand much better now yes. The Arch Linux philosophy, as a rolling-release distribution, is usually to stick with the most up to date version of everything (without it being dev)... so in this case, I think the release cycle is frequent enough and matches with the rest of the ecosystem to a perfectly sufficient point that there is no need for me to go down the tags route.
I'll refactor my package to use just the release and subscribe to notifications for those.
Thanks again for clearing up my confusion.
All the best,
Mark.