-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Publish deprecation packages for all previously unused/disabled paths #2328
Comments
We need to determine the best way to "resurrect" the old modules. Do we roll back to the commit they were dropped on, branch, and tag a release specific for that module that retracts all the previous ones? It might also make sense to not just retract all previous modules, but maybe make a release that deprecates the packages and points users to the new replacement if was exists. I.E. the old |
So I dug into this a bit. I don't think that a For retracted commits to work there needs to be three things, go version 1.16 or later, a release that has the mod with the retract, and it to be tagged appropriately. So for modules we have removed we should roll back to the previous version and update the mod with the appropriate tag. I compiled a list of orphaned versions that I will attach at the end. For example. We no longer have an
This is blocked by #2412 Old version:
|
There are three ways to notify users not to use some sort of published code within the go ecosystem:
Note: None of these solutions will give a warning when building. Only 1, and 2 will give a warning if you try to list upgrades or There are two different problems that need addressing,
|
I have experimented a bit with this and created an experimental repo: https://github.com/MadVikingGod/mod-experiment |
Yes. #2938 |
I will go and try and find orphaned tags again so the list is up to date. But here is my working plan:
|
Not many versions have changed (kind of expected). I've only added bridge/opencensus/exam
|
@MrAlias and @Aneurysm9 Does this sound like a safe plan of action? |
Will you deprecate all the above packages at once? Or will this branch only contain one package deprecation? I am in favor of starting with a single package deprecation to ensure a correct workflow. Doing batches after that sounds good to me.
A deprecation notice needs to be added to the module (
I did some (somewhat incomplete) testing on this deprecation process and did not find the retract statement to be useful. Adding a complete retraction of all the module versions results in the retraction being ignored. The Go tooling looks to take the approach that it will still resolve some module version if you ask to use it. It will pick a retracted version if those are the only options. Based on the linked testing above, I expect the deprecation notice is going to be what we want. |
I was planning on doing multiple packages at once grouped by the version number. So there would only be one commit for
That is possible, and the exact message can be discussed in the PR. I also did a bit of testing as referenced earlier. I found that the go tooling didn't consider a deprecation comment at any point, only 3rd party tools used it. This might have changed from 1.16 when I tested. |
@MadVikingGod I know we are not the original reporters of #3046 but I know I saw the same error and could help with testing it as I am using bazel and seeing the same issue as the reporter. |
|
Problem Statement
Users trying to upgrade go.opentelemetry.io/otel see messages saying modules can't be found under paths, or see their dependencies stuck on the last version to contain that directory.
Proposed Solution
Use https://play-with-go.dev/retract-module-versions_go116_en/ to publish packages retracting themselves and previous versions.
The text was updated successfully, but these errors were encountered: