Help managing legacy registered and local generated packages

My company has an internal message construction protocol similar to ProtoBuffs. Based on a user specified messaging format a tool is used to build native libraries for different languages. Lets call this tool MsgGen. We are in the process of adding Julia support that will build a MyMsg.jl package based on a set of messaging formats.

Originally, we thought we only needed MyMsg.jl to support a specific set of messages, so we generated MyMsg.jl and register it in our local registry. However, we now want individual projects to build their own version of MyMsg.jl based on the projects messaging needs. This essentially mirrors ProtoBuf.jl, but instead of generating a file you include, we generate an entire MyMsg.jl package that the user devs. The MyMsg.jl package would get committed with the rest of the projects (like how the src directory is used with the DrWatson.jl workflow)

We need to keep the legacy, registered MyMsg.jl for reproducibility. Does anybody foresee any issues w/ keeping the package name and UUID the same for the generated version? Our thought is that this would

  1. Work around `Add` requires weakdeps to be accessible in the available registries · Issue #3766 · JuliaLang/Pkg.jl · GitHub
  2. Prevent a user from having both the generated and legacy version of MyMsg.jl in an environment

However, I have concerns that this may lead to issues down the line like resolving dependencies. Ideally, I think, it would be best to use a different name and UUID for the generated version, but there are some reasons why we want to avoid doing that.