Skip to content

Commit 4263f03

Browse files
committed
Prepared v0.10.0 release metadata
- Updated Canonical Version Metadata To v0.10.0 Across Docs And Runtime Banners - Added The v0.10.0 Changelog Entry And Marked ROADMAP.md As Released - Recorded The Published userland Banner Update Via The Submodule Pointer
1 parent e63a2d1 commit 4263f03

File tree

11 files changed

+59
-30
lines changed

11 files changed

+59
-30
lines changed

CHANGELOG.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,39 @@ All notable changes to ThunderOS will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.10.0] - 09/04/2026 - "System Control"
9+
10+
### Overview
11+
System control release adding graceful shutdown and reboot support from user space, along with the release hardening, documentation cleanup, and security automation needed for the public ThunderOS release.
12+
13+
### Added
14+
15+
#### System Control (`kernel/core/syscall.c`, `kernel/arch/riscv64/core/sbi.c`, `external/userland/bin/poweroff.c`, `external/userland/bin/reboot.c`)
16+
- `sys_poweroff()` and `sys_reboot()` system calls
17+
- `poweroff` and `reboot` userland utilities
18+
- SBI SRST support with legacy and QEMU test-device fallbacks
19+
- Reliable shutdown and reboot paths for the supported QEMU environment
20+
21+
#### Release Security and Automation
22+
- `SECURITY.md` vulnerability disclosure policy
23+
- CodeQL code scanning workflow
24+
- Dependency review workflow
25+
- Pinned documentation dependency manifest for reproducible Sphinx builds
26+
27+
### Changed
28+
- Canonical version metadata updated to `0.10.0` across release-facing docs and runtime banners
29+
- ROADMAP now identifies `v0.10.0` as the released system-control milestone and `v0.11.0` as the next feature milestone
30+
- Docker documentation dependency installation now consumes `docs/requirements.txt`
31+
32+
### Fixed
33+
- Clean Sphinx build on the current documentation set
34+
- Release-facing GitHub owner links across documentation
35+
- CodeQL toolchain setup for the hosted RISC-V analysis environment
36+
37+
### Verification
38+
- `make clean && make -j2 && make test`
39+
- `make -C docs clean html SPHINXOPTS='-W --keep-going'`
40+
841
## [0.9.0] - 04/12/2025 - "Synchronization"
942

1043
### Overview
@@ -565,7 +598,7 @@ Fifth release of ThunderOS. Implements inter-process communication through signa
565598
### Known Limitations
566599
- **Pipe Blocking**: Pipes are non-blocking (return EAGAIN when empty/full)
567600
- Proper blocking I/O requires wait queue implementation
568-
- Deferred to v0.10.0 "Synchronization" release
601+
- Deferred to v0.9.0 "Synchronization" release
569602
- **File Descriptor Inheritance**: Child processes don't inherit parent's FDs
570603
- **Signal Handling**: No signal handler inheritance in child processes
571604

README.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@ A lightweight RISC-V operating system for educational use, providing a clean fou
44

55
## Current Status
66

7-
**Version 0.9.0 - "Synchronization"** 🎯 Released!
7+
**Version 0.10.0 - "System Control"** 🎯 Released!
88

9-
-**v0.9.0 Released** - Blocking I/O and synchronization primitives
10-
- ✅ Wait queues for sleep/wakeup on blocking operations
11-
- ✅ Mutexes and semaphores with blocking support
12-
- ✅ Condition variables (wait/signal/broadcast)
13-
- ✅ Reader-writer locks with writer priority
14-
- ✅ Blocking pipes (readers sleep when empty, writers when full)
15-
- ✅ 62 system calls implemented
16-
- 🚧 **Next**: VirtIO-net driver, TCP/IP stack (v0.10.0 Networking)
9+
-**v0.10.0 Released** - Graceful shutdown and reboot from user space
10+
-`poweroff` and `reboot` utilities available in userland
11+
- ✅ SBI SRST support with legacy and QEMU test-device fallbacks
12+
- ✅ Prior process, filesystem, shell, and synchronization features remain available
13+
- 🚧 **Next**: VirtIO-net driver, TCP/IP stack (v0.11.0 Networking)
1714

1815
See [CHANGELOG.md](CHANGELOG.md) for complete feature list and [ROADMAP.md](ROADMAP.md) for future plans.
1916

@@ -154,7 +151,7 @@ Programs are compiled as RISC-V ELF64 executables and can be loaded from the ext
154151

155152
- RISC-V GNU Toolchain (`riscv64-unknown-elf-gcc`)
156153
- QEMU 10.1.2+ RISC-V System Emulator (`qemu-system-riscv64`)
157-
- OpenSBI 1.5.1+ with SSTC extension support
154+
- ThunderOS uses `-bios none` on the supported QEMU path, so no OpenSBI runtime is required
158155
- ACLINT timer device
159156
- Make
160157
- Standard Unix utilities (bash, sed, etc.)

ROADMAP.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -446,9 +446,9 @@ Initial attempt at VirtIO block driver revealed fundamental gaps in memory infra
446446

447447
---
448448

449-
## Version 0.10.0 - "System Control" 🚧 RELEASE PENDING
449+
## Version 0.10.0 - "System Control" ✅ RELEASED
450450

451-
**Status:** Feature-complete on main as of February 8, 2026; public `v0.10.0` tag and GitHub Release still pending
451+
**Status:** Released on April 9, 2026
452452

453453
**Focus:** System shutdown and reboot functionality
454454

@@ -620,18 +620,17 @@ See `CONTRIBUTING.md` for details on how to contribute to ThunderOS development.
620620

621621
Interested in contributing? Current priorities are:
622622

623-
### For v0.10.0 Release Prep
624-
- Align public version metadata across `VERSION`, `README.md`, `CHANGELOG.md`, and runtime banners
625-
- Publish annotated tag `v0.10.0` and matching GitHub Release
626-
- Verify release notes against tested functionality on `main`
627-
- Re-run clean build, automated tests, and docs build from the documented environment
628-
629623
### For v0.11.0 - "Networking"
630624
- Implement VirtIO-net driver support
631625
- Integrate lwIP and define the socket API surface
632626
- Add basic networking utilities and DHCP support
633627
- Expand network-focused automated coverage and documentation
634628

629+
### Release Maintenance
630+
- Keep `README.md`, `CHANGELOG.md`, and `ROADMAP.md` aligned with published releases
631+
- Expand automated coverage as new userland utilities and drivers land
632+
- Test supported QEMU workflows regularly and widen real-hardware validation over time
633+
635634
See the [Issues](https://github.com/byteshiftlabs/thunderos/issues) page for specific tasks.
636635

637636
---

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.0
1+
0.10.0

docs/source/api.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
API Reference
22
=============
33

4-
This document describes the public APIs available in ThunderOS v0.9.0.
4+
This document describes the public APIs available in ThunderOS v0.10.0.
55

66
Hardware Abstraction Layer (HAL)
77
---------------------------------

docs/source/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ Run in QEMU::
4141
Current Status
4242
--------------
4343

44-
**Version 0.9.0 - "Synchronization"** ✅ RELEASED
44+
**Version 0.10.0 - "System Control"** ✅ RELEASED
4545

46-
ThunderOS v0.9.0 includes blocking I/O, synchronization primitives, and 62 system calls!
46+
ThunderOS v0.10.0 adds graceful shutdown and reboot support while preserving the filesystem, shell, process, and synchronization capabilities from earlier releases.
4747

4848
.. list-table::
4949
:header-rows: 1

docs/source/internals/syscalls.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ System calls (syscalls) provide the interface between user-space programs and th
88

99
**Current Status:**
1010

11-
ThunderOS v0.9.0 exposes the syscall ABI defined in ``include/kernel/syscall.h``. The current surface covers process management, I/O, filesystem operations, signals, memory management, inter-process communication, synchronization primitives, networking, terminal control, file descriptor manipulation, file permissions, and system control.
11+
ThunderOS v0.10.0 exposes the syscall ABI defined in ``include/kernel/syscall.h``. The current surface covers process management, I/O, filesystem operations, signals, memory management, inter-process communication, synchronization primitives, networking, terminal control, file descriptor manipulation, file permissions, and system control.
1212

1313
**Key Features:**
1414

external/userland

Submodule userland updated 1 file

kernel/core/shell.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static void shell_print_prompt(void) {
5757
* Print help message
5858
*/
5959
static void shell_help(void) {
60-
hal_uart_puts("ThunderOS Shell v0.9.0\n");
60+
hal_uart_puts("ThunderOS Shell v0.10.0\n");
6161
hal_uart_puts("Available commands:\n");
6262
hal_uart_puts(" help - Show this help message\n");
6363
hal_uart_puts(" clear - Clear the screen\n");
@@ -337,7 +337,7 @@ static void shell_process_char(char input_char) {
337337
void shell_init(void) {
338338
hal_uart_puts("\n");
339339
hal_uart_puts("===========================================\n");
340-
hal_uart_puts(" ThunderOS v0.9.0 - Interactive Shell\n");
340+
hal_uart_puts(" ThunderOS v0.10.0 - Interactive Shell\n");
341341
hal_uart_puts("===========================================\n");
342342
hal_uart_puts("\n");
343343
hal_uart_puts("Type 'help' for available commands.\n");

kernel/core/syscall.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,8 +1600,8 @@ uint64_t sys_uname(utsname_t *buf) {
16001600

16011601
COPY_STR(buf->sysname, "ThunderOS");
16021602
COPY_STR(buf->nodename, "thunderos");
1603-
COPY_STR(buf->release, "0.9.0");
1604-
COPY_STR(buf->version, "v0.9.0 Synchronization");
1603+
COPY_STR(buf->release, "0.10.0");
1604+
COPY_STR(buf->version, "v0.10.0 System Control");
16051605
COPY_STR(buf->machine, "riscv64");
16061606

16071607
#undef COPY_STR

0 commit comments

Comments
 (0)