When we do a release, the zipme script creates a proper version of the
.version file. This later becomes the version.h header file and is used
in several places:
1. NSH Greeting
2. libcurl (OS identity)
3. webserver (OS identity)
4. procfs version file
5. uname OS version number
The .version file is re-built every time you build nuttx if anything
changes. If the release number is no longer the HEAD, then it marks the
version as dirty.
This is good information. Even fir development builds, it is is nice to
now what version the current code derives from.
We can't just put the .version file in the repository. It is in the
.gitignore file since it is updated often and those updates should not
come upstream. If the .version file is not present, the Makefile
creates a dummy .version with version number 0.0.0. That is not a useful
version number and effects the OS identification in all of the above uses.
I wonder if we should now create a .release file which is essentially
the the released .version file. If the Makefile discovers that there is
no .version file but there is a .release file, it could copy the
.release file to the .version file. So we would not have garbage like
0.0.0 as a version but something like 9.0.2. Even better 9.0.2-dirty.
The .version file would never be replaced if it is already present
(supporting the capability for end-user custom version IDs). The
.release file would not appear in the .gitignore and would never be
modified except for at releases.
What do you all think? Is this a useful idea?
Greg