Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: github-actions
directory: /
commit-message:
prefix: ⬆️
schedule:
interval: weekly
- package-ecosystem: pip
directory: /
commit-message:
prefix: ⬆️
schedule:
interval: weekly
- package-ecosystem: cargo
directory: /
commit-message:
prefix: ⬆️
schedule:
interval: weekly
221 changes: 221 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
# This file is autogenerated by maturin v1.0.1
# To update, run
#
# maturin generate-ci github --pytest
#
name: CI

on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:

pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.9"
- uses: pre-commit/action@v3.0.0

test-python:

runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- '3.9'
- '3.10'
- '3.11'
- '3.12'
- 'pypy3.9'
steps:
- uses: actions/checkout@v3
- name: install rust stable
uses: dtolnay/rust-toolchain@stable
- name: cache rust
uses: Swatinem/rust-cache@v2
with:
key: test-v1
- name: set up python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- run: pip install -e .[testing]
env:
RUST_BACKTRACE: 1
- run: pip freeze
# - run: pytest

linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target:
- x86_64
- x86
- aarch64
- armv7
- s390x # TODO build fails: "error: failed to run custom build command for `psm v0.1.21`""
- ppc64le
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
# - name: pytest
# if: ${{ startsWith(matrix.target, 'x86_64') }}
# shell: bash
# run: |
# set -e
# pip install --upgrade pip
# pip install sphinx_rust --find-links dist --force-reinstall
# pip install pytest pytest-param-files
# pytest
# - name: pytest
# if: ${{ !startsWith(matrix.target, 'x86') && matrix.target != 'ppc64' }}
# uses: uraimo/run-on-arch-action@v2.5.0
# with:
# arch: ${{ matrix.target }}
# distro: ubuntu22.04
# githubToken: ${{ github.token }}
# install: |
# apt-get update
# apt-get install -y --no-install-recommends python3-dev python3-pip build-essential
# pip3 install -U pip pytest pytest-param-files
# run: |
# set -e
# pip3 install sphinx_rust --find-links dist --force-reinstall
# pytest

windows:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
target: [x64, x86]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
# - name: pytest
# if: ${{ !startsWith(matrix.target, 'aarch64') }}
# shell: bash
# run: |
# set -e
# pip install --upgrade pip
# pip install sphinx_rust --find-links dist --force-reinstall
# pip install pytest pytest-param-files
# pytest

macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
target: [x86_64, aarch64]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
# - name: pytest
# if: ${{ !startsWith(matrix.target, 'aarch64') }}
# shell: bash
# run: |
# set -e
# pip install --upgrade pip
# pip install sphinx_rust --find-links dist --force-reinstall
# pip install pytest pytest-param-files
# pytest

sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist

# https://github.com/marketplace/actions/alls-green#why used for branch protection checks
check:
if: always()
needs: [pre-commit, test-python, linux, windows, macos, sdist]
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
allowed-failures: coverage

release:
runs-on: ubuntu-latest
if: "startsWith(github.ref, 'refs/tags/')"
needs: [pre-commit, test-python, linux, windows, macos, sdist]
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --skip-existing *
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks

ci:
skip: [cargo-check, cargo-clippy] # failing on pre-commit.ci (wrong rust version?)

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
Expand Down
8 changes: 5 additions & 3 deletions python/sphinx_rust/directives/_core.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from docutils import nodes, utils
Expand Down Expand Up @@ -28,7 +30,7 @@ def doc(self) -> nodes.document:
return self.state.document # type: ignore[no-any-return]

@property
def rust_domain(self) -> "RustDomain":
def rust_domain(self) -> RustDomain:
# avoid circular import
from sphinx_rust.domain import RustDomain # noqa: PLC0415

Expand Down Expand Up @@ -81,7 +83,7 @@ def create_summary_table(


def parse_docstring(
env: "BuildEnvironment",
env: BuildEnvironment,
doc: nodes.document,
docstring: str,
/,
Expand All @@ -105,7 +107,7 @@ def parse_docstring(


def create_xref(
docname: str, ident: str, objtype: "ObjType", *, warn_dangling: bool = False
docname: str, ident: str, objtype: ObjType, *, warn_dangling: bool = False
) -> addnodes.pending_xref:
"""Create a cross-reference node."""
options = {
Expand Down
2 changes: 2 additions & 0 deletions python/sphinx_rust/directives/crate.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from docutils import nodes
Expand Down
2 changes: 2 additions & 0 deletions python/sphinx_rust/directives/enum.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from docutils import nodes
Expand Down
2 changes: 2 additions & 0 deletions python/sphinx_rust/directives/module.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from docutils import nodes
Expand Down
2 changes: 2 additions & 0 deletions python/sphinx_rust/directives/struct.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from __future__ import annotations

from typing import TYPE_CHECKING

from docutils import nodes
Expand Down
2 changes: 2 additions & 0 deletions python/sphinx_rust/roles.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from __future__ import annotations

from sphinx.roles import XRefRole


Expand Down