Hello, I’ve had a think about my version numbers, and decided to revert to a 1.x system. I never had a system before, so imagine the old version was in beta. I will henceforth refer to the old version as “The Old Version”.
The new version is what is currently in development under the http://code.google.com/p/polargraph/source/browse/#svn%2Fcontroller%2Fbranches%2Fpolargraphcontroller_zoom branch. I have a version number embedded in it, and I’ll update it when I remember to. Once this version is stable enough, I’ll move it to the development trunk, replacing The Old Version.
A word about Subversion:
I don’t know how much folks know about software development and things like that, but most software that is developed is stored in a code repository along the way. This is a centralised storage area that keeps track of the current code, but also all the previous versions that have ever been made. So it keeps a full history.
What I do is check the code out of the repository, make my changes, and then commit the changes back into the repository. Then if I realise that code is terrible, I can just roll back to a previous version. There’s a few different kinds of Concurrent Version Systems (CVS), which is the generic term for this kind of code store. I use Subversion (SVN) for no reason other than it’s what I’m used to, but GIT is another, and Mercurial is another.
Now, I’m saying this because this project is rapidly changing, and is no longer just a simple single-file program. Compiling binaries, uploading and naming them is a pain since it has to be done manually for windows and mac every time there’s a change. I hate doing it, so there’s a good chance I won’t always update the binaries every time I make a change.
If you want to keep absolutely up to date, then you should check the source out from the repository directly. I use TortoiseSVN to do this. It’s a shell extension for windows explorer that adds subversion tools to your folder. Make an empty folder called polargraphcontroller_zoom, and right-click in it and choose “SVN Checkout”, and in the URL, enter the URL of the particular branch of the repository you want, in this case: https://polargraph.googlecode.com/svn/controller/branches/polargraphcontroller_zoom and hit OK. It will download the complete repository branch into your folder, and what’s more, you can pull down the latest updates just by right-clicking on the folder and going to “SVN Update”. This is a good way of keeping yourself in sync with the newest code.
Caveat
Remember sometimes I break things instead of fix them. This is just to keep you on your toes. No, really, I’m just a spanner. So if you happen to update and something’s broke, that’s unlucky. Either let me know, or wait until I notice myself. I would prefer the former.
Branches and trunks
The code repository has files and folders just like a regular file system, but it is a convention (amongst SVN/CVS anyway) that each project has a trunk, where the main development occurs, and branches, where experimental stuff happens. Things are trialled on branches, and eventually, if they work ok, they get merged into the trunk. While things are still in branches, they are considered experimental, or unreliable.
On our project here, the trunk contains The Old Version. Eventually I will merge the changes in the zoom branch into the trunk. It will be a sad day.
Why I’m being tardy about this
I feel there’s still some changes to be done in the new branch, so I’m reluctant to go and update all my instructions everywhere if I’m just going to have to do it again in a week. I’ve still got a couple of features I want to add, but I was also aware that the limitations of The Old Version were making things very difficult for some people, so that’s why I pushed the new code out. BUT, if I’m honest, it’s still got some issues that need looking at, in terms of usability and efficiency. I’ll add some new instructions and things once things have settled down a bit – in the meantime hopefully it’s not too much of a difficult beast to grasp, and you’ll let me know if something doesn’t work.
Cheers folks!