Skip to content
This repository was archived by the owner on Jan 29, 2026. It is now read-only.

Ship multiple versions side-by-side#303

Closed
SidneyCogdill wants to merge 3 commits intomicrosoft:mainfrom
SidneyCogdill:user/sidney/side-by-side
Closed

Ship multiple versions side-by-side#303
SidneyCogdill wants to merge 3 commits intomicrosoft:mainfrom
SidneyCogdill:user/sidney/side-by-side

Conversation

@SidneyCogdill
Copy link
Contributor

@SidneyCogdill SidneyCogdill commented Jun 1, 2025

Alternative to #302. Resolves issue #300.

Under this approach, there's no need to create a separate proxy4 package and deprecate the proxy package. Users who rely on Proxy 3 can upgrade to Proxy 4 directly.

The v3 implementation is directly copied from 3.3.0 tag with the following changes:

  • macro rename: PRO_XXX -> PRO_3_XXX
  • feature test macro __msft_lib_proxy3.
  • pro::v3 namespace

The change to build system and package management is much less invasive than the alternative. However, this does require keeping the older sources. The CMake 4.0 breakage (<3.5 is now unsupported; CMake 3.5 is released 10 years ago) shows that it's almost impossible to remove old APIs without breaking people's workflow. This will require keeping the old implementations almost forever. #302 doesn't have this issue (theoretically that is also keeping the old implementations forever, except it's kept by git repo rather than the source code).

I've tested locally and this allows Proxy 3 and Proxy 4 to run at the same time as long as they're accessed using pro::v3 and pro::v4.

Just like the alternate PR, please look at the individual commits for incremental changes. GitHub fails to track the changes.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant