All notable changes to the project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Addition of 10/15 yard/metre 2/3 dozen rounds to miscellaneous rounds with snapshots updated accordingly in #175.
3.0.0 - 2026-05-28
OPENcategory added toAGB_gendersfor use in 2026 classifications in #169- Addition of regression tests for classifications and handicaps using syrupy for snapshots in #148
- Addition of strict_rounds and strict_distance arguments for classifications in #149
- Addition of new WA rounds for Under 15 category and updating of prestige rounds for outdoor classifications accordingly in #167.
- Protection against repeated scores in classification tables in #170. Only changes Under 12 Longbow New Warwick but guards for any future changes.
- Classifications updated to the 2026.1 AGB system in #171 which acted as staging for several of the below changes.
- Tests now in a separate
tests/directory instead of alongside source in #148 - Workflows update to include Python 3.14 in #148
- AGB age category enums dropped the
AGE_prefix in #159. Replaced byOVER_50,ADULT,UNDER_18etc. AGB_gendersenum updated to addOPEN.MALEremains for backwards compatibility and legacy classifications as an alias toOPEN. Implemented in #169- Long Metric Gents and Ladies renamed to Long Metric (90m) and (70m) in line with April 2026 changes to Archery GB Rules of Shooting in #169
- Consistent treatment of AGB classifications where there are gaps in the handicap tables. Outdoor and Field updated to match Indoor as part of 2026 Update in #168
- Score changes in Under 12 Longbow New Warwick removing repeated scores from #170.
- Bugfix for old indoor classifications to enforce full single face on AGB rounds but allow separate scores for triple faces for WA rounds. Previously triple faces gave different classification scores on AGB rounds. In #149
- All compound categories get metric 122 80 as a prestige round in addition to the WA 50m compound round as equivalent in #167.
- Use of AGB age category enums with the
AGE_prefix in #159. Raises a warning and will be removed in future. Instead use newOVER_50,ADULT,UNDER_18etc.
- Removal of unused test dependency pytest-mock in #148
2.0.0 - 2025-10-04
- Experimental WA 660 rounds in #139
- Archery Australia rounds in #135
- New AGB 900 rounds in #116
n_arrowsattribute added toRoundin #111__hash__magic method added toTarget,Pass, andRoundin #144- This CHANGELOG.md added in #143
- Breaking API change to use enums for inputs to classification functions in #113
- Better use of numpy typing in #133
- Allow inputs to classification functions to be an archeryutils Round as well as a string in #119
- Use flattened loops in classification dict generation by @TomHall2020 in #110
- Field classification naming made consistent with other schemes
- Dependencies:
- Use latest ruff (0.13.3)
- Use latest mypy (1.16) to resolve enums
- Pin sphinx at <8.2.0 due to typing incompatibilities
- Pin blackdoc and black versions due to an incompatibility in latest releases
- Fixes issue whereby a divide-by-zero warning could arise in the handicap rootfinding algorithm in #109
- Field classification naming made consistent with other schemes
1.1.1 - 2024-11-17
- Fixes bug whereby the new 2025 field classifications were not restricted to the Archer tier for shorter peg rounds. Includes tests to check for this. In #101
1.1.0 - 2024-11-16
- Option to use “English Longbow” as a bowstyle alias
- Updated field classifications to the 2025 Archery GB scheme:
- Uses new age groups, rounds, classifications and scores
- For full details see archerycalculator.co.uk/new-field
- Old field classifications archived but still available using old in the function calls. See related API documentation
- Test suite extended to cover Python 3.13
- Linting moved to use ruff v0.7.3
- Coverage workflows updated to latest versions
1.0.0 - 2024-06-08
- Initial release of archeryutils.
- MIT License
- Notable features of the library include:
- Generic representations of targets and rounds
- World Archery, Archery GB, and IFAA rounds
- Calculations for Archery GB handicaps and Archery Australia archer skill level
- Calculation of Archery GB classifications
- Detailed examples notebook showcasing usage
- Testing suite using pytest
- Code quality and static analysis checks
- Documentation:
- README.md and associated files in repository
- Online API and comprehensive docs built using Sphinx available at archeryutils.readthedocs.io