Skip to content

Commit 3afced5

Browse files
author
codex
committed
Public release snapshot
Sanitized public GitHub mirror snapshot from the vetted pyfallow tree after PR #33/#32 fixes, local smoke, and privacy scan.
0 parents  commit 3afced5

193 files changed

Lines changed: 15218 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.forgejo/workflows/ci.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
enable-email-notifications: false
8+
9+
jobs:
10+
test:
11+
name: Python ${{ matrix.python-version }}
12+
runs-on: ubuntu-22.04
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
python-version: ["3.11", "3.12", "3.13"]
17+
18+
steps:
19+
- name: Check out
20+
uses: https://data.forgejo.org/actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
persist-credentials: false
24+
25+
- name: Set up Python
26+
uses: https://data.forgejo.org/actions/setup-python@v5
27+
with:
28+
python-version: ${{ matrix.python-version }}
29+
30+
- name: Run Python CI and write agent feedback
31+
env:
32+
PYTHON_VERSION: ${{ matrix.python-version }}
33+
run: python scripts/ci/run_python_ci.py
34+
35+
- name: Upload CI artifacts
36+
if: always()
37+
uses: https://code.forgejo.org/forgejo/upload-artifact@v4
38+
with:
39+
name: python-ci-${{ matrix.python-version }}
40+
path: ci-artifacts/
41+
if-no-files-found: ignore
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: Bug report
3+
about: Report a pyfallow crash, incorrect output, or CLI problem
4+
title: "[Bug]: "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Version
10+
11+
`pyfallow --version` is not available yet; include package version or commit.
12+
13+
## Python Version
14+
15+
Example: `3.11.9`
16+
17+
## OS
18+
19+
Example: macOS, Linux, Windows
20+
21+
## Command Run
22+
23+
```bash
24+
25+
```
26+
27+
## Expected Behavior
28+
29+
What did you expect?
30+
31+
## Actual Behavior
32+
33+
What happened?
34+
35+
## Minimal Reproduction
36+
37+
Provide the smallest project or code snippet that reproduces the issue.
38+
39+
## Report Excerpt
40+
41+
Paste a short JSON/text excerpt. Avoid secrets and private paths.
42+
43+
## Confidence Or Severity Concern
44+
45+
If the finding exists but severity/confidence feels wrong, explain why.
46+

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Security policy
4+
url: https://github.com/pd/fallow-python/blob/main/SECURITY.md
5+
about: Read this before reporting sensitive security concerns.
6+
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
name: False positive
3+
about: Report a finding that pyfallow should lower, suppress, or explain better
4+
title: "[False positive]: "
5+
labels: false-positive
6+
assignees: ""
7+
---
8+
9+
## Rule
10+
11+
Example: `PY031 unused-symbol`
12+
13+
## Finding Excerpt
14+
15+
```json
16+
17+
```
18+
19+
## Code Pattern
20+
21+
Provide a minimal snippet or fixture-style reproduction.
22+
23+
## Why It Is A False Positive
24+
25+
Explain how the code is used at runtime.
26+
27+
## Framework Or Library Involved
28+
29+
Example: Django, FastAPI, Celery, pytest, pluggy, custom plugin loader.
30+
31+
## Suggested Confidence Adjustment
32+
33+
Should this be suppressed, lowered to low confidence, or reported with different evidence?
34+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
name: Feature request
3+
about: Suggest a scoped improvement
4+
title: "[Feature]: "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Problem
10+
11+
What workflow or analysis gap does this solve?
12+
13+
## Desired Behavior
14+
15+
What should pyfallow do?
16+
17+
## Alternatives Considered
18+
19+
Describe workarounds or existing tools.
20+
21+
## Examples
22+
23+
Provide minimal code/config examples.
24+
25+
## Analyzer Category
26+
27+
Which existing category does this belong to? New analyzer categories should start with a design discussion.
28+

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## Summary
2+
3+
Describe the change and why it is needed.
4+
5+
## Checklist
6+
7+
- [ ] Tests added or updated.
8+
- [ ] Golden outputs updated if schema or output changed.
9+
- [ ] No runtime dependencies added unless justified.
10+
- [ ] Analyzed project code is not executed.
11+
- [ ] Documentation updated for user-visible behavior.
12+
- [ ] CLI smoke commands run.
13+
- [ ] Schema compatibility considered.
14+
- [ ] False-positive risk considered.
15+
16+
## Commands Run
17+
18+
Paste relevant commands and results.
19+

.github/workflows/ci.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
test:
9+
name: Python ${{ matrix.python-version }}
10+
runs-on: ubuntu-latest
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
python-version: ["3.11", "3.12", "3.13"]
15+
16+
steps:
17+
- name: Check out
18+
uses: actions/checkout@v4
19+
20+
- name: Set up Python
21+
uses: actions/setup-python@v5
22+
with:
23+
python-version: ${{ matrix.python-version }}
24+
25+
- name: Install
26+
run: |
27+
python -m pip install --upgrade pip
28+
python -m pip install -e ".[dev]"
29+
30+
- name: Compile
31+
run: python -m compileall -q src tests mcp/src mcp/tests
32+
33+
- name: Test
34+
run: python -m pytest -q
35+
36+
- name: Self-audit gate
37+
run: python -m pyfallow analyze --root . --fail-on warning --min-confidence medium
38+
39+
- name: CLI smoke
40+
run: |
41+
python -m pyfallow --format json --root . --output /tmp/pyfallow-report.json
42+
python -m pyfallow analyze --format text --root .
43+
python -m pyfallow analyze --format sarif --root . --output /tmp/pyfallow.sarif
44+
python -m pyfallow agent-context --format markdown --root . --output /tmp/pyfallow-agent-context.md
45+
python -m pyfallow baseline create --root . --output /tmp/pyfallow-baseline.json
46+
python -m pyfallow baseline compare --root . --baseline /tmp/pyfallow-baseline.json
47+
48+
- name: Install MCP package
49+
run: python -m pip install -e ./mcp
50+
51+
- name: MCP tests
52+
run: PYTHONPATH="src:mcp/src" python -m pytest -q mcp/tests
53+
54+
- name: MCP self-audit gate
55+
run: PYTHONPATH="src:mcp/src" python -m pyfallow analyze --root mcp --fail-on warning --min-confidence medium
56+
57+
- name: MCP smoke
58+
run: python -m pyfallow_mcp --help
59+
60+
- name: Build
61+
run: python -m build
62+
63+
- name: Check package
64+
run: python -m twine check dist/*
65+
66+
- name: Build MCP package
67+
run: |
68+
cd mcp
69+
python -m build
70+
python -m twine check dist/*

.github/workflows/release.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Release Artifacts
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Check out
14+
uses: actions/checkout@v4
15+
16+
- name: Set up Python
17+
uses: actions/setup-python@v5
18+
with:
19+
python-version: "3.13"
20+
21+
- name: Install build tools
22+
run: |
23+
python -m pip install --upgrade pip
24+
python -m pip install build twine
25+
26+
- name: Build artifacts
27+
run: python -m build
28+
29+
- name: Check artifacts
30+
run: python -m twine check dist/*
31+
32+
- name: Upload artifacts
33+
uses: actions/upload-artifact@v4
34+
with:
35+
name: pyfallow-dist
36+
path: dist/*
37+

.gitignore

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Python caches
2+
__pycache__/
3+
*.py[cod]
4+
.pytest_cache/
5+
.mypy_cache/
6+
.ruff_cache/
7+
.coverage
8+
htmlcov/
9+
10+
# Build and package artifacts
11+
build/
12+
dist/
13+
*.egg-info/
14+
.eggs/
15+
16+
# Virtual environments
17+
.venv/
18+
venv/
19+
env/
20+
21+
# IDE and editor state
22+
.idea/
23+
.vscode/
24+
.claude/
25+
.codex/
26+
27+
# OS files
28+
.DS_Store
29+
__MACOSX/
30+
31+
# pyfallow generated outputs
32+
.fallow-baseline.json
33+
pyfallow-report.json
34+
pyfallow.sarif
35+
fallow-agent-context.md
36+
37+
# opencode local config (test stack — not for public repo)
38+
opencode.json
39+
40+
# soak benchmark generated checkouts and run artifacts
41+
benchmarks/soak/workspace/
42+
benchmarks/soak/results/
43+
44+
# complementary benchmark generated checkouts, environments, and run artifacts
45+
benchmarks/comparison/workspace/
46+
benchmarks/comparison/venvs/
47+
benchmarks/comparison/results/

.pyfallow.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
roots = ["src"]
2+
entry = ["src/pyfallow/__main__.py", "src/pyfallow/__init__.py", "src/pyfallow/cli.py"]
3+
include_tests = false
4+
5+
[health]
6+
enabled = false

0 commit comments

Comments
 (0)