Skip to content

Releases: gemmadanks/hebog

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 17:37
6154cb8

0.24.0 (2026-10-23)

⚠ BREAKING CHANGES

  • Custom performance contracts must use schema 3. Replace maximum_ratio with dense_minimum_sources, dense_maximum_ratio and sparse_maximum_ratio.

🚀 Features

  • measure source-finder scaling across sparse and dense sectors (#196) (bee8d4d)

⚡ Performance

  • hold less memory for the local noise of large images (#193) (4e82ce0)
  • keep every Dask worker busy on sectors up to 5,000 pixels (#200) (71f6234)

📚 Documentation

  • record the 0.23.0 release (#195) (fe1e782)
  • record the cluster's nodes for the scaling model (#201) (4fbe855)
  • record the dense sector's full protocol and stage profiles (#199) (a735049)
  • record the source-count ladder's matched ratios (#198) (dcc10bb)

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 16:17
5a9eb7c

0.23.0 (2026-10-20)

⚠ BREAKING CHANGES

  • RapthorCompatibilityConfig now defaults to profile="continuum" (was "compact"), so find_sector_sources' default products change. Pass profile="compact" for the previous behaviour.

🚀 Features

  • accept images up to 22,500 pixels a side (#191) (12bbbfe)
  • measure each Hebog profile against known truth in the Rapthor agreement check (#183) (0768b31)
  • run the continuum profile for Rapthor by default (#186) (bcd3c85)

🐛 Bug Fixes

  • keep bright extended sources in crowded fields' masks (#187) (3a6d130)
  • reserve enough memory for finely sampled images (#190) (8a2623c)
  • stop continuum losing real sources in crowded deep fields (#185) (bd62bc1)

📚 Documentation

  • explain how to withdraw a release and write commits for the changelog (#178) (f1a0978)
  • gate Hebog's speed where PyBDSF is slow and plan scaling one sector (#188) (23641c8)
  • install Rapthor's Hebog task from Rapthor's repository, not a patch (#182) (0e2783b)
  • keep the noise estimate uncorrected for clipping and require no science to degrade (#189) (050dcf9)
  • plan a stage profile before scaling one sector across a cluster (#184) (fd66221)
  • record the 0.22.0 release and the deep-field speed-up (#177) (50e4599)
  • record the 0.23.0 release check (#192) (44cfd58)
  • simplify PR template (#179) (032ca90)

🧩 CI

  • bump the actions group across 1 directory with 2 updates (#161) (e99c8da)

📦 Build

  • let Hebog and its Rapthor patch install beside newer releases (#180) (b223e76)

🧪 Tests

  • keep temporary files only for failed tests (#194) (0be63a6)

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 11:44
5a38ae3

0.22.0 (2026-10-17)

⚠ BREAKING CHANGES

  • RapthorCompatibilityConfig now defaults to profile="compact", background="zero" (was continuum/estimated), so find_sector_sources' default products change. Pass profile="continuum", background="estimated" for the previous behaviour.

🚀 Features

  • default the prepared Rapthor patch to compact with a zero background (#164) (9a3c3b9)
  • estimate an image's source count and size Rapthor's reservation from it (#166) (9ab3d8b)
  • gate the source-finding part of Rapthor's step and scope 1.0.0 to its sectors (#175) (5069629)
  • measure Rapthor-profile agreement and default the adapter to compact/zero (#163) (e42b772)
  • measure Rapthor's filter step against pinned PyBDSF master (#165) (816aa1c)
  • prepare native Rapthor source-finding integration (#162) (2bb0dcf)
  • profile one sector across thread and Dask worker counts (#167) (ce63331)
  • screen the filter step on Dask workers and choose the check's profile (#174) (5069629)

⚡ Performance

  • estimate the background pilot's window batches a square at a time (#168) (03a571e)
  • read object rounds a core at a time and keep tasks to their labels (699da85)
  • reconcile each tile seam once and index features' components (699da85)

🧹 Refactoring

  • split the three largest modules along their seams (699da85)

📚 Documentation

  • record the scaling decisions of 15 October and close task 74 (699da85)
  • record v0.21.0 and ready the plan for task 20 (#159) (ab62da0)
  • rewrite the glossary and correct stale integration and schema claims (2bb0dcf)

🧩 CI

  • publish releases to PyPI from 0.22.0 (#173) (2a07813)

🧪 Tests

  • spin the profile tests' busy helper on CPU time, not wall time (#176) (9b7f7dc)

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 19:27
3a9c519

0.21.0 (2026-10-12)

⚠ BREAKING CHANGES

  • Executor.reduce_batches, its three implementations and hebog.executors.reduce_in_canonical_order are removed; nothing called them, and plan task 74 can bring back a reduction if its profile needs one. map_round requires a requirement. hebog.stages.task_memory is left out of the composition hash, since it decides placement, never a result.

🚀 Features

  • declare every task's memory and the analysis's own (#157) (1172b1c)

v0.20.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 18:13
26dca72

0.20.0 (2026-10-11)

⚠ BREAKING CHANGES

  • the diagnostics product is schema 13 and gains bright_regions and flat_noise_bright_regions; readers refuse schema 12. The scientific composition is phase-5-evidence-bound-public-catalogue-v23.
  • SourceFinderRequest is schema 2 and gains flat_noise_image_path; SourceFinderResult is schema 3 and gains flat_noise_rms; PublicSourceFindingProvenance is schema 4 and gains flat_noise_input_sha256; the diagnostics product is schema 12. Readers refuse the earlier versions.
  • hebog.adapters.RapthorCompatibilityConfig no longer has rms_box_pixels, bright_source_rms_box_pixels, adaptive_rms_threshold_sigma, estimate_background, use_spatial_rms, use_adaptive_rms, use_multiscale or multiscale_levels.
  • hebog.config.CompactGaussianFitConfig no longer has background_model, maximum_background_offset_sigma, association_aperture_radius_sigma or association_aperture_minimum_fixed_beam_model_fraction. hebog.config.CompactDeblendConfig no longer has target_batch_pixels or maximum_batch_pixels, so its positional constructor takes six arguments. hebog.data_models.fitting.AssociationAperturePhotometry and ValidCompactGaussianFit.association_aperture are removed, and GaussianFitDiagnostics no longer admits centroid-constrained-elliptical. hebog.data_models.astrometry.CelestialCompactGaussianFit.flux is removed. hebog.data_models.CrossScaleAssociation no longer has compact_source_ids or relationship and is schema version 3.

🚀 Features

  • offer PyBDSF's zero mean map as a background setting (e77df4b)
  • rapthor profile flat noise (#151) (e77df4b)

🐛 Bug Fixes

  • estimate chained bright regions in bounded blocks (#155) (e06204a)
  • read the reference frequency in PyBDSF's order (a8269b0)

🧹 Refactoring

  • move the stage sequence into stages/composition.py (#147) (9c74f15)
  • remove the last leftovers of the unused compact lane (#145) (a05f124)

📚 Documentation

  • pin Rapthor and LSMTool and refresh the Rapthor contract (a8269b0)
  • plan one sector across the cluster with a Dask-native design (a8269b0)
  • preserve project history in commit messages (#152) (0ff1fe5)
  • put the Rapthor integration ahead of the size ladder in the plan (#138) (a27a167)
  • rapthor contract pins (#149) (a8269b0)
  • record the zero-mean-map measurement for the Rapthor profile (e77df4b)
  • scale Hebog independently of its integrations (ADR-010) (a8269b0)
  • update site url (#139) (972940a)

🧩 CI

  • group uv Dependabot updates into one pull request (#142) (432a2e1)
  • shard portable tests to shorten PR feedback (#150) (4b7ebf7)
  • upgrade the pinned uv from 0.9.16 to 0.13.0 (#148) (78ce62c)

📦 Build

  • cap the uv build backend below 0.13 (#146) (ffb762c)
  • deps: update hypothesis, matplotlib, pydantic, pyright and ruff (#141) (bbce9a6)

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 17:00
9a741e4

0.19.0 (2026-10-09)

⚠ BREAKING CHANGES

  • remove the compact lane find_sources never ran (#106)

🐛 Bug Fixes

  • attach a pixel to its owner only through the owner's support (#122) (9bd91a1)
  • bind every identity hash to what decides the result (#112) (b788c0e)
  • decide every input refusal before the analysis (#103) (97b7f2e)
  • give each noise seed an independent realization (#111) (4b44d9e)
  • keep a joint fit's well-constrained components when one degenerates (#121) (145f7e5)
  • keep Dask profile worker occupancy at or below one (#126) (01d9c45)
  • keep the local-noise floor off extended emission (#136) (d8fe206)
  • keep the local-noise RMS beside a noise step near the noise there (#128) (0a33be2)
  • keep the RMS beside a noise step at the noise there (#120) (9467914)
  • keep the RMS map off zero and blank constant-valued regions (#109) (29157d2)
  • keep whole-pixel beams exact on every platform (#125) (c2ed1da)
  • match catalogues by position first (#113) (e38e89d)
  • one gaussian source row (#119) (b4be22b)
  • read a header number written with a D exponent (3b52720)
  • record Dask profile task times on the driver's clock (#127) (cd7e5f7)
  • refuse a header card that is not a number (3b52720)
  • refuse a restoring beam wider than 10 pixels (#110) (3af734f)
  • refuse malformed header cards (#101) (3b52720)
  • restore an owner split by support refinement instead of failing (#108) (2a22089)
  • wait for running tasks after a failure and reclaim staging a killed run left (#114) (440d3b5)
  • widen the support halo to cover persistence at whole-pixel radii (#124) (3f00991)

🧹 Refactoring

  • enforce the layering as one table (#116) (4568fa6)
  • remove the compact lane find_sources never ran (#106) (49f82c3)
  • remove the support components no round reads (#123) (e0046ea)

📚 Documentation

📦 Build

  • declare dependency floors that CI installs and tests (#115) (6f9b1dc)

🧪 Tests

  • check the public finder against PyBDSF and under every executor (#105) (d2e1852)
  • run every test (#107) (3912b99)

v0.18.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 09:27
ff1c890

0.18.0 (2026-10-05)

🚀 Features

  • attribute a traced peak to passes, tasks and call sites (020f035)
  • dask driver diagnosis (#84) (020f035)
  • profile a run's stages under Dask (020f035)
  • raise the public envelope to 15,402 pixels (#82) (d282466)

🐛 Bug Fixes

  • bound the loop search's memory in large crowded features (#93) (22deb79)
  • crowded field adequacy (#90) (0bfd82e)
  • fit a crowded field island by island instead of deferring it (#87) (2e2f618)
  • give a compact source beside a much brighter one its own component (#92) (b2ccf99)
  • identify benchmark runs by the checkout they started from (#85) (a9a4aa4)
  • key cached PyBDSF references by the code their worker runs (#88) (9f3633f)
  • measure crowded fields instead of refusing them (#86) (4bdd19e)
  • publish a fitted source whose aperture sums below zero (#94) (ad81965)
  • publish emptied owners (#95) (9edc975)
  • stop chance loops and one missed source from merging crowded fields (#91) (56366a3)

⚡ Performance

  • bound generation publication's validation reads (020f035)
  • stop Dask tasks carrying image-sized manifests (020f035)

🧹 Refactoring

  • move catalogue rows out of the composition records (#89) (a837ba6)

📚 Documentation

v0.17.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 17:31
67db207

0.17.0 (2026-09-28)

⚠ BREAKING CHANGES

  • define the input header contract (#80)

🚀 Features

  • define the input header contract (#80) (18184b6)

🐛 Bug Fixes

  • serialize FFT convolutions across threads on Windows (75ac72c)

📚 Documentation

  • make the code review guide an author self-review that fixes findings (bc5b511)

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 11:12
249a2c1

0.16.0 (2026-09-28)

🚀 Features

  • raise the public envelope to 10,000 pixels (#78) (84632b9)

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 20:59
064e332

0.15.0 (2026-09-27)

🚀 Features

  • add the 10,000-pixel tier anchor and record the wide-object paths (#76) (7eb65c7)