|
| 1 | +--- |
| 2 | +date: 2025-11-05 00:20:00 |
| 3 | +title: Changelog |
| 4 | +permalink: |
| 5 | +publish: true |
| 6 | +--- |
| 7 | + |
1 | 8 | # Changelog |
2 | 9 |
|
3 | 10 | All notable changes to this project will be documented in this file. |
4 | 11 |
|
5 | 12 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
6 | 13 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
7 | 14 |
|
| 15 | +## 3.0.0 - 2025-11-04 (Architecture Simplification) |
| 16 | + |
| 17 | +### Changed |
| 18 | + |
| 19 | +- **[BREAKING] Major Architecture Refactoring**: Completely restructured project architecture from complex modular design to simplified flat structure (#60) |
| 20 | + |
| 21 | + - **Core Philosophy Change**: From "feature-rich notebook manager" to "lightweight documentation plugin with note features" |
| 22 | + |
| 23 | + - **Removed Modules** (deleted ~9,300 lines of code): |
| 24 | + |
| 25 | + - `utils/assetps/`: Asset management subsystem (401 lines) |
| 26 | + |
| 27 | + - `utils/dataps/`: Data models and frontmatter system (600+ lines) |
| 28 | + |
| 29 | + - `utils/docsps/`: Document operations (creator, cleaner, mover, remover, initializer - 1,800+ lines) |
| 30 | + |
| 31 | + - `utils/fileps/`: File I/O operations (105 lines) |
| 32 | + |
| 33 | + - `utils/graphps/`: Graph processing utilities (106 lines) |
| 34 | + |
| 35 | + - `utils/pathps/`: Path utilities (empty placeholder) |
| 36 | + |
| 37 | + - `logger.py`: Custom logging module (50 lines) |
| 38 | + |
| 39 | + - **New Simplified Structure**: |
| 40 | + |
| 41 | + - Core modules moved to package root: `plugin.py`, `cli.py`, `config.py`, `graph.py` |
| 42 | + |
| 43 | + - Minimal utilities: `utils/meta.py`, `utils/scanner.py`, `utils/cli/` (commands & common) |
| 44 | + |
| 45 | + - Total source code: ~2,700 lines (vs. ~12,000 lines in v2.x) |
| 46 | + |
| 47 | + - **Removed Features**: |
| 48 | + |
| 49 | + - Asset management system (automatic asset directory creation/management) |
| 50 | + |
| 51 | + - Template system (note templates with variable substitution) |
| 52 | + |
| 53 | + - Note validation and initialization commands |
| 54 | + |
| 55 | + - Advanced CLI commands: `init`, `validate`, `template` |
| 56 | + |
| 57 | + - Frontmatter management system |
| 58 | + |
| 59 | + - Complex file scanning and processing pipelines |
| 60 | + |
| 61 | + - **Retained Core Features**: |
| 62 | + |
| 63 | + - ✅ Recent notes display functionality |
| 64 | + |
| 65 | + - ✅ Network graph visualization |
| 66 | + |
| 67 | + - ✅ Basic CLI commands: `new`, `remove`, `move`, `clean` |
| 68 | + |
| 69 | + - ✅ Git timestamp support |
| 70 | + |
| 71 | + - ✅ Metadata extraction (title, date) |
| 72 | + |
| 73 | + - **Benefits**: |
| 74 | + |
| 75 | + - ✅ **Significantly Reduced Complexity**: Easier to understand, maintain, and extend |
| 76 | + |
| 77 | + - ✅ **Faster Performance**: Less overhead from removed abstraction layers |
| 78 | + |
| 79 | + - ✅ **Lower Maintenance Burden**: Fewer moving parts means fewer potential bugs |
| 80 | + |
| 81 | + - ✅ **Clearer Purpose**: Focused on core documentation needs rather than comprehensive note management |
| 82 | + |
| 83 | + - ✅ **Better Integration**: Simpler codebase integrates more naturally with MkDocs ecosystem |
| 84 | + |
| 85 | +- **Configuration Simplification**: Dramatically reduced configuration options |
| 86 | + |
| 87 | + - **Removed Options**: |
| 88 | + |
| 89 | + - `assets_dir`: Asset management removed |
| 90 | + |
| 91 | + - `notes_template`: Template system removed |
| 92 | + |
| 93 | + - `cache_size`: Caching logic simplified |
| 94 | + |
| 95 | + - `exclude_patterns`: File filtering simplified |
| 96 | + |
| 97 | + - `use_git_timestamps`: Now always enabled by default |
| 98 | + |
| 99 | + - `timestamp_zone`: Timezone handling simplified |
| 100 | + |
| 101 | + - **Retained Options**: |
| 102 | + |
| 103 | + - `enabled`: Plugin enable/disable toggle |
| 104 | + |
| 105 | + - `notes_root`: Working directory (default: `docs`) |
| 106 | + |
| 107 | + - `recent_notes_config`: Recent notes insertion settings |
| 108 | + |
| 109 | + - `graph_config`: Network graph visualization settings |
| 110 | + |
| 111 | + - **Impact**: Configuration now fits in 47 lines vs. 237 lines in v2.x |
| 112 | + |
| 113 | +- **CLI Refactoring**: Streamlined command-line interface |
| 114 | + |
| 115 | + - Migrated from complex `cli.py` (814 lines in v2.x) to modular structure: |
| 116 | + |
| 117 | + - `cli.py`: Main CLI entry point (438 lines) |
| 118 | + |
| 119 | + - `utils/cli/commands.py`: Command implementations (420 lines) |
| 120 | + |
| 121 | + - `utils/cli/common.py`: Shared utilities (98 lines) |
| 122 | + |
| 123 | + - **Removed Commands**: |
| 124 | + |
| 125 | + - `init`: Note directory initialization (no longer needed) |
| 126 | + |
| 127 | + - `validate`: Asset structure validation (asset system removed) |
| 128 | + |
| 129 | + - `template`: Template management (template system removed) |
| 130 | + |
| 131 | + - **Retained Commands** (with simplified implementations): |
| 132 | + |
| 133 | + - `new`: Create new notes (no template/validation overhead) |
| 134 | + |
| 135 | + - `remove` / `rm`: Delete notes (no asset cleanup complexity) |
| 136 | + |
| 137 | + - `move` / `mv`: Move/rename notes (simplified path handling) |
| 138 | + |
| 139 | + - `clean`: Clean orphaned resources (simplified cleanup logic) |
| 140 | + |
| 141 | +- **Test Suite Reorganization**: Completely restructured test suite |
| 142 | + |
| 143 | + - **Removed Test Files** (~4,900 lines): |
| 144 | + |
| 145 | + - `tests/core/`: All core module tests (8 test files) |
| 146 | + |
| 147 | + - `test_assets_manager.py` (618 lines) |
| 148 | + |
| 149 | + - `test_file_manager.py` (319 lines) |
| 150 | + |
| 151 | + - `test_frontmatter_manager.py` (435 lines) |
| 152 | + |
| 153 | + - `test_graph_handler_simple.py` (163 lines) |
| 154 | + |
| 155 | + - `test_note_cleaner.py` (480 lines) |
| 156 | + |
| 157 | + - `test_note_creator.py` (372 lines) |
| 158 | + |
| 159 | + - `test_note_initializer.py` (255 lines) |
| 160 | + |
| 161 | + - `test_note_manager.py` (502 lines) |
| 162 | + |
| 163 | + - `test_note_remover.py` (153 lines) |
| 164 | + |
| 165 | + - **New Test Structure**: |
| 166 | + |
| 167 | + - `test_cli_commands.py`: CLI command testing (453 lines) |
| 168 | + |
| 169 | + - `test_cli_common.py`: CLI utility testing (202 lines) |
| 170 | + |
| 171 | + - `test_cli_integration.py`: Integration testing (405 lines) |
| 172 | + |
| 173 | + - `test_config.py`: Configuration testing (simplified to 397 lines) |
| 174 | + |
| 175 | + - `test_plugin.py`: Plugin testing (simplified to 670 lines) |
| 176 | + |
| 177 | + - `smoke_test.py`: Package smoke tests (refactored) |
| 178 | + |
| 179 | + - `test_help.py`: Help system tests |
| 180 | + |
| 181 | + - **Test Count**: Reduced from 227 tests to focused test suite on core functionality |
| 182 | + |
| 183 | +- **Documentation Updates**: Comprehensive documentation reorganization |
| 184 | + |
| 185 | + - **Removed Documentation**: |
| 186 | + |
| 187 | + - `docs/usage/exclusion.md`: Exclusion patterns (42 lines) |
| 188 | + |
| 189 | + - `docs/usage/sec.md`: Security features (24 lines) |
| 190 | + |
| 191 | + - `docs/usage/templating.md`: Template system (75 lines) |
| 192 | + |
| 193 | + - **Added Documentation**: |
| 194 | + |
| 195 | + - `docs/usage/meta.md`: Metadata handling (8 lines) |
| 196 | + |
| 197 | + - **Updated Documentation**: |
| 198 | + |
| 199 | + - `docs/getting-started.md`: Simplified getting started guide |
| 200 | + |
| 201 | + - `docs/usage/cli.md`: Updated CLI documentation |
| 202 | + |
| 203 | + - `docs/usage/config.md`: Simplified configuration guide |
| 204 | + |
| 205 | + - `docs/usage/network-graph.md`: Updated graph documentation |
| 206 | + |
| 207 | + - `docs/usage/recent-notes.md`: Updated recent notes guide |
| 208 | + |
| 209 | +- **Graph Module Restructuring**: Moved graph functionality to package root |
| 210 | + |
| 211 | + - `utils/graphps/graph.py` → `graph.py` (now 74 lines vs. original implementation) |
| 212 | + |
| 213 | + - `utils/graphps/handlers.py`: Removed (101 lines) - logic integrated into main module |
| 214 | + |
| 215 | + - Static assets moved: `utils/graphps/static/` → `static/` |
| 216 | + |
| 217 | +### Removed |
| 218 | + |
| 219 | +- **Asset Management System**: Complete removal of automatic asset directory management |
| 220 | + |
| 221 | + - Users now manage asset organization manually |
| 222 | + |
| 223 | + - No more automatic asset path processing during build |
| 224 | + |
| 225 | + - Removed asset catalog and tree structure validation |
| 226 | + |
| 227 | +- **Template System**: Removed note template functionality |
| 228 | + |
| 229 | + - No more template variables (`{{title}}`, `{{date}}`, etc.) |
| 230 | + |
| 231 | + - No template validation or creation tools |
| 232 | + |
| 233 | + - Users manage note templates manually if needed |
| 234 | + |
| 235 | +- **Frontmatter Management**: Removed comprehensive frontmatter system |
| 236 | + |
| 237 | + - No metadata registry or field validation |
| 238 | + |
| 239 | + - No custom metadata field support |
| 240 | + |
| 241 | + - Basic frontmatter parsing remains for title/date extraction |
| 242 | + |
| 243 | +- **Advanced Validation**: Removed structure compliance checking |
| 244 | + |
| 245 | + - No asset tree validation |
| 246 | + |
| 247 | + - No note directory initialization |
| 248 | + |
| 249 | + - Simplified file scanning without complex validation |
| 250 | + |
| 251 | +### Fixed |
| 252 | + |
| 253 | +- **Code Complexity**: Resolved over-engineering issues from v2.x architecture |
| 254 | + |
| 255 | + - Removed unnecessary abstraction layers |
| 256 | + |
| 257 | + - Eliminated redundant validation logic |
| 258 | + |
| 259 | + - Simplified error handling and logging |
| 260 | + |
| 261 | +- **Maintenance Burden**: Addressed difficulty in maintaining large codebase |
| 262 | + |
| 263 | + - Reduced total lines of code by ~77% (12,000 → 2,700 lines) |
| 264 | + |
| 265 | + - Eliminated 6,000+ lines of test code for removed features |
| 266 | + |
| 267 | + - Simplified dependency tree and module interactions |
| 268 | + |
| 269 | +### Migration Guide |
| 270 | + |
| 271 | +For users upgrading from v2.x to v3.0.0: |
| 272 | + |
| 273 | +1. **Configuration Changes**: |
| 274 | + |
| 275 | + - Remove deprecated options: `assets_dir`, `notes_template`, `cache_size`, `exclude_patterns`, `use_git_timestamps`, `timestamp_zone` |
| 276 | + |
| 277 | + - Keep only: `enabled`, `notes_root`, `recent_notes_config`, `graph_config` |
| 278 | + |
| 279 | +2. **Asset Management**: |
| 280 | + |
| 281 | + - Plugin no longer manages assets automatically |
| 282 | + |
| 283 | + - Organize assets manually in your preferred structure |
| 284 | + |
| 285 | + - Use standard MkDocs asset handling |
| 286 | + |
| 287 | +3. **Template Usage**: |
| 288 | + |
| 289 | + - Plugin no longer provides template system |
| 290 | + |
| 291 | + - Create note templates manually if needed |
| 292 | + |
| 293 | + - Use external tools for template management |
| 294 | + |
| 295 | +4. **CLI Commands**: |
| 296 | + |
| 297 | + - `mkdocs-note init`: No longer available (not needed) |
| 298 | + |
| 299 | + - `mkdocs-note validate`: No longer available (validation removed) |
| 300 | + |
| 301 | + - `mkdocs-note template`: No longer available (template system removed) |
| 302 | + |
| 303 | + - Other commands (`new`, `remove`, `move`, `clean`) still available with simplified behavior |
| 304 | + |
| 305 | +5. **Custom Integrations**: |
| 306 | + |
| 307 | + - If you imported internal modules (e.g., `mkdocs_note.utils.assetps`), these no longer exist |
| 308 | + |
| 309 | + - Update imports to use new structure: `mkdocs_note.utils.meta`, `mkdocs_note.utils.scanner` |
| 310 | + |
| 311 | +### Technical Details |
| 312 | + |
| 313 | +- **Code Statistics**: |
| 314 | + |
| 315 | + - Files changed: 61 files |
| 316 | + |
| 317 | + - Insertions: +2,702 lines |
| 318 | + |
| 319 | + - Deletions: -9,329 lines |
| 320 | + |
| 321 | + - Net reduction: -6,627 lines (-77% of v2.x codebase) |
| 322 | + |
| 323 | +- **Dependency Updates**: |
| 324 | + |
| 325 | + - Removed custom logging dependencies |
| 326 | + |
| 327 | + - Simplified MkDocs integration |
| 328 | + |
| 329 | +- **Performance Improvements**: |
| 330 | + |
| 331 | + - Faster build times due to reduced processing overhead |
| 332 | + |
| 333 | + - Lower memory footprint |
| 334 | + |
| 335 | + - Simpler file scanning logic |
| 336 | + |
8 | 337 | ## 2.1.5 - 2025-10-30 |
9 | 338 |
|
10 | 339 | ### Fixed |
|
0 commit comments