conda-express 0.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- conda_express-0.1.3/.github/workflows/ci.yml +81 -0
- conda_express-0.1.3/.github/workflows/docs.yml +56 -0
- conda_express-0.1.3/.github/workflows/release.yml +179 -0
- conda_express-0.1.3/.gitignore +3 -0
- conda_express-0.1.3/Cargo.lock +5124 -0
- conda_express-0.1.3/Cargo.toml +75 -0
- conda_express-0.1.3/DESIGN.md +258 -0
- conda_express-0.1.3/LICENSE +28 -0
- conda_express-0.1.3/PKG-INFO +208 -0
- conda_express-0.1.3/PLAN.md +482 -0
- conda_express-0.1.3/README.md +183 -0
- conda_express-0.1.3/build.rs +294 -0
- conda_express-0.1.3/cx.lock +1052 -0
- conda_express-0.1.3/cx.lock.hash +1 -0
- conda_express-0.1.3/docs/_static/css/custom.css +1 -0
- conda_express-0.1.3/docs/changelog.md +29 -0
- conda_express-0.1.3/docs/conf.py +58 -0
- conda_express-0.1.3/docs/configuration.md +99 -0
- conda_express-0.1.3/docs/design.md +4 -0
- conda_express-0.1.3/docs/features.md +119 -0
- conda_express-0.1.3/docs/index.md +131 -0
- conda_express-0.1.3/docs/quickstart.md +112 -0
- conda_express-0.1.3/docs/reference/cli.md +160 -0
- conda_express-0.1.3/docs/robots.txt +4 -0
- conda_express-0.1.3/pixi.lock +2423 -0
- conda_express-0.1.3/pixi.toml +46 -0
- conda_express-0.1.3/pyproject.toml +42 -0
- conda_express-0.1.3/python/conda_express/__init__.py +5 -0
- conda_express-0.1.3/python/conda_express/__main__.py +21 -0
- conda_express-0.1.3/python/conda_express/_find_cx.py +83 -0
- conda_express-0.1.3/python/conda_express/py.typed +0 -0
- conda_express-0.1.3/src/cli.rs +74 -0
- conda_express-0.1.3/src/config.rs +129 -0
- conda_express-0.1.3/src/exec.rs +44 -0
- conda_express-0.1.3/src/install.rs +380 -0
- conda_express-0.1.3/src/main.rs +345 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ci-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build:
|
|
15
|
+
name: Build (${{ matrix.target }})
|
|
16
|
+
runs-on: ${{ matrix.os }}
|
|
17
|
+
strategy:
|
|
18
|
+
fail-fast: false
|
|
19
|
+
matrix:
|
|
20
|
+
include:
|
|
21
|
+
- target: x86_64-unknown-linux-gnu
|
|
22
|
+
os: ubuntu-latest
|
|
23
|
+
- target: aarch64-unknown-linux-gnu
|
|
24
|
+
os: ubuntu-24.04-arm
|
|
25
|
+
- target: x86_64-apple-darwin
|
|
26
|
+
os: macos-15-large
|
|
27
|
+
- target: aarch64-apple-darwin
|
|
28
|
+
os: macos-latest
|
|
29
|
+
- target: x86_64-pc-windows-msvc
|
|
30
|
+
os: windows-latest
|
|
31
|
+
env:
|
|
32
|
+
TARGET: ${{ matrix.target }}
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
36
|
+
|
|
37
|
+
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
|
|
38
|
+
with:
|
|
39
|
+
cache: true
|
|
40
|
+
|
|
41
|
+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
|
|
42
|
+
with:
|
|
43
|
+
key: ${{ matrix.target }}
|
|
44
|
+
|
|
45
|
+
- name: Build
|
|
46
|
+
run: pixi run build
|
|
47
|
+
|
|
48
|
+
- name: Test
|
|
49
|
+
run: pixi run test
|
|
50
|
+
|
|
51
|
+
- name: Stage binary
|
|
52
|
+
shell: bash
|
|
53
|
+
run: |
|
|
54
|
+
if [[ "$TARGET" == *"windows"* ]]; then
|
|
55
|
+
BIN_NAME="cx.exe"
|
|
56
|
+
ASSET_NAME="cx-${TARGET}.exe"
|
|
57
|
+
else
|
|
58
|
+
BIN_NAME="cx"
|
|
59
|
+
ASSET_NAME="cx-${TARGET}"
|
|
60
|
+
fi
|
|
61
|
+
cp "target/release/${BIN_NAME}" "${ASSET_NAME}"
|
|
62
|
+
echo "ASSET_NAME=${ASSET_NAME}" >> "$GITHUB_ENV"
|
|
63
|
+
|
|
64
|
+
- name: Upload canary binary
|
|
65
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
66
|
+
with:
|
|
67
|
+
name: ${{ env.ASSET_NAME }}
|
|
68
|
+
path: ${{ env.ASSET_NAME }}
|
|
69
|
+
retention-days: 7
|
|
70
|
+
|
|
71
|
+
lint:
|
|
72
|
+
name: Lint
|
|
73
|
+
runs-on: ubuntu-latest
|
|
74
|
+
steps:
|
|
75
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
76
|
+
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
|
|
77
|
+
with:
|
|
78
|
+
cache: true
|
|
79
|
+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
|
|
80
|
+
- name: Lint
|
|
81
|
+
run: pixi run lint
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- ".github/workflows/docs.yml"
|
|
9
|
+
- "docs/**"
|
|
10
|
+
- "DESIGN.md"
|
|
11
|
+
- "pixi.toml"
|
|
12
|
+
pull_request:
|
|
13
|
+
paths:
|
|
14
|
+
- ".github/workflows/docs.yml"
|
|
15
|
+
- "docs/**"
|
|
16
|
+
- "DESIGN.md"
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
concurrency:
|
|
20
|
+
group: docs-${{ github.event.pull_request.number || github.sha }}
|
|
21
|
+
cancel-in-progress: true
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
docs:
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
28
|
+
with:
|
|
29
|
+
fetch-depth: 0
|
|
30
|
+
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
|
|
31
|
+
with:
|
|
32
|
+
environments: docs
|
|
33
|
+
- name: Build docs
|
|
34
|
+
run: pixi run -e docs docs
|
|
35
|
+
- name: Upload artifact
|
|
36
|
+
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
|
|
37
|
+
with:
|
|
38
|
+
path: "docs/_build/dirhtml"
|
|
39
|
+
|
|
40
|
+
pages:
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
if: github.ref == 'refs/heads/main'
|
|
43
|
+
needs: [docs]
|
|
44
|
+
|
|
45
|
+
permissions:
|
|
46
|
+
contents: read
|
|
47
|
+
pages: write
|
|
48
|
+
id-token: write
|
|
49
|
+
|
|
50
|
+
environment:
|
|
51
|
+
name: github-pages
|
|
52
|
+
|
|
53
|
+
steps:
|
|
54
|
+
- name: Deploy to GitHub Pages
|
|
55
|
+
id: deployment
|
|
56
|
+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags: ["v*"]
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: write
|
|
9
|
+
id-token: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
build-binaries:
|
|
13
|
+
name: Build (${{ matrix.target }})
|
|
14
|
+
runs-on: ${{ matrix.os }}
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
include:
|
|
19
|
+
- target: x86_64-unknown-linux-gnu
|
|
20
|
+
os: ubuntu-latest
|
|
21
|
+
- target: aarch64-unknown-linux-gnu
|
|
22
|
+
os: ubuntu-24.04-arm
|
|
23
|
+
- target: x86_64-apple-darwin
|
|
24
|
+
os: macos-15-large
|
|
25
|
+
- target: aarch64-apple-darwin
|
|
26
|
+
os: macos-latest
|
|
27
|
+
- target: x86_64-pc-windows-msvc
|
|
28
|
+
os: windows-latest
|
|
29
|
+
env:
|
|
30
|
+
TARGET: ${{ matrix.target }}
|
|
31
|
+
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
34
|
+
|
|
35
|
+
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
|
|
36
|
+
with:
|
|
37
|
+
cache: true
|
|
38
|
+
|
|
39
|
+
- uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8
|
|
40
|
+
with:
|
|
41
|
+
key: ${{ matrix.target }}
|
|
42
|
+
|
|
43
|
+
- name: Build release binary
|
|
44
|
+
run: pixi run build
|
|
45
|
+
|
|
46
|
+
- name: Test
|
|
47
|
+
run: pixi run test
|
|
48
|
+
|
|
49
|
+
- name: Stage binary and compute checksums
|
|
50
|
+
shell: bash
|
|
51
|
+
run: |
|
|
52
|
+
if [[ "$TARGET" == *"windows"* ]]; then
|
|
53
|
+
BIN_NAME="cx.exe"
|
|
54
|
+
ASSET_NAME="cx-${TARGET}.exe"
|
|
55
|
+
else
|
|
56
|
+
BIN_NAME="cx"
|
|
57
|
+
ASSET_NAME="cx-${TARGET}"
|
|
58
|
+
fi
|
|
59
|
+
cp "target/release/${BIN_NAME}" "${ASSET_NAME}"
|
|
60
|
+
sha256sum "${ASSET_NAME}" > "${ASSET_NAME}.sha256"
|
|
61
|
+
echo "ASSET_NAME=${ASSET_NAME}" >> "$GITHUB_ENV"
|
|
62
|
+
|
|
63
|
+
- name: Upload build artifact
|
|
64
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
65
|
+
with:
|
|
66
|
+
name: ${{ env.ASSET_NAME }}
|
|
67
|
+
path: |
|
|
68
|
+
${{ env.ASSET_NAME }}
|
|
69
|
+
${{ env.ASSET_NAME }}.sha256
|
|
70
|
+
retention-days: 1
|
|
71
|
+
|
|
72
|
+
build-wheels:
|
|
73
|
+
name: Wheel (${{ matrix.target }})
|
|
74
|
+
runs-on: ${{ matrix.os }}
|
|
75
|
+
strategy:
|
|
76
|
+
fail-fast: false
|
|
77
|
+
matrix:
|
|
78
|
+
include:
|
|
79
|
+
- target: x86_64-unknown-linux-gnu
|
|
80
|
+
os: ubuntu-latest
|
|
81
|
+
manylinux: "2_17"
|
|
82
|
+
- target: aarch64-unknown-linux-gnu
|
|
83
|
+
os: ubuntu-24.04-arm
|
|
84
|
+
manylinux: "2_17"
|
|
85
|
+
- target: x86_64-apple-darwin
|
|
86
|
+
os: macos-15-large
|
|
87
|
+
- target: aarch64-apple-darwin
|
|
88
|
+
os: macos-latest
|
|
89
|
+
- target: x86_64-pc-windows-msvc
|
|
90
|
+
os: windows-latest
|
|
91
|
+
|
|
92
|
+
steps:
|
|
93
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
94
|
+
|
|
95
|
+
- uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
|
|
96
|
+
with:
|
|
97
|
+
command: build
|
|
98
|
+
target: ${{ matrix.target }}
|
|
99
|
+
manylinux: ${{ matrix.manylinux || 'auto' }}
|
|
100
|
+
args: --release --locked -o dist
|
|
101
|
+
|
|
102
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
103
|
+
with:
|
|
104
|
+
name: wheel-${{ matrix.target }}
|
|
105
|
+
path: dist/*.whl
|
|
106
|
+
if-no-files-found: error
|
|
107
|
+
|
|
108
|
+
build-sdist:
|
|
109
|
+
name: Source dist
|
|
110
|
+
runs-on: ubuntu-latest
|
|
111
|
+
steps:
|
|
112
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
113
|
+
|
|
114
|
+
- uses: PyO3/maturin-action@04ac600d27cdf7a9a280dadf7147097c42b757ad # v1.50.1
|
|
115
|
+
with:
|
|
116
|
+
command: sdist
|
|
117
|
+
args: -o dist
|
|
118
|
+
|
|
119
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
|
120
|
+
with:
|
|
121
|
+
name: sdist
|
|
122
|
+
path: dist/*.tar.gz
|
|
123
|
+
if-no-files-found: error
|
|
124
|
+
|
|
125
|
+
github-release:
|
|
126
|
+
name: GitHub Release
|
|
127
|
+
runs-on: ubuntu-latest
|
|
128
|
+
needs: [build-binaries]
|
|
129
|
+
steps:
|
|
130
|
+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
131
|
+
with:
|
|
132
|
+
path: artifacts
|
|
133
|
+
pattern: cx-*
|
|
134
|
+
merge-multiple: true
|
|
135
|
+
|
|
136
|
+
- name: Create release and upload assets
|
|
137
|
+
env:
|
|
138
|
+
GH_TOKEN: ${{ github.token }}
|
|
139
|
+
GH_REPO: ${{ github.repository }}
|
|
140
|
+
TAG_NAME: ${{ github.ref_name }}
|
|
141
|
+
run: |
|
|
142
|
+
gh release create "$TAG_NAME" artifacts/* --title "$TAG_NAME" --generate-notes
|
|
143
|
+
|
|
144
|
+
publish-pypi:
|
|
145
|
+
name: Publish to PyPI
|
|
146
|
+
runs-on: ubuntu-latest
|
|
147
|
+
needs: [build-wheels, build-sdist]
|
|
148
|
+
environment: pypi
|
|
149
|
+
steps:
|
|
150
|
+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
151
|
+
with:
|
|
152
|
+
path: dist
|
|
153
|
+
pattern: "{wheel-*,sdist}"
|
|
154
|
+
merge-multiple: true
|
|
155
|
+
|
|
156
|
+
- uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
|
|
157
|
+
with:
|
|
158
|
+
packages-dir: dist/
|
|
159
|
+
|
|
160
|
+
publish-crates:
|
|
161
|
+
name: Publish to crates.io
|
|
162
|
+
runs-on: ubuntu-latest
|
|
163
|
+
needs: [build-binaries]
|
|
164
|
+
environment: crates-io
|
|
165
|
+
steps:
|
|
166
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
167
|
+
|
|
168
|
+
- uses: prefix-dev/setup-pixi@82d477f15f3a381dbcc8adc1206ce643fe110fb7 # v0.9.3
|
|
169
|
+
with:
|
|
170
|
+
cache: true
|
|
171
|
+
|
|
172
|
+
- name: Authenticate with crates.io
|
|
173
|
+
uses: rust-lang/crates-io-auth-action@b7e9a28eded4986ec6b1fa40eeee8f8f165559ec # v1.0.3
|
|
174
|
+
id: crates-auth
|
|
175
|
+
|
|
176
|
+
- name: Publish crate
|
|
177
|
+
env:
|
|
178
|
+
CARGO_REGISTRY_TOKEN: ${{ steps.crates-auth.outputs.token }}
|
|
179
|
+
run: pixi run cargo publish --locked
|