-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define versioning scheme #36
Comments
Another thing which I think we should talk about and finalize in an ADR is how we want to deal with soft forks, hard forks, etc. That is also the ultimate versioning. There are BIPs about versioning and the like in bitcoin: Also there are more strings attached. As we are starting over we do not have any needs for all the checks and feature negotiations in the protocol which we want to always include by default. We have a good change to get rid of some legacy stuff which we don't need to carry around.
An interesting discussion by bitcoin about breaking user space and to what extent to keep compatibility in RPC commands. There's the following versioning / interface items IMHO:
Regarding P2P interface and blockchain version bits I'd vote for starting over. As for versioning in general, as long as the network goes permissioned I think we can go |
One more aspect is if we want to reflect the upstream version somehow in our versioning scheme. |
@cornelius I'd say we want to mention it in the changelog whenever we merge from upstream but I would not tight ourselves to their versioning, we are our own project at the end and even if we take huge contributions from bitcoin we still wanna retain independence and flexibility to arbitrarily deviate from it. |
There has not been any activity in the past month. Is there anything to follow-up? |
1 similar comment
There has not been any activity in the past month. Is there anything to follow-up? |
There has not been any activity in the past 10 days. Is this still active? |
The software needs to be versioned and we need to agree on a scheme how to do that. While it's fun to debate the millions of possible schemes we should not overthink this and come to a practical solution.
It probably is helpful if the version expresses compatibility expectations in some way so users can tell from the version number what they need to do when updating, e.g. using the patch level to indicate a compatible change which is safe to upgrade, the minor version for new features which keep compatibility, and the major version to indicate breaking changes.
There are various ways how compatibility can be broken, e.g. protocol changes, configuration changes. What is most important to consider for the user here?
The text was updated successfully, but these errors were encountered: