diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 5ebef2c79..5ad2e89f0 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -14,6 +14,7 @@ jobs: test: name: test runs-on: ${{ matrix.os }} + continue-on-error: ${{ startsWith(matrix.python-version, '3.10')}} strategy: # Allow other matrix jobs to complete if 1 fails fail-fast: false @@ -23,6 +24,7 @@ jobs: - "3.7" - "3.8" - "3.9" + - "3.10.0-beta.3" os: - ubuntu-latest - windows-latest @@ -36,6 +38,18 @@ jobs: with: python-version: ${{ matrix.python-version }} + - uses: actions-rs/toolchain@v1 + # No wheels exist for orjson on Python 3.10 on MacOS or Windows, and the Linux + # wheels are sometimes not uploaded until after the package is initially + # published. This sets up the Rust nightly toolchain so we can build the orjson + # wheel. + if: ${{ startsWith(matrix.python-version, '3.10')}} + with: + toolchain: nightly + override: true + default: true + profile: minimal + - name: Cache dependencies (Linux) if: startsWith(runner.os, 'Linux') uses: actions/cache@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ec928651..9eacd7701 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ ### Added +- (Experimental) support for Python 3.10 ([#473](https://github.com/stac-utils/pystac/pull/473)) + ### Changed ### Fixed diff --git a/README.md b/README.md index 889e1fef3..7abf78edc 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,9 @@ PySTAC is a library for working with [SpatialTemporal Asset Catalog](https://sta ## Installation +PySTAC requires Python>=3.6. Support for Python>=3.10 should be considered experimental +until further notice. + PySTAC has a single required dependency (`python-dateutil`). PySTAC can be installed from pip or the source repository. @@ -34,6 +37,10 @@ optional `orjson` requirements: > pip install pystac[orjson] ``` +> *`orjson` wheels are only available for Linux in Python 3.10. If you are using the +> `orjson` extra with Python 3.10 you will need to have the Rust nightly toolchain +> installed as your default toolchain in order to build the package wheel.* + From source repository: ```bash