Hot answers tagged

5

Read the version from metadata generated at build time One thing you can do is to read the version from your Git tags at build time. Generate the version from your git tags after commiting, as a part of the release process. After determining the version at the beginning of the build process, store it as metadata in a text or key/value pair file, in a ...


5

Git LFS is perfectly well-suited for versioning large binary assets. The problem with using git for managing dependencies isn't that git lfs can't handle it, it's that there are better solutions. What git can't do is resolve a tree of transitive dependencies. Dependency X itself depends on version 1.x of dependency Y. There is a version 1.6 of dependency Y, ...


3

What am I missing? It breaks the golden rule of rebasing: Never rebase a public branch.


3

In my view you should define separate execution environments in separate files, e.g. like Spring's application-test.yml, application-local.yml, application.yml etc. That way you can switch between executions by changing only one thing (the exact invokation command). Whether or not to arrange the description files so that duplicate settings are declared only ...


3

To be honest, I've always struggled to find good workflows to use when dealing with submodules, specifically because of the reason you've pointed out: But to make this work, we would need to change the submodules each time we merge Master to Stable. I am not a fan of having to coordinate a ton of merges across a bunch of repos in order to implement day-...


2

You need to split the idea of a build and a deployment in your mind. I find it best to imagine there is no internet and you are posting out CD ROMs to your customers, who then install and configure them You Build the source code and burn the CD ROM with version X Your customer Deploys the binary to their server and configures it for their environment. ...


1

As per the comments on the question, NuGet would be a solution for you... if only you could use it without Visual Studio... Well, you can! More precisely, you can use Nuget.exe from command line. No Visual Studio required. You can download Nuget.exe from nuget.org (download link). Note: Nuget.exe will work on Linux and macOS by using Mono. If you are not ...


1

Semantic versioning (semver) is intended for for software products that have an API, and for which multiple versions will be available at the same time. It's most useful for software libraries, which have an API made up of exposed classes, functions, etc, but can also apply to software with an HTTP API. Developers of software that depends on something using ...


1

I would have two requirements of shared code My own builds are repeatable I am not caught unaware by new bugs or breaking changes / I can actively choose when to advance to a newer version of the dependency These are usually fulfilled by locking down the version of the dependency, and some sort of versioning scheme. Nuget is good here because I will always ...


1

What does a version number represent? A release is the output generated by following a defined process using build tools on source code. So, if the release process or build tools change, even when used on the same source code, then the release should be considered a different version. It is because of this, that the version number should be managed by ...


Only top voted, non community-wiki answers of a minimum length are eligible