Testing alternative versioning
This commit is contained in:
parent
a1cc39e165
commit
d3e62de99e
5 changed files with 37 additions and 58 deletions
|
|
@ -125,7 +125,6 @@ quickstrict:
|
||||||
# we build index directly for the current branch
|
# we build index directly for the current branch
|
||||||
local:
|
local:
|
||||||
make _check-env
|
make _check-env
|
||||||
make clean
|
|
||||||
make _autodoc-index
|
make _autodoc-index
|
||||||
make _html-build
|
make _html-build
|
||||||
@echo ""
|
@echo ""
|
||||||
|
|
@ -147,7 +146,6 @@ mv-index:
|
||||||
|
|
||||||
mv-local:
|
mv-local:
|
||||||
make _multiversion-check-env
|
make _multiversion-check-env
|
||||||
make clean
|
|
||||||
make _multiversion-build
|
make _multiversion-build
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "Documentation built (multiversion + autodocs)."
|
@echo "Documentation built (multiversion + autodocs)."
|
||||||
|
|
@ -160,7 +158,6 @@ deploy:
|
||||||
@echo "Documentation deployed."
|
@echo "Documentation deployed."
|
||||||
|
|
||||||
# build and prepare the docs for release
|
# build and prepare the docs for release
|
||||||
#
|
|
||||||
release:
|
release:
|
||||||
make mv-local
|
make mv-local
|
||||||
make deploy
|
make deploy
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ This is assumed to be executed from inside the docs/ folder.
|
||||||
|
|
||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
# branches that should not be rebuilt anymore (all others are considered active)
|
# branches that should not be rebuilt anymore (all others are considered active)
|
||||||
|
|
@ -18,7 +19,7 @@ latest_branch = "0.9.5"
|
||||||
|
|
||||||
def deploy():
|
def deploy():
|
||||||
|
|
||||||
if os.popen("git status --untracked=no --porcelain"):
|
if subprocess.call(["git", "status", "--untracked=no", "--porcelain"]):
|
||||||
print(
|
print(
|
||||||
"There are uncommitted or untracked changes. Make sure "
|
"There are uncommitted or untracked changes. Make sure "
|
||||||
"to commit everything in your current branch first."
|
"to commit everything in your current branch first."
|
||||||
|
|
@ -26,35 +27,36 @@ def deploy():
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# get the deployment branch
|
# get the deployment branch
|
||||||
os.popen("git fetch")
|
os.system("git fetch")
|
||||||
os.popen("git checkout gh-pages")
|
os.system("git checkout gh-pages")
|
||||||
|
|
||||||
for file_path in glob.glob("*"):
|
for file_path in glob.glob("*"):
|
||||||
# run from inside the docs/ dir
|
# run from inside the docs/ dir
|
||||||
# delete old but active doc branches
|
# delete old but active doc branches
|
||||||
|
|
||||||
_, filename = file_path.rsplit("/", 1).strip()
|
_, *filename = file_path.rsplit("/", 1)
|
||||||
|
|
||||||
if filename in legacy_branches:
|
if filename and filename[0] in legacy_branches:
|
||||||
# skip deleting the legacy brancehs
|
# skip deleting the legacy brancehs
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
# we want to delete both active branches and old symlinks
|
# we want to delete both active branches and old symlinks
|
||||||
os.popen(f"rm -Rf {file_path}")
|
print("remove file_path:", file_path)
|
||||||
|
os.system(f"rm -Rf {file_path}")
|
||||||
|
|
||||||
# copy built branches to current dir
|
# copy built branches to current dir
|
||||||
os.popen("cp -Rf build/html/* .")
|
os.system("cp -Rf build/html/* .")
|
||||||
# symlink to latest and link its index to the root
|
# symlink to latest and link its index to the root
|
||||||
os.popen(f"ln -s {latest_branch} latest")
|
os.system(f"ln -s {latest_branch} latest")
|
||||||
os.popen(f"ln -s {latest_branch}/index.html .")
|
os.system(f"ln -s {latest_branch}/index.html .")
|
||||||
|
|
||||||
# docs/build is in .gitignore so will be skipped
|
# docs/build is in .gitignore so will be skipped
|
||||||
os.popen("git add .")
|
os.system("git add .")
|
||||||
os.popen('git commit -a -m "Updated HTML docs."')
|
os.system('git commit -a -m "Updated HTML docs."')
|
||||||
os.popen("git push origin gh-pages")
|
os.system("git push origin gh-pages")
|
||||||
|
|
||||||
# get back to previous branch
|
# get back to previous branch
|
||||||
os.popen("git checkout .")
|
os.system("git checkout .")
|
||||||
|
|
||||||
print("Deployed to https:// evennia.github.io/evennia/")
|
print("Deployed to https:// evennia.github.io/evennia/")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
#
|
|
||||||
# deploy to github
|
|
||||||
#
|
|
||||||
# This copies the recently built files from build/html into the github-gh branch. Note that
|
|
||||||
# it's important that build/ must not be committed to git!
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ -n "$(git status --untracked-files=no --porcelain)" ]; then
|
|
||||||
echo "There are uncommitted changes. Make sure to commit everything in your current branch first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# get the deployment branch
|
|
||||||
git fetch
|
|
||||||
git checkout gh-pages
|
|
||||||
# at this point we should be inside the docs/ folder of the gh-pages branch,
|
|
||||||
# with the build/ directory available since this is not in git
|
|
||||||
|
|
||||||
# remove all but the build dir
|
|
||||||
# TODO don't delete old branches after 1.0 release; they will get harder and harder to rebuild
|
|
||||||
ls -Q | grep -v build | xargs rm -Rf
|
|
||||||
|
|
||||||
cp -Rf build/html/* .
|
|
||||||
# TODO automate this?
|
|
||||||
ln -s 0.9.5 latest
|
|
||||||
ln -s 0.9.5/index.html .
|
|
||||||
|
|
||||||
# docs/build is in .gitignore so will not be included
|
|
||||||
git add .
|
|
||||||
|
|
||||||
git commit -a -m "Updated HTML docs"
|
|
||||||
|
|
||||||
git push origin gh-pages
|
|
||||||
|
|
||||||
# get back to previous branch
|
|
||||||
git checkout -
|
|
||||||
|
|
||||||
echo "Deployed to https://evennia.github.io/evennia/"
|
|
||||||
|
|
@ -4,5 +4,11 @@
|
||||||
{%- for item in versions %}
|
{%- for item in versions %}
|
||||||
<li><a href="{{ item.url }}">{{ item.release }} ({{ item.name }} branch)</a></li>
|
<li><a href="{{ item.url }}">{{ item.release }} ({{ item.name }} branch)</a></li>
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
</ul>
|
||||||
|
{% if legacy_versions %} <ul>
|
||||||
|
{%- for item in legacy_versions %}
|
||||||
|
<li><a href="{{ item.url }}">{{ item.release }} ({{ item.name }} branch)</a></li>
|
||||||
|
{%- endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
from collections import namedtuple
|
||||||
|
|
||||||
# from recommonmark.transform import AutoStructify
|
# from recommonmark.transform import AutoStructify
|
||||||
from sphinx.util.osutil import cd
|
from sphinx.util.osutil import cd
|
||||||
|
|
@ -51,13 +52,23 @@ html_static_path = ["_static"]
|
||||||
# -- Sphinx-multiversion config ----------------------------------------------
|
# -- Sphinx-multiversion config ----------------------------------------------
|
||||||
|
|
||||||
# which branches to include in multi-versioned docs
|
# which branches to include in multi-versioned docs
|
||||||
# - master, develop and vX.X branches
|
# smv_branch_whitelist = r"^develop$|^v[0-9\.]+?$"
|
||||||
smv_branch_whitelist = r"^develop$|^v[0-9\.]+?$"
|
# smv_branch_whitelist = r"^develop$|^master$|^v1.0$"
|
||||||
|
smv_branch_whitelist = r"^develop$"
|
||||||
smv_outputdir_format = "{config.release}"
|
smv_outputdir_format = "{config.release}"
|
||||||
# don't make docs for tags
|
# don't make docs for tags
|
||||||
smv_tag_whitelist = r"^$"
|
smv_tag_whitelist = r"^$"
|
||||||
# legacy branches are linked to in template, but not built (custom for Evennia)
|
|
||||||
smv_legacy_branches = ["0.9.5"]
|
# used to fill in versioning.html links for versions that are not actually built
|
||||||
|
legacy_versions = ["0.9.5"]
|
||||||
|
|
||||||
|
|
||||||
|
def add_legacy_versions_to_html_page_context(app, pagename, templatename, context, doctree):
|
||||||
|
LVersion = namedtuple("legacy_version", ["release", "name", "url"])
|
||||||
|
context["legacy_versions"] = [
|
||||||
|
LVersion(release=f"{vers}", name=f"v{vers}", url=f"../{vers}/index.html")
|
||||||
|
for vers in legacy_versions
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
# -- Options for HTML output -------------------------------------------------
|
# -- Options for HTML output -------------------------------------------------
|
||||||
|
|
@ -347,6 +358,7 @@ def setup(app):
|
||||||
app.connect("autodoc-skip-member", autodoc_skip_member)
|
app.connect("autodoc-skip-member", autodoc_skip_member)
|
||||||
app.connect("autodoc-process-docstring", autodoc_post_process_docstring)
|
app.connect("autodoc-process-docstring", autodoc_post_process_docstring)
|
||||||
app.connect("source-read", url_resolver)
|
app.connect("source-read", url_resolver)
|
||||||
|
app.connect("html-page-context", add_legacy_versions_to_html_page_context)
|
||||||
|
|
||||||
# build toctree file
|
# build toctree file
|
||||||
sys.path.insert(1, os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
|
sys.path.insert(1, os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue