[CDRIVER-2937] Support BUILD_VERSION in addition to VERSION_CURRENT Created: 29/Jan/19  Updated: 28/Oct/23  Resolved: 20/Feb/19

Status: Closed
Project: C Driver
Component/s: cmake
Affects Version/s: None
Fix Version/s: 1.14.0

Type: Improvement Priority: Major - P3
Reporter: Roberto Sanchez Assignee: Roberto Sanchez
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Epic Link: Automate C driver release

 Description   

The C++ driver has support for specifying the driver build version with the BUILD_VERSION variable on the CMake command line. This way, if the VERSION_CURRENT file exists and BUILD_VERSION is not specified, the version is taken from VERSION_CURRENT. However, BUILD_VERSION can be used to override VERSION_CURRENT or in the case where VERSION_CURRENT is not present. The C driver should offer a similar capability in the build.



 Comments   
Comment by Githook User [ 20/Feb/19 ]

Author:

{'name': 'Roberto C. Sánchez', 'username': 'rcsanchez97', 'email': 'roberto@connexer.com'}

Message: CDRIVER-2937 support BUILD_VERSION in addition to VERSION_CURRENT
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/90c4b9ed80a9c0d8344b6a85e7a847578f1f55ee

Comment by Roberto Sanchez [ 14/Feb/19 ]

That makes sense. I had forgotten about the ABI checker script (the grep command I used in my initial investigation did not catch that occurrence). The version number in VERSION_RELEASED is determined like this: python build/calc_release_version.py -p > VERSION_RELEASED

Removing the requirement for VERSION_RELEASED as part of the normal build should not affect that at all, as the ABI checker script actually generates VERSION_RELEASED for itself in the manner I described.

Comment by Kevin Albertson [ 14/Feb/19 ]

I'm in favor of removing the required VERSION_RELEASED file to build. As long as we still support calculating the previous release with calc_release_version.py, which is necessary in our ABI test here, that's fine with me.

Comment by Roberto Sanchez [ 14/Feb/19 ]

kevinAlbs, I would like to propose that we drop the concept of VERSION_RELEASED and use only VERSION_CURRENT. The only place where VERSION_RELEASED is used is in src/libmongoc/doc/installing.rst.to provide a link to the current release tarball and to provide version-specific examples of downloading, building, and installing the driver. It is my belief that a generic link to the GItHub releases page and generic examples of the download, build, install procedure are more than adequate. The resulting simplification would allow us to completely replace the version handling logic in the C driver with the much simpler version handling logic from the C++ driver. Do you consider this approach to be viable?

Generated at Wed Feb 07 21:16:45 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.