Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[1.0.1] - 2026-05-15
Fixed
Add missing
docs/dev/reqs/sweep.csv(was excluded by an overly broad.gitignorepattern), docs action fix!Remove unused
sphinx.ext.intersphinxextension and its four network fetches at build time
[1.0.0] - 2026-05-09 to 2026-05-15
Added
docs/dev/requirements.md— per-module behavioral requirements derived from the test suite, rendered as eightcsv-tablesections (one per module)docs/dev/reqs/— eight source CSVs (geom,stab,cmd,bin,sweep,plot,write,aeroplot), each withid,requirement,rationale, andtestcolumns; test column links to the covering function on GitHub@pytest.mark.req("req-xxx")decorators on all 84 requirement-linked tests;tests/conftest.pyprints a requirement-coverage summary at the end of every runSphinx docs site deployed to GitHub Pages: getting-started, usage, API reference, roadmap, contributing, changelog, and embedded AVL upstream reference
GitHub Actions workflow for automatic docs deployment on push to master; PyPI publish workflow
CONTRIBUTING.mdwith dev setup, test, and docs-serve instructionsBubble Dancer example plots embedded in getting-started
Full Python port of all eight MATLAB modules into the
avl_aero_tablespackageavl_sweep()as the primary entry point;out_formatparameter writes results to"csv"(default),"json", or"df"(DataFrame in memory only)results_to_dataframe()convertslist[StResult]to a pandas DataFrame for tabular exportavl-aero-tablesCLI withverifyandrunsubcommandsGitHub Actions CI workflow; builds AVL 3.52 from source on Ubuntu on every push
172-test pytest suite with
--doctest-modules; all public functions have runnable docstring examplesmypy static type checking across all modules
File-based AVL inputs:
reset.run(AVL run-case format, all conditions zeroed) andsweep.cmd(full stdin command script) are written to the output directory before each run, so inputs and outputs are always on disk together; a run can be replayed manually withavl < sweep.cmdTimestamped output subdirectories (
out/<name>/YYYY-MM-DD-HHMMSS/) created by default so previous results are never overwritten; pass an explicitout_dirto write to a fixed location insteadavl_sweep()prints the output path and case count on completion:AVL sweep complete → out/bd/2026-05-15-143022 (12 cases)
Changed
Minimum Python version raised to 3.12; CI matrix updated to 3.12 and 3.13
README trimmed to a short landing page pointing at the docs site
GitHub repository and Python package renamed to
avl-aero-tables/avl_aero_tablesavl_aerogenrenamed toavl_sweep; CLI split fromavl_binintoavl_cliDocs restructured into
docs/user/anddocs/dev/sectionsaero_filewritestability tables populated only for neutral-control runs; fixes a known bug carried over from the MATLAB implementationaero_fileplotbeta-index lookup is now generic rather than hardcoded to a specific surface nameType annotations and error messages improved across all public functions
make_reset_run/make_commandrenamed tomake_run_reset/make_run_commandfor a consistentmake_run_prefixDefault
out_dirchanged from<avl_file_parent>/out/<name>/toout/<name>/relative to the current working directoryWhen an explicit
out_diris provided, only stale.stfiles are removed before the run; other files (e.g. a previousresults.csv) are left untouched
Removed
MATLAB source files (
.m) removed from working tree; originals preserved at git tagv0.0.0-matlabexamples/avl.exeWindows binary andtmp/directory (MATLAB holdovers)
[0.0.0] - 2014-08-28
Notes
Initial MATLAB-based implementation; see tag
v0.0.0-matlabModules:
avl.m,avl_fileread.m,avl_fileplot.m,avl_rungen.m,st_fileread.m,avl_aerogen.m,aero_filewrite.m,aero_fileplot.m