Due to some recent questions, I decided to post a new message here about a few of the details of a software engineering project. I'm thinking specifically of Slimserver, but most of this information is applicable to other projects as well, both proprietary and open source.
Some background info: This link contains information about what's going to be in upcoming versions of Slimserver: http://wiki.slimdevices.com/index.cgi?SoftwareRoadmap. Typically these are new features. For information about what bugs will be fixed, you can use the search feature on http://bugs.slimdevices.com, which is our bug tracking system (running software called "Bugzilla"). Slim Devices uses a "revision control" system (sometimes called "source control" or the "source tree") called "Subversion" (or "svn" for short) to store the source code for Slimserver. Detailed information about revision control is available at http://en.wikipedia.org/wiki/Revision_control if you are interested. The jargon of using a revision control system will often appear in our conversations about other aspects of Slimserver. When a developer (either an employee or a contributor) makes a change to source code stored in a revision control system, they have to "commit" (also called "checking in") their change. This is part of the system's mechanism to make sure two or more people don't check in incompatible changes to the same part of the code. In addition, revision control lets us have "branches" in the code. A branch starts off as an exact copy of all the source files needed to build Slimserver. From that point, the source files can be changed independently. So, next time you see a new branch appear in the nightlies, you'll know, generally, what the differences are between branches. Not much. It's only after divergent changes have time to start happening that noticeable differences appear. The main reason we create branches is to try to have a more stable software product. Most development goes on in a branch called the "trunk" (or in some systems "main"). Typically, when we get close to where we want to have a release (such as the recent 6.5.1 release) we will create a "branch" from the "trunk". This way, risky development can continue in trunk without causing major bugs in the branch about to be released. Since perl is not a language that needs to be compiled, it's possible for developers (and brave users) to just download the source code from our Subversion server and run it. For users that require a more friendly installation package, we make nightly automated "builds" of all branches for a number of operating systems. For most platforms this is basically an installer to go with the source. For Windows, we also put the Slimserver source in a "wrapper" so it can be run as a windows executable on systems without perl installed. At the moment, there are two branches in our revision control system. The trunk is being called 7.0, and there is a branch called 6.5.2. 6.5.2 is very close to release, so we are trying to minimize the changes that go into it so that we don't introduce new bugs. Nightly builds are available. The builds from the trunk (7.0) are not yet available on the nightly web page because there are still many known problems. It would not be constructive to have many end users filing duplicate bugs at this point. After it becomes more mature, we'll link to the nightly builds. If you file a bug you are having with 6.5.1 (or an earlier version), one of the first things we'll do is ask you to try it on 6.5.2, which at the moment is quite stable. If the bug also exists in 6.5.2, we'll try to assess the severity and risks associated with fixing the bug in the 6.5.2 branch. If there's a risk of creating or exposing new bugs, we'll probably decide to mark the bug to be fixed in 7.0. This is not an absolute decision; if there's a lot of interest in having it fixed for 6.5.2 by all means let us know and we'll do what we can. There have been some recent posts about how there's not much development going on with Slimserver at the moment. The main thing that's really happening is in the "trunk" of our source tree, there is under way a complete rebuild of error and status reporting between different portions of Slimserver that should allow much better error messages and error logging. There have also been some questions regarding bugs filed. I believe you if you say that you saw a bug in 6.5.1! However 6.5.1 is done. That branch is now called 6.5.2! So if your bug is fixed in 6.5.2, then that's where it's fixed. We're not going to make any more 6.5.1 builds. Similarly, if a bug has been fixed in 7.0 but still exists in 6.5.2, it has probably been fixed by the major changes that have been done on 7.0 and it may not be possible to fix it in 6.5.2. Ever! If we were to make those same major changes to 6.5.2, then it would be 7.0, and you'd have to wait for it, too. :-) If you file an enhancement request, what's going to happen is it will get marked to fix for a "Future" release. We already know what our goals are for 6.5.2 and 7.0. If your request is extremely important, or happens to correspond with work we're already doing for those branches, it might make it in. Otherwise we'll review it in a meeting later to determine what version we want to put your request in to. Hopefully, this post about the background of software engineering going on with Slimserver will explain some of the strange behavior you see from developers and QA people! But we haven't all been replaced with policies and automation. If there's something you have a strong opinion about, always feel free to make a comment or send some email! -- ChrisOwens Christopher Owens QA Manager [EMAIL PROTECTED] (650) 210-9400 x717 ------------------------------------------------------------------------ ChrisOwens's Profile: http://forums.slimdevices.com/member.php?userid=4240 View this thread: http://forums.slimdevices.com/showthread.php?t=33033 _______________________________________________ discuss mailing list discuss@lists.slimdevices.com http://lists.slimdevices.com/lists/listinfo/discuss