New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider removing "VXL Nightly Date Stamp" #97
Comments
Matt, Would you mind commenting on the pro's/con's of an automated timestamp commit? |
I think it allows for the dashboard to do nightly builds that are the same git hash. So, I think it is still a useful thing. Although, in CMake I think we use a moving tag. @bradking what do you think? |
I would prefer a moving tag/branch much more. |
In ITK, we use a "nightly-master" branch to do nightly builds on the same commit. It works well. |
The nightly date stamp commit is done in order to provide a detailed API version number for clients to test. Originally it was added because ITK kept getting broken by changes to VXL's API and needed a way to detect which APIs are available in a version-granular way in order to allow ITK to build against an arbitrary system-provided version of VXL. I don't think ITK has needed to have such a check added in a long time, but that may be because VXL development has been slow. I have no opinion on whether we should keep it. |
Since ITK does not use it anymore, +1 for removing it. |
For reference, ITK uses the vxl version date in a few places:
The most recent one is 20120316 which was a change to VNLs set of instantiations to include |
From: Chuck Atkins chuck.atkins@kitware.com I believe the rationale is to be able to have version information from a source tarball taken at any given point in history, not jus a release, without the repository metadata. Think of using 'git archive' to generate a source tarball. |
This addresses issue vxl#97. By using git commands to interrogate and extract version and date information we can automatically use the git tagging system to keep track of software version changes.
Extracting the date from the Git commit object gives one a date, but it is not representative of the version of vxl. I could take a 5 year old commit from vxl, start a branch, create one commit, and then build. Suddenly it reports as a modern version of vxl even though it is not. The only way to have a meaningful version number is to have a defined development path in which it is updated. With arbitrary branching such a path can be well-defined only by explicit commits that do the version updates. If nightly commits are too noisy compared to the rest of the development pace then we could switch to a longer time interval. |
You could always just ask git "What version from master did this branch come from"
[1] - source |
That assumes that the local This is a general problem with distributed version control. Every project has the same problem, but it is particularly problematic for vxl because:
The nightly commit serves as an automated version number in place of manually-made release versions. The commit noise is a cost we pay to support clients without having to instead pay the cost of preparing releases regularly. |
It seems like we are going to live with these nightly commits. Closing due to inactivity for several years. |
Sorry for bumping this old ticket but I'm still trying to get my head around how an automated time stamp functions as an API/ABI version. The nightly commit gives no information at all about such a change. All it says is that "this is the vxl version in use", and that really can be done using git commit data---it's what it is for.
There are many solutions of ensuring that a project is correctly linked to a particular "version" of a dependency---such as
These are handled by manually bumping the soname version to signifiy a new API/ABI, aren't they? The manual bump clearly tells clients that something has changed, while the automated commit does not---it obfuscates this information since one has to go through the git commit log to figure out the changes.
Yes, but development versions also carry API/ABI information in the form of soname versioning.
Not really---unless the API/ABI has changed, a release isn't required. Clients can link against a development snapshot without any trouble if such a change hasn't been made. Can we consider moving to semantic versioning maybe? https://semver.org/ #624 and #626 are related to this (and are how I ran into this issue). |
The nightly "VXL Nightly Date Stamp" commits seem like unnecessary noise in the commit messages.
commit f2f0bf1
Author: Kitware Robot kwrobot@kitware.com
Date: Fri Jan 8 00:01:23 2016 -0500
Is there a rational for having this in a git based source code repository?
If not, could we remove it?
The text was updated successfully, but these errors were encountered: