The following section indicates that it should be possible to safely remove 
a module from a multi-module repository, and move the removed module's 
packages to the parent module:

https://go.dev/wiki/Modules#is-it-possible-to-remove-a-module-from-a-multi-module-repository

However, it doesn't say how to accomplish this.

To add a new submodule, the steps are clear:

1. Create the new module
2. Add a dependency on the new module to the parent module

When *merging* two modules, however, there is no way to add a dependency to 
the deleted submodule to refer users to the parent module, and there is no 
way to refer to a deleted version of the submodule from the parent module.  
This results in an ambiguous import if one module in a project refers to 
the parent module at the new version and another module in the same project 
refers to the deleted submodule at an older version.

I had wrongly assumed that if a newer version of the parent module included 
the package, that it would replace the version in the submodule, but I now 
see why that is wrong.  But I still don't know how to address the issue.  
Is there some way to add an entry in the parent go.mod that indicates that 
the submodule was deleted?

In case it's relevant, the submodule that was removed in this instance was 
unstable (v0).  But we still don't want to break users that were using it, 
since the API didn't change when we incorporated it into the parent module 
and released it as stable.

The specific incident is being tracked here: 
https://github.com/googleapis/google-cloud-go/issues/11283

Thanks,
Doug

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/3103aade-0d28-4274-a83e-3d947485f650n%40googlegroups.com.

Reply via email to