Skip to content

Commit 0d693c7

Browse files
WS7/WS8 complete: unified examples on shared test harness, hardened environment and FluxGraph integration paths, enforced FluxGraph-enabled provider usage, logged resolved FluxGraph SHA in CI, and documented temporary floating-main policy with governance updates.
1 parent 760f48e commit 0d693c7

13 files changed

Lines changed: 447 additions & 703 deletions

File tree

.ci/dependency-pins.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
# Cross-repo compatibility pins consumed by provider compatibility lanes.
2-
# DEV PHASE: refs are intentionally floating (`main`) for faster iteration.
3-
# Lock to immutable SHAs before release hardening.
1+
# Cross-repo compatibility refs consumed by provider compatibility lanes.
2+
# DEV PHASE: FluxGraph is intentionally floating (`main`) for the foreseeable
3+
# future while provider/graph integration is still evolving.
4+
# Revisit immutable SHA pinning before release hardening.
45

56
fluxgraph:
67
repository: FEASTorg/fluxgraph
78
ref: main
8-
updated_utc: 2026-02-22
9-
rationale: "DEV PHASE: track latest FluxGraph main branch in required FluxGraph lane"
9+
updated_utc: 2026-03-03
10+
rationale: "DEV PHASE: keep floating main and rely on CI SHA logging for traceability"

.github/workflows/ci.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,23 @@ jobs:
243243
ref: ${{ steps.pins.outputs.ref }}
244244
path: fluxgraph
245245

246+
- name: Log FluxGraph resolved commit
247+
shell: bash
248+
run: |
249+
set -euo pipefail
250+
FLUXGRAPH_SHA=$(git -C fluxgraph rev-parse HEAD)
251+
FLUXGRAPH_SUBJECT=$(git -C fluxgraph log -1 --pretty=%s)
252+
echo "FluxGraph requested ref: ${{ steps.pins.outputs.ref }}"
253+
echo "FluxGraph resolved commit: $FLUXGRAPH_SHA"
254+
echo "FluxGraph HEAD subject: $FLUXGRAPH_SUBJECT"
255+
{
256+
echo "### FluxGraph Resolution (Windows FluxGraph build)"
257+
echo ""
258+
echo "- Ref: \`${{ steps.pins.outputs.ref }}\`"
259+
echo "- Commit: \`$FLUXGRAPH_SHA\`"
260+
echo "- Subject: $FLUXGRAPH_SUBJECT"
261+
} >> "$GITHUB_STEP_SUMMARY"
262+
246263
- name: Setup Python
247264
uses: actions/setup-python@v5
248265
with:
@@ -297,6 +314,22 @@ jobs:
297314
ref: ${{ steps.pins.outputs.ref }}
298315
path: fluxgraph
299316

317+
- name: Log FluxGraph resolved commit
318+
run: |
319+
set -euo pipefail
320+
FLUXGRAPH_SHA=$(git -C fluxgraph rev-parse HEAD)
321+
FLUXGRAPH_SUBJECT=$(git -C fluxgraph log -1 --pretty=%s)
322+
echo "FluxGraph requested ref: ${{ steps.pins.outputs.ref }}"
323+
echo "FluxGraph resolved commit: $FLUXGRAPH_SHA"
324+
echo "FluxGraph HEAD subject: $FLUXGRAPH_SUBJECT"
325+
{
326+
echo "### FluxGraph Resolution (Linux FluxGraph lane)"
327+
echo ""
328+
echo "- Ref: \`${{ steps.pins.outputs.ref }}\`"
329+
echo "- Commit: \`$FLUXGRAPH_SHA\`"
330+
echo "- Subject: $FLUXGRAPH_SUBJECT"
331+
} >> "$GITHUB_STEP_SUMMARY"
332+
300333
- name: Install system dependencies
301334
run: |
302335
sudo apt-get update

docs/dependencies.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,6 @@ On Windows local development, use `dev-windows-*` presets.
6464
- `anolis-protocol` is consumed as pinned submodule.
6565
- FluxGraph integration remains explicit opt-in (`ENABLE_FLUXGRAPH`, `FLUXGRAPH_DIR`).
6666
- No hidden network dependency resolution in normal configure paths.
67-
- FluxGraph CI lane consumes a pinned commit from `.ci/dependency-pins.yml` (never floating branch heads).
67+
- FluxGraph CI lanes currently consume floating `main` from `.ci/dependency-pins.yml` by explicit phase decision.
68+
- Reproducibility is intentionally relaxed in this phase; each FluxGraph CI lane logs the resolved checked-out SHA.
69+
- Revisit immutable FluxGraph SHA pinning before release hardening.

examples/README.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Provider-Sim Examples
22

3-
This directory contains configuration-first examples for each simulation mode.
3+
This directory contains scenario-focused examples for each simulation mode.
4+
Example scripts intentionally reuse the shared harness in `tests/support/` so
5+
transport/process/protobuf handling stays centralized in one place.
46

57
## Example Directories
68

@@ -10,7 +12,7 @@ This directory contains configuration-first examples for each simulation mode.
1012

1113
## Quick Start
1214

13-
Build provider-sim first:
15+
Build provider-sim first.
1416

1517
Linux/macOS:
1618

@@ -24,38 +26,47 @@ Windows:
2426
.\scripts\build.ps1 -Preset dev-windows-release
2527
```
2628

27-
Run each mode with its example config:
29+
Run inert and non-interacting scenarios:
2830

2931
Linux/macOS:
3032

3133
```bash
32-
bash ./scripts/run_local.sh --preset dev-release -- --config examples/inert_mode/provider.yaml
33-
bash ./scripts/run_local.sh --preset dev-release -- --config examples/non_interacting_mode/provider.yaml
34+
python examples/inert_mode/test_inert.py
35+
python examples/non_interacting_mode/test_non_interacting.py
3436
```
3537

3638
Windows:
3739

3840
```powershell
39-
.\scripts\run_local.ps1 -Preset dev-windows-release -- --config examples/inert_mode/provider.yaml
40-
.\scripts\run_local.ps1 -Preset dev-windows-release -- --config examples/non_interacting_mode/provider.yaml
41+
python .\examples\inert_mode\test_inert.py
42+
python .\examples\non_interacting_mode\test_non_interacting.py
4143
```
4244

43-
For `sim_mode`, build FluxGraph-enabled provider and pass `--sim-server`.
45+
If generated Python protobuf bindings are in a preset-specific build directory,
46+
set `ANOLIS_PROVIDER_SIM_BUILD_DIR` before running examples.
47+
Example (Windows):
48+
49+
```powershell
50+
$env:ANOLIS_PROVIDER_SIM_BUILD_DIR="build/dev-windows-release"
51+
```
52+
53+
`sim_mode` also requires FluxGraph server availability.
4454

4555
## FluxGraph (`sim_mode`)
4656

4757
Linux/macOS:
4858

4959
```bash
5060
bash ./scripts/build.sh --preset ci-linux-release-fluxgraph -- -DFLUXGRAPH_DIR=../fluxgraph
51-
bash ./scripts/run_local.sh --preset ci-linux-release-fluxgraph -- --config examples/sim_mode/provider.yaml --sim-server localhost:50051
61+
python examples/sim_mode/test_sim.py
5262
```
5363

5464
Windows:
5565

5666
```powershell
5767
.\scripts\build.ps1 -Preset dev-windows-release-fluxgraph -- -DFLUXGRAPH_DIR=..\fluxgraph
58-
.\scripts\run_local.ps1 -Preset dev-windows-release-fluxgraph -- --config examples/sim_mode/provider.yaml --sim-server localhost:50051
68+
$env:ANOLIS_PROVIDER_SIM_BUILD_DIR="build/dev-windows-release-fluxgraph"
69+
python .\examples\sim_mode\test_sim.py
5970
```
6071

6172
## Notes

examples/inert_mode/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,20 @@ Linux/macOS:
1616

1717
```bash
1818
bash ./scripts/build.sh --preset dev-release
19-
bash ./scripts/run_local.sh --preset dev-release -- --config examples/inert_mode/provider.yaml
19+
python examples/inert_mode/test_inert.py
2020
```
2121

2222
Windows:
2323

2424
```powershell
2525
.\scripts\build.ps1 -Preset dev-windows-release
26-
.\scripts\run_local.ps1 -Preset dev-windows-release -- --config examples/inert_mode/provider.yaml
26+
$env:ANOLIS_PROVIDER_SIM_BUILD_DIR="build/dev-windows-release"
27+
python .\examples\inert_mode\test_inert.py
2728
```
2829

30+
The script uses shared helpers from `tests/support/` for protocol framing and
31+
process management; only inert-mode scenario logic lives in this file.
32+
2933
## Related
3034

3135
- [Non-interacting mode](../non_interacting_mode/)

0 commit comments

Comments
 (0)