32 votes
Accepted

Is it good practice to store software version numbers in VCS?

Personally, I choose option 3: keep versioning information in VCS metadata, specifically, tags. Git makes it very easy to do so, because there is a command git describe, which can uniquely describe a ...
user avatar
30 votes
Accepted

What is a non-merge commit?

If you're working in a feature branch, that branch might have a significant lifespan. By that I mean that the originating branch (master or develop usually) receives many commits while the feature ...
user avatar
  • 37.5k
22 votes
Accepted

Why popular repositories use release version as a "Release title" in GitHub?

How to manage release with Git and GitHub ? The Git standard way of identifying a release is to create a version tag. This tag marks a specific version of your software in the change history of your ...
user avatar
  • 67.8k
18 votes

How to do efficient code review during release fever?

The answer here is to communicate. Tell the technical/team lead about the issue Talk to QA about the potential impact Tell project management (who is right behind you) that there might be an issue ...
user avatar
17 votes

Agile stabilization and release management

You should not have stabilization sprints. Your software should be releasable every sprint. This means that if you need stabilization, that has to happen within each sprint and not just before a ...
user avatar
  • 5,174
15 votes
Accepted

Semantic versioning with bugfixes and new features in the same release

Assuming that the new features are backward compatible, you should increment the MINOR version number, an reset the PATCH level, . Rationale: semver 2.0.0 makes this crystal clear in clause 7: ...
user avatar
  • 67.8k
12 votes
Accepted

Is it unusual for developers to have difficulty building their own code?

If I were in your shoes, I would take this as a chance to improve the build scripts so they can provide more detailed information about what exactly is failing, so finding the root cause should be a ...
user avatar
  • 185k
10 votes

How do you handle versioning in a multi-sided project?

As you can't control when the mobile apps will be updated to a new release, you need to version at least your REST API. If you don't it will be impossible to make backwards-incompatible changes to ...
user avatar
10 votes

How can we only include ready-to-be-released features in our production releases every other week?

The problem seems to be to me that you have a single QA branch. For each release, make a separate QA branch from the primary development trunk/master. Then merge in only fixes for bugs for features ...
user avatar
  • 36.6k
10 votes
Accepted

What is the difference between software deployment and software release?

I don't think the terms release" and "deployment mean exactly the same, thing I'm not sure they should be used interchangeably like that. From a web development perspective: Deployment refers to ...
user avatar
9 votes
Accepted

Software release question: do you refactor pre or post-release?

You'll want to read up on the term "technical debt". If time & resources permit, it is much better to do any code clean up immediately while the problem is fresh in your mind. Leaving clean up ...
user avatar
9 votes

Is it good practice to store software version numbers in VCS?

Yes. It is good practice to keep most of the version number in vcs. If we consider semantic versioning semver.org where we have major.minor.patch.build the first three must live in vcs. The last one ...
user avatar
9 votes

How to deal with a project with long intervals between new development?

Even if you are working continuously on a project, unless the project is tiny, you'll have to switch between features, some of which you haven't modified for months or years. And if you work in a ...
user avatar
9 votes

Git branches: Merging issues while having multiple release branches

The thing to remember is that merging a fix also merges all its ancestors, so if you want to keep code in 2.0 out of 1.0, your merges should always go from 1.0 to 2.0, and never the other way around. ...
user avatar
8 votes

Is it unusual for developers to have difficulty building their own code?

For new developers, you should have a document, hopefully less than one page, with complete instructions how to set up their computer to create a build that they can run and try out. (Obviously this ...
user avatar
8 votes

How to do efficient code review during release fever?

Don’t just communicate the problem, document it My big concern with the other answers so far: Anything you say along these lines to the typical project manager facing an imminent deadline is likely to ...
user avatar
  • 1,350
8 votes
Accepted

Should release branches ever be merged to master

How Long should these branches kept for ? The first answer that pops in my mind here is : Why are you creating release branch in the first place ? If you are aiming to be able to provide support to ...
user avatar
  • 7,183
8 votes

What is a non-merge commit?

In git each commit is a specific version of the code, and it includes information about which previous version(s) it was based on - those commits are known as its parents. A merge commit is a commit ...
user avatar
  • 2,053
8 votes

When creating a fix, how does branching off the release candidate branch compare with cherry-picking from master?

The Git-Flow branching strategy enables you to keep one or more software versions around on their own branches for support purposes. For example, you could be developing a future 15.0 release on the ...
user avatar
  • 124k
7 votes

Where do the responsibilities of build tools end and those of CI tools start?

This comment sounds right. In my opinion, as much of the build code as possible should be in the product's internal build scripts, such as ant's build.xml, maven's pom.xml, etc. This serves 3 ...
user avatar
  • 4,539
7 votes

Merging around 15 small Git repos of non-optional centralized web service components to a single large repo

This really depends on the modules. You are saying the service require all the modules to exist - but do the modules require the service(or other modules) to exist? If you have a module that's an ...
user avatar
  • 11.9k
7 votes

How do I compile my software for all platforms from Ubuntu Linux 64 bit?

Any professional organisation would have not just build machines but test environments for all those platforms they support. And that's why most professional organisations won't support such a ...
user avatar
  • 9,725
7 votes
Accepted

Handing Off A Unity Project

With the exception of people sunk in the real programmer syndrome, no one is going to disregard you for using Unity. Unity is a framework, like many others, that helps you make software. Saying that ...
user avatar
  • 11.9k
7 votes

Semantic versioning for desktop applications

Old post, but I was looking for a solution and stumbled upon this article of Brett Uglow (permalink) which is the best thing I have ever read about versioning applications which will be delivered ...
user avatar
  • 183
7 votes
Accepted

Dependency promotion strategies: siloed or orchestrated?

If I'm reading your post right, it doesn't seem like this proposal actually solves either of the alleged problems. anytime I make a change to, say, myapp, this requires me to make changes to myws ...
user avatar
  • 27.2k
7 votes

Is it unusual for developers to have difficulty building their own code?

The core issue probably isn't inexperience setting up a dev environment. It's more likely to be that setting up a dev environment is a manual process at all. I've worked somewhere that had pages of ...
user avatar
7 votes

How to do efficient code review during release fever?

In this case, just inform everyone and let them decide. It's probably not the first bug you're released. The deadline is tomorrow, but you find yourself in this situation: project manager is ...
user avatar
  • 36.7k
7 votes
Accepted

Release notes for first version

Release notes (changelogs) are primarily used to notify users of changes between versions. Perhaps a new useful feature is available, or an old feature was deprecated. The first released version has ...
user avatar
  • 124k
7 votes
Accepted

Put source code for dependencies within the project itself

Yes, this is called bundling. It has known weaknesses (for instance, you don't get security updates or bugfixes for the third-party library unless you re-import their sources, and it is probably more ...
user avatar

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