Release/v1.5.0#43
Open
crvernon wants to merge 24 commits into
Open
Conversation
- add pyproject.toml (setuptools backend) with deps, extras, scripts - single-source version via gcamreader.__version__ (1.5.0) and fix exports - modernize querymi.py: drop Py2/3.5 branches, use importlib.resources, add full type hints and docstrings - replace Click CLI with Typer (local/remote subcommands, --version) - add CHANGELOG.md (Keep a Changelog) - update benchmark CLI invocation for Typer boolean flag
- move test data to gcamreader/data (package data) via importlib.resources - add public sample_data_dir() helper and export it - move test suite to top-level tests/ with pytest-style tests + conftest - move notebooks to top-level notebooks/ - update benchmark harness to use sample_data_dir() - remove setup.py, setup.cfg, requirements.txt, MANIFEST.in
- modern README with install, quickstart, CLI usage, badges, citation - Sphinx docs (furo theme, autodoc, napoleon, type hints, MyST) - pages: index, installation, usage, CLI reference, API, contributing
- build.yml: Python 3.11/3.12/3.13 matrix, submodules, Java, pytest+coverage - docs.yml: build Sphinx and deploy to GitHub Pages - lint.yml: ruff + black checks - release.yml: build and publish to PyPI via Trusted Publishing - add dependabot config for actions and pip - ruff/black autofixes; ignore E501 (delegated to black) and exclude notebooks
pralitp
approved these changes
Jun 17, 2026
pralitp
left a comment
Contributor
There was a problem hiding this comment.
Looks good to me. One minor comment
| module load java/17.0.18 | ||
|
|
||
| # Activate the virtual environment that contains gcamreader | ||
| source /people/d3y010/envs/gcamreader/bin/activate |
Contributor
There was a problem hiding this comment.
Flagging path to home dir which could run into permissions issues for other users.
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.
This pull request modernizes the
gcamreaderpackage's infrastructure and documentation, introducing a new behavioral regression test suite, updating packaging and CI workflows, and improving user and developer guidance. No computational behavior is changed; instead, the focus is on maintainability, reproducibility, and modernization.Modernization and Infrastructure Overhaul:
setup.py/setup.cfg/requirements.txtto a singlepyproject.tomlfile, and removed legacy packaging files (setup.py,setup.cfg,requirements.txt,MANIFEST.in). Raised the minimum supported Python version to 3.11 and updated dependency requirements. [1] [2]benchmarks/to guarantee identical outputs to v1.4.0, including committed reference fixtures and a pytest-based regression gate. [1] [2] [3] [4] [5]CHANGELOG.md) following Keep a Changelog and Semantic Versioning.Continuous Integration and Automation:
build.yml), linting (lint.yml), documentation (docs.yml), and release/publishing to PyPI (release.yml). Modernized the build matrix to test multiple Python versions and improved caching and concurrency. [1] [2] [3] [4]Documentation and Developer Experience:
README.mdwith a project logo, clearer installation instructions (including virtual environments and conda), quickstart code samples, CLI usage, contribution guidelines, and links to full documentation.Summary of Most Important Changes:
1. Modernization and Regression Testing
pyproject.toml, removed legacy files, and raised Python minimum to 3.11. [1] [2]benchmarks/to ensure output consistency with v1.4.0. [1] [2] [3] [4] [5]2. Continuous Integration and Automation
3. Documentation and Developer Experience
README.mdwith modern usage, installation, and contribution instructions, and added a project logo.4. Changelog
CHANGELOG.mdto track all notable changes using a standardized format.This pull request modernizes thegcamreaderpackage infrastructure and development workflow, focusing on improved packaging, CI/CD automation, and reproducibility, without changing computational results. It introduces a behavioral regression suite to guarantee identical outputs to v1.4.0, migrates topyproject.toml-based builds, raises the minimum Python version, and replaces the CLI implementation. Additionally, new GitHub Actions workflows are added for building, linting, documentation, and releasing, and the documentation is significantly expanded.CI/CD and Automation
build.yml), linting (lint.yml), documentation (docs.yml), and release/publishing (release.yml). These workflows support modern Python versions, matrix testing, concurrency controls, and automated deployment to PyPI and GitHub Pages. (.github/workflows/build.yml,.github/workflows/lint.yml,.github/workflows/docs.yml,.github/workflows/release.yml) [1] [2] [3] [4].github/dependabot.yml)Reproducibility and Regression Testing
benchmarks/directory, capturing v1.4.0 outputs and enforcing result stability for queries, scenarios, and CLI operations. (benchmarks/README.md,benchmarks/baseline/manifest.json,benchmarks/baseline/parse_batch_query.json,benchmarks/baseline/query_outputs/list_scenarios.csv) [1] [2] [3] [4]Packaging and Project Structure
setup.py,setup.cfg,requirements.txt,MANIFEST.in) topyproject.tomlusing the setuptools backend, and removed obsolete files. Minimum Python version is now 3.11. (CHANGELOG.md,MANIFEST.in) [1] [2]CHANGELOG.mdfollowing Keep a Changelog and Semantic Versioning conventions to track all notable changes.Documentation and Developer Experience
README.mdwith installation, requirements, quickstart examples, CLI usage, documentation links, contribution guidelines, and citation/license information.These changes lay the foundation for future development by ensuring reproducibility, modernizing the development workflow, and improving documentation and usability.
Issues and PRs Addressed
Fixes #42
Fixes #39
Fixes #18
Fixes #12
Fixes #40