Comments (7)
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.
-
"What is a big change, what is a small change": Semantic versioning primarily distinguishes between breaking changes and regular updates rather than just big versus small changes. It emphasizes maintaining backward compatibility and only incrementing the major version number for breaking changes. For this project, it wouldn't be uncommon to see releases progress from
1.0.0
to1.599.0
without necessarily reaching a "major" 2.0 release. Only significant changes that break compatibility, such as fundamental backup strategy modifications or environment variable refactors, would warrant a major version change to 2.0. -
"How to automate semver": Automating semantic versioning is as straightforward as the date-based approach. Automation scripts would typically update the minor version, while major and patch updates can be handled manually. I can't imagine a need for patch updates in this project (where you needed to retro-actively update a previously released version) and major updates should be as painful to the maintainers as they are the users they're introducing the breaking change to - so avoid major updates.
-
"What's the syntax of the 'commit-message'": The commit message is agnostic of your versioning strategy. What you're doing now is sufficient.
-
"This doesn't force anything on contributors": Contributors largely impact the source code, while maintainers hold the authority to merge and release changes to the broader community. That said, the versioning strategy does not place any burden on contributors.
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!
from docker-palworld-dedicated-server.
https://github.com/jammsen/docker-palworld-dedicated-server/blob/develop/README.md
First link
from docker-palworld-dedicated-server.
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:
- develop (default) -> Image-Tags: develop & Sha7
- master -> Image-Tags: latest, master & Sha7
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?
from docker-palworld-dedicated-server.
@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.
from docker-palworld-dedicated-server.
Yeah for sure 😊
from docker-palworld-dedicated-server.
@justmiles feel free to join Discord and DM me - Whenever you feel like it and have time
from docker-palworld-dedicated-server.
Which discord server - do you have a link?
from docker-palworld-dedicated-server.
Related Issues (20)
- [Bug Report] Log file consumes all remaining HDD space associated with Docker system HOT 3
- [Feature Request] Implement server OoM crash detection and restart HOT 2
- [Bug Report] RCON Log gets cut off
- [Bug Report] New alias for rconcli with timestamp
- [Bug Report] After docker container update Server failed to start with permission denied HOT 11
- [Bug Report] Container backups also backup the Palworld built-in backups HOT 1
- [Bug Report] Automatic Restart stopped working HOT 2
- [Question] 您好,我在游戏中,会接受到容器显示的备份 通知,我想询问下这个备份通知能否不在游戏内显示,可以在容器日志中 HOT 3
- [Bug Report] No config found, generating one HOT 3
- [Bug Report] Your descriptive title here! HOT 1
- [Feature Request] Add support for Xbox-Dedicated-Servers HOT 1
- Server not starting after update. HOT 4
- [Feature Request] Toggle suggestions for the RCON backup messages to server HOT 9
- [Feature Request] The ability to allow advanced custom scripts HOT 5
- [Bug Report] Can't start docker container on Synology server anymore. HOT 1
- Add healthcheck to the dockerfile HOT 2
- [Feature Request] Support for new server options HOT 5
- [Feature Request] Add instructions / capabilities for importing existing saves HOT 5
- [Feature Request] Add ENV Support for server config setting SupplyDropSpan HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker-palworld-dedicated-server.