jammsen / docker-palworld-dedicated-server

Docker container to easily provision and manage Palworld Dedicated Server
https://hub.docker.com/r/jammsen/palworld-dedicated-server
MIT License
911 stars 158 forks source link

[Feature Request] use semantic versioning #266

Open justmiles opened 4 months ago

justmiles commented 4 months ago

Have you read the Important information text above

Describe the feature

Hi @jammsen - this docker image along with several others have proved to be a reliable source for ready-to-go servers. However, it's difficult to keep the container itself update without versioning.

Would you consider embracing semantic versioning for this repo?

https://semver.org

Additional information

Final checks

jammsen commented 4 months ago

Hey @justmiles In the begining phase of this project where we had a lot of releases and code changes i considered semver very hard, but i always came back to, what is a big change, what is a small change, how to automate semver analysis, whats the syntax of the "commit-message" will others follow this and not just over-explode my work to redo other commits?

Thats why i settled on releases based on the date 2024-05-05.1, would be the first release for today, as an example. This doesnt force anything on contributors. Also the people who want to auto-update or version-pin got involved so i create the following.

Branches:

This enables pinning to a commit and also enables people who want to use Watchtower.

I know theese are 2 entire topic, but in the end for automation they inter-twine with each other to give the user/admins/players the best experience.

How would you suggest to change all of that?

justmiles commented 4 months ago

Using a date-based versioning system is indeed a valid approach. While it may have a few shortcomings, considering the size of the project and the number of maintainers/contributors, you may find it to be the most practical approach. If you choose to continue using the date-based versioning strategy, the only adjustment I would encourage is to tag the source commit (git tag <YYYY-MM-DD.BUILD> <COMMIT ID>) with your releases to ensure alignment between the docker images and the source code.

If you are open to reconsidering semantic versioning, let me address some of the concerns you raised.

Regarding tools like Watchtower for automatic updates: I too automate my updates - I use Renovate, which effectively solves the same problem. Minor and patch releases are automatically updated, but most users prefer to avoid automatic installations of breaking changes. When a major release is available users are notified by their automation tool and can decide whether to approve the automatic deployment or perform a manual upgrade. This delineation between regular and breaking changes isn't captured with a date-based releasing strategy - discouraging automatic updates.

Again, a date-based approach is certainly valid. I'll personally still auto-update with the date-based tags and just fix-forward should any breaking changes get introduced.

Hope this helps!

jammsen commented 4 months ago

@justmiles Thanks for the long and somewhat complicated text 😄 Would you be willing to talk in Discord about this? I feel like a a few questions and i dont what to explode this on text in a issue which is somewhat and somehow limited creativly.

justmiles commented 4 months ago

Yeah for sure 😊

jammsen commented 4 months ago

@justmiles feel free to join Discord and DM me - Whenever you feel like it and have time

justmiles commented 4 months ago

Which discord server - do you have a link?

jammsen commented 4 months ago

https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/README.md First link