fastws-cli 0.0.24__tar.gz → 0.0.25__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 (21) hide show
  1. {fastws_cli-0.0.24/fastws_cli.egg-info → fastws_cli-0.0.25}/PKG-INFO +3 -3
  2. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/README.md +2 -2
  3. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws/__init__.py +2 -1
  4. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws/build_backend.py +6 -4
  5. {fastws_cli-0.0.24 → fastws_cli-0.0.25/fastws_cli.egg-info}/PKG-INFO +3 -3
  6. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/LICENSE +0 -0
  7. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws/cargo.py +0 -0
  8. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws/core.py +0 -0
  9. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws/releases.py +0 -0
  10. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws_cli.egg-info/SOURCES.txt +0 -0
  11. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws_cli.egg-info/dependency_links.txt +0 -0
  12. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws_cli.egg-info/entry_points.txt +0 -0
  13. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws_cli.egg-info/requires.txt +0 -0
  14. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/fastws_cli.egg-info/top_level.txt +0 -0
  15. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/pyproject.toml +0 -0
  16. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/setup.cfg +0 -0
  17. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/tests/test_build.py +0 -0
  18. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/tests/test_build_backend.py +0 -0
  19. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/tests/test_releases.py +0 -0
  20. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/tests/test_setup.py +0 -0
  21. {fastws_cli-0.0.24 → fastws_cli-0.0.25}/tests/test_sync.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastws-cli
3
- Version: 0.0.24
3
+ Version: 0.0.25
4
4
  Summary: Fast workspace tools for multi-repo management
5
5
  Author: Jeremy Howard
6
6
  License-Expression: Apache-2.0
@@ -217,9 +217,9 @@ Set `native-binaries = true` under `[tool.fastws]` to build and install the bina
217
217
 
218
218
  `cargo develop` also copies the `data/` subdirectory of `[tool.maturin].data` into the active venv, as a wheel install does. For example, `data/share/jupyter/kernels/<name>/kernel.json` is installed as `share/jupyter/kernels/<name>/kernel.json`, where Jupyter finds the kernel. `cargo develop` installs the binaries it builds, not the staged copies in `scripts/`.
219
219
 
220
- For distribution wheels containing these binaries, use `fastws.build_backend` as the build backend and include `fastws-cli>=0.0.20` alongside maturin in `[build-system].requires`. Set `[tool.maturin].data` to a generated wheel-data directory. The backend replaces its `scripts/` subdirectory with the current Python-free binaries, then delegates packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries.
220
+ Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.25` alongside maturin in `[build-system].requires`. Its editable builds install only Python metadata and the source path, and compile no Rust. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
221
221
 
222
- Editable builds through this backend install only Python metadata and the source path. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
222
+ For distribution wheels containing the binaries, also set `[tool.maturin].data` to a generated wheel-data directory. With `native-binaries = true`, wheel builds through the backend replace its `scripts/` subdirectory with the current Python-free binaries, then delegate packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries. Without `native-binaries`, wheel builds go straight to maturin, and `[tool.maturin].data` is optional.
223
223
 
224
224
  Direct maturin CLI builds bypass the Python build backend. Stage the binaries first with the shared command:
225
225
 
@@ -191,9 +191,9 @@ Set `native-binaries = true` under `[tool.fastws]` to build and install the bina
191
191
 
192
192
  `cargo develop` also copies the `data/` subdirectory of `[tool.maturin].data` into the active venv, as a wheel install does. For example, `data/share/jupyter/kernels/<name>/kernel.json` is installed as `share/jupyter/kernels/<name>/kernel.json`, where Jupyter finds the kernel. `cargo develop` installs the binaries it builds, not the staged copies in `scripts/`.
193
193
 
194
- For distribution wheels containing these binaries, use `fastws.build_backend` as the build backend and include `fastws-cli>=0.0.20` alongside maturin in `[build-system].requires`. Set `[tool.maturin].data` to a generated wheel-data directory. The backend replaces its `scripts/` subdirectory with the current Python-free binaries, then delegates packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries.
194
+ Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.25` alongside maturin in `[build-system].requires`. Its editable builds install only Python metadata and the source path, and compile no Rust. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
195
195
 
196
- Editable builds through this backend install only Python metadata and the source path. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
196
+ For distribution wheels containing the binaries, also set `[tool.maturin].data` to a generated wheel-data directory. With `native-binaries = true`, wheel builds through the backend replace its `scripts/` subdirectory with the current Python-free binaries, then delegate packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries. Without `native-binaries`, wheel builds go straight to maturin, and `[tool.maturin].data` is optional.
197
197
 
198
198
  Direct maturin CLI builds bypass the Python build backend. Stage the binaries first with the shared command:
199
199
 
@@ -1,4 +1,5 @@
1
- __version__ = "0.0.24"
1
+ __version__ = "0.0.25"
2
+
2
3
 
3
4
 
4
5
 
@@ -1,4 +1,4 @@
1
- r"Maturin build backend that includes Cargo binaries in Python wheels."
1
+ r"Maturin build backend whose editable installs compile no Rust, and whose wheels can include Cargo binaries."
2
2
  import argparse, base64, csv, hashlib, io
3
3
  from pathlib import Path
4
4
  from tempfile import TemporaryDirectory
@@ -8,13 +8,15 @@ from .cargo import settings, stage_binaries
8
8
 
9
9
 
10
10
  def _stage(config_settings):
11
+ root = Path.cwd()
12
+ tool = settings(root)
13
+ if not tool.get('fastws', {}).get('native-binaries'): return
11
14
  parser = argparse.ArgumentParser(add_help=False)
12
15
  parser.add_argument('--profile')
13
16
  parser.add_argument('--release', action='store_true')
14
17
  parser.add_argument('--target')
15
18
  args, _ = parser.parse_known_args(maturin.get_maturin_pep517_args(config_settings))
16
- root = Path.cwd()
17
- profile = args.profile or ('release' if args.release else settings(root)['maturin'].get('profile', 'release'))
19
+ profile = args.profile or ('release' if args.release else tool['maturin'].get('profile', 'release'))
18
20
  stage_binaries(root, profile, args.target)
19
21
 
20
22
 
@@ -46,7 +48,7 @@ def build_editable(wheel_directory, config_settings=None, metadata_directory=Non
46
48
 
47
49
 
48
50
  def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
49
- (Path.cwd()/settings(Path.cwd())['maturin']['data']).mkdir(parents=True, exist_ok=True)
51
+ if data := settings(Path.cwd())['maturin'].get('data'): (Path.cwd()/data).mkdir(parents=True, exist_ok=True)
50
52
  return maturin.prepare_metadata_for_build_wheel(metadata_directory, config_settings)
51
53
 
52
54
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastws-cli
3
- Version: 0.0.24
3
+ Version: 0.0.25
4
4
  Summary: Fast workspace tools for multi-repo management
5
5
  Author: Jeremy Howard
6
6
  License-Expression: Apache-2.0
@@ -217,9 +217,9 @@ Set `native-binaries = true` under `[tool.fastws]` to build and install the bina
217
217
 
218
218
  `cargo develop` also copies the `data/` subdirectory of `[tool.maturin].data` into the active venv, as a wheel install does. For example, `data/share/jupyter/kernels/<name>/kernel.json` is installed as `share/jupyter/kernels/<name>/kernel.json`, where Jupyter finds the kernel. `cargo develop` installs the binaries it builds, not the staged copies in `scripts/`.
219
219
 
220
- For distribution wheels containing these binaries, use `fastws.build_backend` as the build backend and include `fastws-cli>=0.0.20` alongside maturin in `[build-system].requires`. Set `[tool.maturin].data` to a generated wheel-data directory. The backend replaces its `scripts/` subdirectory with the current Python-free binaries, then delegates packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries.
220
+ Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.25` alongside maturin in `[build-system].requires`. Its editable builds install only Python metadata and the source path, and compile no Rust. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
221
221
 
222
- Editable builds through this backend install only Python metadata and the source path. `ws-sync` then runs `cargo develop` to build and install the extension, the binaries and the wheel data files. After standalone `uv sync`, run `cargo develop` yourself.
222
+ For distribution wheels containing the binaries, also set `[tool.maturin].data` to a generated wheel-data directory. With `native-binaries = true`, wheel builds through the backend replace its `scripts/` subdirectory with the current Python-free binaries, then delegate packaging to maturin. Explicit profile and target arguments from maturin's build settings also apply to the binaries. Without `native-binaries`, wheel builds go straight to maturin, and `[tool.maturin].data` is optional.
223
223
 
224
224
  Direct maturin CLI builds bypass the Python build backend. Stage the binaries first with the shared command:
225
225
 
File without changes
File without changes
File without changes
File without changes
File without changes