Releases: Bridgeconn/usfm-grammar
3.0.0 Stable Release
With the 3.x versions, we are transitioning to a Tree-Sitter based grammar implementation for usfm-grammar, replacing the Ohm.js grammar used in the 2.x versions. This upgrade enhances performance, extensibility, and support for complex parsing scenarios.
Variants of USFM-Grammar
We now provide specialized variants of USFM-Grammar tailored for different environments:
- usfm-grammar for Python
- usfm-grammar for Node.js
- usfm-grammar-web for frontend JavaScript and
- A command-line interface (CLI) integrated into the Python package.
USFM-USX-USJ Format Support
Version 3.0.0 expands support across all three formats in the USFM ecosystem:
- Parses USFM, converts to other formats, and generates USFM from the other two formats
- Parses USX (XML), converts to other formats, and generates USX from the other two formats
- Parses USJ (JSON), converts to other formats, and generates USJ from the other two formats
- Exports to additional user-friendly formats such as CSV and BibleNLP.
Other Features
- Marker-Based Filtering: Simplify the cleanup and reformatting of marker-rich USFM files by specifying markers or marker types to include or exclude. This feature is centered on the USJ format.
- Error Reporting and Validation: When initializing a USFMParser with a USFM file, all errors in the file are reported in the USFMParser.errors field. A USJ input can also be validated against its JSON-Schema definition.
- Error Ignoring Option: An
ignore_errors=True/False
option is available for format conversion methods, allowing processing of imperfect input files wherever possible. - Autofix Errors (Experimental): Automatically identifies and fixes common errors in USFM files to streamline processing.
Standards and Testing
This release adheres to the comprehensive test suite and standards recommended by the USFM/X Technical Committee, ensuring robust validation and compatibility with approved file formats.
Independent Grammar Implementations
For developers working directly with syntax trees, we offer grammar implementations as standalone packages for improved performance:
- tree-sitter-usfm3 for Python,
- tree-sitter-usfm3 for Node.js,
- WASM build for front-end applications.
Breaking Changes
- The JSON output schema used in the 2.x versions has been completely replaced with the officially supported USJ format for better compatibility and adherence to standards.
- The APIs in the 2.x Node.js library have been re-designed to support new features and ensure cross-platform consistency.
v3.0.0-beta.17
What's Changed
- Bugfix/qa in verse text by @kavitharaju in #134
- Bugfix/failing only in relaxed by @kavitharaju in #137
- update version and changelog by @kavitharaju in #139
- Bump minimist from 1.2.5 to 1.2.6 by @dependabot in #145
- Bump npm from 7.20.3 to 8.11.0 by @dependabot in #150
- Bump json5 from 2.2.0 to 2.2.3 by @dependabot in #203
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #211
- Bump ansi-regex by @dependabot in #212
- Bump nanoid and mocha by @dependabot in #213
- Bugfix 204 extracting versetext from li by @kavitharaju in #218
- Dependancy upgrades by @kavitharaju in #220
- Bump semver by @dependabot in #221
- Bump braces from 3.0.2 to 3.0.3 by @dependabot in #248
- Bump tar and npm by @dependabot in #234
- Version 3 by @kavitharaju in #278
- Bump jupyterlab from 3.4.4 to 3.6.8 in /py-usfm-parser by @dependabot in #281
- Autofix b without p and other minor issues by @kavitharaju in #283
- Biblenlp format by @kavitharaju in #284
Full Changelog: v3.0.0-beta.16...v3.0.0-beta.17
v3.0.0-beta.16
What's Changed
- Attempt to fix gitactions for node publishing by @kavitharaju in #277
Full Changelog: v3.0.0-beta.15...v3.0.0-beta.16
v3.0.0-beta.15
What's Changed
- Automate node and web release too by @kavitharaju in #275
Full Changelog: v3.0.0-beta.14...v3.0.0-beta.15
v3.0.0-beta.14
v3.0.0-beta.13
What's Changed
- Beta.13: Hot fix by @kavitharaju in #273
Full Changelog: v3.0.0-beta.12...v3.0.0-beta.13
v3.0.0-beta.12
What's Changed
- Fix missing dependency issue in python
- Add a small check for USJ format in before conversion and throw error
Full Changelog: v3.0.0-beta.11...v3.0.0-beta.12
Beta 11: Grammar and Python
What's Changed
- Test suite update from tcdocs by @kavitharaju in #253
- More Grammar changes as per USFM/X 3.1 by @kavitharaju in #255
- Validator class by @kavitharaju in #268
- Bump version: 3.0.0-beta.10 → 3.0.0-beta.11 by @kavitharaju in #271
Full Changelog: v3.0.0-beta.10...v3.0.0-beta.11
v3.0.0-beta.10
What's Changed
- Treesitter version upgrade by @kavitharaju in #249
- A new python package tree-sitter-usfm3
- Major changes in python package usfm-grammar, removing the dependency on binary file
Full Changelog: v3.0.0-beta.7...v3.0.0-beta.10
v3.0.0-beta.6
What's Changed
- update python builds for macOS intel and apple silicon by @chrisvaughn in #235
- Version pin treesitter by @kavitharaju in #239
- Revert "update python builds for macOS intel and apple silicon" by @kavitharaju in #240
New Contributors
- @chrisvaughn made their first contribution in #235
Full Changelog: v3.0.0-beta.5...v3.0.0-beta.6