Repository navigation
[CLEANUP] Repo hygiene: pyproject-only dependencies, ctdcast-shaped CI, docs without conda - #38
Merged
Merged
Conversation
Co-authored-by: eleanorfrajka <12586657+eleanorfrajka@users.noreply.github.com>
Co-authored-by: eleanorfrajka <12586657+eleanorfrajka@users.noreply.github.com>
…aldip into cleanup/repo-hygiene # Conflicts: # .github/workflows/tests.yml
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
Bring caldip's packaging and CI in line with the sibling repos (ctdcast, oceanarray). Dependencies move into
pyproject.toml, the threerequirements*.txtfiles are removed, the test workflow adopts the ctdcast matrix shape with a coverage floor, and the docs workflows drop conda forsetup-python+pandoc. No output, attribute, variable-name or public-call changes — this is housekeeping only.What's changed
pyproject.toml:[project.dependencies](the formerrequirements.txt) plus[project.optional-dependencies]withtest,docsanddevextras.dynamic = ["dependencies"]and[tool.setuptools.dynamic]are removed; the version stays hard-coded.requirements.txt,requirements-dev.txtandrequirements-test.txtare deleted. Development install is nowpip install -e ".[dev]"; README, installation, quickstart and FAQ prose are updated to match.requires-pythonis now>=3.10,<3.14(3.9 was never tested in CI; the cap matches the tested range); classifiers list 3.10–3.13.[tool.ruff]) with the ctdcast select list and the numpy docstring convention, and replacesblack([tool.black]removed). The config landed first as the work list, then the saferuff --fix+ruff formatpass (204 auto-fixes). The remaining annotation/docstring/blind-except violations are a tracked burndown, not silenced (see Tests).tests.ymladopts the ctdcast/oceanarray shape:fail-fast: false, Ubuntu on Python 3.10–3.12 with 3.13 as an allow-failure cell (continue-on-error), macOS and Windows on 3.12,pip install -e ".[test]", and--cov=caldip --cov-fail-under=52on the Ubuntu 3.12 cell (every other cell--no-cov). The leftover echo step, thebash -l {0}default and therequirements*.txtpath trigger are gone;.github/workflows/**is added to the triggers.docs.ymlanddocs_deploy.ymldrop micromamba foractions/setup-python(3.12) +apt-get install pandoc+pip install -e ".[docs]", keepingfetch-depth: 0and the commented-out notebook execution.msm142_calc_offset_example.pymoves from the repo root intoscripts/.[0.1.0]entry no longer listscaldip report(it landed in [FEAT] Add caldip report for per-cruise HTML calibration reports #33 / 0.2.0); an[Unreleased]entry records the dependency, ruff, CI andrequires-pythonchanges.Breaking changes
requires-pythonis raised to>=3.10. A Python 3.9 user can no longer install caldip; this is listed because the CHANGELOG rule requires it, and does not by itself make the next release a minor.Tests
The suite is unchanged and passes: 188 pass with the 4
seabirdscientificintegration tests deselected (they run and pass in CI, which installsseabird); coverage on that set is 53.28%, above the 52% floor.The ruff burndown is complete —
ruff check .andruff format --check .are both clean, with no newignoreentries. Type annotations and numpy-style docstrings were added across the CLI, readers, writers and plotting modules; every blindexcept Exceptionwas triaged (narrowed to a specific type where clear, otherwise a per-line# noqa: BLE001with a stated reason at a genuine I/O boundary); and the grandfatherednp.randomcalls in the synthetic tests moved tonp.random.default_rng. No runtime behaviour, output or public call changed.Notes
Ships as v0.2.1 — chosen so the corrected install instructions reach the PyPI project page (the 0.2.0 upload still shows the old README). The coverage floor is provisional at 52 and should be raised once the first CI run reports the real number. The vendored design-system files (
report/_css.py,config/report_tokens.py) have already forked across the sibling repos despite comments claiming byte-identity — an argument for the planned cross-repo hash check.