Upon release of 1.6.0 on the web site, we contemporaneously reorganized the SVN structure. It was basically a "blow up and start over" operation and was undertaken using Tortoise/SVN sledge hammers. After consulting with Eric and receiving advice from others we made the changes, and then made further changes upon learning we had move things around using the wrong "svn tool". To you the user, it would almost appear that nothing happened on the last step, but never mind, the first step was probably a bit traumatic and the last one was a blip in comparison. I did it incorrectly on the first step and fixed it in step two.

Let me explan what we have done and how I understand we will be using the SVN repository. This is subject to change at the behest of Flex Radio now that I have set this up in cooperation with Eric and Dale and is managed by Flex Radio and its employees (I am not one).

A "typical" svn repository has a trunk, tags, and branches and though there are no hard rules, we believe our use of the svn repository is now "standard". I will explain by example.

The moment of release on the web site of the next release (say 1.6.1), the frozen copy of the code/docs/executables involved in 1.6.1 will be "thin copied" from the trunk to a tag in the repository. The tag will be 1.6.1 and will preserve the state of 1.6.1 in perpetuity. All ongoing work will be done in trunk and branches. Releases will be in tags. If you are a developer with write access to the repository and you attempt to modify code in a tag at the repository, tortoise svn will send out a shout to you in a error/dialog box on the screen telling you this is nonstandard and will ruin the structure but go ahead if you insist.

Let us suppose that the Bill/Phil effort towards a sound card free widget comes into the project. They will get there own branch. Suppose Jeff wants to do a console and maintain it. He can get his own branch. When and if everyone agrees on the merger, they will be merged into the trunk and it will be revert to what is clearly an "alpha" status.

In every svn project I participate in, everything in the trunk after release (and thus preserved in a tag) is the ALPHA version of the next release. It becomes as it stabilizes, BUT REMAINS IN THE TRUNK, I guess you could call beta. When the developers are satisfied that the bugs out and that it is stable, a release is built and the process repeats. The Alpha, Beta bit is clearly muddied by the use of svn. This is standard operating procedure, However, in many projects (alsa, jack, python, wxwidgets, wxpython, fftw, and MANY more), a tar ball is made of the "prerelease" code and put up for normal browser or ftp download. Everyone is requested to beat it up for a short period before the "final" comes out and the final release date is published when the release candidate is proposed.

Should anyone have an alternative point of view on this about our interpretation of standard usage of svn, please send a note to Eric. He is the official Flex maintainer.

Bob


Robert W. McGwier, Ph.D.
Center for Communications Research
805 Bunn Drive
Princeton, NJ 08540
(609)-924-4600
(This sig is required by my employer)


Reply via email to