Skip to content

Commit 022cc7a

Browse files
chore: prepare public noncommercial release
1 parent 8c017da commit 022cc7a

52 files changed

Lines changed: 3260 additions & 289 deletions

Some content is hidden

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

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @khakhasshi
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Bug report
2+
description: Report a reproducible software or research-control defect
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Do not include API keys, licensed market data, private prompts or hidden-test results.
10+
- type: textarea
11+
id: problem
12+
attributes:
13+
label: Problem
14+
description: What happened, and what did you expect?
15+
validations:
16+
required: true
17+
- type: input
18+
id: commit
19+
attributes:
20+
label: Commit or version
21+
placeholder: git rev-parse --short HEAD
22+
validations:
23+
required: true
24+
- type: dropdown
25+
id: component
26+
attributes:
27+
label: Component
28+
options:
29+
- Data pipeline
30+
- AutoAlpha
31+
- AutoCombine
32+
- QuantCombine
33+
- Factor knowledge base
34+
- Backtest or execution
35+
- Job system
36+
- Documentation
37+
- Other
38+
validations:
39+
required: true
40+
- type: textarea
41+
id: reproduction
42+
attributes:
43+
label: Minimal reproduction
44+
description: Include sanitized commands, inputs and logs.
45+
validations:
46+
required: true
47+
- type: textarea
48+
id: semantics
49+
attributes:
50+
label: Research-semantic impact
51+
description: Could this affect timing, returns, gates, lineage or promotion?
52+
- type: checkboxes
53+
id: safety
54+
attributes:
55+
label: Safety
56+
options:
57+
- label: I removed credentials, private data and hidden-test details.
58+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security report
4+
url: https://github.com/khakhasshi/MultiFactorAshare/security/policy
5+
about: Report vulnerabilities and credential exposure privately.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Research or architecture proposal
2+
description: Propose an evidence-backed improvement
3+
title: "[Proposal]: "
4+
labels: ["research"]
5+
body:
6+
- type: textarea
7+
id: question
8+
attributes:
9+
label: Research question
10+
description: What uncertainty or system limitation should this address?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: hypothesis
15+
attributes:
16+
label: Hypothesis and mechanism
17+
description: State the expected mechanism and how it differs from existing work.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: evidence
22+
attributes:
23+
label: Proposed evidence contract
24+
description: Data basis, splits, metrics, gates, costs, trial budget and falsification tests.
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: compatibility
29+
attributes:
30+
label: Compatibility and migration
31+
description: Which schemas, APIs, metrics or stored artifacts change?
32+
- type: checkboxes
33+
id: boundary
34+
attributes:
35+
label: Boundary
36+
options:
37+
- label: The proposal does not require publishing licensed data or hidden-test metrics.
38+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Problem
2+
3+
Describe the user, research or operational problem.
4+
5+
## Change
6+
7+
Describe the implementation and important design choices.
8+
9+
## Research semantics
10+
11+
- Data basis: synthetic / non-PIT / PIT
12+
- Return convention:
13+
- Exploration / validation / holdout impact:
14+
- Cost, turnover and execution impact:
15+
- Evidence or database migration impact:
16+
17+
## Verification
18+
19+
List exact commands and results.
20+
21+
## Screenshots
22+
23+
Include screenshots for visible changes and confirm that they contain no credentials or private data.
24+
25+
## Checklist
26+
27+
- [ ] Tests cover the changed behavior
28+
- [ ] No raw market data, credentials, runtime databases or hidden-test results are included
29+
- [ ] Documentation and evidence contracts are updated
30+
- [ ] Failed hard gates remain fail-closed

.github/dependabot.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: pip
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
groups:
8+
python:
9+
patterns: ["*"]
10+
- package-ecosystem: pip
11+
directory: /AutoAlpha
12+
schedule:
13+
interval: weekly
14+
groups:
15+
autoalpha-python:
16+
patterns: ["*"]
17+
- package-ecosystem: github-actions
18+
directory: /
19+
schedule:
20+
interval: monthly

.github/workflows/ci.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
pull_request:
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ci-${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
data-pipeline:
18+
name: Data pipeline
19+
runs-on: ubuntu-latest
20+
timeout-minutes: 15
21+
steps:
22+
- uses: actions/checkout@v4
23+
- uses: astral-sh/setup-uv@v6
24+
with:
25+
enable-cache: true
26+
- uses: actions/setup-python@v5
27+
with:
28+
python-version: "3.12"
29+
- run: uv sync --frozen --all-groups
30+
- run: uv run ruff check src tests scripts
31+
- run: uv run ruff format --check scripts/check_public_release.py scripts/export_public_research_snapshot.py
32+
- run: uv run pytest -q
33+
- run: uv run python scripts/check_public_release.py
34+
- run: uv build --out-dir /tmp/multifactor-ashare-dist
35+
36+
autoalpha:
37+
name: AutoAlpha platform
38+
runs-on: ubuntu-latest
39+
timeout-minutes: 30
40+
defaults:
41+
run:
42+
working-directory: AutoAlpha
43+
steps:
44+
- uses: actions/checkout@v4
45+
- uses: astral-sh/setup-uv@v6
46+
with:
47+
enable-cache: true
48+
cache-dependency-glob: AutoAlpha/uv.lock
49+
- uses: actions/setup-python@v5
50+
with:
51+
python-version: "3.12"
52+
- run: uv sync --frozen --all-groups
53+
- run: uv run ruff check .
54+
- run: uv run pytest -q
55+
- run: uv build --out-dir /tmp/autoalpha-dist

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ env/
3434
.DS_Store
3535

3636
# Databases and backups (defensive; runtime state must never reach Git)
37+
*.db
38+
*.db-shm
39+
*.db-wal
40+
*.duckdb
41+
*.duckdb.wal
3742
*.sqlite3
3843
*.sqlite3-shm
3944
*.sqlite3-wal
@@ -43,6 +48,10 @@ env/
4348
.env
4449
.env.*
4550
!.env.example
51+
.secrets/
52+
*.key
53+
*.p12
54+
*.pem
4655

4756
# Backup of the pre-merge nested AutoAlpha git directory
4857
/.git-autoalpha-backup/

0 commit comments

Comments
 (0)