stringjax 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- stringjax-0.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +32 -0
- stringjax-0.1.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
- stringjax-0.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +24 -0
- stringjax-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +19 -0
- stringjax-0.1.0/.github/workflows/docs.yml +26 -0
- stringjax-0.1.0/.github/workflows/lint.yml +25 -0
- stringjax-0.1.0/.github/workflows/test-install.yml +34 -0
- stringjax-0.1.0/.github/workflows/test.yml +29 -0
- stringjax-0.1.0/.gitignore +25 -0
- stringjax-0.1.0/.readthedocs.yaml +26 -0
- stringjax-0.1.0/CHANGELOG.md +19 -0
- stringjax-0.1.0/CITATION.cff +23 -0
- stringjax-0.1.0/CONTRIBUTING.md +61 -0
- stringjax-0.1.0/LICENSE +674 -0
- stringjax-0.1.0/PKG-INFO +150 -0
- stringjax-0.1.0/README.md +110 -0
- stringjax-0.1.0/constraints.txt +17 -0
- stringjax-0.1.0/documentation/Makefile +20 -0
- stringjax-0.1.0/documentation/make.bat +35 -0
- stringjax-0.1.0/documentation/requirements.txt +20 -0
- stringjax-0.1.0/documentation/source/_static/.gitkeep +0 -0
- stringjax-0.1.0/documentation/source/_templates/.gitkeep +0 -0
- stringjax-0.1.0/documentation/source/about.md +85 -0
- stringjax-0.1.0/documentation/source/citation.md +54 -0
- stringjax-0.1.0/documentation/source/compatibility.md +27 -0
- stringjax-0.1.0/documentation/source/conf.py +103 -0
- stringjax-0.1.0/documentation/source/contributing.md +14 -0
- stringjax-0.1.0/documentation/source/faq.md +27 -0
- stringjax-0.1.0/documentation/source/index.rst +124 -0
- stringjax-0.1.0/documentation/source/install.md +86 -0
- stringjax-0.1.0/documentation/source/intro/design_principles.md +155 -0
- stringjax-0.1.0/documentation/source/intro/ecosystem.md +172 -0
- stringjax-0.1.0/documentation/source/intro/index.md +96 -0
- stringjax-0.1.0/documentation/source/intro/motivation.md +174 -0
- stringjax-0.1.0/documentation/source/notebooks/quickstart_jaxpolylog.ipynb +225 -0
- stringjax-0.1.0/documentation/source/notebooks/quickstart_jaxvacua.ipynb +201 -0
- stringjax-0.1.0/documentation/source/notebooks/quickstart_stringforge.ipynb +200 -0
- stringjax-0.1.0/documentation/source/troubleshooting.md +32 -0
- stringjax-0.1.0/documentation/source/tutorials.rst +80 -0
- stringjax-0.1.0/environment-cpu.yml +11 -0
- stringjax-0.1.0/pyproject.toml +85 -0
- stringjax-0.1.0/requirements-cpu.txt +7 -0
- stringjax-0.1.0/requirements-gpu.txt +8 -0
- stringjax-0.1.0/stringjax/__init__.py +25 -0
- stringjax-0.1.0/stringjax/_version.py +3 -0
- stringjax-0.1.0/stringjax/cli.py +61 -0
- stringjax-0.1.0/stringjax/doctor.py +102 -0
- stringjax-0.1.0/stringjax/py.typed +0 -0
- stringjax-0.1.0/tests/test_cli.py +23 -0
- stringjax-0.1.0/tests/test_doctor.py +32 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a problem with the stringjax metapackage, installer, or docs.
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: >-
|
|
8
|
+
For problems with a member package's physics or API, please open the issue
|
|
9
|
+
in that package's repository (e.g. StringJAX/jaxvacua).
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: what-happened
|
|
12
|
+
attributes:
|
|
13
|
+
label: What happened?
|
|
14
|
+
description: A clear description of the problem and what you expected instead.
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
- type: textarea
|
|
18
|
+
id: reproduce
|
|
19
|
+
attributes:
|
|
20
|
+
label: Steps to reproduce
|
|
21
|
+
description: Minimal commands or code that trigger the issue.
|
|
22
|
+
render: shell
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
- type: textarea
|
|
26
|
+
id: doctor
|
|
27
|
+
attributes:
|
|
28
|
+
label: Output of `stringjax doctor`
|
|
29
|
+
description: Paste the full output. This captures versions, JAX backend, and precision.
|
|
30
|
+
render: text
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Question / discussion
|
|
4
|
+
url: https://github.com/orgs/StringJAX/discussions
|
|
5
|
+
about: Ask "how do I …?" questions and discuss usage here.
|
|
6
|
+
- name: JAXVacua issues
|
|
7
|
+
url: https://github.com/StringJAX/jaxvacua/issues
|
|
8
|
+
about: Report problems with the flux-vacuum engine in its own repository.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Suggest an improvement to the stringjax metapackage, installer, or hub.
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
id: problem
|
|
7
|
+
attributes:
|
|
8
|
+
label: Problem / motivation
|
|
9
|
+
description: What are you trying to do, and what is currently awkward or missing?
|
|
10
|
+
validations:
|
|
11
|
+
required: true
|
|
12
|
+
- type: textarea
|
|
13
|
+
id: proposal
|
|
14
|
+
attributes:
|
|
15
|
+
label: Proposed solution
|
|
16
|
+
description: Describe the change you would like to see.
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: alternatives
|
|
21
|
+
attributes:
|
|
22
|
+
label: Alternatives considered
|
|
23
|
+
validations:
|
|
24
|
+
required: false
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!-- Thanks for contributing to StringJAX! -->
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
<!-- What does this PR change, and why? -->
|
|
6
|
+
|
|
7
|
+
## Type of change
|
|
8
|
+
- [ ] Bug fix
|
|
9
|
+
- [ ] New feature
|
|
10
|
+
- [ ] Documentation
|
|
11
|
+
- [ ] Dependency / version-range update
|
|
12
|
+
- [ ] Other
|
|
13
|
+
|
|
14
|
+
## Checklist
|
|
15
|
+
- [ ] This change belongs in the `stringjax` umbrella (not a member repo).
|
|
16
|
+
- [ ] `ruff check`, `ruff format --check`, and `mypy` pass.
|
|
17
|
+
- [ ] Docs build with `sphinx-build -W` (if docs changed).
|
|
18
|
+
- [ ] `CHANGELOG.md` updated under *Unreleased*.
|
|
19
|
+
- [ ] Compatibility matrix updated (if dependency ranges changed).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.12"
|
|
16
|
+
# Install only the documentation toolchain; the hub does not import the member
|
|
17
|
+
# packages, and conf.py falls back to a default version if stringjax is absent.
|
|
18
|
+
- name: Install docs dependencies
|
|
19
|
+
run: python -m pip install -r documentation/requirements.txt
|
|
20
|
+
- name: Build HTML (warnings are errors)
|
|
21
|
+
run: sphinx-build -W -b html documentation/source documentation/_build/html
|
|
22
|
+
# Link checking depends on third-party sites being reachable, so a failure
|
|
23
|
+
# here is informational and must not block a pull request.
|
|
24
|
+
- name: Link check
|
|
25
|
+
continue-on-error: true
|
|
26
|
+
run: sphinx-build -b linkcheck documentation/source documentation/_build/linkcheck
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: lint
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
lint:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: "3.12"
|
|
16
|
+
# Tools only: the metapackage's own quality checks do not require the (possibly
|
|
17
|
+
# unpublished) member packages to be installed.
|
|
18
|
+
- name: Install tooling
|
|
19
|
+
run: python -m pip install ruff mypy
|
|
20
|
+
- name: Ruff (lint)
|
|
21
|
+
run: ruff check .
|
|
22
|
+
- name: Ruff (format)
|
|
23
|
+
run: ruff format --check .
|
|
24
|
+
- name: mypy
|
|
25
|
+
run: mypy stringjax
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: test-install
|
|
2
|
+
|
|
3
|
+
# Full-ecosystem install check: verifies that the metapackage resolves and installs
|
|
4
|
+
# a coherent set of member packages, and that the environment helper runs.
|
|
5
|
+
#
|
|
6
|
+
# NOTE: this requires the member packages (jaxvacua, jaxpolylog, ...) to be available
|
|
7
|
+
# on PyPI. Until they are published it is run manually / on a schedule only, so that
|
|
8
|
+
# ordinary pull requests are not blocked. Re-enable `pull_request` once the members
|
|
9
|
+
# are released.
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
workflow_dispatch:
|
|
13
|
+
schedule:
|
|
14
|
+
- cron: "0 6 * * 1" # every Monday 06:00 UTC
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
install:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
python-version: ["3.12"]
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v4
|
|
25
|
+
- uses: actions/setup-python@v5
|
|
26
|
+
with:
|
|
27
|
+
python-version: ${{ matrix.python-version }}
|
|
28
|
+
- name: Install (core)
|
|
29
|
+
run: python -m pip install .
|
|
30
|
+
- name: Import the ecosystem
|
|
31
|
+
run: |
|
|
32
|
+
python -c "import stringjax, jaxvacua, jaxpolylog; print(stringjax.__version__)"
|
|
33
|
+
- name: Run diagnostics
|
|
34
|
+
run: stringjax doctor
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
unit:
|
|
10
|
+
runs-on: ${{ matrix.os }}
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
15
|
+
python-version: ["3.12"]
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: ${{ matrix.python-version }}
|
|
21
|
+
# Install the metapackage WITHOUT its dependencies so the unit tests do not
|
|
22
|
+
# require the (possibly unpublished) member packages. The doctor/CLI helpers
|
|
23
|
+
# are designed to work even when no member is installed.
|
|
24
|
+
- name: Install (no deps) + pytest
|
|
25
|
+
run: |
|
|
26
|
+
python -m pip install -e . --no-deps
|
|
27
|
+
python -m pip install pytest
|
|
28
|
+
- name: Run unit tests
|
|
29
|
+
run: pytest -q
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
.eggs/
|
|
6
|
+
build/
|
|
7
|
+
dist/
|
|
8
|
+
.venv/
|
|
9
|
+
venv/
|
|
10
|
+
private/
|
|
11
|
+
|
|
12
|
+
# Tooling
|
|
13
|
+
.mypy_cache/
|
|
14
|
+
.ruff_cache/
|
|
15
|
+
.pytest_cache/
|
|
16
|
+
|
|
17
|
+
# Docs
|
|
18
|
+
docs/_build/
|
|
19
|
+
docs/api/ # auto-generated by sphinx-autoapi
|
|
20
|
+
|
|
21
|
+
# OS / editors
|
|
22
|
+
.DS_Store
|
|
23
|
+
*.swp
|
|
24
|
+
.idea/
|
|
25
|
+
.vscode/
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Read the Docs build configuration for the StringJAX documentation hub.
|
|
2
|
+
#
|
|
3
|
+
# Layout mirrors jaxvacua: `documentation/` is the build root with a
|
|
4
|
+
# `source/` subdirectory and a sibling `requirements.txt`.
|
|
5
|
+
version: 2
|
|
6
|
+
|
|
7
|
+
build:
|
|
8
|
+
os: ubuntu-24.04
|
|
9
|
+
tools:
|
|
10
|
+
python: "3.12"
|
|
11
|
+
|
|
12
|
+
sphinx:
|
|
13
|
+
configuration: documentation/source/conf.py
|
|
14
|
+
fail_on_warning: false
|
|
15
|
+
|
|
16
|
+
# Install only the documentation toolchain. The hub does not import the member
|
|
17
|
+
# packages, and `documentation/source/conf.py` falls back to a default version
|
|
18
|
+
# if `stringjax` is not installed -- so the docs build even before the
|
|
19
|
+
# ecosystem is published to PyPI.
|
|
20
|
+
python:
|
|
21
|
+
install:
|
|
22
|
+
- requirements: documentation/requirements.txt
|
|
23
|
+
|
|
24
|
+
formats:
|
|
25
|
+
- pdf
|
|
26
|
+
- htmlzip
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the `stringjax` metapackage are documented here. The format
|
|
4
|
+
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project
|
|
5
|
+
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [0.1.0] - 2026-01-01
|
|
10
|
+
### Added
|
|
11
|
+
- Initial release of the `stringjax` umbrella metapackage.
|
|
12
|
+
- Dependency aggregation for the ecosystem: `jaxvacua` (core), with `data`
|
|
13
|
+
(`stringforge`) and `all` extras.
|
|
14
|
+
- `stringjax doctor` and `stringjax versions` command-line helpers, plus the
|
|
15
|
+
`stringjax.report()` diagnostics API.
|
|
16
|
+
- Documentation hub skeleton (Sphinx + MyST).
|
|
17
|
+
|
|
18
|
+
[Unreleased]: https://github.com/StringJAX/stringjax/compare/v0.1.0...HEAD
|
|
19
|
+
[0.1.0]: https://github.com/StringJAX/stringjax/releases/tag/v0.1.0
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
message: >-
|
|
3
|
+
If you use the StringJAX ecosystem, please cite the specific package(s) you used
|
|
4
|
+
(e.g. JAXVacua, JAXPolyLog, StringForge) rather than this umbrella metapackage.
|
|
5
|
+
title: "StringJAX: differentiable, JAX-native tools for string compactifications"
|
|
6
|
+
abstract: >-
|
|
7
|
+
Umbrella metapackage and tooling for the StringJAX ecosystem of differentiable
|
|
8
|
+
string-theory codes.
|
|
9
|
+
type: software
|
|
10
|
+
authors:
|
|
11
|
+
- family-names: Schachner
|
|
12
|
+
given-names: Andreas
|
|
13
|
+
repository-code: "https://github.com/StringJAX/stringjax"
|
|
14
|
+
url: "https://stringjax.readthedocs.io"
|
|
15
|
+
license: MIT
|
|
16
|
+
version: 0.1.0
|
|
17
|
+
date-released: "2026-01-01"
|
|
18
|
+
keywords:
|
|
19
|
+
- string theory
|
|
20
|
+
- flux vacua
|
|
21
|
+
- JAX
|
|
22
|
+
- Calabi-Yau
|
|
23
|
+
- moduli stabilisation
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Contributing to StringJAX
|
|
2
|
+
|
|
3
|
+
Thank you for considering a contribution! This repository hosts the `stringjax`
|
|
4
|
+
metapackage (a one-command installer, the `stringjax` command, and the documentation
|
|
5
|
+
hub). **Physics contributions belong in the member repositories** — JAXVacua,
|
|
6
|
+
JAXPolyLog, StringForge.
|
|
7
|
+
|
|
8
|
+
## Where should my contribution go?
|
|
9
|
+
|
|
10
|
+
- A new feature, bug fix, or docs for the flux-vacuum engine → **JAXVacua**.
|
|
11
|
+
- Polylogarithm functionality → **JAXPolyLog**.
|
|
12
|
+
- Datasets / data access → **StringForge**.
|
|
13
|
+
- Installation, the `stringjax` command, the ecosystem hub, or version pins → here.
|
|
14
|
+
|
|
15
|
+
## Development setup
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
git clone https://github.com/StringJAX/stringjax
|
|
19
|
+
cd stringjax
|
|
20
|
+
python -m pip install -e ".[dev,docs]"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If you only need to work on the metapackage itself (the `stringjax` command, the
|
|
24
|
+
hub, the version pins) and the member packages are not yet published, install
|
|
25
|
+
without dependencies and add the tooling directly:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
python -m pip install -e . --no-deps
|
|
29
|
+
python -m pip install ruff mypy pytest
|
|
30
|
+
python -m pip install -r docs/requirements.txt # only if building the docs
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Checks to run before opening a pull request
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
ruff check . # lint
|
|
37
|
+
ruff format --check . # formatting
|
|
38
|
+
mypy src/stringjax # type checks
|
|
39
|
+
pytest # tests (if present)
|
|
40
|
+
sphinx-build -W -b html docs docs/_build/html # docs build (warnings are errors)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`stringjax doctor` should also run cleanly in your environment.
|
|
44
|
+
|
|
45
|
+
## Pull-request checklist
|
|
46
|
+
|
|
47
|
+
- [ ] The change is in the correct repository (member vs umbrella).
|
|
48
|
+
- [ ] Lint, format, and type checks pass.
|
|
49
|
+
- [ ] Documentation updated where relevant (including the compatibility matrix if
|
|
50
|
+
dependency ranges change).
|
|
51
|
+
- [ ] `CHANGELOG.md` updated under *Unreleased*.
|
|
52
|
+
- [ ] Commits are focused and descriptively messaged.
|
|
53
|
+
|
|
54
|
+
## Versioning
|
|
55
|
+
|
|
56
|
+
The metapackage follows [Semantic Versioning](https://semver.org). Bump the version
|
|
57
|
+
only when a member's compatibility window changes (see `docs/compatibility.md`).
|
|
58
|
+
|
|
59
|
+
## Code of conduct
|
|
60
|
+
|
|
61
|
+
By participating you agree to abide by the [Code of Conduct](CODE_OF_CONDUCT.md).
|