Skip to content

Commit 63869cb

Browse files
committed
Updated CHANGELOG in preparation of release 0.9.0
1 parent d8c288e commit 63869cb

File tree

2 files changed

+535
-139
lines changed

2 files changed

+535
-139
lines changed

CHANGELOG.md

Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,266 @@
11
````markdown
2+
Release 0.9.0 January 22, 2026
3+
4+
The main purpose of this release is to clean up the CLI for the hedtools and to improve the documentation in preparation for release of 1.0.0, which will be a breaking release.
5+
6+
## Major changes
7+
8+
### Command-line interface (CLI) overhaul
9+
10+
**Complete CLI redesign with Git-Style commands**
11+
- Introduced unified `hedpy` command-line interface with git-style subcommand structure
12+
- Replaced legacy standalone scripts with organized command groups: `validate`, `schema`, `extract`
13+
- Added comprehensive help system with detailed command documentation
14+
- Implemented click-option-group for organized command options
15+
16+
**New commands:**
17+
- `hedpy validate bids-dataset` - BIDS dataset validation
18+
- `hedpy validate string` - HED string validation
19+
- `hedpy validate sidecar` - JSON sidecar validation
20+
- `hedpy validate tabular` - TSV file validation
21+
- `hedpy schema validate` - Schema file validation
22+
- `hedpy schema convert` - Schema format conversion
23+
- `hedpy schema add-ids` - HED ID management
24+
- `hedpy extract bids-sidecar` - Sidecar template extraction
25+
- `hedpy extract tabular-summary` - Tabular file summarization
26+
27+
**Enhanced output options:**
28+
- Multiple output formats: text, json, json_pp (pretty-printed JSON with metadata)
29+
- Configurable error limiting per error type
30+
- File-based and per-error error counting options
31+
- Comprehensive logging configuration with file output support
32+
33+
### Documentation improvements
34+
35+
**Major documentation restructuring**
36+
- Complete rewrite of user guide with comprehensive examples and workflows
37+
- Added detailed Jupyter notebook documentation section
38+
- Created extensive CLI documentation with command examples
39+
- Improved API reference organization with clearer section headers
40+
- Enhanced introduction page with quick start examples
41+
- Added troubleshooting section with common issues and solutions
42+
- Updated the RELEASE_GUIDE to better reflect current release process
43+
44+
**New documentation features:**
45+
- Sidebar quick links for easy navigation
46+
- Custom CSS styling for improved readability
47+
- Dark mode support with proper color theming
48+
- Brand customization with project logo and name
49+
- Better code block formatting and syntax highlighting
50+
- Comprehensive examples for all major workflows
51+
52+
### Jupyter notebook examples
53+
54+
**New example notebooks (examples/ directory)**
55+
- `extract_json_template.ipynb` - Generate JSON sidecar templates
56+
- `find_event_combinations.ipynb` - Find unique value combinations
57+
- `merge_spreadsheet_into_sidecar.ipynb` - Merge edited annotations
58+
- `sidecar_to_spreadsheet.ipynb` - Convert JSON to spreadsheet format
59+
- `summarize_events.ipynb` - Summarize event file contents
60+
- `validate_bids_dataset.ipynb` - Validate BIDS datasets
61+
- `validate_bids_dataset_with_libraries.ipynb` - Validate with library schemas
62+
- `validate_bids_datasets.ipynb` - Batch validate multiple datasets
63+
- `validate_bids_dataset_nondefault. ipynb` - Non-standard validation scenarios
64+
65+
**Notebook infrastructure:**
66+
- Added comprehensive README for notebooks with usage instructions
67+
- Created optional dependencies group for Jupyter support
68+
- Added notebook testing framework for validation
69+
70+
### Core functionality enhancements
71+
72+
**Validation improvements:**
73+
- Enhanced placeholder validation with units (e.g., "# m-per-s^2")
74+
- Fixed unit class validation for placeholders with units
75+
- Improved error reporting with better categorization
76+
- Added support for --no-log option to disable all logging
77+
78+
**TabularSummary Enhancements:**
79+
- Added categorical limit feature to prevent memory issues with high-cardinality columns
80+
- Implemented overflow column tracking for truncated summaries
81+
- Added categorical counts metadata (total values and file counts)
82+
- Improved summary statistics and reporting
83+
84+
**Schema processing:**
85+
- Enhanced schema validation error messages with specification links
86+
- Fixed schema attribute inheritance handling
87+
- Improved JSON schema format support
88+
- Updated conversion factor validation
89+
90+
### Script and utility improvements
91+
92+
**New scripts:**
93+
- `hed/scripts/validate_hed_string.py` - Standalone HED string validation
94+
- `hed/scripts/validate_hed_sidecar.py` - Standalone sidecar validation
95+
- `hed/scripts/validate_hed_tabular.py` - Standalone tabular file validation
96+
- `hed/scripts/extract_tabular_summary.py` - Non-BIDS tabular summarization
97+
- `hed/scripts/script_utils.py` - Shared utility functions for scripts
98+
99+
**Script uilities:**
100+
- Centralized logging setup across all scripts
101+
- Standardized validation result formatting
102+
- Consistent error handling and reporting
103+
- Improved argument parsing with organized option groups
104+
105+
### Dependencies and requirements
106+
107+
**Updated Dependencies:**
108+
- Added `click-option-group>=0.5.0` for CLI option organization
109+
- Updated `wordcloud` from 1.9.4 to 1.9.5
110+
- Updated `black` to >=26.1.0 with Jupyter support
111+
- Added `mdformat>=0.7.0` and `mdformat-myst>=0.1.5` for markdown formatting
112+
- Updated Sphinx and documentation dependencies
113+
114+
**New Optional Dependency Groups:**
115+
- `examples` - Jupyter notebook support (jupyter, notebook, nbformat, ipykernel)
116+
- Updated `docs` group with version constraints
117+
- Enhanced `dev` group with markdown formatting tools
118+
119+
### Testing enhancements
120+
121+
**Schema test data:**
122+
- Added extensive JSON test data for schema validation
123+
- New test files for schema attribute validation
124+
- Tests for conversion factors, HED IDs, unit classes, value classes
125+
- Tests for character validation and deprecation handling
126+
- Tests for library schema attributes
127+
128+
**Test organization:**
129+
- Improved test structure with categorized error cases
130+
- Added common causes and correction strategies to test metadata
131+
- Enhanced test documentation with specification references
132+
- Moved JSON test references from the hed-specification repository to the hed-tests repository
133+
134+
### Documentation files
135+
136+
**Updated documentation:**
137+
- Comprehensive CHANGELOG.md updates
138+
- Enhanced CONTRIBUTING.md with detailed workflows
139+
- Improved README. md with better examples and structure
140+
- Updated RELEASE_GUIDE.md with detailed release procedures
141+
142+
**Configuration files:**
143+
- Added `.lycheeignore` for link checker exclusions
144+
- Added `lychee.toml` for link validation configuration
145+
- Enhanced `.gitignore` with additional patterns
146+
- Updated workflow configurations for GitHub Actions
147+
148+
## GitHub actions and CI/CD
149+
150+
### Workflow updates
151+
152+
**Enhanced CI pipeline:**
153+
- Updated cache actions from v4 to v5 across all workflows
154+
- Changed default branch references from `develop` to `main`
155+
- Renamed and reorganized workflow files (. yml → .yaml)
156+
- Improved Sphinx documentation build workflow
157+
158+
**New workflows:**
159+
- `links. yaml` - Lychee link checker for documentation (weekly schedule)
160+
- `mdformat.yaml` - Markdown formatting validation
161+
- `notebook_tests.yaml` - Jupyter notebook validation
162+
- `ruff.yaml` - Python linting with Ruff
163+
164+
**Workflow improvements:**
165+
- Updated codespell workflow to use main branch
166+
- Enhanced documentation deployment workflow
167+
- Added proper artifact handling for GitHub Pages
168+
- Improved test isolation and parallel execution
169+
170+
## File organization and structure
171+
172+
### Repository structure changes
173+
174+
**Removed:**
175+
- Removed `spec_tests/hed-specification` submodule (replaced with hed-tests)
176+
- Removed remodeling CLI commands (moved to separate repository)
177+
178+
**Added:**
179+
- New `examples/` directory with Jupyter notebooks and README
180+
- New `hed/scripts/script_utils.py` for shared utilities
181+
- New validation scripts for string, sidecar, and tabular files
182+
- New extract script for non-BIDS tabular summaries
183+
184+
**Updated:**
185+
- Moved documentation assets from `docs/assets/` to `docs/_static/`
186+
- Enhanced documentation structure with better organization
187+
- Improved test data organization in spec_tests/
188+
189+
### Code quality and formatting
190+
191+
**Black formatting:**
192+
- Applied Black code formatter across entire codebase
193+
- Updated Black configuration for Python 3.14 support
194+
- Enhanced exclusion patterns for auto-generated files
195+
196+
**Ruff linting:**
197+
- Added comprehensive Ruff configuration
198+
- Implemented linting rules for code quality
199+
- Added automated linting in CI pipeline
200+
201+
**Markdown formatting:**
202+
- Added mdformat for consistent markdown styling
203+
- Configured myst-parser support
204+
- Automated markdown checking in CI
205+
206+
## Bug fixes and minor improvements
207+
208+
### Schema handling
209+
- Fixed MediaWiki → MEDIAWIKI naming consistency
210+
- Improved schema format detection and conversion
211+
- Enhanced schema attribute validation
212+
- Fixed inheritance handling for schema attributes
213+
214+
### Validation
215+
- Fixed unit validation for placeholders with units
216+
- Improved error message clarity and documentation links
217+
- Fixed definition extraction from sidecars
218+
- Enhanced sidecar validation error reporting
219+
220+
### Error reporting
221+
- Updated documentation link format in error messages
222+
- Improved error categorization and grouping
223+
- Added error iteration utility (`iter_errors`)
224+
- Enhanced printable issue formatting
225+
226+
### Miscellaneous
227+
- Fixed various typos and formatting issues
228+
- Improved code comments and docstrings
229+
- Enhanced type hints and error handling
230+
- Cleaned up deprecated code patterns
231+
232+
## Breaking changes
233+
234+
**CLI command changes:**
235+
- Legacy commands are now deprecated (still work but show warnings)
236+
- Recommended migration to new `hedpy` command structure
237+
- Some command-line argument names have changed for consistency
238+
239+
**Python version:**
240+
- Minimum Python version remains 3.10
241+
- Added support for Python 3.14
242+
243+
## Migration guide
244+
245+
### CLI Migration
246+
```bash
247+
# Old (deprecated)
248+
validate_bids /path/to/dataset
249+
250+
# New (recommended)
251+
hedpy validate bids-dataset /path/to/dataset
252+
```
253+
254+
### Script Imports
255+
```python
256+
# Validation functions remain unchanged
257+
from hed import HedString, load_schema_version, BidsDataset
258+
259+
# New utility imports available
260+
from hed.errors import iter_errors
261+
from hed.scripts.script_utils import format_validation_results
262+
```
263+
2264
Release 0.8.1 December 9, 2025
3265

4266
The primary purpose of this release was to correct the JSON format for HED schemas so that it would accurately distinguish between inherited and non-inherited attributes. The documentation layout was also improved with quick links.

0 commit comments

Comments
 (0)