fastws-cli 0.0.31__tar.gz → 0.0.32__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 (23) hide show
  1. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/PKG-INFO +3 -1
  2. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/README.md +2 -0
  3. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/__init__.py +2 -1
  4. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/cargo.py +3 -1
  5. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/PKG-INFO +3 -1
  6. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/LICENSE +0 -0
  7. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/build_backend.py +0 -0
  8. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/core.py +0 -0
  9. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/news.py +0 -0
  10. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/releases.py +0 -0
  11. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/SOURCES.txt +0 -0
  12. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/dependency_links.txt +0 -0
  13. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/entry_points.txt +0 -0
  14. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/requires.txt +0 -0
  15. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/top_level.txt +0 -0
  16. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/pyproject.toml +0 -0
  17. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/setup.cfg +0 -0
  18. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_build.py +0 -0
  19. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_build_backend.py +0 -0
  20. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_news.py +0 -0
  21. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_releases.py +0 -0
  22. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_setup.py +0 -0
  23. {fastws_cli-0.0.31 → fastws_cli-0.0.32}/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.31
3
+ Version: 0.0.32
4
4
  Summary: Fast workspace tools for multi-repo management
5
5
  Author: Jeremy Howard
6
6
  License-Expression: Apache-2.0
@@ -219,6 +219,8 @@ Set `native-binaries = true` under `[tool.fastws]` to build and install the bina
219
219
 
220
220
  `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/`.
221
221
 
222
+ Set `post-develop-module = "package.generator"` under `[tool.fastws]` to run a generator after installing the native extension and binaries, before copying wheel data. It runs with the current Python in a fresh process from the project root, including when Cargo reuses its build. A failure stops `cargo develop` or `ws-sync`. Use it for generated files that need the rebuilt extension's metadata.
223
+
222
224
  On Unix, each Cargo build that fastws runs holds a shared `flock` on `/tmp/aai-ws-timing.lock`. A speed test that takes that lock exclusively then never times code while a build runs. A build waits up to 5 minutes for such a timing to finish, then goes ahead without the lock. Python code takes the same lock with `fastws.cargo.timing_lock`: `with timing_lock(exclusive=True):` around a timing, and `with timing_lock():` around a test run. An exclusive hold that has waited 30 seconds prints the processes that have the lock's file open. It raises `TimeoutError` after 5 minutes. Windows builds and tests run without this timing coordination.
223
225
 
224
226
  Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.29` alongside `maturin>=1.13,<2.0` 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.
@@ -191,6 +191,8 @@ 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
+ Set `post-develop-module = "package.generator"` under `[tool.fastws]` to run a generator after installing the native extension and binaries, before copying wheel data. It runs with the current Python in a fresh process from the project root, including when Cargo reuses its build. A failure stops `cargo develop` or `ws-sync`. Use it for generated files that need the rebuilt extension's metadata.
195
+
194
196
  On Unix, each Cargo build that fastws runs holds a shared `flock` on `/tmp/aai-ws-timing.lock`. A speed test that takes that lock exclusively then never times code while a build runs. A build waits up to 5 minutes for such a timing to finish, then goes ahead without the lock. Python code takes the same lock with `fastws.cargo.timing_lock`: `with timing_lock(exclusive=True):` around a timing, and `with timing_lock():` around a test run. An exclusive hold that has waited 30 seconds prints the processes that have the lock's file open. It raises `TimeoutError` after 5 minutes. Windows builds and tests run without this timing coordination.
195
197
 
196
198
  Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.29` alongside `maturin>=1.13,<2.0` 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.
@@ -1,4 +1,5 @@
1
- __version__ = "0.0.31"
1
+ __version__ = "0.0.32"
2
+
2
3
 
3
4
 
4
5
 
@@ -257,7 +257,7 @@ def replace(source, destination):
257
257
 
258
258
 
259
259
  def develop(root):
260
- "Install a Python extension, opted-in binaries and wheel data files from one Cargo build."
260
+ "Install a Python extension, opted-in binaries and wheel data, running the project's post-develop module before wheel data."
261
261
  root = Path(root).expanduser()
262
262
  tool = settings(root)
263
263
  cfg = tool['maturin']
@@ -274,6 +274,8 @@ def develop(root):
274
274
  scripts = env/('Scripts' if os.name == 'nt' else 'bin')
275
275
  for m in artifacts:
276
276
  if m.get('executable'): replace(m['executable'], scripts/Path(m['executable']).name)
277
+ if generator := tool.get('fastws', {}).get('post-develop-module'):
278
+ subprocess.run([sys.executable, '-m', generator], cwd=root, check=True)
277
279
  # Editable builds through `build_backend` don't install the wheel's data files, which a wheel install puts under the prefix.
278
280
  if 'data' in cfg:
279
281
  data = root/cfg['data']/'data'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastws-cli
3
- Version: 0.0.31
3
+ Version: 0.0.32
4
4
  Summary: Fast workspace tools for multi-repo management
5
5
  Author: Jeremy Howard
6
6
  License-Expression: Apache-2.0
@@ -219,6 +219,8 @@ Set `native-binaries = true` under `[tool.fastws]` to build and install the bina
219
219
 
220
220
  `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/`.
221
221
 
222
+ Set `post-develop-module = "package.generator"` under `[tool.fastws]` to run a generator after installing the native extension and binaries, before copying wheel data. It runs with the current Python in a fresh process from the project root, including when Cargo reuses its build. A failure stops `cargo develop` or `ws-sync`. Use it for generated files that need the rebuilt extension's metadata.
223
+
222
224
  On Unix, each Cargo build that fastws runs holds a shared `flock` on `/tmp/aai-ws-timing.lock`. A speed test that takes that lock exclusively then never times code while a build runs. A build waits up to 5 minutes for such a timing to finish, then goes ahead without the lock. Python code takes the same lock with `fastws.cargo.timing_lock`: `with timing_lock(exclusive=True):` around a timing, and `with timing_lock():` around a test run. An exclusive hold that has waited 30 seconds prints the processes that have the lock's file open. It raises `TimeoutError` after 5 minutes. Windows builds and tests run without this timing coordination.
223
225
 
224
226
  Use `fastws.build_backend` as the build backend of a mixed project, and include `fastws-cli>=0.0.29` alongside `maturin>=1.13,<2.0` 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.
File without changes
File without changes
File without changes
File without changes
File without changes