-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This Rev 0.0 of a rough development plan for e-smith 6.1 and e-smith
7.0. Feedback is welcome - there won't be anything if I have to do it
alone.



Open Issues and Key Assumptions

I am using the old e-smith name, which is almost certainly a Trademark
(or equivalent) of Mitel now. We need to get agreement from Mitel that
we can use the name, or find an alternative name.

I am assuming that we want to put out a minor release (which I have
called 6.1) based on the Mitel SME Server 6.0 release to work out the
development process nits, prior to putting out a major release (which
I have called 7.0).

What should the development cycle time be?

How do we handle translation / localisation efforts?

What happens when features from different developers affect the same
package? 

What is the QA mechanism? Informal testing? Formal testing against a
range of configurations? Community testing plus a bugzilla?

What resources can we get from Mitel? Especially the current bugs list
and any in-house documentation?



General Development Concept

Releases are time based. There are three major roles for each release:
* the ToolChain Dude
* the Release Dude
* the Support Dude

Each release is begun by defining the base environment (eg 6.1 will be
based on RH 7.3, 7.0 might be based on Fedora Core 2 or RH 9.0). 

Given the base environment, the ToolChain Dude puts together an
installable CD of the core parts of that base environment, plus the
development tools (compiler, debugger, -dev libs, etc). This is
released to contribs.org.

Any subsequent changes to the base environment (eg kernel upgrades)
are released at the same time every week (say 1200 GMT each
Wednesday), so that all the breakage can be managed at the same
time. The ToolChain Dude liaises with the Release Dude to handle any
changes. Individual developers identify additional package
requirements to the ToolChain dude as early as possible, but no later
than the 

We will maintain up to four feature / package plans:
1. The current minor release feature plan (ie the one we are
developing). Right now, this is the 6.1 release plan.
2. The next minor release featureplan (which will be opened just before we
close the current minor release plan - features that aren't ready get
moved back a release). This will be 6.2, if there is such a release.
3. The major release feature plan (cool stuff that can't make it into the
minor release because it is too intrusive). Right now, this will be 7.0.
4. The next major release feature plan (which opens when the current major
release plan closes. This would be 8.0.

The Release Dude gets to plan out when the various plans open and
close, and when the features have to be implemented by. This is
documented in a release plan, which has dates and events on it. 

The feature plan is basically the aggregate of each developer's
commitments - features only go into the plan when someone commits to
doing the work. The community as a whole can reject items from the
feature plan that are contradictory to the general concept (eg
adding X would currently be in this area), or are too extensive for a
minor release (eg switching from Perl to Python). The release dude can
veto anything that is a likely security problem at any time. Obviously
"general concept" is something that is likely to change with time.

After some period of adding new features, the release goes into
stabilisation / bug-fix cycle - beta 1. Additional beta releases
should be allowed for major releases. The Release Dude prepares an ISO
image for each release.

After the beta, we go into release candidate 1. If no show-stopper
bugs (decided by the release dude, concensus on mailing list if any
doubt), we release it.

That release then goes into support mode, and is managed by the
Support Dude. The Release Dude may choose to become the Support Dude,
but there is no expectation that this will (or will not) be the normal
case. No new features get provided in support mode - it only provides
fixes for true bugs - typically security bugs and bugs that cause data
loss or problems with access. Upgrades/updates that only provide new
features have to wait for the next release, or provided as
"after-market" contribs.

No volunteers for every role - no release.



Technology choices

RPM. In the long term, they should be signed.

We should think about infrastructure to provide easy access to updates
- - perhaps we can resurrect the blades stuff from 5.6? 

Individual developers upload RPMs / SRPMs for their packages to
contribs.org



Documentation

Features without documentation describing what they do, and how to
control them (to the extent currently provided in the Vegan book) will
not be released. They can still be provided as "after-market" contribs. 


- -- 
http://lca2004.linux.org.au - I'm registered. Are you?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/0rw1GwwszQ/PZzgRAnn/AJ0ShQC0/E95yJhsRdsFJ2uHxz9LNQCfQKFn
H9KSd62Wvv+2QOoTcEPL6qA=
=9Bc5
-----END PGP SIGNATURE-----

--
Please report bugs to [EMAIL PROTECTED]
Please mail [EMAIL PROTECTED] (only) to discuss security issues
Support for registered customers and partners to [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Searchable archive at http://www.mail-archive.com/devinfo%40lists.e-smith.org

Reply via email to