Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
d1ee438
Merge branch 'rift_O4c' into 'master'
oshaughn Feb 6, 2026
02b8cb9
Merge branch 'master' of https://github.com/oshaughn/research-project…
oshaughn Apr 22, 2026
b3d7751
container family: OSG-safe per-machine image via container universe (…
oshaughn Jun 11, 2026
88637d8
container family: extend CALPILOT to per-machine image (legacy + cont…
oshaughn Jun 11, 2026
8c3dbde
container family: enable osdf scitokens credential for manifest images
oshaughn Jun 11, 2026
9c057b2
container universe: collapse to a single container for non-GPU jobs (…
oshaughn Jun 11, 2026
2c01835
container_manifest: undefined-safe capability selector (legacy path n…
oshaughn Jun 11, 2026
6e390e2
container family: exclude undefined-capability slots (CIT-local holds…
oshaughn Jun 12, 2026
a78b4cb
dag_utils_generic: default getenv '*' not 'True' (CIT SUBMIT_ALLOW_GE…
oshaughn Jun 12, 2026
bc949f6
ILE: optional multi-GPU fan-out per batch job (RIFT_ILE_GPU_FANOUT)
oshaughn Jun 27, 2026
4cafc5d
ILE multi-GPU fan-out: CLI flag + asimov-safe baking + demo
oshaughn Jun 27, 2026
ff54575
ILE multi-GPU fan-out: adaptive 1..N requests + use-all-physical mode
oshaughn Jun 27, 2026
4bda6a2
ILE multi-GPU fan-out: default to grab ALL node GPUs; single-GPU fall…
oshaughn Jun 27, 2026
c8f2bbb
Merge pull request #149 from oshaughnessy-junior/codex/o4c-container-…
oshaughn Jun 30, 2026
a08e88a
Merge pull request #150 from oshaughnessy-junior/codex/o4c-multigpu-i…
oshaughn Jun 30, 2026
87b0e55
BUG: make sure marginal log likelihood calculation uses all available…
ColmTalbot Jul 6, 2026
cb59bc7
Merge pull request #156 from ColmTalbot/fix-evidence-calculation
oshaughn Jul 14, 2026
9758107
Fix Virgo calibration correction convention
oshaughn Jul 15, 2026
9fd0e53
Merge branch 'master' into rift_O4c
oshaughn Jul 15, 2026
a01fdf5
Merge branch 'fix/virgo-calibration-convention' into 'rift_O4c'
oshaughn Jul 20, 2026
eac6636
0.0.17.9rc1
oshaughn Jul 20, 2026
a1abeb2
0.0.17.9
oshaughn Jul 20, 2026
4363eec
ILE: honour --srate-resample-time-marginalization instead of always d…
oshaughn Jul 22, 2026
8faa1c7
asimov: allow the RIFT bootstrap source to be named explicitly
oshaughn Jul 22, 2026
6732768
ILE: recover the requested export rate EXACTLY, not an integer multiple
oshaughn Jul 28, 2026
81622fb
Merge branch 'rift_O4c_srate_export_fix' into 'rift_O4c'
oshaughn Jul 28, 2026
cc8fa24
0.0.17.10
oshaughn Jul 28, 2026
ff88725
Merge branch 'rift_O4c' of git.ligo.org:rapidpe-rift/rift into rift_O4c
oshaughn Jul 28, 2026
6478b68
Merge branch 'rift_O4c_better_bootstrap' into 'rift_O4c'
oshaughn Aug 3, 2026
8041659
Merge branch 'rift_O4c' of git.ligo.org:rapidpe-rift/rift into rift_O4c
oshaughn Aug 3, 2026
4a8703f
0.0.17.11
oshaughn Aug 3, 2026
7f6e2d8
Added changes to allow for log-uniform prior for eccentricity
Aug 5, 2026
b8c3342
Fix supplementary-likelihood prepare hook: assigned name never matche…
oshaughnessy-junior Aug 10, 2026
95b41c9
Add RIFT.interpolators.nal_io: generic NAL reader/evaluator + plugin …
oshaughnessy-junior Aug 10, 2026
c1db30a
nal_io: artifact writer with enforced frame invariant and traceable p…
oshaughnessy-junior Aug 10, 2026
a282ee6
Add private upstream RIFT review dispatch
oshaughn Aug 11, 2026
d6711ae
Merge pull request #167 from oshaughnessy-junior/codex/upstream-priva…
oshaughn Aug 11, 2026
b2b17dd
Address independent review of production NAL approximation
Aug 13, 2026
2c98786
review: a cheap pre-merge checklist for sampler/estimator changes, an…
oshaughnessy-junior Aug 12, 2026
128ab4d
review checklist: fix three defects found reviewing it (mcsamplerNFlo…
oshaughnessy-junior Aug 13, 2026
541267f
review checklist: stop depending on `git show --stat` to answer "are …
oshaughnessy-junior Aug 13, 2026
43c7808
Merge pull request #85 from oshaughnessy-junior/claude/pr-review-chec…
oshaughnessy-junior Aug 13, 2026
d62f4bb
Address independent review of production NAL approximation
Aug 13, 2026
fab4317
Address independent review of production NAL approximation
Aug 13, 2026
05ed6f8
Address final independent review of production NAL approximation
Aug 13, 2026
fdfd923
Added fixes to use log-uniform with ecc
Aug 13, 2026
30a9dc9
L0 rescue: the reject gate was comparing two different estimators, no…
oshaughnessy-junior Aug 11, 2026
89d7ab8
portfolio: isolate warm-pass sample reserve
oshaughn Aug 12, 2026
5a2965b
Merge pull request #86 from oshaughnessy-junior/claude/l0-rescue-gate…
oshaughnessy-junior Aug 13, 2026
692b518
Merge rift_O4d into NAL branch
oshaughnessy-junior Aug 13, 2026
14ece28
Restore the plugin's lnL offset in absolute outputs; enforce the fram…
oshaughnessy-junior Aug 13, 2026
61777f3
Merge remote-tracking branch 'junior/rift_O4d' into claude/rift-o4d-m…
oshaughnessy-junior Aug 13, 2026
f3fded0
Merge rift_O4c (0.0.17.9-0.0.17.11) into rift_O4d
oshaughnessy-junior Aug 13, 2026
aaddaa1
Merge remote-tracking branch 'origin/master' into claude/rift-o4d-mer…
oshaughnessy-junior Aug 13, 2026
4951a9e
container universe: fix container_image selector truncation (verified…
oshaughnessy-junior Aug 10, 2026
0311c89
Fix ensemble sampler log-space contract
oshaughnessy-junior Aug 13, 2026
8338e86
nal_io: reject invalid precision matrices; give marginal() its integr…
oshaughnessy-junior Aug 13, 2026
66b86d5
EOS: fix double log in reported evidence when --internal-use-lnL is set
oshaughnessy-junior Aug 13, 2026
1fd08b9
Merge branch 'rift_O4c' into 'rift_O4c'
oshaughn Aug 13, 2026
ddfc637
0.0.17.12
oshaughn Aug 13, 2026
a134af3
portfolio: make the driver fail loudly instead of silently substituti…
oshaughnessy-junior Aug 13, 2026
473f6bb
Merge rift_O4c 0.0.17.12 (log-uniform eccentricity prior) into rift_O4d
oshaughnessy-junior Aug 13, 2026
b83587f
CIP: fix the log-uniform eccentricity prior, and give the CIP priors …
oshaughnessy-junior Aug 13, 2026
adcf54d
Merge pull request #89 from oshaughnessy-junior/codex/o4d-container-b…
oshaughnessy-junior Aug 13, 2026
c5c2c20
EOS: key the log-evidence branch on the sampler, not on --internal-us…
oshaughnessy-junior Aug 13, 2026
8159377
Merge pull request #90 from oshaughnessy-junior/claude/eos-evidence-d…
oshaughnessy-junior Aug 13, 2026
289efed
Merge rift_O4d after evidence return fix
oshaughn Aug 13, 2026
11b2ad1
Merge pull request #66 from oshaughnessy-junior/claude/fix-supplement…
oshaughnessy-junior Aug 13, 2026
5bda497
GWSignal: fix TEOBResumSDALI global sign (psi was displaced by pi/2)
oshaughnessy-junior Aug 13, 2026
a236cdf
Clear stale log sampler state and run regression in CI
oshaughnessy-junior Aug 13, 2026
5004ccb
Merge pull request #88 from oshaughnessy-junior/codex/o4d-gmm-log-con…
oshaughnessy-junior Aug 13, 2026
8a0b36a
Added top-level options to use ln(e) as fitting/sampling parameter
Aug 14, 2026
fa2e068
_rvs fair-draw audit: enumerate every consumer, fix what it found, ga…
oshaughnessy-junior Aug 13, 2026
94f8c0e
review: two composition defects -- the marker survived pooling, the r…
oshaughnessy-junior Aug 14, 2026
ef9bc0b
review 2: split the two properties one flag was carrying, and pool pe…
oshaughnessy-junior Aug 14, 2026
c9f270f
Address review of TEOB mode sign regression test
Aug 14, 2026
de4b484
Narrow TEOB generator availability skip
Aug 14, 2026
b5227a6
Merge pull request #92 from oshaughnessy-junior/claude/teob-gwsignal-…
oshaughnessy-junior Aug 14, 2026
d2b5ec8
Address intrinsic-prior review findings
Aug 14, 2026
a1041d3
Merge branch 'rift_O4c' into 'rift_O4c'
oshaughn Aug 14, 2026
3423073
review 3: reset the pooled marker on entry, not only on the normal re…
oshaughnessy-junior Aug 14, 2026
364a22f
Merge pull request #87 from oshaughnessy-junior/claude/rvs-fairdraw-a…
oshaughnessy-junior Aug 14, 2026
cac3b3e
0.0.17.13
oshaughn Aug 14, 2026
aa490c8
Address intrinsic-prior review findings
Aug 14, 2026
024ee09
Address automated review findings for PR #91
Aug 14, 2026
fb3c16c
Resolve PR #91 CI merge conflict
Aug 14, 2026
8403b4e
Resolve PR #91 CI merge conflict
Aug 14, 2026
c1e1a2d
Resolve PR #91 CI merge conflict deterministically
Aug 14, 2026
514c6b4
Address automated review findings for PR #91
Aug 14, 2026
7d97d08
Allow optional Asimov suite to skip cleanly
oshaughnessy-junior Aug 15, 2026
c2743a3
Run optional Asimov checks in one pytest session
oshaughnessy-junior Aug 15, 2026
d904e72
Merge pull request #91 from oshaughnessy-junior/rift_O4d_consolidate_…
oshaughn Aug 15, 2026
9cfcaa6
Merge remote-tracking branch 'origin/rift_O4d' into claude/rift-o4d-m…
oshaughnessy-junior Aug 15, 2026
40cf711
Merge rift_O4c 0.0.17.13 (ln(e) parameter access) into rift_O4d
oshaughnessy-junior Aug 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!--
Delete any section that does not apply. The checklist below is the CHEAP pass; the
integrator-specific invariants and the blast-radius rule live in
MonteCarloMarginalizeCode/Code/RIFT/integrators/REVIEW_CHECKLIST.md
-->

## What this changes, and why

<!-- The defect or the goal. If a number changed, say which measurement says so. -->

## Evidence

<!-- What was measured, in WHICH REGIME, over how many replicates. A single run that
completed and looked sane is not evidence about a degenerate-regime fix. -->

## Checklist

- [ ] New/changed tests are **named in `.github/workflows/ci.yml`** (a test file existing does
not mean CI runs it — grep the workflow)
- [ ] Tests assert the precondition they are about, so they cannot pass vacuously
- [ ] **Read the diff — `git show HEAD` — and confirmed every hunk is mine.** These checkouts
are shared between concurrent sessions and `git add -A` has twice swept another branch's
uncommitted work into a commit. `--stat` does not answer this: it is blind to an
unrelated edit inside a file you also changed, which is exactly what happened both
times. (See `RIFT/integrators/REVIEW_CHECKLIST.md` §1.)
- [ ] Any changed default is justified by a measurement, and the previous behaviour is still
reachable by flag

### If this touches the integrators, the ILE, the likelihood, any evidence/weight/gate, **or changes a default that production inherits**

- [ ] Read `RIFT/integrators/REVIEW_CHECKLIST.md` §2–3 (population-vs-sample; side effects
when the feature is off)
- [ ] **Requested a full code review** — high blast radius: a wrong answer here is plausible,
not loud
- [ ] Shape-recovery merge gate run per `RIFT/integrators/TESTING.md` — required whenever the
change can move a posterior, which includes a changed default that production inherits,
not only edits under `RIFT/integrators/` (the fast CI integral test does not subsume it)
30 changes: 28 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,16 @@ jobs:
python -m pip install -r requirements.txt --break-system-packages
python -m pip install coverage pytest --break-system-packages
python -m pip install --editable . --break-system-packages
- name: Run probe confirm-on-fail accounting tests
run: python -m pytest -q MonteCarloMarginalizeCode/Code/test/expensive_before_merging/integrators/test_probe_confirm.py
- name: Run probe confirm-on-fail accounting and CIP intrinsic-prior tests
# The CIP prior suite rides along here for the same reason: it is pure logic that
# runs in seconds (it reads CIP's source with ast instead of importing it, so it
# needs only numpy/scipy), and a wrong prior density or a mis-wired
# --eccentricity-prior coordinate raises nothing -- it merely reweights the
# posterior. Without a job invoking it the fix can regress behind green checks.
run: |
python -m pytest -q \
MonteCarloMarginalizeCode/Code/test/expensive_before_merging/integrators/test_probe_confirm.py \
MonteCarloMarginalizeCode/Code/test/test_cip_priors.py

lisa-check:
needs: install
Expand Down Expand Up @@ -341,6 +349,13 @@ jobs:
# because this job is the only one matrixed over BOTH numpy lanes, and these tests
# are the kind that break on numpy API removals (e.g. np.trapz -> np.trapezoid).
run: python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_limit_cosine_samplers.py
- name: Run NAL / supplementary-likelihood hook tests
# Also run by .travis/test-integrate.sh (integration-check, py3.10). Repeated here for the
# same reason as above: nal_io is pure numpy and has a legacy-numpy fallback for
# default_rng, so it must be exercised in BOTH numpy lanes.
run: |
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_nal_io.py \
MonteCarloMarginalizeCode/Code/test/test_supplementary_likelihood_hook.py
- name: Run adaptive-volume collapse / evidence-accounting regressions
# These were unguarded. The AV live-volume-collapse family, the L0 rescue's warm
# seed, and the portfolio fair-draw backend each shipped a regression suite that NO
Expand All @@ -353,7 +368,18 @@ jobs:
python -m pytest -q \
MonteCarloMarginalizeCode/Code/test/test_av_empty_live_volume.py \
MonteCarloMarginalizeCode/Code/test/test_l0_rescue_seed.py \
MonteCarloMarginalizeCode/Code/test/test_seq_warmstart_seed.py \
MonteCarloMarginalizeCode/Code/test/test_fairdraw_double_weighting.py \
MonteCarloMarginalizeCode/Code/test/test_portfolio_fairdraw_backend.py
- name: Audit _rvs consumers against the fair-draw rebind
# sampler._rvs is rebound to an EXPORT resample at the end of integrate_log, and five
# separate defects have come from a consumer reading it afterwards as though it were
# the sample set. This does not assert that post-rebind reads are bugs -- most are
# legitimately per-row -- it asserts that every one of them carries a recorded human
# verdict, so a NEW or MOVED consumer fails the build instead of being found later by
# whoever happens to edit the surrounding code.
run: |
python MonteCarloMarginalizeCode/Code/test/expensive_before_merging/integrators/audit_rvs_fairdraw.py --check
- name: Run test scripts
run: |
. .travis/test-coord.sh
Expand Down
109 changes: 109 additions & 0 deletions .github/workflows/private-review-dispatch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Private upstream RIFT review dispatch

on:
pull_request_target:
types:
- opened
- reopened
- ready_for_review
- synchronize
- converted_to_draft
- closed

permissions:
id-token: write

concurrency:
group: private-review-dispatch-upstream-rift-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
dispatch:
if: >-
github.event.pull_request.user.login == 'oshaughnessy-junior' &&
github.event.pull_request.head.repo.owner.login == 'oshaughnessy-junior' &&
(github.event.pull_request.base.ref == 'rift_O4c' ||
github.event.pull_request.base.ref == 'master' ||
github.event.pull_request.base.ref == 'rift_O4d')
name: Dispatch exact upstream RIFT PR generation
runs-on: ubuntu-24.04
environment: private-review-dispatch-rift-upstream
timeout-minutes: 5
steps:
# SECURITY: pull_request_target runs trusted default-branch code. This
# workflow must never check out, fetch, cache, download, interpret, or
# execute pull-request-controlled content.
- name: Join review-dispatch tailnet segment
uses: tailscale/github-action@306e68a486fd2350f2bfc3b19fcd143891a4a2d8 # v4
with:
oauth-client-id: ${{ vars.TS_WIF_CLIENT_ID }}
audience: ${{ vars.TS_WIF_AUDIENCE }}
tags: tag:review-dispatcher
version: 1.98.10
ping: ${{ vars.REVIEW_COORDINATOR_HOST }}
use-cache: "false"

- name: Verify dispatcher cannot reach blocked coordinator ports
shell: bash
env:
REVIEW_COORDINATOR_HOST: ${{ vars.REVIEW_COORDINATOR_HOST }}
run: |
set -euo pipefail
if [[ ! "$REVIEW_COORDINATOR_HOST" =~ ^([a-z0-9-]+\.)*[a-z0-9-]+$ ]]; then
echo "Coordinator host variable is invalid" >&2
exit 1
fi
for port in 22 443 18789 3000; do
if timeout 3 bash -c 'exec 3<>"/dev/tcp/$1/$2"' \
_ "$REVIEW_COORDINATOR_HOST" "$port" 2>/dev/null; then
echo "Dispatcher unexpectedly reached blocked coordinator port $port" >&2
exit 1
fi
done

- name: Admit PR event through private coordinator
shell: bash
env:
DISPATCH_ACTION: ${{ github.event.action }}
DISPATCH_REPOSITORY: ${{ github.repository }}
DISPATCH_REPOSITORY_ID: ${{ github.repository_id }}
DISPATCH_PR: ${{ github.event.pull_request.number }}
DISPATCH_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
DISPATCH_DRAFT: ${{ github.event.pull_request.draft }}
REVIEW_COORDINATOR_HOST: ${{ vars.REVIEW_COORDINATOR_HOST }}
REVIEW_COORDINATOR_PORT: ${{ vars.REVIEW_COORDINATOR_PORT }}
OIDC_AUDIENCE: interhost-cross-review-upstream-rift
run: |
set -euo pipefail
if [[ ! "$REVIEW_COORDINATOR_HOST" =~ ^([a-z0-9-]+\.)*[a-z0-9-]+$ ]] ||
[[ ! "$REVIEW_COORDINATOR_PORT" =~ ^[0-9]{2,5}$ ]]; then
echo "Coordinator address variables are invalid" >&2
exit 1
fi

oidc_response="$(curl --fail --silent --show-error \
--header "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
"${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=${OIDC_AUDIENCE}")"
oidc_token="$(jq -er '.value | select(type == "string" and length > 0)' <<<"$oidc_response")"
echo "::add-mask::$oidc_token"

payload="$(jq -cn \
--arg schema "interhost-cross-review.github-actions-dispatch.v1" \
--arg action "$DISPATCH_ACTION" \
--arg repository "$DISPATCH_REPOSITORY" \
--arg repository_id "$DISPATCH_REPOSITORY_ID" \
--arg pr "$DISPATCH_PR" \
--arg head_sha "$DISPATCH_HEAD_SHA" \
--arg draft "$DISPATCH_DRAFT" \
'{schema:$schema, action:$action, repository:$repository,
repository_id:($repository_id | tonumber), pr:($pr | tonumber),
head_sha:$head_sha, draft:($draft == "true")}')"

curl --fail-with-body --silent --show-error \
--proto '=https' \
--retry 3 --retry-all-errors --retry-delay 2 \
--connect-timeout 10 --max-time 30 \
--header "Authorization: Bearer $oidc_token" \
--header "Content-Type: application/json" \
--data-binary "$payload" \
"https://${REVIEW_COORDINATOR_HOST}:${REVIEW_COORDINATOR_PORT}/github/actions/upstream-rift-dispatch"
4 changes: 4 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,10 @@ integrator_gate_accounting_check:
test_run:
stage: system tests
script:
# CIP prior densities + the --eccentricity-prior coordinate wiring (pure
# numpy/scipy, seconds). Runs before the heavy scripts so a wrong prior fails
# fast rather than after the end-to-end runs.
- python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_cip_priors.py
- . .travis/test-coord.sh
- bash .travis/test-integrate.sh
- . .travis/test-posterior.sh
Expand Down
9 changes: 8 additions & 1 deletion .travis/test-asimov.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,11 @@ set -euo pipefail
# Asimov 0.5 series. This test skips cleanly for unsupported/future series
# from inside pytest, so developers can preflight 0.6/0.7 environments without
# editing the test.
python -m pytest -q MonteCarloMarginalizeCode/Code/test/asimov_integration
# Bootstrap-source selection ("scheduler: bootstrap file:") is driven against a stub
# production rather than a project on disk, so it lives outside asimov_integration/.
# It still needs asimov importable, and this is the only lane that installs it, so run
# it here: otherwise the suite is never invoked and the behaviour can regress while the
# required checks stay green.
python -m pytest -q \
MonteCarloMarginalizeCode/Code/test/asimov_integration \
MonteCarloMarginalizeCode/Code/test/test_asimov_bootstrap_source.py
7 changes: 7 additions & 0 deletions .travis/test-integrate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ fi
# coordinate-transform + prior-mass identities, so they belong with the integrator gate
# rather than with the end-to-end run tests.
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_limit_cosine_samplers.py
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_mcsampler_ensemble_log_contract.py

# Supplementary-likelihood plugin hook: the NAL reader/evaluator (pure numpy, no data) and the
# static guard on the drivers' prepare-hook wiring, which is what makes the plugin receive the
# SAMPLING basis at all. Both are seconds-long and protect a silent-wrong-answer path.
python -m pytest -q MonteCarloMarginalizeCode/Code/test/test_nal_io.py \
MonteCarloMarginalizeCode/Code/test/test_supplementary_likelihood_hook.py

python MonteCarloMarginalizeCode/Code/test/test_mcsamplerEnsemble_extended.py --as-test --n-max 100000

Expand Down
58 changes: 57 additions & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,43 @@ development tree is rift_O4d.
(the flat-mode no-op master is preserved); ILE honours --srate-resample-time-marginalization instead of
always doubling, and recovers the requested export rate EXACTLY rather than an integer multiple; Virgo
calibration correction convention fixed; multi-GPU ILE fan-out with a multi-container example in one ini.
- CIP eccentricity priors: ``--eccentricity-prior log_uniform`` (ingested from rift_O4c
0.0.17.12, rapidpe-rift/rift!54) called ``np.ln``, which does not exist in numpy, so the
option raised AttributeError as soon as the prior was evaluated; its normalization was also
the uniform prior's, ``ln(ECC_MAX-ECC_MIN)``, where a density uniform in ln(e) needs
``ln(ECC_MAX/ECC_MIN)`` (negative for the shipped 0.001/0.4 defaults). Both fixed. The
option also reached only the ``eccentricity`` coordinate, so a run sampling
``eccentricity_squared`` -- which is what ``--use-eccentricity-squared`` asks for, and what
iteration 0 of an eccentric pseudo_pipe run uses -- silently kept the uniform-in-e^2
density; the log-uniform prior is now installed for that coordinate too (as the same
distribution written in e^2), and the ``--ecc-min 0`` floor correction now reaches its
range. Separately, ``eccentricity_ln`` is a logarithmic coordinate under EVERY prior, so
the shipped ``--ecc-min`` default of 0.0 left a run sampling it with a ``[log(0), ...]``
range and a prior that divided by zero; the floor correction is now keyed on the sampled
coordinate as well as on the prior, while a run that neither asks for the log-uniform
prior nor samples a log coordinate keeps ``--ecc-min`` exactly as given. Finally,
``--eccentricity-prior`` is restricted to ``uniform``/``log_uniform`` in both CIP and
pseudo_pipe, which forwards the value verbatim: only ``log_uniform`` is branched on, so an
unsupported value ran the uniform prior while reporting the requested one. With this, the
CIP prior densities get their first test suite: test_cip_priors.py
extracts the shipped ``def`` blocks from CIP with ast rather than transcribing them, then
checks that all 39 priors evaluate finite and non-negative, that the 20 claiming a
normalized density integrate to 1 against their stated measure, and that
``--eccentricity-prior`` selects a normalized density for every eccentricity coordinate,
including at the CLI defaults read out of CIP's own argparse calls rather than assumed.
Also fixed on rift_O4c (PR #174).
- ILE portfolio driver: a portfolio the driver cannot build now FAILS instead of silently
integrating with a different sampler. ``--sampler-method portfolio`` no longer carries a
dead ok-flag test that fell through to the plain mcsampler.MCSampler; the terminal
diagnostic and the plugin-pipeline branch no longer dereference mcsamplerPortfolio when its
import failed (that raised NameError from the diagnostic itself on a torch-free container);
an unrecognized ``--sampler-portfolio`` member and an omitted/empty member list are now
errors naming the known members. Ported from rift_O4c (PR #172).
- asimov: the RIFT bootstrap source can be named explicitly (``scheduler: bootstrap file:``), bypassing
the dependency scan, with ``{event}``/``{analysis}`` substitution and single-match globbing; the
PESummary analysis label is auto-derived and an ambiguous or raw-bilby metafile now fails loudly
instead of silently bootstrapping from whichever label sorted first. Ingested from rift_O4c 0.0.17.11
(rapidpe-rift/rift!53).
- containers, docs, CI: container survey/warmup tooling (containers/survey_scan) with GPU-inventory
profiles and tests; container canaries fixed after setuptools 84; an upstream dependency-compatibility
check run on both GitLab and GitHub CI; new docs for distance-grid workflows, the demo catalog, the
Expand All @@ -164,13 +201,32 @@ development tree is rift_O4d.
certify correctness; k-hat does not catch confidently-wrong runs from support mismatch; the L0 'doubles
landed fraction' claim and the cap24 lnZ-bias claim are retracted).

0.0.17.13
---------
MR https://git.ligo.org/rapidpe-rift/rift/-/merge_requests/55 , for ln(e) parameter access in pipeline

0.0.17.12
---------
MR https://git.ligo.org/rapidpe-rift/rift/-/merge_requests/54 , for eccentricity prior (log-uniform)

0.0.17.11
---------
MR https://git.ligo.org/rapidpe-rift/rift/-/merge_requests/53 , so user can specify the bootstrap file in asimov yaml

0.0.17.10
------------
MR https://git.ligo.org/rapidpe-rift/rift/-/merge_requests/51 , https://git.ligo.org/rapidpe-rift/rift/-/merge_requests/49
so output sampling rate is precisely what is requested

0.0.17.9
------------
development tree is rift_O4c_staging -> rift_O4c; draft MR notes at
https://git.ligo.org/rapidpe-rift/rift/-/merge_requests/49
- (rc0) write_bilby_pickle: shutil.copyfile threw error if cache file already existed (copy into same file error) in
code that protected against duplicate IFO entries.

- (rc1) V calibration convention sign (rapidpe-rift/rift!50); multi-container capability; multi-GPU 'fanout' capability
release is rc1


0.0.17.8
------------
Expand Down
Loading
Loading