diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 3a06604fc..33de29691 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -4,48 +4,138 @@ on:
push:
branches:
- main
+ tags:
+ - "v*"
+ paths:
+ - "py-rattler/docs/**"
+ - "py-rattler/mkdocs.yml"
+ - "py-rattler/pixi.toml"
+ - "crates/**"
+ - "Cargo.toml"
+ - ".github/workflows/docs.yaml"
+ pull_request:
+ branches:
+ - main
+ paths:
+ - "py-rattler/docs/**"
+ - "py-rattler/mkdocs.yml"
+ - "py-rattler/pixi.toml"
+ - ".github/workflows/docs.yaml"
+ workflow_dispatch:
+ inputs:
+ tag:
+ description: "Tag to deploy (e.g. v0.23.0), or leave empty for dev"
+ required: false
+ default: ""
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: --html-in-header header.html
-# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
- pages: write
- id-token: write
-# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
- build-and-deploy:
- if: github.repository == 'conda/rattler'
+ build-docs:
+ if: github.repository == 'conda/rattler' && github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- lfs: false
+
+ - uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
+ with:
+ manifest-path: py-rattler/pixi.toml
+ environments: docs
+
+ - name: Build Py-rattler Documentation
+ run: pixi run --manifest-path py-rattler/pixi.toml build-docs
+
+ docs-release:
+ if: github.repository == 'conda/rattler' && (startsWith(github.ref, 'refs/tags/v') || (github.event_name == 'workflow_dispatch' && github.event.inputs.tag != '' && startsWith(github.event.inputs.tag, 'v')))
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ with:
+ fetch-depth: 0
+ submodules: recursive
+
+ - name: Checkout tag
+ if: github.event_name == 'workflow_dispatch'
+ run: git checkout tags/${{ github.event.inputs.tag }}
- uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1.0.7
with:
profile: minimal
+ - name: Pre-docs-build
+ run: |
+ echo "" > header.html
+
+ - name: Build Rattler Documentation
+ run: cargo doc --workspace --no-deps --all-features --lib
+
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
with:
manifest-path: py-rattler/pixi.toml
+ environments: docs
- - name: Setup Pages
- uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
+ - name: Configure Git user
+ run: |
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
+ git config --local user.name "github-actions[bot]"
+
+ - name: Extract tag name
+ if: github.event_name != 'workflow_dispatch'
+ run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
+
+ - name: Set version from workflow_dispatch
+ if: github.event_name == 'workflow_dispatch'
+ run: echo "RELEASE_VERSION=${{ github.event.inputs.tag }}" >> $GITHUB_ENV
+
+ - name: Deploy with mike
+ run: pixi run --manifest-path py-rattler/pixi.toml deploy-latest
+
+ - name: Merge rustdoc into gh-pages
+ run: |
+ git clone --branch gh-pages https://x-access-token:${{ github.token }}@github.com/${{ github.repository }}.git gh-pages-repo
+ cp -r target/doc gh-pages-repo/rattler
+ echo '' > gh-pages-repo/index.html
+ echo "User-Agent: *" > gh-pages-repo/robots.txt
+ echo "Disallow: /" >> gh-pages-repo/robots.txt
+ touch gh-pages-repo/.nojekyll
+ cd gh-pages-repo
+ git config user.email "github-actions[bot]@users.noreply.github.com"
+ git config user.name "github-actions[bot]"
+ git add .
+ git diff --staged --quiet || (git commit -m "docs: add rustdoc and root redirect" && git push)
+
+ docs-dev:
+ if: github.repository == 'conda/rattler' && (github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && (github.event.inputs.tag == '' || !startsWith(github.event.inputs.tag, 'v'))))
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ with:
+ fetch-depth: 0
+ submodules: recursive
+
+ - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # v1.0.7
+ with:
+ profile: minimal
- # This does the following:
- # - Replaces the docs icon with one that clearly denotes it's not the released package on crates.io
- # - Adds a meta tag that forces Google not to index any page on the site.
- name: Pre-docs-build
run: |
echo "" > header.html
@@ -53,33 +143,29 @@ jobs:
- name: Build Rattler Documentation
run: cargo doc --workspace --no-deps --all-features --lib
- - name: Build Py-rattler Documentation
- run: pixi run --manifest-path py-rattler/pixi.toml build-docs
+ - uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
+ with:
+ manifest-path: py-rattler/pixi.toml
+ environments: docs
- # This adds the following:
- # - A top level redirect to the rattler crate documentation
- # - A path to the py-rattler documentation
- # - A secondary redirect to the rattler crate documentation
- # - A robots.txt file to forbid any crawling of the site (to defer to the docs.rs site on search engines).
- # - A .nojekyll file to disable Jekyll GitHub Pages builds.
- - name: Finalize documentation
+ - name: Configure Git user
run: |
- mkdir docs
- cp target/doc/ docs/rattler -r
- cp py-rattler/site/ docs/py-rattler -r
- echo "" > docs/index.html
- echo "" > docs/rattler/index.html
- echo "User-Agent: *\nDisallow: /" > docs/robots.txt
- touch docs/.nojekyll
-
- # https://github.com/actions/upload-pages-artifact#file-permissions
- - run: chmod -c -R +rX docs/
-
- - name: Upload artifact
- uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
- with:
- path: "docs"
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
+ git config --local user.name "github-actions[bot]"
+
+ - name: Deploy with mike
+ run: pixi run --manifest-path py-rattler/pixi.toml deploy-dev
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
+ - name: Merge rustdoc into gh-pages
+ run: |
+ git clone --branch gh-pages https://x-access-token:${{ github.token }}@github.com/${{ github.repository }}.git gh-pages-repo
+ cp -r target/doc gh-pages-repo/rattler
+ echo '' > gh-pages-repo/index.html
+ echo "User-Agent: *" > gh-pages-repo/robots.txt
+ echo "Disallow: /" >> gh-pages-repo/robots.txt
+ touch gh-pages-repo/.nojekyll
+ cd gh-pages-repo
+ git config user.email "github-actions[bot]@users.noreply.github.com"
+ git config user.name "github-actions[bot]"
+ git add .
+ git diff --staged --quiet || (git commit -m "docs: add rustdoc and root redirect" && git push)
diff --git a/py-rattler/mkdocs.yml b/py-rattler/mkdocs.yml
index 268083939..9c3a524f5 100644
--- a/py-rattler/mkdocs.yml
+++ b/py-rattler/mkdocs.yml
@@ -162,6 +162,8 @@ nav:
- TransactionError: transaction_error.md
extra:
+ version:
+ provider: mike
social:
- icon: fontawesome/brands/github
link: https://github.com/prefix-dev
@@ -175,6 +177,8 @@ extra:
link: https://twitter.com/prefix_dev
plugins:
+ - mike:
+ deploy_prefix: py-rattler
- mkdocstrings:
handlers:
python:
diff --git a/py-rattler/pixi.lock b/py-rattler/pixi.lock
index ec57da462..efa41f3af 100644
--- a/py-rattler/pixi.lock
+++ b/py-rattler/pixi.lock
@@ -184,6 +184,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1aa0949_3.conda
@@ -219,6 +221,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mdx_truly_sane_lists-1.3-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mike-2.1.3-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
@@ -238,9 +241,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyaml-26.2.1-pyhcf101f3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.16.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.0-h32b2ec7_102_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
@@ -261,6 +266,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/verspec-0.1.0-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py314hdafbbf9_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda
@@ -309,6 +315,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda
@@ -339,6 +347,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mdx_truly_sane_lists-1.3-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mike-2.1.3-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
@@ -358,9 +367,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-h00291cd_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyaml-26.2.1-pyhcf101f3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.16.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.2-hf88997e_100_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
@@ -381,6 +392,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/verspec-0.1.0-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/osx-64/watchdog-6.0.0-py314h6482030_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda
@@ -424,6 +436,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda
@@ -454,6 +468,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mdx_truly_sane_lists-1.3-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mike-2.1.3-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
@@ -473,9 +488,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyaml-26.2.1-pyhcf101f3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.16.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.2-h40d2674_100_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
@@ -496,6 +513,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/verspec-0.1.0-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/osx-arm64/watchdog-6.0.0-py314h0612a62_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda
@@ -540,6 +558,8 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.5.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda
@@ -572,6 +592,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mdx_truly_sane_lists-1.3-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mergedeep-1.3.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mike-2.1.3-pyh29332c3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-autorefs-1.4.3-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-get-deps-0.2.0-pyhd8ed1ab_1.conda
@@ -590,9 +611,11 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyaml-26.2.1-pyhcf101f3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pymdown-extensions-10.16.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.14.0-h4b44e0e_102_cp314.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
@@ -616,6 +639,7 @@ environments:
- conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h2b53caa_32.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_32.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_32.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/verspec-0.1.0-pyh29332c3_2.conda
- conda: https://conda.anaconda.org/conda-forge/win-64/watchdog-6.0.0-py314h86ab7b2_1.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda
- conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda
@@ -2155,6 +2179,28 @@ packages:
license_family: APACHE
size: 34641
timestamp: 1747934053147
+- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.5.2-pyhd8ed1ab_0.conda
+ sha256: a99a3dafdfff2bb648d2b10637c704400295cb2ba6dc929e2d814870cf9f6ae5
+ md5: e376ea42e9ae40f3278b0f79c9bf9826
+ depends:
+ - importlib_resources >=6.5.2,<6.5.3.0a0
+ - python >=3.9
+ license: Apache-2.0
+ license_family: APACHE
+ size: 9724
+ timestamp: 1736252443859
+- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
+ sha256: acc1d991837c0afb67c75b77fdc72b4bf022aac71fedd8b9ea45918ac9b08a80
+ md5: c85c76dc67d75619a92f51dfbce06992
+ depends:
+ - python >=3.9
+ - zipp >=3.1.0
+ constrains:
+ - importlib-resources >=6.5.2,<6.5.3.0a0
+ license: Apache-2.0
+ license_family: APACHE
+ size: 33781
+ timestamp: 1736252433366
- conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
md5: 6837f3eff7dcea42ecd714ce1ac2b108
@@ -3501,6 +3547,24 @@ packages:
license_family: MIT
size: 11676
timestamp: 1734157119152
+- conda: https://conda.anaconda.org/conda-forge/noarch/mike-2.1.3-pyh29332c3_0.conda
+ sha256: 0f9ce5712d30f447524fb5a8d8a33337f6544a6cacad295935ea1f51a8d59e4e
+ md5: 13c7fd10f5bb25cf02cd7798ea02ee37
+ depends:
+ - python >=3.9
+ - jinja2 >=2.7
+ - mkdocs >=1.0
+ - pyparsing >=3.0
+ - pyaml >=5.1
+ - verspec
+ - pyyaml-env-tag
+ - importlib-resources
+ - importlib-metadata
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 32866
+ timestamp: 1736381474362
- conda: https://conda.anaconda.org/conda-forge/noarch/mkdocs-1.6.1-pyhd8ed1ab_1.conda
sha256: 902d2e251f9a7ffa7d86a3e62be5b2395e28614bd4dbe5f50acf921fd64a8c35
md5: 14661160be39d78f2b210f2cc2766059
@@ -4268,6 +4332,16 @@ packages:
license_family: MIT
size: 16668
timestamp: 1733569518868
+- conda: https://conda.anaconda.org/conda-forge/noarch/pyaml-26.2.1-pyhcf101f3_1.conda
+ sha256: df776946b5ba6b274abee8882451ba28e4c20dadab377373a93206751cf605b2
+ md5: c884653e29de632aa9b5d731e4fad01c
+ depends:
+ - python >=3.10
+ - pyyaml
+ - python
+ license: WTFPL
+ size: 31646
+ timestamp: 1770906370091
- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6
md5: 12c566707c80111f9799308d9e265aef
@@ -4302,6 +4376,16 @@ packages:
license_family: MIT
size: 170121
timestamp: 1753743741894
+- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda
+ sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de
+ md5: 3687cc0b82a8b4c17e1f0eb7e47163d5
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ license_family: MIT
+ size: 110893
+ timestamp: 1769003998136
- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda
sha256: d016e04b0e12063fbee4a2d5fbb9b39a8d191b5a0042f0b8459188aedeabb0ca
md5: e2fd202833c4a981ce8a65974fe4abd1
@@ -5305,6 +5389,16 @@ packages:
purls: []
size: 114846
timestamp: 1760418593847
+- conda: https://conda.anaconda.org/conda-forge/noarch/verspec-0.1.0-pyh29332c3_2.conda
+ sha256: 723351de1d7cee8bd22f8ea64b169f36f5c625c315c59c0267fab4bad837d503
+ md5: 9c71dfe38494dd49c2547a3842b86fa7
+ depends:
+ - python >=3.9
+ - python
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 23765
+ timestamp: 1735596628662
- conda: https://conda.anaconda.org/conda-forge/linux-64/watchdog-6.0.0-py314hdafbbf9_1.conda
sha256: 0fee43f08e1f7d407588e8bffb0916c63d1ab907b1a18003666ed3467674f1dc
md5: 099125fcb130e9fe134c6b610f33b0e1
diff --git a/py-rattler/pixi.toml b/py-rattler/pixi.toml
index 174e421e9..1425b1e3c 100644
--- a/py-rattler/pixi.toml
+++ b/py-rattler/pixi.toml
@@ -72,6 +72,7 @@ cairosvg = ">=2.8.2,<3"
pillow = ">=12.0.0,<13"
ruff = ">=0.14.9,<0.15"
mkdocs-llmstxt = ">=0.4.0,<0.5"
+mike = ">=2.1.3,<3"
python = { build-number = ">10" }
@@ -81,6 +82,9 @@ docs = { cmd = "mkdocs serve", description = "Serve the docs locally", depends-o
] }
build-docs = { cmd = "mkdocs build --strict", depends-on = ["download-font"] }
download-font = { cmd = "bash docs/layouts/download-font-to-cache.sh" }
+deploy-latest = { cmd = "mike deploy --push --update-aliases $RELEASE_VERSION latest", depends-on = ["download-font"] }
+deploy-dev = { cmd = "mike deploy --push dev devel", depends-on = ["download-font"] }
+
[feature.repl.dependencies]
ipython = ">=8.29.0,<9"
[feature.repl.tasks]