Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
51 changes: 0 additions & 51 deletions .github/workflows/publish.yml

This file was deleted.

8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ tests/*no_publish*
# -----------------------------------------------------------------------------
# Virtual environments
.env
.env.*
!.env.example
!.env.sample
!.env.template
!.env.*.example
.venv
env/
venv/
Expand All @@ -67,6 +72,9 @@ __pypackages__/
# Type checkers & linters
.ruff_cache/

# Superset per-machine lifecycle overrides
.superset/config.local.json

# -----------------------------------------------------------------------------
# IDEs & Editors
# -----------------------------------------------------------------------------
Expand Down
5 changes: 5 additions & 0 deletions .superset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"setup": ["bash .superset/workspace.sh setup"],
"teardown": ["bash .superset/workspace.sh teardown"],
"run": ["bash .superset/workspace.sh check"]
}
49 changes: 49 additions & 0 deletions .superset/workspace.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/.."

mode=${1:-help}
case "$mode" in
setup|check) ;;
teardown)
# Setup starts no background processes or services.
echo 'No workspace services to stop.'
exit 0
;;
*) echo 'Usage: bash .superset/workspace.sh {setup|check|teardown}'; exit 2 ;;
esac

unset PYTHONPATH PYTHONHOME
if [[ "$mode" == setup ]]; then
# Copy missing, untracked environment files from the root checkout.
root_path=${SUPERSET_ROOT_PATH:-$PWD}
[[ -d "$root_path" ]] || { echo "Root checkout not found: $root_path" >&2; exit 1; }
shopt -s nullglob
for source_file in "$root_path"/.env "$root_path"/.env.*; do
[[ -f "$source_file" ]] || continue
filename=${source_file##*/}
if git -C "$root_path" ls-files --error-unmatch -- "$filename" >/dev/null 2>&1; then
continue
fi
[[ ! -e "$filename" && ! -L "$filename" ]] || continue
cp -p "$source_file" "$filename"
echo "Copied $filename from root checkout."
done
shopt -u nullglob
git submodule update --init
if [[ ! -x venv/bin/python ]]; then
make venv
fi
fi

[[ -x venv/bin/python ]] || { echo 'Run bash .superset/workspace.sh setup first.' >&2; exit 1; }
export VIRTUAL_ENV="$PWD/venv"
export PATH="$VIRTUAL_ENV/bin:$PATH"

if [[ "$mode" == setup ]]; then
python -m pip install -e '.[dev]'
python -m pip check
python -c 'import netlab, ngraph, netgraph_core, topogen; print("Workspace environment ready")'
else
make check-ci
fi
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,42 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Fixed

- **CLI**: Invoke `ngraph inspect` without the unsupported output option.
- **CLI**: Return a nonzero exit status when scenario inspection or simulation fails.
- **BAC**: Keep destinations distinct for flows sharing a source and sum priority classes within each direction.
- **Sweeps**: Normalize directional BAC by baseline delivery, matching the metrics pipeline.
- **Plots**: Compute iteration-count and timing medians and interquartile ranges from per-seed data.

### Changed

- **BREAKING**: **Dependencies**: Require NetGraph `>=0.24.0`.
- **BREAKING**: **Workflows**: Placement inherits the scenario seed; set step `seed` explicitly to keep using `42`.
- **BREAKING**: **Metrics**: Require a positive integer `occurrence_count` on every failure flow result.
- **BREAKING**: **Summaries**: Replace operation counters with `iters_fail`, `iters_total`, and `unique_patterns`.
- **Scenarios**: Generated scenarios, shared templates, and the autoresearch prompt use current NetGraph keys.
- **Autoresearch**: Prompts distinguish measurements from explanations and flag missing or inconsistent evidence.
- **Autoresearch**: Load the NetGraph DSL reference from the `.claude/skills` submodule; run `git submodule update --init` to enable it.
- **Fixtures**: Regenerate scenarios, results, and metrics; see `tests/data/README.md` for numerical changes.
- **Docs**: Correct command examples, metric definitions, and scenario descriptions.
- **Internal**: Consolidate metric and provenance helpers, run the TopoGen pipeline checks in the default test suite, and remove unused code, fixtures, and the PyPI publish workflow.

### Added

- **Workspaces**: Superset setup creates an isolated environment and copies missing `.env` files; Run executes `make check-ci`.
- **Integration**: Add local-source validation and fixture regeneration commands.

### Removed

- **BREAKING**: **MSD**: Remove `base_demands` aliases `source_path`, `sink_path`, and `demand`; use `source`, `target`, and `volume`.
- **BREAKING**: **MSD**: Read alpha from `msd_baseline.data.alpha_star`; remove `msd` and placement-probe inference.
- **BREAKING**: **Timing**: Read step duration from `metadata.duration_sec`; remove the `execution_time` alias.
- **BREAKING**: **Graphs**: Require `edges` in graph results; remove support for the `links` alias.
- **BREAKING**: **Autoresearch**: Remove the `parameters` alias in hypothesis templates; use `params`.

## [0.3.0] - 2026-03-26

### Fixed
Expand Down
22 changes: 1 addition & 21 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# NetLab Development Makefile

.PHONY: help venv clean-venv dev install check check-ci lint format test qt build clean check-dist publish-test publish info hooks check-python
.PHONY: help venv clean-venv dev install check check-ci lint format test qt build clean check-dist info hooks check-python

.DEFAULT_GOAL := help

Expand Down Expand Up @@ -51,8 +51,6 @@ help:
@echo " make build - Build distribution packages"
@echo " make clean - Clean build artifacts and cache files"
@echo " make check-dist - Check distribution packages with twine"
@echo " make publish-test - Publish to Test PyPI"
@echo " make publish - Publish to PyPI"
@echo ""
@echo "Utilities:"
@echo " make info - Show project information"
Expand Down Expand Up @@ -159,24 +157,6 @@ check-dist:
exit 1; \
fi

publish-test:
@echo "📦 Publishing to Test PyPI..."
@if $(PYTHON) -c "import twine" >/dev/null 2>&1; then \
$(PYTHON) -m twine upload --repository testpypi dist/*; \
else \
echo "❌ twine not installed. Install dev dependencies with: make dev"; \
exit 1; \
fi

publish:
@echo "🚀 Publishing to PyPI..."
@if $(PYTHON) -c "import twine" >/dev/null 2>&1; then \
$(PYTHON) -m twine upload dist/*; \
else \
echo "❌ twine not installed. Install dev dependencies with: make dev"; \
exit 1; \
fi

info:
@echo "📋 NetLab Project Information"
@echo "============================="
Expand Down
Loading
Loading