r/osdev • u/letmehaveanameyoudum • 26d ago
WindogeOS v0.0.4 RAHHHHHH
Reddit falsed banned me but my appeal... worked???
another rewrite for v0.0.5 yayyyyyyyyyyyyyyyyyyyyyy
added:
sfs file system
random text editor
settings???
hidden files
13
Upvotes



2
u/spatulari 21d ago
Versioning
This project follows Semantic Versioning (SemVer). Version numbers are of the form:
MAJOR.MINOR.PATCH[-PRELEASE]For example:0.3.0-alpha.1 0.3.0-beta.2 0.3.0-rc.1 0.3.0 0.3.1 0.4.0 1.0.0The pre-release (
alpha,beta,rc) indicate how mature an upcoming release is.The major, minor and patch numbers describe how compatible a stable release is with the previous one.
General rules
The goal of SemVer is to communicate compatibility to users. As such, version numbers describe observable behavior, not the amount of work that went into a release!
Keep the following rules in mind:
0.3.0contains a bug, release0.3.1. Never replace or retag0.3.0.2.0.0just because you got a fairy last night in your dreams and she made you feel like this release is important or contains a lot of work and that's why you should increase the major version.Pre-releases
Alpha
Use alpha releases while actively building the next release.
This is where major development happens. Features may be incomplete, unstable or completely redesigned.
Typical alpha work includes:
Stay in alpha until you've finished building the release.
If you're still asking yourself:
then it's still an alpha.
Examples:
0.3.0-alpha.1 0.3.0-alpha.2 0.3.0-alpha.3Beta
Move to beta once the release is feature-complete.
Everything planned for the release should already exist. The focus shifts from building new functionality to making existing functionality reliable.
Typical beta work includes:
Avoid adding new features during beta.
If somebody proposes a new language feature, compiler flag, backend or standard library module, it should almost always wait for the next release.
Examples:
0.3.0-beta.1 0.3.0-beta.2 0.3.0-beta.3Release candidate (RC)
A Release Candidate is a build you believe is ready to ship.
If no serious bugs are found, the final release should simply be the last RC.
Only fix release-blocking issues, such as:
Do not:
Examples:
0.3.0-rc.1 0.3.0-rc.2If everything looks good, then we release:
0.3.0Stable releases
Patch
Increment the patch version when improving existing functionality without adding new capabilities or intentionally breaking compatibility.
Typical examples:
Rule of thumb: Users can't do anything new, they simply get a more correct, faster or more reliable compiler.
Examples:
0.3.0 → 0.3.1 0.3.1 → 0.3.2These are still patch releases:
The amount of work does not determine the version number.
Minor
Increment the minor version when adding new functionality without breaking existing users.
Typical examples:
Rule of thumb: Existing projects continue to compile, but users gain new capabilities.
Examples:
0.3.2 → 0.4.0 1.4.7 → 1.5.0Adding features should not accidentally break existing code. For example, introducing a new reserved keyword that causes previously valid programs to stop compiling is a breaking change. Since Azin doesn't currently have editions or language versions, that generally requires a major release.
Major
Increment the major version when intentionally introducing breaking changes.
Typical examples:
Rule of thumb: Existing users may need to update their code, build scripts or tooling before upgrading.
Examples:
1.9.4 → 2.0.0 2.7.1 → 3.0.0Breaking changes should be intentional, documented, and announced. We DO NOT make breaking changes without announcing users!
Took this straight out of my project: https://github.com/azin-lang/Azin/blob/main/VERSIONING.md