diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..164e4bc --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,70 @@ +version: 2.1 + +orbs: + orb: invocations/orb@1.3.0 + + +jobs: + + compat: + parameters: + python: + type: string + sphinx: + type: string + executor: + name: orb/default + version: "<< parameters.python >>" + steps: + - orb/setup + # Nuke ourselves and sphinx, for some cleanliness. (Ideal: a way to + # install dev deps + some other tweak, in the same step; can pip do + # that?) + - run: "pip uninstall -y alabaster sphinx" + # Get Sphinx under test, and then reinstall ourselves + - run: "pip install -U sphinx==<< parameters.sphinx >>" + - run: "pip install ." + - run: "pip list --format=columns" + # Make sure we can run (building our own docs, as we dogfood) w/o + # exploding. + # TODO: some suite of canaries to check for in the rendered html? How are + # other themes/plugins testing themselves? + - run: "inv docs" + - orb/debug + + +workflows: + main: + jobs: + # These will all happen under Python 3.6 by default + - orb/lint: + name: Lint + - orb/format: + name: Style check + - orb/test-release: + name: Release test + - orb/docs: + name: Docs + # We have no tests to matrix, and this is too niche for the orb, so just + # do a bunch of install/run tests on different Python and Sphinx versions + # for compat testing. + - compat: + name: "Docs (Py<< matrix.python >>/Sphinx << matrix.sphinx >>)" + # May as well not burn a lot of credits if something is seriously + # busted. + requires: ["Docs"] + matrix: + parameters: + python: ["3.7", "3.8", "3.9", "3.10", "3.11"] + # TODO: still need to find a way to solve escaping hell on circle + # re: parameters containing >< symbols + sphinx: + - "1.6.7" + - "1.7.9" + - "1.8.6" + - "2.4.5" + - "3.5.4" + - "4.5.0" + - "5.3.0" + - "6.1.3" + exclude: [] diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 529cf10..0000000 --- a/.travis.yml +++ /dev/null @@ -1,35 +0,0 @@ -language: python -cache: pip -python: - - "2.7" - - "3.4" - - "3.5" - - "3.6" - - "pypy" - - "pypy3" -env: - - SPHINX=">=1.3,<1.4" - - SPHINX=">=1.4,<1.5" - - SPHINX=">=1.5,<1.6" - - SPHINX=">=1.6,<1.7" - - SPHINX=">=1.7,<1.8" -install: - # For some reason Travis' build envs have wildly different pip/setuptools - # versions between minor Python versions, and this can cause many hilarious - # corner packaging cases. So... - - pip install -U pip - # Setuptools 34+ seems to get less stable - - pip install 'setuptools>33,<34' - # Install dev requirements - - pip install -r dev-requirements.txt - # Limit Sphinx version re: test matrix - - pip install "sphinx$SPHINX" - # Sanity/debug-friendliness: list what got installed - - pip list --format=columns - # Dev tooling sanity test: can invoke list tasks? - - inv --list -script: - - inv travis.blacken - - flake8 - # Does our own dogfooding website build ok? :D - - inv docs diff --git a/docs/changelog.rst b/docs/changelog.rst index 8d987b0..5dcd4c3 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -2,6 +2,8 @@ Changelog ========= +- :support:`- backported` Modernized the project: s/Travis/Circle/ for CI, + README badges, ``setup.cfg`` removal, metadata refresh, etc. - :support:`- backported` Dropped support for Python 2 and Python <3.6. This includes various minor updates to work correctly with modern versions of Sphinx (1.6 at the very least). Thanks to Adam Turner for a pile of patches