Skip to content

Retire in-code catalogue versioning and the pre-Snakemake run layers - #880

Draft
cailmdaley wants to merge 4 commits into
developfrom
feat/retire-versioning
Draft

cailmdaley wants to merge 4 commits into
developfrom
feat/retire-versioning

Conversation

@cailmdaley

@cailmdaley cailmdaley commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Retire in-code catalogue versioning and the pre-Snakemake run layers

Branch: split/retire-versioning → develop. 4 commits, 58 files, +607 / −8112. Every deleted file is on develop at 240b37e4.

Why

ShapePipe writes shear catalogues; it never reads, reprocesses, or stays compatible with a v1.x run, so the code has no business knowing which catalogue version it produces — git tags are the version. It still carried the v1.x era: the v1.3/v1.4 → 7, v1.5 → 8, v1.6 → 9 patch tables, -V/-P flags, P1..P9 loops, the post-hoc summary/ + missing_job_* scrape, and two generations of CANFAR bash whose job the Snakemake workflow does. After this PR no code path branches on a catalogue version.

pipeline/ and modules/ held no versioning — only three dual-layout has_option switches (EXP_BASE_DIR, ME_DOT_PSF_EXP_DIR, ME_IMAGE_EXP_DIR) whose legacy branches were reachable from example/cfis/defunct/ alone. The mass is run infrastructure.

Retired

What Replacement
ccd_psf_handler.py, get_ccds_run.py, get_ccds_with_psf.py, build_and_plot_coverage_maps.sh — the version table and its VERSIONS loop the exposure-count map (#887)
utilities/summary.py, summary_params_pre_v2.py, summary_run, summary_tiles.py, summary_run.ipynb, post_processing.md — per-patch scrape, n_patch = 8 hardcoded manifests/, logs/, completeness.py, sp report
collate_star_cat.py: -V/-P patch loop, and the -p mccd branch (focal-plane CCD ids, Jacobian rotation of external-mccd moments) the PSFEx path, verbatim; the workflow refuses psf_model: mccd
CANFAR gen 0/1: canfar_submit.py, canfar_submit_job, init_run_exclusive_canfar.sh, job_sp_canfar.bash, combine_runs.bash, distribute_tiles.py, link_to_exp_for_tile.py, merge_final_cat.py, … ; skaha SLURM executor, prepare/exposure/tile.smk, canfar_monitor
merge_headers/psfex_interp/vignetmaker runners' log_run_sp.txt branch the sharded store only; a config without EXP_BASE_DIR/ME_*_EXP_DIR fails loudly

The header-download / corner-extraction coverage chain is not retired here: #887 replaces it with the exposure-count map and removes it there.

Deliberately kept

  • Gen-2 bash (run_job_sp_canfar_v2.0.bash, job_sp_canfar_v2.0.bash, functions.sh → command()): sp_validation's image_sims.smk calls it. Version-free; retires with the image-sims port.
  • create_final_cat.py: writes the patches/<run> group sp_validation reads; renaming lands in lockstep there.
  • completeness.py, ngmix_range.py, tile_local(): their content is part of rule params, so edits rerun finished units; comment edits wait for a campaign boundary.

Questions

  1. Is anyone still launching production on CANFAR? The workflow has no CANFAR mode.
  2. check_tile_coverage.py claims an sp_validation caller we can't find — live?
  3. merge_final_cat.py was the only merger for per-tile randoms; needed for the tomographic round?
  4. Does anyone still collate MCCD validation catalogues with collate_star_cat.py -p mccd?

Merging with #887: trivial conflicts in pyproject.toml [project.scripts] (drop all four entry points), tests/module/test_coverage.py (take #887's) and the workflow/README.md scripts list (keep both).

Tests: tests/unit tests/workflow tests/module/{test_coverage,test_psfex_interp,test_vignetmaker,test_pipeline,test_run}.py — 489 passed, 1 skipped in the dev image.

— Claude (Opus) on behalf of Cail

@cailmdaley
cailmdaley force-pushed the feat/persist-exp-products branch from 0d7c313 to d91da36 Compare September 9, 2026 13:00
@cailmdaley
cailmdaley force-pushed the feat/retire-versioning branch from 77af691 to 8ac4caa Compare September 10, 2026 00:46
@cailmdaley

Copy link
Copy Markdown
Contributor Author

From the smk-g7 acceptance run (integration of #879 + #886 + #887 + this branch, 64 tiles / 127 exposures): coverage_map ran and completed — 4891 CCDs with a PSF, 54.5 deg² of depth-map footprint, and the depth sampled at each catalogue object reproduces the catalogue's own NGMIX_N_EPOCH histogram (mode 3; 99.987% of objects at depth > 0). That is the acceptance run this PR named as not yet done. One tuning note: the job requested 31.25 GB and used 1.09 GB (3%); worth sizing from the footprint count like the other campaign-level rules do.

— Claude (Fable) on behalf of Cail

cailmdaley and others added 4 commits September 29, 2026 01:06
ccd_psf_handler (v1.3/v1.4 -> 7, v1.5 -> 8, v1.6 -> 9 patches), its
get_ccds_with_psf entry points and the build_and_plot_coverage_maps.sh
VERSIONS loop go, with utilities/summary.py, summary_params_pre_v2.py,
summary_run and summary_tiles.py: a per-patch scrape of a finished run whose
job is done by the workflow's manifests, logs and completeness.py.
collate_star_cat.py keeps only its version-free path (no -V/-P, no patch
loop).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BeQNTBcjTqu6TPktxysovQ
The gen-0 HTCondor-era scripts and the gen-1 curl/skaha submission layer
(${kind}_runs/$ID layout, bit-coded job masks, patch-specific special
cases) go, with canfar_submit.py, canfar_submit_job and the skaha
dependency. canfar_monitor/canfar_monitor_log stay. The gen-2 bash
(run_job_sp_canfar_v2.0.bash, job_sp_canfar_v2.0.bash, functions.sh's
command()) stays: sp_validation's image-sims workflow calls it. The
Dockerfile's script-symlink loops tolerate an empty glob.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BeQNTBcjTqu6TPktxysovQ
merge_headers, psfex_interp and vignetmaker lose the single-run-root branch
resolved through log_run_sp.txt (last:/all:): EXP_BASE_DIR and
ME_*_EXP_DIR are required, and a config without them fails loudly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BeQNTBcjTqu6TPktxysovQ
docs/source/workflow.md is the user-facing workflow guide;
pipeline_tutorial.md follows the rule chain; pipeline_canfar.md and
post_processing.md go with the layers they described.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BeQNTBcjTqu6TPktxysovQ
@cailmdaley
cailmdaley force-pushed the feat/retire-versioning branch from 496d67b to b88c389 Compare September 29, 2026 08:09
@cailmdaley cailmdaley changed the title Retire in-code catalogue versioning; coverage masks become a workflow product Retire in-code catalogue versioning and the pre-Snakemake run layers Sep 29, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant