CHANGELOG.md (view raw)
1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a
6Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to
7[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
9## [Unreleased]
10
11## [1.1.0] - 2026-04-16
12
13### Added
14
15- Argument parsing using `go-arg` library
16- `-p/--plain` flag to output plain text without chapter name or verse numbers
17- Program description and help text
18
19## [1.0.0] - 2026-04-16
20
21### Added
22
23- Complete Go migration from original OCaml implementation
24- Date-based Bible verse progression system
25 - Calculates position based on day of year (1st January = Matthew 1:1-12)
26 - Shows 12 verses per day, cycling through all four Gospels yearly
27- ANSI color-coded output (green for book/chapter, yellow for verse range)
28- Smart lookahead rule: extends to end of chapter if less than 12 verses remain
29- Support for Polish "Nowa Biblia Gdańska" translation (`books/pol_nbg.json``)
30- Complete test suite with edge case validation
31- `README`` documentation with usage examples and algorithm explanation
32
33### Changed
34
35- **BREAKING**: Changed from bookmark-based progression to date-based progression
36 - Previous versions used `bookmark.toml` to track reading position
37 - New version calculates position from current date
38 - Backward incompatible with bookmark-based usage
39- Restructured codebase with modular Go packages:
40 - `internal/loader.go`: JSON Bible data loading and indexing
41 - `internal/dateprogression.go`: Date-to-verse position calculation
42 - `internal/formatter.go`: ANSI color formatting and text extraction
43 - `internal/verse.go`: Data structures and constants
44 - `internal/bookmark.go`: Legacy bookmark support (unused in date-based mode)
45
46### Fixed
47
48- Proper handling of chapter and book boundaries
49- Correct modulo wrapping for yearly cycle (total 3779 Gospel verses)
50- Leap year support via Go's standard `time.YearDay()` function
51- Validation of verse ranges and error handling
52
53### Removed
54
55- OCaml implementation (`old_code.ml` kept for reference)
56- Dependency on `bookmark.toml` file for progression
57- Regex-based verse parsing (replaced with direct JSON indexing)
58
59## [0.1.0] - 2026-04-16
60
61### Added
62
63- Initial Go port of OCaml Bible verse utility
64- Bookmark-based progression system (TOML file)
65- Support for Polish "Nowa Biblia Gdańska" translation
66- Basic ANSI color formatting
67- Lookahead rule implementation
68
69### Changed
70
71- Rewritten from OCaml to Go programming language
72- Changed data format from custom to JSON
73- Improved error handling and validation
74
75[unreleased]: https://github.com/maxwelljensen/bibel/compare/v1.1.0...HEAD
76[1.1.0]: https://github.com/maxwelljensen/bibel/compare/v1.0.0...v1.1.0
77[1.0.0]: https://github.com/maxwelljensen/bibel/compare/v0.1.0...v1.0.0
78[0.1.0]: https://github.com/maxwelljensen/bibel/releases/tag/v0.1.0