Plans for uml-sys

Versioning:
All versions < 1.0 are considered testing, unstable, buggy, ...
Beggining with version 1.0 there will emerge a stable branch a testing branch Coded in Major.Minor.Release scheme. Stable brach will use the Major.EvenMinor.Release scheme and testing Major.OddMinor.Release, just like the linux kernel did in verions prior to 2.6. That means the first stable and testing releases will be called 1.0.0 and 1.1.0 respectively.

Deployemnt before first stable: each version starts as 0.Xa (means alpha) and continues by adding a digit, until some milestone is reached and basic flawless funnctionality is assured.
version 0.Xb should work for tasks not marked as not implemented, should contain current documentation and manuals. Further function implementations and design marks in the defaults config file are made during this period.
When the time comes and we need to break something heavily, new alpha version is released. This should make the last beta of every version the thing to start playing with.

Stages:
Alpha stage of development, planned up to verion called 0.5

Beta stage of development, planned from version 0.6 to 0.9
During this period, most vital functions should be implemented and main work will lay on bugfixing.

Stable stage of development, from version 1.0.0 above
During this stage, new functionality could be added only during alpha releases of new version, after that only minor functionality is added to ongoing Stable Minor, mostly bugfixes are added. Every stable release gets also rc (release candidate) part of cycle a final release without any letters. If a serious bug occurs, there comes a fixed release with another .digit like 1.0.0.3.
Functionality is added to the testing branch and after everything around something is tested enough, it could be moved to stable branch alpha release.

Milestones:
0.2a - able to deploy machines with multiple interfaces, make documentation
0.2b - handle vital functions of machines, be able to shutdown them cleanly. complete the documentation, release a .deb too.

0.3a - take care of iptables settings, add support for bridging and uml_switch daemon. make some sanity checks on configuration files.
0.3b - test all of the added features, make more complex documentation.

0.4a - build the watch subsystem to control the running virtuals and keep them doing what we want them to.
0.4b - test all of the added features, make the code more comprehensible.

0.5a - reserve for some new ideas :) Maybe uml proc fs features.
0.5b -

0.6a - make some efficiency updates. there are always thing I am lazy to do, that do not impact anything but resources. This is no problem for five machines, but could get it's bounty on huge installations. Clean up all mess.
0.6b - test what happened with the code.

0.7 - look for security issues, test everything

0.8 - try to create some importing utility from some design software, make more sanity checks on individual configs to avoid colapses of misimported stuff.

0.9 - reserve for some new ideas :)

1.0.0a - last time to put in functionalities for first stable release
1.0.0b - make sure everything works as it should, doublecheck all the documentation
1.0.0rc - this should work, be documented, efficient, secure, poverfull... this release should stay here for at least a month to be sure.
1.0.0 - just rebrand last tested rc and celebrate!