Skip to content

Commit 4349b87

Browse files
committed
Bump version to 0.18.15-beta and update changelog
- Bumped version to 0.18.15-beta in Project.toml - Added comprehensive changelog entry for 0.18.15-beta covering: - Philosophy documentation additions - Documentation build improvements - Bug fixes (TestRunner auto-discovery, typed exceptions) - Code quality improvements (import qualification, cleanup) - Added non-breaking note to BREAKINGS.md for 0.18.15-beta - All changes are internal or documentation-only; no breaking changes
1 parent 1480be1 commit 4349b87

3 files changed

Lines changed: 78 additions & 1 deletion

File tree

BREAKINGS.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
This document outlines all breaking changes introduced in CTBase v0.18.0-beta compared to v0.17.4. Use this guide to migrate your code and understand the impact of these changes.
44

5+
## Non-breaking note (0.18.15-beta)
6+
7+
- **Philosophy documentation**: Added comprehensive code philosophy documentation in `dev/philosophy/` covering modules, types/traits, exceptions, docstrings, testing, and documentation standards. No API changes; purely documentation additions.
8+
- **Agent guides**: Added `AGENTS.md` and `CLAUDE.md` for agent navigation and project context. No API changes; purely documentation additions.
9+
- **Documentation build improvements**: Changed `docs/make.jl` build method and fixed cross-references. No API changes; purely documentation improvements.
10+
- **Typed exceptions**: Replaced untyped `error()` and `ArgumentError` with structured CTBase exceptions in `ext/` files. No API changes; internal error handling improvement.
11+
- **Import qualification**: Qualified imports in submodules (`using DocStringExtensions``import DocStringExtensions: TYPEDEF, TYPEDSIGNATURES`). No API changes; internal code quality improvement.
12+
- **Code cleanup**: Removed dead ternary branches, fixed byte-indexing, removed circular imports. No API changes; internal code quality improvement.
13+
- **TestRunner auto-discovery fix**: Fixed non-recursive test discovery in auto-discovery mode. No API changes; bug fix.
14+
- **Docstring refactoring**: Rewrote ExtensionError and SolverFailure docstrings with `$(TYPEDEF)` and standardized sections. No API changes; documentation improvement.
15+
- **No migration required**: All changes are internal or documentation-only. No breaking changes.
16+
517
## Non-breaking note (0.18.14-beta)
618

719
- **TestRunner progress display refactoring**: Renamed `progress` parameter to `show_progress_line` for clarity, and added new `show_progress_bar` parameter for granular control. Users with `progress=false` should change to `show_progress_line=false`. Users with `progress=true` (default) can keep using defaults or set `show_progress_line=true, show_progress_bar=false` for minimal display without the graphical bar. No breaking changes; purely parameter rename with backward-compatible defaults. Migration: replace `progress=` with `show_progress_line=`.

CHANGELOGS.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,71 @@ All notable changes to CTBase 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.18.15-beta] - 2026-06-06
9+
10+
### 📚 Documentation
11+
12+
#### **Philosophy Documentation**
13+
14+
- **Added philosophy documentation**: Added comprehensive code philosophy documentation in `dev/philosophy/`
15+
- `modules.md`: Submodule organization, imports/qualification, DAG, exports
16+
- `types-traits-interfaces.md`: Types vs traits, interfaces/contracts, SOLID/DRY/YAGNI, type stability
17+
- `exceptions.md`: The 7 exceptions and the choice rule
18+
- `docstrings.md`: Docstring templates, cross-references, example safety
19+
- `testing.md`: Categories, fakes/stubs, module + callable function template
20+
- `documentation.md`: API generation, guides, draft workflow
21+
- **Added agent guides**: Added `AGENTS.md` (agent navigation guide) and `CLAUDE.md` (Claude project context)
22+
- **Added planning template**: Added `dev/planning.md` for implementation plans
23+
- **Added operational rules**: Added `dev/RULES.md` for MCP, doc build, git, and output capture procedures
24+
25+
#### **Documentation Build Improvements**
26+
27+
- **Faster builds**: Changed `docs/make.jl` from `Pkg.activate/instantiate` to `pushfirst!(LOAD_PATH, ...)` for faster builds
28+
- **Fixed cross-references**: Fixed unresolved `@ref` links for extension tags (AbstractCoveragePostprocessingTag, TestRunnerTag, AbstractTestRunnerTag)
29+
- **Added examples**: Added example code blocks for extension tags in docstrings
30+
- **Refactored docstrings**: Rewrote ExtensionError and SolverFailure docstrings with `$(TYPEDEF)`, standardized sections, and cross-references
31+
32+
### 🐛 Bug Fixes
33+
34+
#### **TestRunner Auto-Discovery**
35+
36+
- **Fixed non-recursive discovery**: Fixed test discovery in auto-discovery mode to use `_collect_test_files_recursive` instead of flat `readdir`
37+
- **Impact**: Tests in subdirectories were silently ignored in auto-discovery mode; now properly collected recursively
38+
39+
#### **Typed Exceptions (Tenet 6)**
40+
41+
- **Replaced untyped errors**: Replaced all `error()` and `ArgumentError` with structured CTBase exceptions across `ext/` files
42+
- `ext/TestRunner.jl`: 7 replacements (IncorrectArgument, PreconditionError)
43+
- `ext/CoveragePostprocessing.jl`: 4 replacements (PreconditionError)
44+
- `ext/DocumenterReference.jl`: 2 replacements (IncorrectArgument)
45+
- **Fixed invalid Julia syntax**: Fixed 2 occurrences of `catch e::CTBase.Exceptions.CTException``catch e` + `e isa ... || rethrow()`
46+
- **Fixed docstring output**: Corrected incorrect output in `_progress_bar` docstring (width=20 → 10 blocks)
47+
- **Updated tests**: Updated 7 test files to reflect new exception types
48+
49+
### 🧹 Code Quality
50+
51+
#### **Import Qualification**
52+
53+
- **Qualified imports**: Changed `using DocStringExtensions` to `import DocStringExtensions: TYPEDEF, TYPEDSIGNATURES` in all submodules
54+
- **Qualified Coverage import**: Changed `using Coverage` to `using Coverage: Coverage` in CoveragePostprocessing
55+
- **Removed circular import**: Removed `using CTBase` from src/Exceptions/Exceptions.jl
56+
- **Removed redundant imports**: Removed redundant `using DocStringExtensions` from src/Descriptions/types.jl
57+
58+
#### **Code Cleanup**
59+
60+
- **Removed dead ternary branches**: Simplified `_normalize_selections` and `_builder_to_string` in TestRunner
61+
- **Fixed byte-indexing**: Changed path slicing from byte-indexing to `relpath()` in CoveragePostprocessing
62+
- **Fixed collision risk**: Normalized flat names in cov file flattening to prevent collisions
63+
64+
### 🧪 Testing
65+
66+
- **All tests pass**: 1161/1161 tests pass
67+
- **Documentation builds**: Documentation builds successfully with no extension errors
68+
69+
### 🧹 Maintenance
70+
71+
- **Version bump**: Bumped to 0.18.15-beta for development.
72+
873
## [0.18.14-beta] - 2026-05-30
974

1075
### ✨ New Features

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "CTBase"
22
uuid = "54762871-cc72-4466-b8e8-f6c8b58076cd"
3-
version = "0.18.14-beta"
3+
version = "0.18.15-beta"
44
authors = ["Olivier Cots <olivier.cots@irit.fr>", "Jean-Baptiste Caillau <caillau@univ-cotedazur.fr>"]
55

66
[deps]

0 commit comments

Comments
 (0)