I am trying to extract some core functionality out of my main application code, that doesn't change very often (e.g. logging, utils etc.).

Our current Situation:

  • A dev branch with all code in it.
  • A lot of release branches, that were branched from the dev branch

So what I though about:

  • Create a new Core-branch for my core functionality and (maybe) release branches for it aswell.

What are my questions? Basically I lack of an idea for a working architecture, that doesnt make me more work than I already have:

  • Do I need releases for my Core functionality aswell? I don't think there is another way around, because I need to be able to create hotfixes for them aswell, is there?
  • How do I manage references? It would be a bit annoying to fix nuget references for main app release xyz to point to the right "core nuget xyz" every time I branch a new main app release.

I found this question, it is very similar, but doesn't go in any details and doesnt satisfy all my questions for now. Best practices for developing NuGet package alongside consumer?

I hope it's okay that I started this follow up questions. I hope, there are some people here that have already made some experience with a similar situation


1 Answer 1


Create a new repository for each of the libraries you want to create

Move the code into those repositories

Package each library as a versioned nuget package

In your Application, reference the nuget packages.

Stop making release branches. Merge your development branch into master when it is ready for release. Label that commit as version 1.x or whatever.

When you want to update one of your libraries, again don't make a release branch. just do the update and publish v1.2 of your nuget package. Update the Application to reference the new version.

  • We do the release branches, because we have in country 1 released version 1 of our app, while in country 2 is version 2 released. If we had only one "master" branch, we couldnt make any Hotfixes for Country 1 anymore, could we?
    – Jannik
    Commented Aug 8, 2018 at 9:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.