Page 1 of 3

Stockfish on github

Posted: Sun Oct 02, 2011 11:07 am
by mcostalba
Me and Joona are fading out from this wonderful chess engine world.

I have recently changed my job and I have almost no more time to dedicate to this hobby and Joona is in a similar condition. This is a pity somewhat but, hey, it is how things go, nothing is forever. We will continue with Stockfish but at a much reduced effort. So we were wondering what we could do now. And we had the idea to push our private git repository to github, so that everybody is free and even encouraged to contribute with patches, like it is common practice in open source development. We think our git tree is very valuable, not only for contributors but also for all the developers, especially the ones of strong engines, that will see in great detail what has been done, what has been proven to work and why: our git tree is really a kind of detailed diary of more than 2 years of developing of a world class engine. In my opinion is more valuable than sources or documentation and is the best gift we can give to this community.

In our dreams maybe it will attract some talent and create a little developer community around SF. I don't know if this will turn real or is just wishful thinking, but anyway me and Joona will continue to maintain SF and will gladly apply the patches that we will receive.

The rule to apply patches are very simple:

- If a patch is a "non functional change", for instance a clean up or a code simplification (we care a lot about code cleanups) will be applied without testing, just after a quick scrutiny to verify that actually does not change functionality and is really a code improvement.

- If a patch is advertised as an ELO increase stuff, then should be backed up with serious testing data and anyhow will be tested again by us before to be applied.

- Patches that add big chunks of code will not be accepted, in particular I am not willing to add tablebase support ;-) thank you.

- As common with git, patches will be applied with the author name of the submitter, that is the author of the patch.

Probably we will do a last release before pushing to github, so to avoid fostering wild compiles directly from the tree and also to have a clean starting point.

Now it's up to you, we'd really love to hear comments from you. If this idea can be interesting, there is someone wondering to contribute or is just business as usual.

Thanks
SF Team

Re: Stockfish on github

Posted: Mon Oct 03, 2011 6:20 am
by Rein Halbersma
This would be much, much appreciated! Christmas is coming early this year :-) I suppose the testing code itself is not included in your repo? Some sort of distributed testing (SF @ home) would be nice.

Re: Stockfish on github

Posted: Mon Oct 03, 2011 3:02 pm
by ilari
It's very sad news that you guys now have something more important to do than developing a free chess engine. But it's great news that Stockfish's commit tree will be publicly available. That's really the way to go for open source projects, and it makes it a lot easier for third parties to contribute their commits to be merged in the master branch.

Things may not go as smoothly as I hope though, because chess engine developers are notorious for writing unreadable code, ignoring documentation and coding conventions, making way too big changes, publishing too early, and not using essential tools like diff and version control systems. It's also generally hard to find people who are willing to contribute to a project that's not their own, especially if they feel that the development of said project is stalling.

My suggestion to you and Joona is to list some tasks (fixes, cleanups, features, optimizations, etc.) that you would like to get done, and describe the tasks well. Then it would be easier for third party developers to just browse through your TODO list and see if there's anything they could do.

Thanks again for Stockfish, it's one of the very best engines out there, and not just in terms of playing strength.

Re: Stockfish on github

Posted: Mon Oct 03, 2011 5:33 pm
by mcostalba
I have pushed the master branch to github:

https://github.com/mcostalba/Stockfish

No release for now given that the increase in ELO terms from 2.1.1 is very small, especially for single core case (where Ingo tests ;-) )

Thanks to Ilari and Rein for your words, incidentally you two are among the (few) very best coders I had the opportunity to know in this community and so your comment are even more appreciated.

@Rein: If with testing code you mean the autotuning tools we use to tweak parameters in SF, well, you are right these tools are not part of SF sources and are a separate stuff.

@Ilari: We don't have a detailed TODO list, an engine IMHO is a bit different from a GUI where you can add features almost endlessy. A chess engine, when mature, is an almost complete piece of software and you can further develop mainly along two lines: cleaning up and simplify code already in and/or adding stuff that increases ELO level. For both of these two directions it is difficult to write a TODO because mainly "you do once you realize you can do".


As a side note, the diff of current master from last released version 2.1.1 is:

33 files changed, 2519 insertions(+), 2994 deletions(-)

Re: Stockfish on github

Posted: Mon Oct 03, 2011 7:52 pm
by jdart
IMO, you shouldn't accept any changes, even apparently trivial, w/o testing.

If possible you should include with the source a minimal set of tests you expect to pass before commits. Then the committers can run those

--Jon

Re: Stockfish on github

Posted: Mon Oct 03, 2011 8:02 pm
by Ralph Stoesser
@Marco
GL for your new job and thx for the git!
A very interesting read.

Re: Stockfish on github

Posted: Tue Oct 04, 2011 8:11 am
by Joerg Oster
Hi Marco,

Stockfish gave me so much fun over the past few years and I learned at least a little bit from it. So many thanks for a wonderful engine to the whole SF Team!

And all the best to you and Joona in your new jobs. :D

Joerg.

Re: Stockfish on github

Posted: Tue Oct 04, 2011 12:50 pm
by IWB
Hi Marco,
mcostalba wrote: ...
No release for now given that the increase in ELO terms from 2.1.1 is very small, especially for single core case (where Ingo tests ;-) ).
...
You (as a team) once expected nearly no increase and it was a big jump (on IPON and others) the other time you expected something and there was nearly nothing (on IPON and others). When the second thing happened you (team) questioned your testing methods ... maybe this time ... who knows.

As the current source is available do you mind to give it a release number (2.1.2?) as it is maybe the last one from you (team) alone?

Bye
Ingo

PS: Actually the german language is much more clear when talking about you (du) and you (ihr/euch). At least one advantage :-)

Re: Stockfish on github

Posted: Tue Oct 04, 2011 6:41 pm
by Jouni
I am curious: what is "Better naming borrowed from Critter" meaning, you have Critter source?

Jouni

Re: Stockfish on github

Posted: Wed Oct 05, 2011 12:07 am
by Dave_N
Thanks for the great engine, I hope future versions based on the github can improve the playing strength. I first downloaded Stockfish over a year ago and enjoyed reading the code. Are there any plans for a documentation wiki?