The versioning is organised in two parts: the developer part and the part visible to the end-user. The part visible to the end user is never touched because of a new development version. For example: version 4.4 will never become 4.5 because of a new beta. The format is this: PHASE + MAJOR + MINOR + RELEASE VERSION. And for the end user it's like this: MAJOR + MINOR. The phase is either P (pre-alpha), A (alpha), B (beta), R (release canidate) or F (final release). Counting starts from zero exept for the major version number. For each version, goals are set, and we only progres to a new version once these goals are met reather then releasing based on a time interval. The planning is organized per planned milestone:
Milestone I: Booting Achieved!
Bootloader: A1.0.14 (basic functionality, can bootstrap os)
Kernel: MikeOS (for testing purposes only) / Nucleo A1.0.6 (dummy kernel)
Milestone II: Basic Kernel Functionality
Bootloader: B1.0.1 (improved functionality, detects extra hardware feautres etc...)
Kernel: Nucleo A1.0.18 (IPC + VM)
Milestone III: Full Kernel Functionality (Current)
Milestone IV: First Processes (Next)
.... More to come!