-
Notifications
You must be signed in to change notification settings - Fork 8
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
[Metacello]: Loosen XMLParser Dependency #16
base: master
Are you sure you want to change the base?
Conversation
@seandenigris XML-XPath is declaring the dependency not on a explicit and specific version (like v3.6.1) but onto a "floating tag" So we follow semantic versioning with MAJOR.MINOR.PATCH and with the additional "floating tag" allow for compatible "hotfixing" within the v3.6.x stream of versions without having every project who uses XML-XMLParser to adopt for every new release. So with this we can move/bugfix - but also guarantee some kind of compatibility. Details can be followed in https://semver.org If there is a "user project" using the Parser project it can decide if it wants to depend on With A one is in full control. With B you are in a balance between getting a stable version but also patches. With C things can become extremely shaky and easily leading to loading a broken incompatible set of the projects. If we would remove the tag and solely load the baseline the XML-XMLParser might move forward (and get some So unfortunately it would not make sense to accept this PR as your solution is not really solving it. How to move onHaving said that nonetheless the problem is of different nature: you have dependencies on different sides Two options:
|
The right thing here is not as clear to me so I'm not ready to close this. I'm well versed in semantic versioning, but the tradeoffs here don't seem justified IMHO. I tried to capture my doubts about the general best practice in this Pharo Dev post. In the mean time, at minimum, following semantic versioning while minimizing complication, I think we should track the major, not the minor, which will ensure backward compatibility with less maintenance cost. To address your final bullet point, trying to deal with this using the Metacello scripting API is a nightmare because it is not easily accessible from SmalltalkCI and would have to be duplicated in every downstream user - a cascade of dominos |
This was causing conflicts that may be unnecessary, as reported on the Pharo discord:
Let's see if the tests pass pending an answer from @astares