[Feature]: Adopt the CE-migration ADRs and build the integration-test scaffold (Phase1)
Assessment
This issue has not been assessed yet.
Description
User Story
As an interCEde maintainer and contributor,
I want the migration ADRs merged and a shared integration-test scaffold in place,
So that the in-flight backend PRs (#6, #7, #8) harmonize onto one agreed layout instead of
diverging, and every later stack has a template to slot into.
Feature Description
This issue tracks the two foundational PRs and links both:
-
The ADR PR — #4. Adds
docs/adr/with IC-ADR-001 (Computing Element
interfaces & the DIRAC → interCEde migration), IC-ADR-002 (Integration testing against
containerized backends) and IC-ADR-003 (backend credential model — typed credentials,
declared requirements, provider-supplied), plus the template and index. -
The scaffold PR (new, branched off #4 ). Lands the
tests/integration/skeleton
that IC-ADR-002 describes — the target the three in-flight backend PRs converge onto. Stacked
on the ADR branch (so its diff is scaffold-only); retargeted tomainonce #4 merges.Scaffold contents (Phase 0 — native-binary friendly, no dependency on the not-yet-existing
intercedepackage):tests/integration/stacks.yml— manifest seeded with the three stacks' entries so each author
sees where their line goes;tests/integration/README.md— the harmonization guide / stack contract + checklist;tests/integration/stacks/_template/—compose.ymlskeleton (network,credentialsvolume,
HEALTHCHECKblock) +config/basic/intercede-client.tomltemplate;tests/integration/stacks/_images/— Dockerfile conventions (ARG+# renovate:annotation);tests/integration/conftest.py— thin--stack/--configoptions + capability-skip helper;- integration-test markers registered in
pyproject.toml
(remote scheduler arc htcondor slurm ssh destructive_fetch); - a skeleton
.github/workflows/integration.ymlthat readsstacks.yml, so authors can
delete their bespoke per-PR workflows against a real target.
Once this lands, harmonizing a stack = move files under stacks/<id>/ + add a manifest entry +
follow the checklist — not "invent structure" or "rewrite against interCEde".
Definition of Done
- PR #4 merged —
docs/adr/{IC-ADR-001,IC-ADR-002,IC-ADR-003,IC-ADR-XXX_template,index}onmain - Scaffold PR merged (based on
adr_migration, retargeted tomainafter #4) -
tests/integration/skeleton in place:stacks.yml(3 seeded stacks),README.md
checklist,stacks/_template/,stacks/_images/conventions,conftest.py, markers in
pyproject.toml, skeletonintegration.yml - A stack is runnable locally with the documented two-liner
(docker compose … up --wait+pixi run pytest … --stack=<id>) - Harmonization guide linked from #5, #, # so all three authors
work from the same target - Follow-up issues filed for the deferred consolidation: manifest-driven CI matrix (fleshing
outintegration.yml), prebuilt GHCR images, Renovate two-lane + version window, and the
arc-condor/ssh-condorstacks
Alternatives Considered
- Merge the three prototypes as-is, consolidate later. Rejected: without a shared target they
re-diverge on the exact axes they already differ on (systemd vs foreground, Podman vs Docker,
Ubuntu vs EL9), making the later consolidation larger than doing the scaffold first. - Fold the scaffold into the ADR PR (#4). Rejected: keeps the ADR reviewable as pure docs and
lets the scaffold evolve without re-opening the ADR; the stacked-PR link keeps them associated. - Full protocol-based contract suite now. Deferred — the
intercedeProtocols
(IC-ADR-001) don't exist yet, so Phase 0 tests use native client tools.
Related Issues
Implemented by: #4 (ADR docs) and the new scaffold PR
Related to: #5 (htcondor stack), # (PR #7), # (PR #8) — all three
harmonize onto this scaffold
Blocks: #5, #, # (they need the scaffold as their target)
Additional Context
- Dominant language
- Python
- Stars
- 3
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DIRACGrid/intercede
-
Difficulty 5/5 Over a week Newbie friendliness 38/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 28/100
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
All issues in DIRACGrid/intercede
Similar issues
-
documentation help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
simonw/sqlite-utils#872 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100