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.
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/PKG-INFO +3 -1
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/README.md +2 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/__init__.py +2 -1
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/cargo.py +3 -1
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/PKG-INFO +3 -1
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/LICENSE +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/build_backend.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/core.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/news.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws/releases.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/SOURCES.txt +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/dependency_links.txt +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/entry_points.txt +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/requires.txt +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/fastws_cli.egg-info/top_level.txt +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/pyproject.toml +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/setup.cfg +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_build.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_build_backend.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_news.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_releases.py +0 -0
- {fastws_cli-0.0.31 → fastws_cli-0.0.32}/tests/test_setup.py +0 -0
- {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.
|
|
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.
|
|
@@ -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
|
|
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.
|
|
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
|
|
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
|