Product control and assembly options

We are getting closer to the initial release of a new product at our company, and I am trying to figure out the best way to manage versions of all the different components and cross-reference those components with our marketing department's version. For various reasons, marketing has determined that the initial release of our product will be 10.1, however, all components will initially start at 1.0.0. With bug fixes and bug fixes and continued development, the various components will no longer have the same version number, so when the marketing department decides this time for version 10.2, it might contain 1.1.54, 1.2.32, 1.8.2, and etc. Obviously I could use a simple spreadsheet, but this is not the most user-friendly method and we have problems withso that our technical support specialists cross-reference the component versions (the client really only knows about version 10.1, 10.2, etc.).

Is there a more "professional" method for this, or is a simple spreadsheet a better option?

0


a source to share


3 answers


The basic principle I propose is: Use the simplest circuit you can.

Consider making things easy for yourself, your marketing department, and your users.

When you complete a release, increase the major / minor version number and then mark this on all your components. Therefore in version 10.1 all your assemblies will have version numbers 10.1.xx.yy



Then, if you really want to complicate matters with different versions in a release (for example, for small patches / updates, different client options, or just for internal daily or CI builds), use the xx.yy fields. (In many cases, you can force the compiler to automatically fill in those two fields with compile date / time, for example).

This means that you have a meaningful "marketing version" that is actually related to your code versions (so you and marketing can talk about a specific release without any confusion), and you can add additional information (like build date) if (and only if) needed on the dev side.

edit: PS Even if the component doesn't change, rebuild it with the new version number. Trying to keep track of hundreds of version numbers that are incompatible with sync is an avoidable nightmare.

+2


a source


In the places where I have worked, we force the software version number to match the official, public (ie marketing) release number: if they want to send "10.1", then that we installed the software version of the resource in, as part of release builds.



0


a source


Why not leave all components in their "random" version numbers and create one supertag / tag with a marketing version that covers all components? This allows you to continually update components between marketing builds and increment their build versions (before 10.1.001, 10.1.002, which might be visible to the customer), and track the marketing build. Also, what happens if you update some components for the next marketing build but not others? Do you need to build these components just to update the version number?

Depending on your original control system, you should be able to easily create a release with the specified name / version that contains all of these components in different versions.

You also just need to update one properties file with the marketing build number to show everything about screens, splash screens, toolbars, etc. If you don't have such a configuration in place, you might want to switch to such a system. This makes it easy to change the visible customer number while maintaining all part numbers. Also, what happens when marketing dictates that the next version won't be 10.2, but "Crimson?"

0


a source







All Articles