Andrew Edwards wrote: > On 1/26/14, 11:19 AM, Jordi Sayol wrote: >> El 26/01/14 16:23, Dejan Lekic ha escrit: >>> On Wednesday, 22 January 2014 at 08:25:05 UTC, Jordi Sayol wrote: >>>> El 22/01/14 02:06, Andrew Edwards ha escrit: >>>>> On 1/21/14, 6:02 PM, Jordi Sayol wrote: >>>>>> El 21/01/14 23:29, Brad Anderson ha escrit: >>>>>>> #.###.~b# ==> 2.065.b1 // beta >>>>>>> #.###.~rc# ==> 2.065.rc1 // release candidate >>>>>>> #.###.0 ==> 2.065.0 // initial release >>>>>>> #.###.# ==> 2.065.1 // hotfix >>>>>> >>>>>> On Debian, "2.065.rc1" is bigger than "2.065.0", so if >>>>>> "dmd_2.065.rc1-0_amd64.deb" is installed and you try to upgrade to >>>>>> "dmd_2.065.0-0_amd64.deb", system will answer something like "You >>>>>> have installed a newer version". >>>>>> >>>>>> No problem if these deb packages are for internal use and test, but >>>>>> not for a public download. >>>>>> >>>>>> $ dpkg --compare-versions "2.065.0" gt "2.065.rc1" && echo "Bigger" >>>>>> || echo "Not bigger" >>>>>> >>>>> >>>>> Apparently the same problem exists on FreeBSD. The first solution that >>>>> comes to mind is to prefix the qualifiers for betas and release >>>>> candidates with a tilde. As such: >>>>> >>>>> 2.065~b1 >>>>> 2.065~rc1 >>>>> >>>>> or: >>>>> >>>>> 2.065.~b1 >>>>> 2.065.~rc1 >>>>> >>>>> This solution works on both Ubuntu and FreeBSD but I'm not sure it is >>>>> the right one. Suggestions are welcomed. >>>> >>>> I prefer: >>>> >>>> 2.65~b1 >>>> 2.65~rc1 >>>> >>>> because "2.65.0" and "2.65" are bigger than "2.65~rc1", regardless if >>>> "qualifier" number is present or not in final release version. >>>> >>>> I think that, as much as possible, we should use exactly the same >>>> version string for all installers, zip, deb, rpm, dmg, etc. So if there >>>> is no problem on OSX, Windows, etc. I propose this versioning scheme: >>>> >>>> #.#~b# ==> 2.65~b1 // beta >>>> #.#~rc# ==> 2.65~rc1 // release candidate >>>> #.#.# ==> 2.65.0 // initial release >>>> #.#.# ==> 2.65.1 // hotfix >>> >>> I do not like the tilda scheme above. Because it does not conform to the >>> major.minor.micro-qualifier scheme. >>> >>> Before I propose another scheme, let me list some assumptions: >>> >>> 1) We will never have more than 3 release candidates. >>> 2) Same goes for betas. You rarely see more than two beta releases for >>> certain upcoming release of a product. >>> >>> Therefore I propose the following (if it is "compatible" with FreeBSD >>> and Debian) simple solution. We simply move beta and rc into the >>> "qualifier". >>> >>> So, we have: >>> 2.065.0 (release) >>> 2.065.0-rc2 (release candidate) >>> 2.065.0-b1 (beta one) >>> >>> This makes more sense IMHO. >>> >> >> >> This scheme was already proposed by Leandro Lucarella, and I like it. >> http://forum.dlang.org/thread/lbmru9$290b$1...@digitalmars.com#post-20140122001903.GE23332:40llucax.com.ar >> It only differs by leading zero on minor number, which can be cleanly >> removed. >> >> Anyway, tilde is still mandatory on Debian packages due to upgrade >> reasons, so we can apply the Leandro's solution too: s/-/~/ >> >> Regards, >> > > Jordi, I need you to explain this. You wrote the scripts for the pkg > installers right? What happens when you pass a version number containing > a "-" to dmd_rpm.sh? I'll tell you: > > Building for target platforms: i386 > Building for target i386 > error: line 2: Illegal character '-' in: Version: 2.065.0-b2 > > I initially changed the naming convention because of errors like these > cropping up all over your scripts. Change it to '~' and it craps out on > another one of your scrips for a different package. Multiple other > > My question is, what is the proper version scheme that fits all the > systems that you are trying to make these packages for? This one > obviously does not work for at lease one of them.
This naming scheme would not be accepted by Fedora/openSuSE/Mageia people. That is one of the reasons why I talked about the major.minor.micro- qualifier scheme... No tildas there are in use. -- http://dejan.lekic.org