RELEASE_VERSION and EXTRA_VERSION can be concatenate to a single SOURCE_VERSION string. This makes it possible to detect unstable versions during compile time instead of removing the unstable warning in a seperate commit (or forget this change). Before releasing the a new stable version the release manager must set EXTRA_VERSION to "", check INSTALL, THANKS and README and then create the tag in the repository. Afterwards the development branch should change the RELEASE_VERSION to the upcoming version number and the EXTRA_VERSION to a string which informs the user that it is "unstable" and in development. This could be for example "-dev", "-pre-alpha", "-beta" or "-rc1".
Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de --- batman/batman.h | 5 ++++- batman/posix/init.c | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/batman/batman.h b/batman/batman.h index 6af9136..6d1c16a 100644 --- a/batman/batman.h +++ b/batman/batman.h @@ -39,7 +39,8 @@
-#define SOURCE_VERSION "0.3.1" /* put exactly one distinct word inside the string like "0.3-pre-alpha" or "0.3-rc1" or "0.3" */ +#define RELEASE_VERSION "0.3.1" /* put exactly one distinct word inside the string like "0.3" or "0.3.1" */ +#define EXTRA_VERSION "" /* put one or less distinct words inside the string like "-pre-alpha" or "-rc1" or "" */ #define COMPAT_VERSION 5 #define PORT 4305 #define GW_PORT 4306 @@ -66,6 +67,8 @@ #define REVISION_VERSION "0" #endif
+#define SOURCE_VERSION RELEASE_VERSION""EXTRA_VERSION +
/* diff --git a/batman/posix/init.c b/batman/posix/init.c index c79c010..b850b61 100644 --- a/batman/posix/init.c +++ b/batman/posix/init.c @@ -249,7 +249,8 @@ void apply_init_args( int argc, char *argv[] ) { stop = 0; prog_name = argv[0];
-/* printf( "WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !\n" );*/ + if (strlen(EXTRA_VERSION) > 0) + printf( "WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !\n" );
while ( ( optchar = getopt_long( argc, argv, "a:A:bcd:hHio:g:p:r:s:vV", long_options, &option_index ) ) != -1 ) {
Hello Sven,
Afterwards the development branch should change the RELEASE_VERSION to the upcoming version number and the EXTRA_VERSION to a string which informs the user that it is "unstable" and in development. This could be for example "-dev", "-pre-alpha", "-beta" or "-rc1".
I like your patch a lot. It could solve a nasty little problem that always tends to be forgotten. :-)
Unfortunately, our compile farm which feeds the package repository extracts the SOURCE_VERSION from batman.h to generate the package name. Unless we rewrite the compile scripts to extract both defines we can't apply your patch as-is. This rewrite is not as painless as it could be. Certainly, at some point we want to touch the scripts to optimize the speed but that wasn't on our agenda right now.
Do you see alternatives which allow us to reuse the existing compile farm and have the functionality you implemented ?
Regards, Marek
On Sunday 28 December 2008 15:24:57 Marek Lindner wrote:
Hello Sven,
Afterwards the development branch should change the RELEASE_VERSION to the upcoming version number and the EXTRA_VERSION to a string which informs the user that it is "unstable" and in development. This could be for example "-dev", "-pre-alpha", "-beta" or "-rc1".
I like your patch a lot. It could solve a nasty little problem that always tends to be forgotten. :-)
Yes, Simon told me about that :D
Unfortunately, our compile farm which feeds the package repository extracts the SOURCE_VERSION from batman.h to generate the package name. Unless we rewrite the compile scripts to extract both defines we can't apply your patch as-is. This rewrite is not as painless as it could be. Certainly, at some point we want to touch the scripts to optimize the speed but that wasn't on our agenda right now.
Didn't know that but that makes patch of course useless. I liked the idea to have a version which marks the next release and the extra part which marks the actual status of the next release. This is only one way to express this.
Do you see alternatives which allow us to reuse the existing compile farm and have the functionality you implemented ?
We could also assume that the version string has a specific format. A version number (RELEASE_VERSION part thing in my last patch) which has a postfix seperated by a dash. If that dash is found in the version string then we have a postfix and we are currently in a unstable version.
Don't know if this makes really sense for B.A.T.M.A.N. but the patch for that is trivial.
Best regards, Sven Eckelmann
The SOURCE_VERSION consists of a version part and the actual status of this version (called postfix). Both parts are seperated by a dash. This seperator dash can be detected during runtime and can enable the unstable warning instead of removing this warning in every release. Before releasing the a new stable version the release manager must remove the postfix of SOURCE_VERSION in batman.h, check INSTALL, THANKS and README and then create the tag in the repository as usual. Afterwards the development branch should change the SOURCE_VERSION to the upcoming version number including a postfix starting with a dash that informs the user that it is "unstable" and in development. This could be for example "-dev", "-pre-alpha", "-beta" or "-rc1".
Signed-off-by: Sven Eckelmann sven.eckelmann@gmx.de --- batman/posix/init.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/batman/posix/init.c b/batman/posix/init.c index c79c010..1447178 100644 --- a/batman/posix/init.c +++ b/batman/posix/init.c @@ -249,7 +249,8 @@ void apply_init_args( int argc, char *argv[] ) { stop = 0; prog_name = argv[0];
-/* printf( "WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !\n" );*/ + if ( strstr( SOURCE_VERSION, "-" ) != NULL ) + printf( "WARNING: You are using the unstable batman branch. If you are interested in *using* batman get the latest stable release !\n" );
while ( ( optchar = getopt_long( argc, argv, "a:A:bcd:hHio:g:p:r:s:vV", long_options, &option_index ) ) != -1 ) {
b.a.t.m.a.n@lists.open-mesh.org