--ignoreexisting parameter for create_release is so-o counterintuitive

Apologies if I’m out of line here, but the following message is frustrating as hell :slight_smile:

“A release of Standard Deployment with the number 1.4.01221.15325 already exists, and you specified --ignoreexisting, so we won’t even attempt to create the release.”

I can bet money that in 98% cases when people try to create release with existing version number it is because they just changed something (in the packages or in the project configuration) and want to recreate release with the new parameters. The logic “oh, release with this number already exists so let’s throw out NEW one” is clearly flawed.

I understand that it is kinda late to change the semantics of --ignoreexisting flag not to break those 2% who actually want what it does, but we totally need new --overwriteexisting flag which would do what it says - replace old release with the new one with the same number.

Thank you!
P.S. Sorry again if my tone sounds harsh. It is just so unreasonable behavior IMHO that I could not imagine it be the case until I tried.

Hi Konstantine,

Thanks for getting in touch! Interestingly we haven’t had any other reports of this. I can understand some frustration based on your desire to replace the existing release with a new one.

In the world of Octopus we treat Releases as an important document since they form the entry point for all the transactional/historical data we store about your deployments. When you create a Release we snapshot the Deployment Process, Variables, and record the Packages you want to form part of the Release. Whenever you deploy a Release to an Environment/Tenant we tie the Deployment back to the Release. Our opinion to date on replacing Releases is that you need to delete the old Release first, and then replace it with the new Release - it is a lossy and potentially dangerous action.

Historically, we added the --ignoreExisting flag to help people skip creating the Release if one already existed, and I don’t see this changing. I think it’s the right flag for this behaviour, even if the name is potentially confusing. I wonder what would have been a better, concise name for this flag?

One thing we could potentially do is provide a different flag like --replaceExisting which would attempt to delete any duplicate existing Release. One reason we haven’t added that kind of feature to octo.exe is because it’s inherently unsafe, and we want to make it harder for people to do potentially dangerous things. :slight_smile:

At this point I’d recommend adding a suggestion to our UserVoice site to see if others feel the same way, or you could always take some time and submit a Pull Request to https://github.com/OctopusDeploy/OctopusClients if you feel really strongly about this suggestion.

Hope that helps!