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
79 changes: 79 additions & 0 deletions .github/ISSUE_TEMPLATE/01-bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Bug report
description: Report a crash, incorrect metric, API break, or other reproducible problem
title: "[Bug] "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for reporting a NetForge issue. For usage questions, use Discussions.
- type: checkboxes
id: checks
attributes:
label: Before submitting
options:
- label: I searched existing issues and did not find the same problem.
required: true
- label: I can reproduce this on the latest `main` branch.
required: true
- type: textarea
id: problem
attributes:
label: What happened?
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: Minimal reproduction
description: `netforge …` or a few lines of PettingZoo / Gymnasium code.
render: shell
validations:
required: true
- type: input
id: version
attributes:
label: NetForge version / commit
validations:
required: true
- type: dropdown
id: area
attributes:
label: Area
options:
- Environment / PettingZoo
- Gymnasium facade
- Arena / questions / submissions
- Diagnostics / agent cards
- JAX backend
- SIEM / NLP
- Datasets / replay
- Docs
- Other
validations:
required: true
- type: input
id: os
attributes:
label: Operating system
placeholder: "Windows 11 / Ubuntu 24.04 / macOS 15"
validations:
required: true
- type: input
id: python
attributes:
label: Python version
placeholder: "3.12.8"
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
render: shell
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/02-feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Feature request
description: Propose gym infrastructure — not a new exploit family
title: "[Proposal] "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Prefer wrappers, metrics, packs, probes, and docs. Algorithms belong in
their own repos and should be *evaluated on* NetForge. If the design is
not obvious, use the Research template.
- type: checkboxes
id: checks
attributes:
label: Before submitting
options:
- label: I searched existing issues and Discussions for a similar proposal.
required: true
- label: This is gym/benchmark infrastructure, not a vendored trainer.
required: true
- type: dropdown
id: category
attributes:
label: Proposal type
options:
- Scenario pack
- Metric / agent card
- Capability probe
- Wrapper (reward, constraint, comm)
- Dataset / Minari
- Docs
- Interop (PettingZoo, Gymnasium, JaxMARL)
- Other
validations:
required: true
- type: textarea
id: problem
attributes:
label: What problem does this solve?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposed solution
description: Smallest useful implementation.
validations:
required: true
- type: textarea
id: out_of_scope
attributes:
label: Out of scope
- type: textarea
id: validation
attributes:
label: How should this be validated?
description: Tests, Arena seeds, a named `netforge questions` entry.
validations:
required: true
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
blank_issues_enabled: true
contact_links:
- name: Ask a question
url: https://github.com/reforcemind/NetForge_RL/discussions
about: Usage or architecture questions. Use Research issues for scoped design work.
- name: Documentation
url: https://reforcemind.github.io/NetForge_RL/
about: Getting started, Arena, questions, API.
- name: Research backlog
url: https://github.com/reforcemind/NetForge_RL/blob/main/RESEARCH.md

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This URL 404s: there is no RESEARCH.md at the repo root. Point at docs/research.md (or drop the contact link).

about: Public research issues and good first contributions
- name: Arena spec
url: https://github.com/reforcemind/NetForge_RL/blob/main/docs/arena.md
about: Frozen benchmark contract (splits, metrics, hidden tests)
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/good_first_issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Good first issue
description: Small gym/infrastructure task for new contributors
title: "[good first issue] "
labels: ["good first issue"]
body:
- type: markdown
attributes:
value: "Prefer scenario packs, metrics, probes, docs, or wrappers — not new exploits."
- type: textarea
id: task
attributes:
label: Task
description: What should land in the gym?
validations:
required: true
- type: dropdown
id: kind
attributes:
label: Kind
options: [scenario pack, metric, capability probe, wrapper, docs, replay, dataset]
validations:
required: true
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/research.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Research
description: A research question the gym should make easy to answer
title: "[research] "
labels: ["research"]
body:
- type: markdown
attributes:
value: "Algorithms belong in their own repos and should be *evaluated on* NetForge."
- type: textarea
id: question
attributes:
label: Question
description: Generalization, safety, adaptation, POMDP, temporal, self-play, …
validations:
required: true
- type: textarea
id: protocol
attributes:
label: Arena protocol
description: Split, seeds, metrics, baselines. Hidden tests if it is a leaderboard claim.
15 changes: 15 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## Summary


## Evidence


```text

```

## Checklist
- [ ] One issue, one PR
- [ ] Tests added or updated
- [ ] Did not vendor a training algorithm (MAPPO / QMIX / CT-GMARL stay out of tree)
- [ ] User-path docs updated only if the user path changed
57 changes: 57 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: CI

on:
push:
branches: [main]
pull_request:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install --upgrade pip
- run: pip install ruff
- run: ruff format --check .
- run: ruff check .

test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install --upgrade pip
- run: pip install -e ".[dev]"
- run: pytest tests/ --cov=netforge_rl --cov-report=xml --cov-fail-under=50
- uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false

docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install --upgrade pip
- run: pip install -e ".[docs]"
- run: sphinx-build -b html -W --keep-going docs docs/_build/html
- run: touch docs/_build/html/.nojekyll
- uses: actions/upload-artifact@v4
with:
name: docs-html
path: docs/_build/html
40 changes: 40 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Docs

on:
push:
branches: [main]

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install --upgrade pip
- run: pip install -e ".[docs]"
- run: sphinx-build -b html -W --keep-going docs docs/_build/html
- run: touch docs/_build/html/.nojekyll
- uses: actions/upload-pages-artifact@v3
with:
path: docs/_build/html

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deploy.outputs.page_url }}
steps:
- id: deploy
uses: actions/deploy-pages@v4
51 changes: 0 additions & 51 deletions .github/workflows/python-app.yml

This file was deleted.

12 changes: 12 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Agent notes

Verification is local. GitHub Actions (`ci.yml`) runs ruff + pytest + Sphinx.
`docs.yml` deploys the HTML site to GitHub Pages on push to `main`.

- Full gate: `scripts/verify_all.sh` (Linux/Git Bash) or `scripts/verify_local.ps1` (Windows)
- User CLI: `python -m netforge` / `netforge`
- Docs: `sphinx-build -b html -W --keep-going docs docs/_build/html`
- Contract: `docs/guides/verification.md`

Sister project docs kit: [FlowEdge](https://github.com/reforcemind/FlowEdge).
Do not vendor MAPPO/QMIX/CT-GMARL into this tree.
Loading
Loading