Conversation
Build system: - Replace incremental version management with setuptools-scm (git-tag-based) - Remove fdsreader/_version.py, use importlib.metadata.version() at runtime - Raise minimum Python version to 3.10, add 3.11/3.12 classifiers - Replace requirements.txt (160+ packages) with requirements-dev.txt (5 packages) Linting: - Add ruff configuration (line-length=120, select E/F/W/I/UP) - Fix all ruff violations across the codebase (isinstance, wildcard imports, unused imports, explicit re-exports, fortran_data isinstance bug) - Fix circular import in evac/evac_collection.py Tests: - Add tests/conftest.py: set CWD to tests/cases/ so acceptance tests work when pytest is run from the project root - Replace unittest-style test_version_compatibility.py with pytest-based test_basic_read.py (6 tests covering chid, meshes, slices, devices, obstructions) - Extend all acceptance tests with robustness checks: non-empty time arrays, monotonically increasing times, data shape consistency, no NaN/Inf in arrays, quantity metadata present CI/CD: - Replace testsuite.yml with ci.yml: matrix testing on Python 3.10/3.11/3.12, separate lint job, codecov upload - Replace publish_n_pack.yml with release.yml: tag-driven OIDC publishing, beta tags go to TestPyPI, stable tags go to PyPI + GitHub Release - Add fds_compat.yml: weekly cron job that detects new FDS releases and runs compatibility checks automatically - Add .github/last_tested_fds_version.txt to track last tested FDS version Docs: - Add FDS version compatibility table to README - Add CI and codecov badges to README - Update release instructions (incremental -> git tag)
Previously the .fds input files were only accessible after extracting the .tgz archives. By checking them in directly, contributors can inspect and modify input files without unpacking binaries first. This is required to regenerate test data with a new FDS version.
Regenerated test cases (steckler, bndf, devc, part, pl3d) using FDS 6.10.1 to verify fdsreader compatibility with the current FDS release. All output types read correctly except geometry (geom_data) which is affected by a breaking change in the FDS 6.10.1 SMV format: the BGEOM block referencing .gbf files was removed. This will be tracked as a separate issue. Also fixes water_droplets.fds for FDS 6.10+: ALLOW_UNDERSIDE_PARTICLES was moved from &MISC to &SURF in FDS 6.9.
- Add CONTRIBUTING.md: development setup, test instructions, ruff usage, how to regenerate test data, known critical bugs as good-first-issues - Add codecov.yml: 50% project coverage target, 40% patch target - Update .gitignore: ignore extracted test case directories, pickle cache files, ruff cache, and .claude/ internal directory - Stage deletion of requirements.txt (replaced by requirements-dev.txt)
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment Thanks for integrating Codecov - We've got you covered ☂️ |
- .readthedocs.yaml: auto-build docs on every push to master - docs/conf.py: replace deleted _version import with importlib.metadata - docs/releasing.rst: step-by-step release guide for maintainers - docs/index.rst: add Maintainer Guide section to TOC - pyproject.toml: add [docs] optional dependencies group
Runs ruff check --fix and ruff format automatically before each commit to prevent lint errors from reaching CI.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
incrementaltosetuptools-scm(git-tag-based)rufffor linting and formatting, fix all violations across the codebasetestsuite.yml+publish_n_pack.ymlwith modernci.yml,release.yml,fds_compat.ymlTest plan
pytest tests/ -v)ruff check fdsreader/passesKnown issues
geom_datafails with FDS 6.10.1 due to SMV format change (BGEOM block removed) → separate issue