Managing binaries versions

2019-03-30 08:04发布

问题:

I'm looking for tools and recommendations on how to manage binaries artifacts which together make up a release version.

The project looks like this:

+ Package-Version
|__ Component A-Version
|__ Component B-Version
|__ Component C-Version

More levels may exist, such that the components themselves are built from sub-components with their own versions.

Currently, we use an Excel with links to the binaries. I hope to improve this by introducing some simple tools that may manage it better. It should include some basics like: Searching for versions/sub-versions and locating where they are in the tree, WEB access to make it easily accessible and for it to have some interface so new binaries could be loaded using scripts. Also, each item needs to have some info related to it, mainly a Release Note.

Note, this is an embedded C/C++ project if it matters.

回答1:

The usual artifact repository recommended for binaries (managed in relation with a specific version of the code) is Nexus.
For c++, you could also consider Nuget for managing those same dependencies.

In both cases, the idea is to store in the source control tool a file (pom.xml for Nexus for instance) which will specify the exact version of the binaries you need (or that you build and publish to that artifact repo)

By keeping the binaries outside the VCS (Version Control System), you make sure the VCS doesn't get too large (in disk space), and you allow IT Production team (in charge of release management) to access a different referential than the IT Dev team (clean separation of the two spaces).



回答2:

You can think and try Mercurial with Largefiles extension (precaution "... considered a feature of last resort" applied)

Some largefiles not-so-obvious details covered in

  • How to use Mercurial's LargeFiles extension?
  • Largefiles Extension: Efficiently Handling of Large Binary Files