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.
Files changed (36) hide show
  1. conda_express-0.1.3/.github/workflows/ci.yml +81 -0
  2. conda_express-0.1.3/.github/workflows/docs.yml +56 -0
  3. conda_express-0.1.3/.github/workflows/release.yml +179 -0
  4. conda_express-0.1.3/.gitignore +3 -0
  5. conda_express-0.1.3/Cargo.lock +5124 -0
  6. conda_express-0.1.3/Cargo.toml +75 -0
  7. conda_express-0.1.3/DESIGN.md +258 -0
  8. conda_express-0.1.3/LICENSE +28 -0
  9. conda_express-0.1.3/PKG-INFO +208 -0
  10. conda_express-0.1.3/PLAN.md +482 -0
  11. conda_express-0.1.3/README.md +183 -0
  12. conda_express-0.1.3/build.rs +294 -0
  13. conda_express-0.1.3/cx.lock +1052 -0
  14. conda_express-0.1.3/cx.lock.hash +1 -0
  15. conda_express-0.1.3/docs/_static/css/custom.css +1 -0
  16. conda_express-0.1.3/docs/changelog.md +29 -0
  17. conda_express-0.1.3/docs/conf.py +58 -0
  18. conda_express-0.1.3/docs/configuration.md +99 -0
  19. conda_express-0.1.3/docs/design.md +4 -0
  20. conda_express-0.1.3/docs/features.md +119 -0
  21. conda_express-0.1.3/docs/index.md +131 -0
  22. conda_express-0.1.3/docs/quickstart.md +112 -0
  23. conda_express-0.1.3/docs/reference/cli.md +160 -0
  24. conda_express-0.1.3/docs/robots.txt +4 -0
  25. conda_express-0.1.3/pixi.lock +2423 -0
  26. conda_express-0.1.3/pixi.toml +46 -0
  27. conda_express-0.1.3/pyproject.toml +42 -0
  28. conda_express-0.1.3/python/conda_express/__init__.py +5 -0
  29. conda_express-0.1.3/python/conda_express/__main__.py +21 -0
  30. conda_express-0.1.3/python/conda_express/_find_cx.py +83 -0
  31. conda_express-0.1.3/python/conda_express/py.typed +0 -0
  32. conda_express-0.1.3/src/cli.rs +74 -0
  33. conda_express-0.1.3/src/config.rs +129 -0
  34. conda_express-0.1.3/src/exec.rs +44 -0
  35. conda_express-0.1.3/src/install.rs +380 -0
  36. 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
@@ -0,0 +1,3 @@
1
+ /target
2
+ /.pixi
3
+ /docs/_build