Versioning

Discussion of chess software programming and technical issues.

Moderator: Ras

Tord Romstad
Posts: 1808
Joined: Wed Mar 08, 2006 9:19 pm
Location: Oslo, Norway

Re: Versioning

Post by Tord Romstad »

Carey wrote:I've never really been a big fan of CVS or SVN for personal use. I liked the idea, but hated the tools. Things like TortiseSVN make it actually easy enough to use. (There are other tools, of course. It's a matter of personal preference.)
The choice of version control system seems to be a religious issue for many people, and I therefore generally prefer to not get involved in such discussions. But in my opinion, old-fashioned centralized version control systems like CVS or SVN are not very convenient to use for single-user projects. I think most developers would be more happy with Darcs, Git or Mercury. My personal preference is for Darcs. YMMV, as always.

Tord
Carey
Posts: 313
Joined: Wed Mar 08, 2006 8:18 pm

Re: Versioning

Post by Carey »

Tord Romstad wrote:
Carey wrote:I've never really been a big fan of CVS or SVN for personal use. I liked the idea, but hated the tools. Things like TortiseSVN make it actually easy enough to use. (There are other tools, of course. It's a matter of personal preference.)
The choice of version control system seems to be a religious issue for many people, and I therefore generally prefer to not get involved in such discussions. But in my opinion, old-fashioned centralized version control systems like CVS or SVN are not very convenient to use for single-user projects. I think most developers would be more happy with Darcs, Git or Mercury. My personal preference is for Darcs. YMMV, as always.

Tord

I haven't used Darcs, Git or Mercury so I can't say anything about those. I think I'll look into them later, though.

And I do not take it seriously enough for it to be a 'religious' issue. I definetly understand what you mean, though, and like you I certainly don't want to get involved in that strong of a discussion.

I do agree that most of the RCCS, CVS, and SVN tools are inconvenient at best.

As I said in the quote, I liked the idea, but I didn't like the tools that were required.

I resisted using them for my own stuff for at least 15 years.

The TortiseSVN utility though seems much easier to use. It can work with remote servers, but is much more geared towards personal archives on your own drive. For single person projects.

For me, as an occasional hobbiest chess program, it's actually easy enough to use.

Since it is a single package that integrates into File Explorer, it's easy for me to work with, and add comments to a version and so on.

It could definetly be improved. There are some areas that seem a bit inconvenient. (I am open to better methods... I meant it when I said I'd look at the ones you suggested.)

But it works well enough and is easy enough for a single person project that I switched from doing full ZIP archives (with manual version numbers and comments included into the zip comment field) to ToortiseSVN.

I've been in his position.

That was kind of why I responded to his question.

Since I'm such a poor chess programmer (and my interest is old, antique chess programs rather than new ones. I'd much rather play with Prof. Hyatt's CrayBlitz source than his latest & greatest version of Crafty, for example), I usually have little to contribute to this foruum, but this was something that I myself had semi-recently wrestled with.

If you can find a version control system that you like, then you are much better off using that than any form of manual backup & archive numbering scheme. It's really nice to be able to go through your old versions and see what had changed, or when it changed, or even go back to an old version and fork from there, abandoing an unproductive line of changes.

But if you don't want to use a form of version, well, manual version numbering & archiving can work. It might even be fun if you use Ovyron's idea of roman numerals. (grin)
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Versioning

Post by sje »

Some platforms, like Mac OS/X have a standard nn*[.nn*]* format along with a standard place to store this and a standard method for displaying the data to a user.

I ignore this for Symbolic (it uses either a simple console user interface or xboard) and instead use the ASCII numeric date encoded as yyyy.mm.dd with a lower case "v" as a prefix.
User avatar
Ovyron
Posts: 4558
Joined: Tue Jul 03, 2007 4:30 am

Re: Versioning

Post by Ovyron »

Bill Rogers wrote:Mark
Over the years I have watched many programs slowly take developement and the starting number is not really important. You can start with Version 1 and as you make small improvements you can release version 1.01 or what ever you may wish to call it. I also noticed that many programmers will not jump from version 1 to version 2 unless there is a fairly large jump in the programs playing strenght ie ELO.
I would suggest no less than an increase of at least 100 elos before calling it a new version ie #2 etc all the rest of the minor improvements leading up to that point would be decimal points of one kind or another.
I hope you can understand my logic here as it appears that is what most programmers do. Of course I could be wrong but then you could ask Dr Hyatt or the author of Hiarcs how they do it.
Bill
Oops
This goes to another thread sorry boys, maybe someone can move it for me. I was replying to the guy about version numbers.
User avatar
Onno Garms
Posts: 224
Joined: Mon Mar 12, 2007 7:31 pm
Location: Bonn, Germany

Re: Versioning

Post by Onno Garms »

Many interesting and funny suggestions. No one has suggested the TeX versioning sceme yet: Let the version numbers converge to pi.
3, 3.1, 3.14, ...
I have TeX 3.141592 and metafont 2.71828 :)
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Versioning

Post by bob »

Kempelen wrote:When I had to versioning a doc or a program, I only make a copy raising a counter in the name. I had never used a serius system before, and now I am thinking on useing something reasonable for the engine I am writting.

I have seen that in lot of software people use nn.nn or even three or four (nn.nn.nn , nn.nn.nn.nn). What is a good politics to versioning this?

I am very diligent and are trying to do things fine from start, althought the engine will finish in month or years. :)

thx
FS
In Crafty, we use X.Y.Z

X is the major version number, such as the current 22.0 version. the Y is the minor version number, which increments as changes are made and that version is released. the .Z versions are private so that we can track each individual change as we work toward release of the next minor version number. We might go through 10-20 of those private releases (sometimes hundreds) before we decide on what to release. In our case, we even add the Initial of the person responsible for that minor version change so that we can keep up with who did what and when...
jswaff

Re: Versioning

Post by jswaff »

bob wrote:
Kempelen wrote:When I had to versioning a doc or a program, I only make a copy raising a counter in the name. I had never used a serius system before, and now I am thinking on useing something reasonable for the engine I am writting.

I have seen that in lot of software people use nn.nn or even three or four (nn.nn.nn , nn.nn.nn.nn). What is a good politics to versioning this?

I am very diligent and are trying to do things fine from start, althought the engine will finish in month or years. :)

thx
FS
In Crafty, we use X.Y.Z

X is the major version number, such as the current 22.0 version. the Y is the minor version number, which increments as changes are made and that version is released. the .Z versions are private so that we can track each individual change as we work toward release of the next minor version number. We might go through 10-20 of those private releases (sometimes hundreds) before we decide on what to release. In our case, we even add the Initial of the person responsible for that minor version change so that we can keep up with who did what and when...
Then the question becomes - what constitutes a major release and what is merely a minor release?
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: Versioning

Post by Bill Rogers »

Hi James
With the exception of items not related to playing strength I would say a major release would be anything that adds at least 100 elo points in playing strenght. That is just a person feeling though, I am sure there are a great many different ideas.
Bill
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Versioning

Post by bob »

jswaff wrote:
bob wrote:
Kempelen wrote:When I had to versioning a doc or a program, I only make a copy raising a counter in the name. I had never used a serius system before, and now I am thinking on useing something reasonable for the engine I am writting.

I have seen that in lot of software people use nn.nn or even three or four (nn.nn.nn , nn.nn.nn.nn). What is a good politics to versioning this?

I am very diligent and are trying to do things fine from start, althought the engine will finish in month or years. :)

thx
FS
In Crafty, we use X.Y.Z

X is the major version number, such as the current 22.0 version. the Y is the minor version number, which increments as changes are made and that version is released. the .Z versions are private so that we can track each individual change as we work toward release of the next minor version number. We might go through 10-20 of those private releases (sometimes hundreds) before we decide on what to release. In our case, we even add the Initial of the person responsible for that minor version change so that we can keep up with who did what and when...
Then the question becomes - what constitutes a major release and what is merely a minor release?
I can only answer for what we do here with Crafty. Major releases represent significant changes. Sometimes we do it due to compatibility issues, such as when I rewrote the book to be endian-neutral. Other times it represents a radical change in the code base, such as the 22.0 change that eliminated the black/white duplication...
cyberfish

Re: Versioning

Post by cyberfish »

How about an integer? 0, 1, 2, 3, 4...

That's what I always used when I don't want to bother myself with the numbering (when to add 1, when to add 0.1, when to add 0.01 etc).