Hello everybody In the last couple of days I have been looking into how our version information is handled in DT (the string in "About darktable" and in the upper right corner of the UI)
That area is a bit confusing and this mail is here to clarify what's going on and make sure I havn't missed any use-case... So here is the rules, in order of priority * if PROJECT_VERSION is given on the cmake command line, * the string given on the command line will be used everywhere * the version will never been updated (i.e git fetch+make won't update it) * if your working directory is NOT a git checkout, but it was generated through "git archive" (this includes github-generated tarballs) * the version will be set to "archive-<SHA40>" where SHA40 is the commit ID from which the git archive was built * the version will never been updated (this is not a git checkout, so you can't update anyway) * if your working directory is NOT a git checkout but it is NOT a git archive either (i.e you copied the source tree from a checkout and removed the .git directory) * the version string will be set to "unknown-version" * the version will never been updated (this is not a git checkout, so you can't update anyway) * if you are using a proper git-checkout * the version will be set at cmake time to "git describe --tags" (i.e the old format) for packaging information * the version will be set at make time for the actual code (so git pull+make will update version information) Apart from the code related to version info above there are still three places where git-describe is called directly, and thus might report incorrect version information. None of these are likely to be a problem, but i'll mention them * create_release.sh use git-describe to generate version_gen.h itself. This looks ok to me, i don't think we want to workaround that one * packaging/macosx/make-app-bundle calls it directly to do some sed magic on Info.plist... but afaict, the fields it is trying to replace have already been correctly replaced by cmake at that point. i'm a bit confused on that one * packaging/Solaris_11/build_ips uses it to build its manifest file. Again, this is probably not an issue since only the maintainer needs it and he will probably work in a clean git checkout Hope this helps... And please report any problem you have (especially packagers, since they are the most likely to have special use-cases) ___________________________________________________________________________ darktable developer mailing list to unsubscribe send a mail to [email protected]
