caddforge-docs 0.3.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 (159) hide show
  1. caddforge_docs-0.3.0/.gitignore +5 -0
  2. caddforge_docs-0.3.0/CONTRIBUTING.md +20 -0
  3. caddforge_docs-0.3.0/LICENSE +21 -0
  4. caddforge_docs-0.3.0/PKG-INFO +158 -0
  5. caddforge_docs-0.3.0/README.md +134 -0
  6. caddforge_docs-0.3.0/SECURITY.md +9 -0
  7. caddforge_docs-0.3.0/docs/assets/licenses/W3C-Software-and-Document-2015.txt +15 -0
  8. caddforge_docs-0.3.0/docs/assets/licenses/autogrid-COPYING-GPL-2.txt +339 -0
  9. caddforge_docs-0.3.0/docs/assets/licenses/autogrid-GCC-RUNTIME-COPYING-GPL-3.txt +674 -0
  10. caddforge_docs-0.3.0/docs/assets/licenses/autogrid-GCC-RUNTIME-EXCEPTION.txt +73 -0
  11. caddforge_docs-0.3.0/docs/assets/licenses/autogrid-GCC-RUNTIME-NOTICE.txt +24 -0
  12. caddforge_docs-0.3.0/docs/assets/licenses/caddforge-opencosmors-COPYING.txt +674 -0
  13. caddforge_docs-0.3.0/docs/assets/licenses/caddforge-opencosmors-LICENSE.txt +165 -0
  14. caddforge_docs-0.3.0/docs/assets/licenses/caddforge-unidock-tools-LICENSE.txt +202 -0
  15. caddforge_docs-0.3.0/docs/assets/licenses/clipboard-LICENSE.txt +19 -0
  16. caddforge_docs-0.3.0/docs/assets/licenses/escape-html-LICENSE.txt +2 -0
  17. caddforge_docs-0.3.0/docs/assets/licenses/focus-visible-LICENSE.txt +4 -0
  18. caddforge_docs-0.3.0/docs/assets/licenses/fontawesome-LICENSE.txt +165 -0
  19. caddforge_docs-0.3.0/docs/assets/licenses/fuzzaldrin-plus-LICENSE.txt +21 -0
  20. caddforge_docs-0.3.0/docs/assets/licenses/lunr-LICENSE.txt +17 -0
  21. caddforge_docs-0.3.0/docs/assets/licenses/material-LICENSE.txt +20 -0
  22. caddforge_docs-0.3.0/docs/assets/licenses/material-design-color-LICENSE.txt +31 -0
  23. caddforge_docs-0.3.0/docs/assets/licenses/material-shadows-LICENSE.txt +31 -0
  24. caddforge_docs-0.3.0/docs/assets/licenses/mkdocs-material-LICENSE.txt +19 -0
  25. caddforge_docs-0.3.0/docs/assets/licenses/mkdocs-material-extensions-LICENSE.txt +21 -0
  26. caddforge_docs-0.3.0/docs/assets/licenses/mkdocs-section-index-LICENSE.txt +21 -0
  27. caddforge_docs-0.3.0/docs/assets/licenses/mkdocstrings-LICENSE.txt +15 -0
  28. caddforge_docs-0.3.0/docs/assets/licenses/mkdocstrings-python-LICENSE.txt +15 -0
  29. caddforge_docs-0.3.0/docs/assets/licenses/octicons-LICENSE.txt +21 -0
  30. caddforge_docs-0.3.0/docs/assets/licenses/preact-LICENSE.txt +19 -0
  31. caddforge_docs-0.3.0/docs/assets/licenses/properdocs-LICENSE.txt +26 -0
  32. caddforge_docs-0.3.0/docs/assets/licenses/pymdown-extensions-LICENSE.txt +113 -0
  33. caddforge_docs-0.3.0/docs/assets/licenses/rxjs-LICENSE.txt +180 -0
  34. caddforge_docs-0.3.0/docs/assets/licenses/simple-LICENSE.txt +30 -0
  35. caddforge_docs-0.3.0/docs/assets/licenses/tiny-emitter-LICENSE.txt +19 -0
  36. caddforge_docs-0.3.0/docs/assets/licenses/tslib-LICENSE.txt +12 -0
  37. caddforge_docs-0.3.0/docs/assets/licenses/zeno-rocha-components-LICENSE.txt +22 -0
  38. caddforge_docs-0.3.0/docs/core/cli.md +131 -0
  39. caddforge_docs-0.3.0/docs/core/concepts.md +36 -0
  40. caddforge_docs-0.3.0/docs/core/configuration.md +70 -0
  41. caddforge_docs-0.3.0/docs/core/index.md +20 -0
  42. caddforge_docs-0.3.0/docs/core/jobs-results.md +59 -0
  43. caddforge_docs-0.3.0/docs/core/plugins.md +51 -0
  44. caddforge_docs-0.3.0/docs/core/slurm.md +204 -0
  45. caddforge_docs-0.3.0/docs/development/ci-publishing.md +94 -0
  46. caddforge_docs-0.3.0/docs/development/contributing.md +51 -0
  47. caddforge_docs-0.3.0/docs/development/documentation.md +85 -0
  48. caddforge_docs-0.3.0/docs/development/index.md +21 -0
  49. caddforge_docs-0.3.0/docs/development/release-notes.md +95 -0
  50. caddforge_docs-0.3.0/docs/development/release-readiness.md +70 -0
  51. caddforge_docs-0.3.0/docs/development/security.md +27 -0
  52. caddforge_docs-0.3.0/docs/development/tool-authoring.md +85 -0
  53. caddforge_docs-0.3.0/docs/examples/index.md +69 -0
  54. caddforge_docs-0.3.0/docs/examples/manifest.json +158 -0
  55. caddforge_docs-0.3.0/docs/examples/minimize/component_overrides.yaml +14 -0
  56. caddforge_docs-0.3.0/docs/examples/minimize/ligand_only.yaml +13 -0
  57. caddforge_docs-0.3.0/docs/examples/minimize/pipeline_docking.yaml +84 -0
  58. caddforge_docs-0.3.0/docs/examples/minimize/pipeline_scatter.yaml +49 -0
  59. caddforge_docs-0.3.0/docs/examples/minimize/pocket_free_shell_restrained.yaml +13 -0
  60. caddforge_docs-0.3.0/docs/examples/minimize/pocket_restrained.yaml +13 -0
  61. caddforge_docs-0.3.0/docs/examples/minimize/prepared_metal.yaml +14 -0
  62. caddforge_docs-0.3.0/docs/examples/minimize/sidechains_free_backbone_fixed.yaml +13 -0
  63. caddforge_docs-0.3.0/docs/examples/minimize/sidechains_free_backbone_restrained.yaml +13 -0
  64. caddforge_docs-0.3.0/docs/examples/pipelines/descriptor-model-and-candidate-filter.yaml +44 -0
  65. caddforge_docs-0.3.0/docs/examples/pipelines/dock-extract-and-minimize-poses.yaml +85 -0
  66. caddforge_docs-0.3.0/docs/examples/pipelines/docking-screen-and-rescore.yaml +55 -0
  67. caddforge_docs-0.3.0/docs/examples/pipelines/flexible-gnina-to-openbpmd-to-md-to-abfe.yaml +189 -0
  68. caddforge_docs-0.3.0/docs/examples/pipelines/gnina-flexible-complex-artifacts.yaml +52 -0
  69. caddforge_docs-0.3.0/docs/examples/pipelines/minimize-a-multi-pose-sdf.yaml +46 -0
  70. caddforge_docs-0.3.0/docs/examples/pipelines/pose-level-md-selection.yaml +95 -0
  71. caddforge_docs-0.3.0/docs/examples/pipelines/result-collection-and-diagnostics.yaml +55 -0
  72. caddforge_docs-0.3.0/docs/examples/quickstart/README.md +14 -0
  73. caddforge_docs-0.3.0/docs/examples/quickstart/diagnostics.yaml +8 -0
  74. caddforge_docs-0.3.0/docs/examples/quickstart/pipeline.yaml +23 -0
  75. caddforge_docs-0.3.0/docs/examples/quickstart/run.py +18 -0
  76. caddforge_docs-0.3.0/docs/examples/quickstart/run_pipeline.py +6 -0
  77. caddforge_docs-0.3.0/docs/examples/quickstart/scores.csv +7 -0
  78. caddforge_docs-0.3.0/docs/examples/quickstart/values.csv +31 -0
  79. caddforge_docs-0.3.0/docs/examples/run_tool.py +40 -0
  80. caddforge_docs-0.3.0/docs/examples/tools/datascience-csv-scatter.yaml +17 -0
  81. caddforge_docs-0.3.0/docs/examples/tools/datascience-distribution-diagnostics.yaml +10 -0
  82. caddforge_docs-0.3.0/docs/examples/tools/descriptors-ani-conformers.yaml +9 -0
  83. caddforge_docs-0.3.0/docs/examples/tools/descriptors-ani-psa.yaml +9 -0
  84. caddforge_docs-0.3.0/docs/examples/tools/descriptors-cluster-molecules.yaml +11 -0
  85. caddforge_docs-0.3.0/docs/examples/tools/descriptors-phesa.yaml +7 -0
  86. caddforge_docs-0.3.0/docs/examples/tools/docking-gnina.yaml +12 -0
  87. caddforge_docs-0.3.0/docs/examples/tools/docking-idockya.yaml +8 -0
  88. caddforge_docs-0.3.0/docs/examples/tools/docking-unidock.yaml +12 -0
  89. caddforge_docs-0.3.0/docs/examples/tools/fep-openfe-abfe.yaml +53 -0
  90. caddforge_docs-0.3.0/docs/examples/tools/fep-openfe-rbfe-septop.yaml +23 -0
  91. caddforge_docs-0.3.0/docs/examples/tools/md-center-and-align.yaml +16 -0
  92. caddforge_docs-0.3.0/docs/examples/tools/md-cluster-representative.yaml +16 -0
  93. caddforge_docs-0.3.0/docs/examples/tools/md-extract-frames.yaml +17 -0
  94. caddforge_docs-0.3.0/docs/examples/tools/md-fix-structure.yaml +20 -0
  95. caddforge_docs-0.3.0/docs/examples/tools/md-grand.yaml +28 -0
  96. caddforge_docs-0.3.0/docs/examples/tools/md-inducia.yaml +29 -0
  97. caddforge_docs-0.3.0/docs/examples/tools/md-minimize.yaml +13 -0
  98. caddforge_docs-0.3.0/docs/examples/tools/md-openbpmd.yaml +11 -0
  99. caddforge_docs-0.3.0/docs/examples/tools/md-plain-md.yaml +28 -0
  100. caddforge_docs-0.3.0/docs/examples/tools/ml-explore-classifier.yaml +5 -0
  101. caddforge_docs-0.3.0/docs/examples/tools/ml-model-factory.yaml +32 -0
  102. caddforge_docs-0.3.0/docs/examples/tools/ml-model-zoo.yaml +16 -0
  103. caddforge_docs-0.3.0/docs/examples/tools/ml-pca.yaml +10 -0
  104. caddforge_docs-0.3.0/docs/examples/tools/ml-simple-gp.yaml +17 -0
  105. caddforge_docs-0.3.0/docs/examples/tools/qm-transfer-free-energy.yaml +11 -0
  106. caddforge_docs-0.3.0/docs/explanation/references.md +22 -0
  107. caddforge_docs-0.3.0/docs/explanation/reproducibility.md +44 -0
  108. caddforge_docs-0.3.0/docs/explanation/third-party-notices.md +158 -0
  109. caddforge_docs-0.3.0/docs/getting-started/first-pipeline.md +49 -0
  110. caddforge_docs-0.3.0/docs/getting-started/first-workflow.md +84 -0
  111. caddforge_docs-0.3.0/docs/getting-started/index.md +21 -0
  112. caddforge_docs-0.3.0/docs/getting-started/installation.md +195 -0
  113. caddforge_docs-0.3.0/docs/gui/index.md +86 -0
  114. caddforge_docs-0.3.0/docs/gui/plugin-authoring.md +40 -0
  115. caddforge_docs-0.3.0/docs/gui/walkthrough.md +27 -0
  116. caddforge_docs-0.3.0/docs/how-to/jobs.md +43 -0
  117. caddforge_docs-0.3.0/docs/how-to/scatter.md +38 -0
  118. caddforge_docs-0.3.0/docs/how-to/troubleshooting.md +100 -0
  119. caddforge_docs-0.3.0/docs/index.md +54 -0
  120. caddforge_docs-0.3.0/docs/pipelines/artifacts.md +51 -0
  121. caddforge_docs-0.3.0/docs/pipelines/built-ins.md +340 -0
  122. caddforge_docs-0.3.0/docs/pipelines/examples.md +828 -0
  123. caddforge_docs-0.3.0/docs/pipelines/index.md +21 -0
  124. caddforge_docs-0.3.0/docs/pipelines/specification.md +53 -0
  125. caddforge_docs-0.3.0/docs/plugins/datascience.md +138 -0
  126. caddforge_docs-0.3.0/docs/plugins/descriptors.md +294 -0
  127. caddforge_docs-0.3.0/docs/plugins/docking.md +212 -0
  128. caddforge_docs-0.3.0/docs/plugins/fep.md +210 -0
  129. caddforge_docs-0.3.0/docs/plugins/index.md +22 -0
  130. caddforge_docs-0.3.0/docs/plugins/md.md +1126 -0
  131. caddforge_docs-0.3.0/docs/plugins/ml.md +353 -0
  132. caddforge_docs-0.3.0/docs/plugins/qm.md +76 -0
  133. caddforge_docs-0.3.0/docs/plugins/version-matrix.md +97 -0
  134. caddforge_docs-0.3.0/docs/reference/api.md +916 -0
  135. caddforge_docs-0.3.0/docs/reference/index.md +16 -0
  136. caddforge_docs-0.3.0/hatch_build.py +35 -0
  137. caddforge_docs-0.3.0/properdocs.yml +124 -0
  138. caddforge_docs-0.3.0/pyproject.toml +60 -0
  139. caddforge_docs-0.3.0/requirements-test.txt +8 -0
  140. caddforge_docs-0.3.0/requirements.txt +6 -0
  141. caddforge_docs-0.3.0/scripts/__init__.py +1 -0
  142. caddforge_docs-0.3.0/scripts/check_links.py +85 -0
  143. caddforge_docs-0.3.0/scripts/check_release.py +98 -0
  144. caddforge_docs-0.3.0/scripts/ci_tests.json +14 -0
  145. caddforge_docs-0.3.0/scripts/run_ci_tests.py +84 -0
  146. caddforge_docs-0.3.0/scripts/site_assets.py +41 -0
  147. caddforge_docs-0.3.0/scripts/update_reference.py +102 -0
  148. caddforge_docs-0.3.0/scripts/validate_examples.py +83 -0
  149. caddforge_docs-0.3.0/src/caddforge_docs/__init__.py +1 -0
  150. caddforge_docs-0.3.0/src/caddforge_docs/cli.py +20 -0
  151. caddforge_docs-0.3.0/src/caddforge_docs/server.py +124 -0
  152. caddforge_docs-0.3.0/tests/conftest.py +10 -0
  153. caddforge_docs-0.3.0/tests/test_cli.py +68 -0
  154. caddforge_docs-0.3.0/tests/test_examples.py +85 -0
  155. caddforge_docs-0.3.0/tests/test_packaging.py +117 -0
  156. caddforge_docs-0.3.0/tests/test_public_documentation.py +91 -0
  157. caddforge_docs-0.3.0/tests/test_release_metadata.py +77 -0
  158. caddforge_docs-0.3.0/tests/test_server.py +173 -0
  159. caddforge_docs-0.3.0/tests/test_site_assets.py +61 -0
@@ -0,0 +1,5 @@
1
+ .cache/
2
+ .venv/
3
+ site/
4
+ __pycache__/
5
+ *.py[cod]
@@ -0,0 +1,20 @@
1
+ # Contributing to CADDForge Documentation
2
+
3
+ See [contributor guidance](docs/development/contributing.md) for development setup,
4
+ review expectations, support, and public-content requirements, and
5
+ [documentation maintenance](docs/development/documentation.md) for build commands.
6
+
7
+ Use synthetic or redistributable public example data with provenance. Keep workflow
8
+ examples complete, identify external engine prerequisites, and distinguish released
9
+ behavior from development candidates. Do not include credentials or research data.
10
+
11
+ ```bash
12
+ python -m pip install -r requirements.txt -r requirements-test.txt
13
+ properdocs build --strict
14
+ python scripts/check_links.py site
15
+ python -m pytest -q
16
+ ```
17
+
18
+ For tutorial integration tests, also install compatible public core and data-science
19
+ packages and run `python -m pytest tests/test_examples.py -q --require-examples`.
20
+ No package upload or site deployment is needed to propose a documentation change.
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 The CADDForge Authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.5
2
+ Name: caddforge-docs
3
+ Version: 0.3.0
4
+ Summary: Central documentation site for the CADDForge toolbox.
5
+ Author-email: Manuel Sellner <manuel.sellner@idorsia.com>, Christoph Sager <christoph.sager@idorsia.com>
6
+ License: MIT
7
+ License-File: LICENSE
8
+ Requires-Python: >=3.10
9
+ Requires-Dist: caddforge-core>=0.21.0
10
+ Provides-Extra: docs
11
+ Requires-Dist: mkdocs-material==9.7.7; extra == 'docs'
12
+ Requires-Dist: mkdocs-section-index>=0.3; extra == 'docs'
13
+ Requires-Dist: mkdocstrings[python]>=0.24; extra == 'docs'
14
+ Requires-Dist: properdocs>=1.6; extra == 'docs'
15
+ Requires-Dist: pymdown-extensions>=10.7; extra == 'docs'
16
+ Provides-Extra: test
17
+ Requires-Dist: build>=1.2; extra == 'test'
18
+ Requires-Dist: hatchling>=1.26; extra == 'test'
19
+ Requires-Dist: jsonschema>=4.18; extra == 'test'
20
+ Requires-Dist: pytest>=7.0; extra == 'test'
21
+ Requires-Dist: rich>=13.8; extra == 'test'
22
+ Requires-Dist: tomli>=2; (python_version < '3.11') and extra == 'test'
23
+ Description-Content-Type: text/markdown
24
+
25
+ # CADDForge Documentation
26
+
27
+ Central documentation site for the CADDForge toolbox.
28
+
29
+ These sources describe the reviewed public snapshots in the
30
+ [version matrix](docs/plugins/version-matrix.md). Documentation release `0.3.0`
31
+ is identified by source tag `v0.3.0`; package-index publication remains pending.
32
+ Release tags identify source revisions; package-index publication is separate.
33
+ See the [release notes](docs/development/release-notes.md) for the packaged changes.
34
+
35
+ ## View installed documentation
36
+
37
+ The planned public bundle includes `caddforge-docs` automatically; its pins
38
+ and release remain pending. For core-only or selective installations, install
39
+ the documentation package into the same environment once its new public release
40
+ is available. Until then, use the source installation under [Local preview](#local-preview):
41
+
42
+ ```bash
43
+ python -m pip install caddforge-docs
44
+ caddforge docs
45
+ ```
46
+
47
+ `caddforge docs` is available only when `caddforge-docs` is installed. The package installs
48
+ `caddforge-core>=0.21.0` automatically; core 0.21.0 includes CLI extension
49
+ discovery. The built site ships with the docs package, so viewing it requires no checkout,
50
+ documentation build tools, or network connection. Its content matches the installed docs release.
51
+
52
+ The command opens the default browser and keeps serving until you press Ctrl+C. By default it binds
53
+ to `127.0.0.1` on an automatically assigned port. Override the listening address or port as needed:
54
+
55
+ ```bash
56
+ caddforge docs --host 0.0.0.0 --port 8001
57
+ caddforge docs --host localhost --no-browser
58
+ caddforge docs --host ::1
59
+ ```
60
+
61
+ Hostnames, IPv4, and IPv6 addresses are supported. With wildcard bindings (`0.0.0.0` or `::`), the
62
+ automatic browser opens the matching loopback URL. The terminal prints the listening address and
63
+ browser URL; remote clients can use the server's reachable hostname or address and the printed port.
64
+ `--no-browser` keeps the server running without launching a browser. If automatic opening fails,
65
+ use the printed URL manually.
66
+
67
+ ## Local preview
68
+
69
+ ```bash
70
+ python -m pip install -r requirements.txt
71
+ properdocs serve
72
+ ```
73
+
74
+ Then open <http://127.0.0.1:8000>.
75
+
76
+ Alternatively, install the optional docs dependencies from `pyproject.toml`:
77
+
78
+ ```bash
79
+ python -m pip install ".[docs]"
80
+ ```
81
+
82
+ For an editable install, `python -m pip install -e ".[docs]"` also builds the packaged site.
83
+ Reinstall after editing sources to refresh `caddforge docs`, or use `properdocs serve --open` for
84
+ live authoring. The packaged site is generated under `src/caddforge_docs/site/` and ignored by Git.
85
+ For source installations, install a compatible core revision first:
86
+ `python -m pip install -e ../caddforge-core`. See the documented version matrix.
87
+
88
+ ## Build
89
+
90
+ ```bash
91
+ properdocs build --strict
92
+ ```
93
+
94
+ The generated static site is written to `site/`.
95
+
96
+ To build distributable documentation packages:
97
+
98
+ ```bash
99
+ python -m pip install build
100
+ python -m build
101
+ ```
102
+
103
+ Wheel builds run ProperDocs in strict mode and include all rendered pages and assets. The source
104
+ distribution includes the Markdown, configuration, and build hook needed to rebuild the wheel.
105
+ Build dependencies are installed in the isolated build environment and are not runtime requirements.
106
+
107
+ To run tests, install the authoring and test extras, then run `python -m pytest -q`:
108
+
109
+ ```bash
110
+ python -m pip install -e ".[docs,test]"
111
+ python -m pytest -q
112
+ ```
113
+
114
+ ## Publishing
115
+
116
+ This repository has separate package and site workflows:
117
+
118
+ - `.github/workflows/release.yml` builds and tests the installed wheel on
119
+ Python 3.10 and 3.12, then publishes to PyPI only for pushed `v*` tags.
120
+ - `.github/workflows/pages.yml` validates and optionally deploys GitHub Pages.
121
+
122
+ Update the explicit version in `pyproject.toml` before creating a matching
123
+ annotated release tag. Configure a PyPI Trusted Publisher for this repository,
124
+ `release.yml`, and the `pypi` environment. Release core and data-science first;
125
+ the installed-wheel tests execute the documented tutorials with those public packages.
126
+
127
+ The MkDocs source is platform-neutral.
128
+
129
+ ## Public documentation and validation
130
+
131
+ Start with `docs/getting-started/first-workflow.md` and `first-pipeline.md` for runnable
132
+ examples with invented input data. The example library supplies configurations for
133
+ 26 public scientific workflows. Heavyweight templates require prepared inputs and
134
+ external engines; they are not bundled experimental datasets.
135
+
136
+ ```bash
137
+ python -m pip install -r requirements.txt -r requirements-test.txt
138
+ python scripts/validate_examples.py
139
+ properdocs build --strict
140
+ python scripts/check_links.py site
141
+ python -m pytest -q
142
+ ```
143
+
144
+ Install compatible public core/data-science packages before requiring tutorial tests
145
+ with `python -m pytest tests/test_examples.py -q --require-examples`.
146
+ Public API reference generation uses an explicit AST allowlist; builds do not discover
147
+ installed scientific plugins. Wheel builds render the site in strict mode and
148
+ check local links in rendered pages.
149
+
150
+ See [contributing](CONTRIBUTING.md), [security reporting](SECURITY.md), and the
151
+ [release checklist](docs/development/release-readiness.md). The project uses MIT;
152
+ bundled third-party assets retain the licences listed in the
153
+ [third-party notices](docs/explanation/third-party-notices.md). Public-index
154
+ availability remains a release prerequisite.
155
+ Pages deployment requires `DOCS_PUBLISH_ENABLED=true` and is separate from
156
+ package publication. Branch pushes, pull requests, and manual runs never
157
+ publish packages; pushing a matching `v*` release tag publishes the tested
158
+ wheel and source archive through the configured PyPI Trusted Publisher.
@@ -0,0 +1,134 @@
1
+ # CADDForge Documentation
2
+
3
+ Central documentation site for the CADDForge toolbox.
4
+
5
+ These sources describe the reviewed public snapshots in the
6
+ [version matrix](docs/plugins/version-matrix.md). Documentation release `0.3.0`
7
+ is identified by source tag `v0.3.0`; package-index publication remains pending.
8
+ Release tags identify source revisions; package-index publication is separate.
9
+ See the [release notes](docs/development/release-notes.md) for the packaged changes.
10
+
11
+ ## View installed documentation
12
+
13
+ The planned public bundle includes `caddforge-docs` automatically; its pins
14
+ and release remain pending. For core-only or selective installations, install
15
+ the documentation package into the same environment once its new public release
16
+ is available. Until then, use the source installation under [Local preview](#local-preview):
17
+
18
+ ```bash
19
+ python -m pip install caddforge-docs
20
+ caddforge docs
21
+ ```
22
+
23
+ `caddforge docs` is available only when `caddforge-docs` is installed. The package installs
24
+ `caddforge-core>=0.21.0` automatically; core 0.21.0 includes CLI extension
25
+ discovery. The built site ships with the docs package, so viewing it requires no checkout,
26
+ documentation build tools, or network connection. Its content matches the installed docs release.
27
+
28
+ The command opens the default browser and keeps serving until you press Ctrl+C. By default it binds
29
+ to `127.0.0.1` on an automatically assigned port. Override the listening address or port as needed:
30
+
31
+ ```bash
32
+ caddforge docs --host 0.0.0.0 --port 8001
33
+ caddforge docs --host localhost --no-browser
34
+ caddforge docs --host ::1
35
+ ```
36
+
37
+ Hostnames, IPv4, and IPv6 addresses are supported. With wildcard bindings (`0.0.0.0` or `::`), the
38
+ automatic browser opens the matching loopback URL. The terminal prints the listening address and
39
+ browser URL; remote clients can use the server's reachable hostname or address and the printed port.
40
+ `--no-browser` keeps the server running without launching a browser. If automatic opening fails,
41
+ use the printed URL manually.
42
+
43
+ ## Local preview
44
+
45
+ ```bash
46
+ python -m pip install -r requirements.txt
47
+ properdocs serve
48
+ ```
49
+
50
+ Then open <http://127.0.0.1:8000>.
51
+
52
+ Alternatively, install the optional docs dependencies from `pyproject.toml`:
53
+
54
+ ```bash
55
+ python -m pip install ".[docs]"
56
+ ```
57
+
58
+ For an editable install, `python -m pip install -e ".[docs]"` also builds the packaged site.
59
+ Reinstall after editing sources to refresh `caddforge docs`, or use `properdocs serve --open` for
60
+ live authoring. The packaged site is generated under `src/caddforge_docs/site/` and ignored by Git.
61
+ For source installations, install a compatible core revision first:
62
+ `python -m pip install -e ../caddforge-core`. See the documented version matrix.
63
+
64
+ ## Build
65
+
66
+ ```bash
67
+ properdocs build --strict
68
+ ```
69
+
70
+ The generated static site is written to `site/`.
71
+
72
+ To build distributable documentation packages:
73
+
74
+ ```bash
75
+ python -m pip install build
76
+ python -m build
77
+ ```
78
+
79
+ Wheel builds run ProperDocs in strict mode and include all rendered pages and assets. The source
80
+ distribution includes the Markdown, configuration, and build hook needed to rebuild the wheel.
81
+ Build dependencies are installed in the isolated build environment and are not runtime requirements.
82
+
83
+ To run tests, install the authoring and test extras, then run `python -m pytest -q`:
84
+
85
+ ```bash
86
+ python -m pip install -e ".[docs,test]"
87
+ python -m pytest -q
88
+ ```
89
+
90
+ ## Publishing
91
+
92
+ This repository has separate package and site workflows:
93
+
94
+ - `.github/workflows/release.yml` builds and tests the installed wheel on
95
+ Python 3.10 and 3.12, then publishes to PyPI only for pushed `v*` tags.
96
+ - `.github/workflows/pages.yml` validates and optionally deploys GitHub Pages.
97
+
98
+ Update the explicit version in `pyproject.toml` before creating a matching
99
+ annotated release tag. Configure a PyPI Trusted Publisher for this repository,
100
+ `release.yml`, and the `pypi` environment. Release core and data-science first;
101
+ the installed-wheel tests execute the documented tutorials with those public packages.
102
+
103
+ The MkDocs source is platform-neutral.
104
+
105
+ ## Public documentation and validation
106
+
107
+ Start with `docs/getting-started/first-workflow.md` and `first-pipeline.md` for runnable
108
+ examples with invented input data. The example library supplies configurations for
109
+ 26 public scientific workflows. Heavyweight templates require prepared inputs and
110
+ external engines; they are not bundled experimental datasets.
111
+
112
+ ```bash
113
+ python -m pip install -r requirements.txt -r requirements-test.txt
114
+ python scripts/validate_examples.py
115
+ properdocs build --strict
116
+ python scripts/check_links.py site
117
+ python -m pytest -q
118
+ ```
119
+
120
+ Install compatible public core/data-science packages before requiring tutorial tests
121
+ with `python -m pytest tests/test_examples.py -q --require-examples`.
122
+ Public API reference generation uses an explicit AST allowlist; builds do not discover
123
+ installed scientific plugins. Wheel builds render the site in strict mode and
124
+ check local links in rendered pages.
125
+
126
+ See [contributing](CONTRIBUTING.md), [security reporting](SECURITY.md), and the
127
+ [release checklist](docs/development/release-readiness.md). The project uses MIT;
128
+ bundled third-party assets retain the licences listed in the
129
+ [third-party notices](docs/explanation/third-party-notices.md). Public-index
130
+ availability remains a release prerequisite.
131
+ Pages deployment requires `DOCS_PUBLISH_ENABLED=true` and is separate from
132
+ package publication. Branch pushes, pull requests, and manual runs never
133
+ publish packages; pushing a matching `v*` release tag publishes the tested
134
+ wheel and source archive through the configured PyPI Trusted Publisher.
@@ -0,0 +1,9 @@
1
+ # Security Reporting
2
+
3
+ A monitored confidential reporting channel and supported-version policy must be
4
+ configured before public publication. No contact address or response commitment
5
+ is currently advertised by this repository.
6
+
7
+ Use private vulnerability reporting in the public repository when enabled. If no
8
+ confidential route exists, request one without posting exploit details or sensitive
9
+ data in an ordinary issue. See [security guidance](docs/development/security.md).
@@ -0,0 +1,15 @@
1
+ This work is being provided by the copyright holders under the following license.
2
+ ## License
3
+
4
+ By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
5
+
6
+ Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
7
+ * The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
8
+ * Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
9
+ * Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
10
+ ## Disclaimers
11
+
12
+ THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
13
+
14
+ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
15
+ The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders.