Skip to content

Commit a9304ef

Browse files
committed
v0.1.0 release prep
1 parent 4085bdb commit a9304ef

50 files changed

Lines changed: 1986 additions & 131 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: Bug report
3+
about: Report a reproducible problem in jet_simplex_search
4+
title: "[Bug]: "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Observed Behavior
10+
11+
Describe what happened.
12+
13+
## Expected Behavior
14+
15+
Describe what you expected to happen.
16+
17+
## Minimal Graph/Input
18+
19+
```python
20+
# Include vertices, edges, labels, k, and contraction schema if relevant.
21+
```
22+
23+
## Environment
24+
25+
- Python version:
26+
- `jet_simplex_search` version or commit:
27+
- `state_collapser` version/source:
28+
- Operating system:
29+
30+
## Command Run
31+
32+
```bash
33+
34+
```
35+
36+
## Traceback Or Output
37+
38+
```text
39+
40+
```
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Feature request
3+
about: Propose a package feature or API extension
4+
title: "[Feature]: "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Requested Behavior
10+
11+
Describe the feature.
12+
13+
## Mathematical Or Graph Context
14+
15+
Describe the graph/simplex/tower situation this would support.
16+
17+
## Expected API Shape
18+
19+
```python
20+
# Optional sketch.
21+
```
22+
23+
## Deferred-Feature Boundary
24+
25+
Does this touch any deferred area?
26+
27+
- [ ] Kan replacement or horn filling
28+
- [ ] Expanded H witness artifacts
29+
- [ ] Acceleration backend
30+
- [ ] Neural message passing
31+
- [ ] HGraphML integration
32+
- [ ] Other:

.github/pull_request_template.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
## Summary
2+
3+
-
4+
5+
## Tests Run
6+
7+
```text
8+
9+
```
10+
11+
## Release-Claim Checklist
12+
13+
- [ ] I preserved Abdullah N. Malik attribution.
14+
- [ ] I preserved the `HGraphML` boundary: this repo does simplex search and
15+
quotient lifting, not neural message passing.
16+
- [ ] I did not add PyPI, production-ready, or benchmark-superiority claims.
17+
- [ ] I did not claim Kan replacement or horn filling unless implemented and
18+
tested.
19+
- [ ] I did not claim CinchNET, PTVNN, or neural message passing in this repo.
20+
- [ ] I updated tests, docs, or release notes for any public behavior change.

.github/workflows/test.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Test
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
test:
13+
name: Python ${{ matrix.python-version }}
14+
runs-on: ubuntu-latest
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
python-version:
19+
- "3.11"
20+
- "3.12"
21+
22+
steps:
23+
- name: Check out repository
24+
uses: actions/checkout@v4
25+
26+
- name: Install uv
27+
uses: astral-sh/setup-uv@v5
28+
29+
- name: Set up Python
30+
uses: actions/setup-python@v5
31+
with:
32+
python-version: ${{ matrix.python-version }}
33+
34+
- name: Install dependencies
35+
run: uv sync
36+
37+
- name: Ruff lint
38+
run: uv run ruff check .
39+
40+
- name: Ruff format check
41+
run: uv run ruff format --check .
42+
43+
- name: Pytest
44+
run: uv run pytest
45+
46+
- name: Release hygiene
47+
run: uv run python scripts/release_hygiene.py --repo-root .
48+
49+
- name: Build package
50+
run: uv build

CONTRIBUTING.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributing
2+
3+
Thanks for helping improve `jet_simplex_search`.
4+
5+
## Setup
6+
7+
```bash
8+
git clone https://github.com/TYLERSFOSTER/jet_simplex_search.git
9+
cd jet_simplex_search
10+
uv sync
11+
```
12+
13+
Run local checks:
14+
15+
```bash
16+
uv run ruff check .
17+
uv run ruff format --check .
18+
uv run pytest
19+
uv run python scripts/release_hygiene.py --repo-root .
20+
```
21+
22+
## Scope
23+
24+
Preserve the core semantics:
25+
26+
- directed flag simplices require all directed face edges;
27+
- degenerate simplices are first-class records;
28+
- lifting is fiber-addressed over existing downstairs simplex records;
29+
- H-to-G skeletonization preserves loop and parallel-edge information through
30+
fibers and H-lift counts;
31+
- `state_collapser` owns quotient-tower construction;
32+
- `jet_simplex_search` owns simplex enumeration, lifting, witnesses, H-lifts,
33+
diagnostics, and artifacts.
34+
35+
Preserve Abdullah N. Malik attribution and the distinction between this package
36+
and [`HGraphML`](https://github.com/TYLERSFOSTER/HGraphML): this package handles
37+
bounded simplex search and quotient lifting; HGraphML is the separate beginning
38+
of quotient-tower-backed graph message passing.
39+
40+
## Pull Requests
41+
42+
Please include:
43+
44+
- summary of the change;
45+
- tests run;
46+
- any changed public claims;
47+
- any changed artifact format;
48+
- whether the change touches deferred features such as Kan replacement,
49+
expanded H witnesses, acceleration backends, or neural message passing.
50+
51+
Do not claim PyPI publication, production readiness, benchmark-validated
52+
speed-ups, Kan replacement, or neural message passing unless those claims are
53+
implemented and verified.

README.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
[![Python](https://img.shields.io/badge/python-3.11%20%7C%203.12-blue.svg)](https://www.python.org/)
1212
[![License: MIT](https://img.shields.io/badge/license-MIT-yellow.svg)](LICENSE)
13+
[![CI](https://img.shields.io/badge/CI-configured-lightgrey.svg)](.github/workflows/test.yml)
1314
[![Tests](https://img.shields.io/badge/tests-pytest-blue.svg)](tests)
1415
[![Lint](https://img.shields.io/badge/lint-ruff-46a2f1.svg)](https://docs.astral.sh/ruff/)
1516
[![Status](https://img.shields.io/badge/status-pre--release-orange.svg)](#release-status)
@@ -228,6 +229,13 @@ Run Ruff:
228229

229230
```bash
230231
uv run ruff check .
232+
uv run ruff format --check .
233+
```
234+
235+
Run release hygiene:
236+
237+
```bash
238+
uv run python scripts/release_hygiene.py --repo-root .
231239
```
232240

233241
## Release Status
@@ -244,13 +252,19 @@ Implemented and locally tested:
244252
- diagnostics;
245253
- JSON/JSONL artifacts;
246254
- low-dimensional smoke examples.
255+
- README quick-start regression;
256+
- smoke snapshot and smoke-doc coverage;
257+
- release hygiene checks;
258+
- GitHub Actions workflow configuration;
259+
- release notes, security policy, and contribution guide.
247260

248261
Still pending before public release:
249262

250-
- CI workflow;
251-
- release hygiene automation;
252-
- changelog or release notes;
263+
- remote CI pass on GitHub;
253264
- final source distribution and wheel verification.
265+
- clean installed-wheel verification.
266+
- explicit Project Owner approval before any tag, release asset, visibility
267+
change, or publication.
254268

255269
## Known Limitations
256270

@@ -262,6 +276,9 @@ This is a library pre-release, and the current scope is deliberately narrow:
262276
quotient edges collapse.
263277
- Tower search is static; it does not rebuild the tower during simplex search.
264278
- There is no bitset, CSR, GPU, tensor, or multiprocessing acceleration yet.
279+
- Neural message passing, CinchNET, and PTVNN are not implemented in this repo;
280+
[`HGraphML`](https://github.com/TYLERSFOSTER/HGraphML) is the separate
281+
quotient-tower-backed graph message-passing branch.
265282
- `search_simplices` studies graph `H`; lower-level skeleton/tower search is
266283
exposed separately as `search_skeleton_simplices`.
267284

RELEASE_NOTES.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Release Notes
2+
3+
## v0.1.0 - GitHub Library Pre-Release
4+
5+
Status: GitHub-only library pre-release.
6+
7+
`jet_simplex_search` is a Python package for bounded directed simplex search in
8+
sparse graph data. It implements a focused release slice of Abdullah N. Malik's
9+
simplicial graph-search program: directed graph data, first-class degenerate
10+
simplices, quotient-tower search, and fiber-addressed lifting.
11+
12+
This release is not published to PyPI. Install from a source checkout:
13+
14+
```bash
15+
git clone https://github.com/TYLERSFOSTER/jet_simplex_search.git
16+
cd jet_simplex_search
17+
uv sync
18+
```
19+
20+
The package depends on `state_collapser` through the GitHub release tag
21+
`v0.7.2`:
22+
23+
```toml
24+
"state-collapser @ git+https://github.com/TYLERSFOSTER/state_collapser.git@v0.7.2"
25+
```
26+
27+
### Implemented
28+
29+
- Sparse graph input records.
30+
- H-to-G skeletonization for input loops and parallel edges.
31+
- Formal identity search edges for degenerate skeleton addresses.
32+
- Directed flag simplex enumeration through a user-provided `k`.
33+
- First-class degenerate simplex records.
34+
- Cached sparse frontier intersections.
35+
- Static quotient-tower integration through `state_collapser`.
36+
- Fiber-addressed lifting over existing downstairs simplex records.
37+
- Regression coverage for the current small-object behavior: if a downstairs
38+
simplex is absent, upstairs lifting over that simplex address does not run.
39+
- Witness consistency checks for lifted simplex records.
40+
- Compressed H-lift counts for tier-0 skeleton simplices.
41+
- JSON and JSONL artifact output.
42+
- README quick-start regression test.
43+
- Low-dimensional smoke examples through dimension `4`.
44+
45+
### Deferred
46+
47+
- Kan replacement and horn-filling variants.
48+
- Full cofibrant or small-object replacement API.
49+
- Expanded H witness assignment artifacts.
50+
- Bitset, CSR, GPU, tensor, or multiprocessing acceleration.
51+
- Dynamic tower rebuilding during simplex search.
52+
- PyPI publication.
53+
- No benchmark-validated speed-up claims are made.
54+
55+
This package also does not implement neural message passing, CinchNET, or
56+
PTVNN. The separate [`HGraphML`](https://github.com/TYLERSFOSTER/HGraphML)
57+
package is the beginning of the quotient-tower-backed graph message-passing
58+
branch; `jet_simplex_search` is the simplex-search and quotient-lift branch.
59+
60+
### Verification
61+
62+
Recommended local checks:
63+
64+
```bash
65+
uv run ruff check .
66+
uv run ruff format --check .
67+
uv run pytest
68+
uv run python scripts/release_hygiene.py --repo-root .
69+
uv build --out-dir <temporary-build-directory>
70+
```
71+
72+
### Design Record
73+
74+
- [Static tower small-object simplex search](docs/design/initial_design/01_001_static_tower_small_object_simplex_search.md)
75+
- [Package blueprint](docs/design/initial_design/01_002_static_tower_small_object_package_blueprint.md)
76+
- [Implementation workplan](docs/design/initial_design/01_003_static_tower_small_object_implementation_workplan.md)
77+
- [Implementation log](docs/design/initial_design/01_004_static_tower_small_object_implementation_log.md)
78+
- [Malik work progeny in jet_simplex_search](docs/design/malik_lineage/01_001_malik_work_progeny_in_jet_simplex_search.md)
79+
80+
### Attribution
81+
82+
The mathematical and algorithmic origin of this package is Abdullah N. Malik's
83+
work on simplicial methods in graph machine learning, especially the
84+
quotient-tower simplex search line described in his thesis and related project
85+
work. This package is a release-oriented implementation track around that
86+
lineage and its `state_collapser` integration.

SECURITY.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Security Policy
2+
3+
`jet_simplex_search` is currently pre-release research/library software.
4+
5+
If you believe you have found a vulnerability or a release-safety issue, please
6+
open a private report or contact the maintainers through the repository owner
7+
before disclosing sensitive details publicly. Include:
8+
9+
- affected version or commit;
10+
- operating system and Python version;
11+
- installation method;
12+
- minimal reproduction steps;
13+
- relevant traceback or output;
14+
- whether the issue involves generated artifacts, local paths, credentials, or
15+
dependency resolution.
16+
17+
Please do not post secrets, tokens, private file paths, or sensitive datasets in
18+
public issues.
19+
20+
No response-time SLA is promised for this pre-release.

docs/design/malik_lineage/01_001_malik_work_progeny_in_jet_simplex_search.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1234,7 +1234,7 @@ from Malik's simplicial graph-search program.
12341234

12351235
It should not yet be advertised as:
12361236

1237-
- a complete implementation of Malik's thesis;
1237+
- not a complete implementation of Malik's thesis;
12381238
- a Kan replacement engine;
12391239
- a neural simplicial learning framework;
12401240
- a general categorical algebra package.

0 commit comments

Comments
 (0)