Hot answers tagged

25 votes
Accepted

Should there be assertions in release builds

The classic assert is a tool from the old standard C library, not from C++. It is still available in C++, at least for reasons of backwards compatibility. I have no precise timeline of the C standard ...
Doc Brown's user avatar
  • 203k
20 votes

Is deciding the release date before collecting all requirements un-agile?

There's absolutely no "Agile" problem with having a fixed release date if you're prepared to move one of the other two edges of the "iron triangle": the requirements for what needs to be in that ...
Philip Kendall's user avatar
19 votes

Should there be assertions in release builds

If you find yourself wishing asserts were enabled in a release you've asked asserts to do the wrong job. The point of asserts is that they aren't enabled in a release. This allows for testing of ...
candied_orange's user avatar
16 votes
Accepted

How do we avoid development files in the release?

When we make a release, that release contains not only the actual release files but also contains all the meta and testing stuff. This happens because GitHub's way of creating releases is to simply ...
Maciej Stachowski's user avatar
12 votes
Accepted

What is the value proposition of "build, release, run"?

I think this is probably best described by stating the bad practices it would seem to be trying to avoid. I can remember the old days when these were common practice. But with modern 'dev ops' tools ...
Ewan's user avatar
  • 72.4k
10 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 ...
amon's user avatar
  • 134k
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 ...
FrustratedWithFormsDesigner's user avatar
10 votes

How do we avoid development files in the release?

I'd like to elaborate a bit on what @maciej-stachowski said: That's not entirely correct, as far as I can tell. In GitHub, a release is a tag pointing to a specific commit - and while GitHub ...
umläute's user avatar
  • 203
7 votes

Releasing an unfinished Android app?

You only get one chance to make a first impression. If you release an obviously unfinished buggy app, the first people to look at it will drown you in negative reviews. Once you have a lot of ...
Dan Pichelman's user avatar
7 votes
Accepted

Git philosophy: public vs. personal files: is there hybrid versioning?

You could consider a "root" repo containing your private tools/hooks/scripts, and a submodule for your public sources. The submodule would know nothing of the parent project and would have a "clean" ...
axl's user avatar
  • 1,237
6 votes
Accepted

Why are web applications said to be in "production" when in reality they are in "release" or "published"?

You are misinterpreting the word production. It does not refer to the software itself being produced, it means it is being used to produce whatever the company using it produces.
Martin Maat's user avatar
  • 18.3k
5 votes
Accepted

Should each new feature for an open source project have a new minor version?

A release can be comprised of any set of features you wish. You (and your business needs, marketing, ease-of-upgrade for your users, etc) determine what should go into a particular release. If you ...
mmathis's user avatar
  • 5,438
5 votes

How do we avoid development files in the release?

You are confusing your source code with your deliverables. All your source code, all your documentation, all your test code, should all be in your git repository. And then you should have a build ...
gnasher729's user avatar
  • 43.6k
5 votes

How to manage versions on monorepo with application requires to support multiple releases?

Here is my own take on this, after collecting ideas from other people. First of all, let's state the benefits of monorepo: reduce the need of publish chaining: package-a: change and publish package-...
unional's user avatar
  • 199
5 votes
Accepted

Re-runnable db alter scripts

The reason you want to have re-runnable scripts is the same reason you want idempotent operations in any other situation in IT: to avoid state. By "state", here we mean that the state of the world ...
Kilian Foth's user avatar
4 votes
Accepted

How can I organise a better deployment process?

I'd suggest continuous integration of any useful incremental work from any developer in a single integration branch, with automated and manual QA done as often as possible on the integration branch. ...
Dan Cornilescu's user avatar
4 votes

Should there be assertions in release builds

If you don't want an "assert" to be turned off, feel free to write a simple function that has a similar effect: void fail_if(bool b) {if(!b) std::abort();} That is, assert is for tests where you do ...
Nicol Bolas's user avatar
  • 11.9k
4 votes

Should there be assertions in release builds

Assertions are a debugging tool, not a defensive programming technique. If you want to perform validation under all circumstances, then perform validation by writing a conditional – or create your own ...
amon's user avatar
  • 134k
4 votes

Release notes for first version

While it is true that release notes only tend to appear in subsequent revisions, there is no reason why it couldn't ship with the first release. As a minimum, you'll want the date, version number and ...
Robbie Dee's user avatar
  • 9,737
4 votes

How do we avoid development files in the release?

Your “release“ isn't a ZIP archive of your sources, but should be a specific state of your project, and any number of build artefacts that can be installed/deployed. Your source code at some commit ...
amon's user avatar
  • 134k
4 votes

How to manage versions on monorepo with application requires to support multiple releases?

Theres no solution to this problem where you automatically get the fixes you apply to earlier versions in later versions. You have to fix v2 and release v2.0.1 and seperately fix v2.1 releasing 2.1.1 ...
Ewan's user avatar
  • 72.4k
4 votes

How to deal with multiple release/hotfix branches in Gitflow?

It sounds like you work on a web application, or something similar in the sense that only one version is typically used at a time - whatever was last deployed to production. Given that, I'd suggest ...
bdsl's user avatar
  • 2,540
4 votes

How to improve my current development/release process

By merging your feature/fix branches separately to staging and master, you are very likely releasing on master combinations of features & fixes that were never tested by QA in that combination. ...
Bart van Ingen Schenau's user avatar
3 votes

Distinction between continuous delivery and continuous deployment to production

My question is about what deployable means. If it means simply 'able to be deployed', then a process with no testing is CD. Deployable implies that all the pre-deployment process has been completed. ...
Samuel's user avatar
  • 9,167
3 votes

What is the difference between software deployment and software release?

Deploy is a very loose term. Normally it refers to installing the code where it can be used. You can deploy released code, or code that is no where ready for release. In web development, it is ...
BillThor's user avatar
  • 6,240
3 votes

Should we compile and ship libraries with debug information whenever possible?

The idea proposed here is that shipping debug information with a software library makes developing applications easier for that library. If this is true, it implies that programmers need inside ...
Jack D Menendez's user avatar
3 votes

Releasing an unfinished Android app?

Don't pollute the app store with unfinished crap. People who download your app are your customers, not your beta testers. They are not part of the development team. If the app is of no real use, don'...
Eiko's user avatar
  • 785
3 votes

What is the value proposition of "build, release, run"?

I think what you're asking is explained (though not very clearly) in the link you posted. The most relevant bit: The twelve-factor app uses strict separation between the build, release, and run ...
Andres F.'s user avatar
  • 5,139

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