| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
This repository contains documents, tooling and other content related to the API standard for arrays (or tensors).
These are relevant documents related to the content in this repository:
See CONTRIBUTING.md for how to go about contributing to this array API standard.
To install the local stubs and additional dependencies of the Sphinx docs, you can use pip install -r doc-requirements.txt. Then just running make at the root of the repository should build the whole spec website.
$ pip install -r doc-requirements.txt
$ make
$ ls _site/
2021.12/ draft/ index.html latest/ versions.jsonThe spec website is comprised of multiple Sphinx docs (one for each spec version), all of which exist in spec/ and rely on the modules found in src/ (most notably array_api_stubs). For purposes of building the docs, these src/ modules do not need to be installed as they are added to the sys.path at runtime.
To build specific versions of the spec, run sphinx-build on the respective folder in spec/, e.g.
$ sphinx-build spec/2012.12/ _site/2012.12/Additionally, make draft aliases
$ sphinx-build spec/draft/ _site/draft/To build the whole website, which includes every version of the spec, you can utilize make spec.
The Sphinx doc at spec/draft/ should be where the in-development spec resides, with src/array_api_stubs/_draft/ containing its respective stubs. A spec release should involve:
Renaming src/array_api_stubs/_draft/ to src/array_api_stubs/_YYYY_MM
Renaming spec/draft/ to spec/YYYY.MM
Updating spec/YYYY.MM/conf.py
...
- from array_api_stubs import _draft as stubs_mod
+ from array_api_stubs import _YYYY_MM as stubs_mod
...
- release = "DRAFT"
+ release = "YYYY.MM"
...Updating spec/_ghpages/versions.json
{
+ "YYYY.MM": "YYYY.MM",
...Updating Makefile
...
-sphinx-build "$(SOURCEDIR)/PREVIOUS.VER" "$(BUILDDIR)/PREVIOUS.VER" $(SPHINXOPTS)
+ -sphinx-build "$(SOURCEDIR)/YYYY.MM" "$(BUILDDIR)/YYYY.MM" $(SPHINXOPTS)
- -cp -r "$(BUILDDIR)/PREVIOUS.VER" "$(BUILDDIR)/latest"
+ -cp -r "$(BUILDDIR)/YYYY.MM" "$(BUILDDIR)/latest"
...These changes should be committed and tagged. The next draft should then be created. To preserve git history for both the new release and the next draft:
$ git checkout -b tmp$ git commit --allow-empty -m "Empty commit for draft at YYYY.MM "$ git checkout YYYY.MM-release$ git merge --no-commit --no-ff tmp
Automatic merge went well; stopped before committing as requested$ git checkout tmp -- spec/draft/$ git commit -m "Copy YYYY.MM as draft with preserved git history"You can run git blame on both spec/YYYY.MM and spec/draft files to verify we've preserved history. See this StackOverflow question for more background on the approach we use.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
| Back | FazBrowse Home | New Git URL |