Skip to content
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

Move to monorepo #199

Open
tomrijnbeek opened this issue Oct 14, 2020 · 1 comment
Open

Move to monorepo #199

tomrijnbeek opened this issue Oct 14, 2020 · 1 comment

Comments

@tomrijnbeek
Copy link
Member

🆙 Improvement proposal

Combine other Bearded. libraries into the same repository.

Context

Simplifies managing dependencies (both external dependencies and internal ones), and consolidates discussions and issues in one place.

NB: this does not propose shared NuGet packages.

@tomrijnbeek
Copy link
Member Author

Suggested approach

Preparation

  • Migrate remaining libraries to OpenTK stable. We should probably pin them all on the same version.
    • This makes dependencies easier after merging.
    • It also includes a migration to .NET Core, which is needed for some of the steps below.
  • Ensure all libraries use the same directory structure. I believe the structure used in Bearded.Utilities is standard.
  • Migrate to GitHub actions. (See Migrate to GitHub actions #198)
    • Since the workflow will be generic (actually organisation-shared), it will transparently keep working if we merge the repositories.
    • I believe dotnet pack, which is what we are using in the GitHub actions, will automatically figure out the dependencies within the packages, and export those as NuGet dependencies.
  • Ensure there are no more open PRs open on the other libraries.

Execution

  • Using this repository as base, merge in the remaining repositories as if they were separate remotes.
    • Since we cannot migrate issues and PR history, it makes sense to me to use the library with the most history.
  • Push this raw merged result directly to the main branch of this library.
  • Create a PR that merged the sln files, and updates the cross dependencies between libraries.
  • Rename beardgame/utilities to beardgame/beardkit to reflect it is now a bigger set of libraries.

Follow-up

  • Move all the open issues from the other libraries into this repository.
  • Move all the old repositories in an archived, readonly state, to maintain the closed issue and PR history.
  • Discuss further splitting Bearded.Utilities in smaller NuGet packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant