fastws-cli 0.0.30__tar.gz → 0.0.31__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.
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/PKG-INFO +2 -2
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/README.md +1 -1
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws/__init__.py +2 -1
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws/cargo.py +6 -2
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws_cli.egg-info/PKG-INFO +2 -2
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/LICENSE +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws/build_backend.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws/core.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws/news.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws/releases.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws_cli.egg-info/SOURCES.txt +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws_cli.egg-info/dependency_links.txt +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws_cli.egg-info/entry_points.txt +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws_cli.egg-info/requires.txt +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/fastws_cli.egg-info/top_level.txt +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/pyproject.toml +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/setup.cfg +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/tests/test_build.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/tests/test_build_backend.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/tests/test_news.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/tests/test_releases.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/tests/test_setup.py +0 -0
- {fastws_cli-0.0.30 → fastws_cli-0.0.31}/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.
|
|
3
|
+
Version: 0.0.31
|
|
4
4
|
Summary: Fast workspace tools for multi-repo management
|
|
5
5
|
Author: Jeremy Howard
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -219,7 +219,7 @@ 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
|
-
|
|
222
|
+
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
223
|
|
|
224
224
|
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.
|
|
225
225
|
|
|
@@ -191,7 +191,7 @@ 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
|
-
|
|
194
|
+
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
195
|
|
|
196
196
|
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.
|
|
197
197
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
r"Build, test and install Cargo artifacts for mixed Rust/Python projects."
|
|
2
|
-
import
|
|
2
|
+
import json, os, re, shutil, subprocess, sys, sysconfig, time
|
|
3
3
|
from collections import Counter
|
|
4
4
|
from contextlib import contextmanager
|
|
5
5
|
from dataclasses import dataclass
|
|
@@ -45,7 +45,11 @@ def _lock_users():
|
|
|
45
45
|
def timing_lock(
|
|
46
46
|
exclusive=False, # Take the lock exclusively, as a timing does; False: take it shared, as a build or a test run does
|
|
47
47
|
):
|
|
48
|
-
"Hold the lock that keeps this machine's timings apart from its builds and test runs. A hold waits up to 5 minutes for the lock. After that, a shared hold goes ahead without it. An exclusive hold raises `TimeoutError`. An exclusive hold that has waited 30 seconds prints, once, the other processes that have the lock's file open."
|
|
48
|
+
"Hold the Unix lock that keeps this machine's timings apart from its builds and test runs; a no-op on Windows. A hold waits up to 5 minutes for the lock. After that, a shared hold goes ahead without it. An exclusive hold raises `TimeoutError`. An exclusive hold that has waited 30 seconds prints, once, the other processes that have the lock's file open."
|
|
49
|
+
if os.name == 'nt':
|
|
50
|
+
yield
|
|
51
|
+
return
|
|
52
|
+
import fcntl
|
|
49
53
|
with open(_TIMING_LOCK, 'a') as f:
|
|
50
54
|
start, waiting, reported = time.monotonic(), False, False
|
|
51
55
|
while True:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fastws-cli
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.31
|
|
4
4
|
Summary: Fast workspace tools for multi-repo management
|
|
5
5
|
Author: Jeremy Howard
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -219,7 +219,7 @@ 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
|
-
|
|
222
|
+
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
223
|
|
|
224
224
|
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.
|
|
225
225
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|