-
Notifications
You must be signed in to change notification settings - Fork 47
Labels
area:abstractionsFocused on functional module of the productFocused on functional module of the productenhancementNew feature or requestNew feature or requesttype:enhancementEnhancement request targeting an existing experienceEnhancement request targeting an existing experience
Description
We initially made the choice to split the dotnet dependencies into multiple repositories to enable better isolation of concerns.
This has proven to represent mostly coordination overhead, without delivering much additional value (kiota-java and kiota-typescript being good examples of mono repos that work) as:
- clients regularly get dependencies misalignment issues, latest example: bugfix: version range for abstractions kiota-http-dotnet#257
- contributors need to coordinate between multiple repositories. see Adds IAsyncParseNodeFactory, makes deserialization methods async, upd… #225
- repos/pipeline maintenance and compliance gets multiplied by the number of repositories.
- we've reached the maximum number of repositories in GitHub projects, limiting our automation options.
Suggestion to move to a monorepo for dotnet dependencies and align the versions:
- create a tests subdirectory here
- create an abstractions subdirectory
- move the test project to that subdirectory
- update the sln reference
- create an abstractions subdirectory under src
- move the content in that sub directory
- update the sln reference
- for reach other repo than abstractions:
- copy the src content to a subdirectory in src here
- copy the test content to a subdirectory in tests here
- update any abstractions reference to use a project reference instead of a package reference
- add reference to both projects in the sln
- merge the changelog information
- transfer the issues to this repository
- close the outstanding pull requests, leave a note to re-open on this repo instead
- update the readme to tell people the content has been moved
- archive the repository
- disable the ADO pipeline
- update the workflows to build/test all projects
- update the ADO pipeline to build/publish all packages
- remove the version in the csproj, set them up so they use build props instead
- add a build props, with the version set to the uppermost patch version
- rename the repo to kiota-dotnet (and update the csproj repository reference)
- publish a new release
This will also unable the bundle package microsoft/kiota#4636 work
Metadata
Metadata
Assignees
Labels
area:abstractionsFocused on functional module of the productFocused on functional module of the productenhancementNew feature or requestNew feature or requesttype:enhancementEnhancement request targeting an existing experienceEnhancement request targeting an existing experience
Type
Projects
Status
Done ✔️