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.
Files changed (50) hide show
  1. stringjax-0.1.0/.github/ISSUE_TEMPLATE/bug_report.yml +32 -0
  2. stringjax-0.1.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. stringjax-0.1.0/.github/ISSUE_TEMPLATE/feature_request.yml +24 -0
  4. stringjax-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +19 -0
  5. stringjax-0.1.0/.github/workflows/docs.yml +26 -0
  6. stringjax-0.1.0/.github/workflows/lint.yml +25 -0
  7. stringjax-0.1.0/.github/workflows/test-install.yml +34 -0
  8. stringjax-0.1.0/.github/workflows/test.yml +29 -0
  9. stringjax-0.1.0/.gitignore +25 -0
  10. stringjax-0.1.0/.readthedocs.yaml +26 -0
  11. stringjax-0.1.0/CHANGELOG.md +19 -0
  12. stringjax-0.1.0/CITATION.cff +23 -0
  13. stringjax-0.1.0/CONTRIBUTING.md +61 -0
  14. stringjax-0.1.0/LICENSE +674 -0
  15. stringjax-0.1.0/PKG-INFO +150 -0
  16. stringjax-0.1.0/README.md +110 -0
  17. stringjax-0.1.0/constraints.txt +17 -0
  18. stringjax-0.1.0/documentation/Makefile +20 -0
  19. stringjax-0.1.0/documentation/make.bat +35 -0
  20. stringjax-0.1.0/documentation/requirements.txt +20 -0
  21. stringjax-0.1.0/documentation/source/_static/.gitkeep +0 -0
  22. stringjax-0.1.0/documentation/source/_templates/.gitkeep +0 -0
  23. stringjax-0.1.0/documentation/source/about.md +85 -0
  24. stringjax-0.1.0/documentation/source/citation.md +54 -0
  25. stringjax-0.1.0/documentation/source/compatibility.md +27 -0
  26. stringjax-0.1.0/documentation/source/conf.py +103 -0
  27. stringjax-0.1.0/documentation/source/contributing.md +14 -0
  28. stringjax-0.1.0/documentation/source/faq.md +27 -0
  29. stringjax-0.1.0/documentation/source/index.rst +124 -0
  30. stringjax-0.1.0/documentation/source/install.md +86 -0
  31. stringjax-0.1.0/documentation/source/intro/design_principles.md +155 -0
  32. stringjax-0.1.0/documentation/source/intro/ecosystem.md +172 -0
  33. stringjax-0.1.0/documentation/source/intro/index.md +96 -0
  34. stringjax-0.1.0/documentation/source/intro/motivation.md +174 -0
  35. stringjax-0.1.0/documentation/source/notebooks/quickstart_jaxpolylog.ipynb +225 -0
  36. stringjax-0.1.0/documentation/source/notebooks/quickstart_jaxvacua.ipynb +201 -0
  37. stringjax-0.1.0/documentation/source/notebooks/quickstart_stringforge.ipynb +200 -0
  38. stringjax-0.1.0/documentation/source/troubleshooting.md +32 -0
  39. stringjax-0.1.0/documentation/source/tutorials.rst +80 -0
  40. stringjax-0.1.0/environment-cpu.yml +11 -0
  41. stringjax-0.1.0/pyproject.toml +85 -0
  42. stringjax-0.1.0/requirements-cpu.txt +7 -0
  43. stringjax-0.1.0/requirements-gpu.txt +8 -0
  44. stringjax-0.1.0/stringjax/__init__.py +25 -0
  45. stringjax-0.1.0/stringjax/_version.py +3 -0
  46. stringjax-0.1.0/stringjax/cli.py +61 -0
  47. stringjax-0.1.0/stringjax/doctor.py +102 -0
  48. stringjax-0.1.0/stringjax/py.typed +0 -0
  49. stringjax-0.1.0/tests/test_cli.py +23 -0
  50. 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).