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

A1.0.17  Achieved!

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!