-
Notifications
You must be signed in to change notification settings - Fork 32
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
Better requirements on MDF #2459
Conversation
The issue is that modelspec versions may become incompatible with modeci_mdf because it's no longer pinned. This happened with modelspec 0.1.5 -> 0.2.x, which is what prompted adding the requirement here. I'm not sure this would solve that problem, unless there was some similar |
I would go a step further and remove the upper pin on modeci mdf entirely. This is our dependency and we should be constantly testing with the latest version to surface issues quickly. |
This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):
See CI logs for the full diff. |
I think that problem is handled by dependabot, which would alert us within a day that a new version is compatible or not. If we do remove or relax the requirement so that something might break, we'd be blocked from making unrelated changes until it was resolved. If there was a guarantee for no interface changes based on version number for both modeci_mdf and modelspec, then we could pin based on that. |
Hey @kmantel, I understand the concern about getting blocked if there are breaking changes on mdf. However, I think setting permanent upper pins is just not the best approach for this. Why not remove the pin in general, and if such a breaking change occurs and is holding things up, then put the pin in place temporarily while its still breaking and blocking. Here is a good article on this topic by another RSE here at Princeton. I think we could also help prevent this by running the MDF PNL tests on MDF as well. |
This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):
See CI logs for the full diff. |
There are no permanent upper pins. Dependencies are handled by an automated tool that checks whether a new version introduces new bugs or not. At the moment the If there is a problem with released versions a simple approach would be to add Ideally, all dependencies would have both lower and upper cap and the CI would test both all max versions and all min versions (so we know when to bump the lower cap). |
I see your arguments for the current state @jvesely, but MDF is unique as a dependency here because it has PNL as a dependency itself, and usually requires the latest version. The problem arises since we need to test the development version of MDF with a recent PNL. The version will usually be incremented in dev, and not yet released, so MDF will be at, say v1.3 and any released PNL will insist on no more than 1.2, the latest released version, causing a conflict. I do think that using |
I don't think this conflicts with what I've said. Number of version digits varies and depends on package release policies. If psyneulink needs to work with modeci_mdf-0.4.1.x, then There already is a precedent of breaking changes in This is also the reason to use sharp comparison ( As for |
I'm perfectly happy with |
LGTM. added @kmantel for review as well. |
This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):
See CI logs for the full diff. |
I don't have an issue relaxing the requirements for just breaking changes. If a similar versioning pattern holds for modelspec though, and nobody objects, I'd prefer to leave a similar cap on modelspec like |
As a side note, I think the suggestion jvesely mentioned above #2459 (comment) to remove upper bounds from releases only would be worth looking into to gain the benefits of both approaches. My own hesitation is pretty much only on the development side, not the release side, at least for tentative version caps. |
@kmantel Since PNL doesn't use modelspec, only through MDF, it should be up to the chosen version of MDF to specify it's requirements on modelspec, which may change more rapidly than the MDF/PNL dependence. I've added an upper cap as you suggested in the modelspec dependence in MDF here: ModECI/MDF#313. |
This PR causes the following changes to the html docs (ubuntu-latest-3.7-x64):
See CI logs for the full diff. |
@pgleeson new release is up |
@davidt0x @kmantel I think this is a better way to specify dependencies for mdf/modelspec. PNL doesn't explicilty use modelspec, so should leave which version to use to mdf's dependencies.
This form for the dependency will mean it will use the latest mdf 0.4.x version. If we introduce a breaking change we bump mdf to 0.5.x and updated the dependency in pnl only then.