feat: support customize cutoff-based detection by ase#2408
feat: support customize cutoff-based detection by ase#2408njzjz merged 22 commits intodeepmodeling:masterfrom
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds ASE-based bond detection with configurable global and per-pair cutoffs, optional SciPy connected-component grouping for bonds, CLI flags to control ASE behavior, auto-enable logic for ASE when cutoff parameters are provided, extra logging, and new tests for these flows. Changes
Sequence DiagramsequenceDiagram
participant User
participant CLI as commandline.py
participant RNG as ReacNetGenerator
participant Detect as _detect.py
participant ASE as ASE
participant SciPy as SciPy
User->>CLI: invoke with ASE flags or custom cutoffs
CLI->>RNG: pass use_ase, ase_cutoff_mult, custom_cutoffs
RNG->>RNG: evaluate auto-enable and set use_ase if needed
alt use_ase == true
RNG->>Detect: request bond detection (_getbondfromcrd)
Detect->>Detect: _parse_custom_cutoffs()
Detect->>ASE: neighbor-list using global_cutoff*mult + per-pair cutoffs
ASE-->>Detect: neighbor pairs (deduplicated across PBC)
Detect->>Detect: assemble per-atom bonds and bond levels
else
RNG->>Detect: request bond detection (OpenBabel path)
end
Detect->>Detect: _connectmolecule(bonds)
alt SciPy available
Detect->>SciPy: build CSR graph, compute connected components
SciPy-->>Detect: component labels
Detect->>Detect: split bonds by component
else
Detect->>Detect: fallback DPS-based grouping
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2408 +/- ##
==========================================
- Coverage 95.26% 95.23% -0.03%
==========================================
Files 17 17
Lines 1457 1532 +75
==========================================
+ Hits 1388 1459 +71
- Misses 69 73 +4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Merging this PR will improve performance by 17.55%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | WallTime | test_benchmark_hmm[reacnetgen_param2] |
2.2 ms | 1.8 ms | +17.18% |
| ⚡ | WallTime | test_benchmark_hmm[reacnetgen_param1] |
2.2 ms | 1.8 ms | +17.55% |
Comparing SchrodingersCattt:feat/support-ase-detect (2a49d35) with master (a7c28d9)
Footnotes
-
8 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (2)
reacnetgenerator/_detect.py (1)
221-221: Prefix unused variable with underscore.The
n_componentsvariable is not used in the subsequent logic. Following Python conventions, prefix it with an underscore to indicate it's intentionally unused.🔎 Proposed fix
- n_components, labels = connected_components(graph, directed=False) + _n_components, labels = connected_components(graph, directed=False)tests/test_ase.py (1)
109-111: Consider clarifying frozenset construction.While
frozenset({"O", "O"})is technically correct (frozensets deduplicate automatically), writingfrozenset({"O"})would be clearer and avoid static analysis warnings.🔎 Proposed fix
assert frozenset({"H", "O"}) in parsed - assert frozenset({"O", "O"}) in parsed + assert frozenset({"O"}) in parsed assert parsed[frozenset({"H", "O"})] == 1.5 - assert parsed[frozenset({"O", "O"})] == 2.0 + assert parsed[frozenset({"O"})] == 2.0
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
reacnetgenerator/_detect.pyreacnetgenerator/commandline.pyreacnetgenerator/reacnetgen.pytests/test_ase.pytests/test_ase_cli.py
🧰 Additional context used
🧬 Code graph analysis (3)
tests/test_ase_cli.py (1)
reacnetgenerator/commandline.py (1)
main_parser(13-153)
tests/test_ase.py (1)
reacnetgenerator/reacnetgen.py (1)
ReacNetGenerator(67-382)
reacnetgenerator/_detect.py (1)
reacnetgenerator/utils.py (5)
SharedRNGData(388-423)WriteBuffer(44-119)listtobytes(217-230)run_mp(535-568)append(76-85)
🪛 GitHub Actions: Type checker
reacnetgenerator/_detect.py
[error] 218-218: "csr_matrix" is possibly unbound (reportPossiblyUnboundVariable)
🪛 GitHub Check: CodeQL
tests/test_ase.py
[notice] 12-12: Unused import
Import of 'natural_cutoffs' is not used.
Import of 'neighbor_list' is not used.
[notice] 19-19: Unused import
Import of 'connected_components' is not used.
🪛 GitHub Check: pyright
reacnetgenerator/_detect.py
[failure] 221-221:
"connected_components" is possibly unbound (reportPossiblyUnboundVariable)
[failure] 218-218:
"csr_matrix" is possibly unbound (reportPossiblyUnboundVariable)
[failure] 441-441:
Cannot access attribute "ase_cutoff_mult" for class "ReacNetGenerator"
Attribute "ase_cutoff_mult" is unknown (reportAttributeAccessIssue)
[failure] 419-419:
"neighbor_list" is possibly unbound (reportPossiblyUnboundVariable)
[failure] 407-407:
Cannot access attribute "ase_cutoff_mult" for class "ReacNetGenerator"
Attribute "ase_cutoff_mult" is unknown (reportAttributeAccessIssue)
[failure] 392-392:
Cannot access attribute "custom_cutoffs" for class "ReacNetGenerator"
Attribute "custom_cutoffs" is unknown (reportAttributeAccessIssue)
[failure] 391-391:
Cannot access attribute "custom_cutoffs" for class "ReacNetGenerator"
Attribute "custom_cutoffs" is unknown (reportAttributeAccessIssue)
[failure] 387-387:
Argument of type "float" cannot be assigned to parameter "mult" of type "int" in function "natural_cutoffs"
"float" is not assignable to "int" (reportArgumentType)
[failure] 387-387:
"natural_cutoffs" is possibly unbound (reportPossiblyUnboundVariable)
🪛 Ruff (0.14.10)
tests/test_ase.py
109-109: Sets should not contain duplicate item "O"
Remove duplicate item
(B033)
111-111: Sets should not contain duplicate item "O"
Remove duplicate item
(B033)
231-231: Loop control variable component not used within loop body
Rename unused component to _component
(B007)
reacnetgenerator/_detect.py
221-221: Unpacked variable n_components is never used
Prefix it with an underscore or any other dummy variable pattern
(RUF059)
383-383: Avoid specifying long messages outside the exception class
(TRY003)
🔇 Additional comments (14)
reacnetgenerator/reacnetgen.py (2)
171-173: LGTM! Sensible default values for ASE configuration.The default values align with the CLI argument defaults and provide reasonable starting points for ASE-based bond detection.
233-241: LGTM! Well-designed auto-enabling logic.The automatic activation of ASE mode when custom cutoffs or modified multipliers are provided improves the user experience by reducing configuration overhead.
reacnetgenerator/_detect.py (6)
44-63: LGTM! Proper handling of optional dependencies.The conditional import pattern with availability flags follows best practices and matches the existing pattern used for OpenBabel.
476-478: LGTM! Clean conditional delegation to ASE.The use of
getattrwith a default value provides robust fallback behavior when theuse_aseattribute is not present.
547-547: LGTM! Improved observability for LAMMPS dump parsing.The additional logging provides useful visibility into the parsing progress and helps with debugging.
Also applies to: 576-576, 583-583
448-453: Excellent duplicate bond prevention for PBC.The duplicate check is crucial for preventing "bond already exists" errors when PBC creates periodic images. This is correctly validated by the test suite.
382-384: The method is already properly guarded by callers.The code at line 477-478 in
_detect.pychecksif getattr(self.rng, "use_ase", False):before invoking_getbondfromase. The ImportError at lines 382-383 serves as an appropriate defensive check within the method, ensuring it fails gracefully if called incorrectly.
387-387: No action needed. ASE'snatural_cutoffsfunction explicitly accepts bothintandfloatfor themultparameter. The code at line 387 correctly passesmult=1.0, which is a valid type.reacnetgenerator/commandline.py (2)
70-86: LGTM! Well-structured CLI arguments for ASE mode.The arguments provide clear options for users to control ASE-based bond detection, with sensible defaults that align with the internal configuration.
181-183: LGTM! Consistent parameter wiring.The ASE parameters are correctly passed from CLI arguments to ReacNetGenerator and properly reconstructed in parm2cmd.
Also applies to: 236-241
tests/test_ase_cli.py (1)
1-65: LGTM! Comprehensive CLI argument tests.The tests thoroughly validate that ASE-related command-line arguments are correctly parsed, have proper defaults, and are documented in help text.
tests/test_ase.py (3)
43-92: LGTM! Thorough tests for ASE mode enabling.The tests validate default behavior, manual enabling, and auto-enabling logic with custom cutoffs or modified multipliers.
134-203: LGTM! Essential tests for ASE bond detection.The tests validate bond perception and duplicate prevention, which are critical for correct ASE-based bond detection, especially with PBC.
237-272: LGTM! Comprehensive integration and warning tests.The integration test validates end-to-end ASE functionality with custom cutoffs, and the warning test ensures users are notified when ASE mode is auto-enabled.
Also applies to: 274-290
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (5)
tests/test_detect.py (4)
67-73: Remove unused import or use underscore prefix.The imports
natural_cutoffsandneighbor_listare flagged as unused by static analysis. While they appear to be used in the implementation code being tested (reacnetgenerator/_detect.py), they are not directly used in this test file.🔎 Proposed fix
If these imports are truly unused in this test file, remove them:
try: - from ase.neighborlist import natural_cutoffs, neighbor_list + from ase import Atoms ASE_AVAILABLE = True except ImportError: ASE_AVAILABLE = FalseOr if you're keeping them for future use, prefix with underscore to indicate they're intentionally unused:
- from ase.neighborlist import natural_cutoffs, neighbor_list + from ase.neighborlist import natural_cutoffs as _natural_cutoffs, neighbor_list as _neighbor_list
76-77: Remove unused import or use underscore prefix.The import
connected_componentsis flagged as unused. It's defined but not directly used in this test file.🔎 Proposed fix
try: - from scipy.sparse.csgraph import connected_components + # connected_components is used in the implementation, not in tests SCIPY_AVAILABLE = True except ImportError: SCIPY_AVAILABLE = False
180-202: Prefix unused variable to suppress linter warning.The
bondlevelvariable is unpacked but never used in this test. Consider prefixing it with an underscore to indicate it's intentionally unused.🔎 Proposed fix
- bond, bondlevel = detect_instance._getbondfromase(atoms, cell) + bond, _bondlevel = detect_instance._getbondfromase(atoms, cell) # Check that there are no duplicate entries in bond lists for i, neighbors in enumerate(bond):
236-262: Add assertion on component data to strengthen test.The test creates
component_bytesbut doesn't verify its structure or contents. Consider adding assertions to validate the component data format.🔎 Proposed enhancement
# The component should contain all atoms - component_bytes = result[0] - # The first part of the component bytes contains the atom indices - # Need to extract the atom list from the bytes format - # This is tricky since it's in the internal format, so just check length - # The result format is: atom_indices + bond_pairs + bond_levels assert len(result) == 1 # Single connected component + + # Verify the component contains all atoms by checking it's non-empty + assert len(result[0]) > 0, "Component data should not be empty"reacnetgenerator/_detect.py (1)
381-387: Chain exception for better error context.When re-raising a
ValueErrorafter catching one, useraise ... from errto preserve the exception chain and provide better debugging context.🔎 Proposed fix
try: distance = float(dist_str) - except ValueError: + except ValueError as err: raise ValueError( f"Invalid distance value '{dist_str}' in '{pair}'. Expected a number. " f"Example: 'Al-O:2.5,C-H:1.1'" - ) + ) from err
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
reacnetgenerator/_detect.pytests/test_detect.pytests/test_reacnetgen.py
🧰 Additional context used
🧬 Code graph analysis (1)
reacnetgenerator/_detect.py (1)
reacnetgenerator/utils.py (3)
WriteBuffer(44-119)listtobytes(217-230)append(76-85)
🪛 GitHub Actions: Type checker
reacnetgenerator/_detect.py
[error] 218-218: pyright: 'csr_matrix' is possibly unbound. (reportPossiblyUnboundVariable)
🪛 GitHub Check: CodeQL
tests/test_detect.py
[notice] 69-69: Unused import
Import of 'natural_cutoffs' is not used.
Import of 'neighbor_list' is not used.
[notice] 76-76: Unused import
Import of 'connected_components' is not used.
[notice] 257-257: Unused local variable
Variable component_bytes is not used.
🪛 GitHub Check: pyright
reacnetgenerator/_detect.py
[failure] 221-221:
"connected_components" is possibly unbound (reportPossiblyUnboundVariable)
[failure] 218-218:
"csr_matrix" is possibly unbound (reportPossiblyUnboundVariable)
[failure] 468-468:
Cannot access attribute "ase_cutoff_mult" for class "ReacNetGenerator"
Attribute "ase_cutoff_mult" is unknown (reportAttributeAccessIssue)
[failure] 446-446:
"neighbor_list" is possibly unbound (reportPossiblyUnboundVariable)
[failure] 434-434:
Cannot access attribute "ase_cutoff_mult" for class "ReacNetGenerator"
Attribute "ase_cutoff_mult" is unknown (reportAttributeAccessIssue)
[failure] 419-419:
Cannot access attribute "custom_cutoffs" for class "ReacNetGenerator"
Attribute "custom_cutoffs" is unknown (reportAttributeAccessIssue)
[failure] 418-418:
Cannot access attribute "custom_cutoffs" for class "ReacNetGenerator"
Attribute "custom_cutoffs" is unknown (reportAttributeAccessIssue)
[failure] 414-414:
Argument of type "float" cannot be assigned to parameter "mult" of type "int" in function "natural_cutoffs"
"float" is not assignable to "int" (reportArgumentType)
[failure] 414-414:
"natural_cutoffs" is possibly unbound (reportPossiblyUnboundVariable)
🪛 Ruff (0.14.10)
tests/test_detect.py
214-214: Unpacked variable bondlevel is never used
Prefix it with an underscore or any other dummy variable pattern
(RUF059)
257-257: Local variable component_bytes is assigned to but never used
Remove assignment to unused variable component_bytes
(F841)
reacnetgenerator/_detect.py
362-365: Avoid specifying long messages outside the exception class
(TRY003)
372-375: Avoid specifying long messages outside the exception class
(TRY003)
384-387: Within an except clause, raise exceptions with raise ... from err or raise ... from None to distinguish them from errors in exception handling
(B904)
384-387: Avoid specifying long messages outside the exception class
(TRY003)
410-410: Avoid specifying long messages outside the exception class
(TRY003)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Build wheels for cp38-win_amd64
- GitHub Check: Build wheels for cp310-manylinux_aarch64
- GitHub Check: Test with tox
- GitHub Check: Benchmark with codspeed
🔇 Additional comments (9)
tests/test_reacnetgen.py (1)
170-232: LGTM! Well-structured tests for ASE auto-enable logic.The test class validates the expected auto-enable behavior when ASE-related parameters are provided despite
use_ase=False. The three test cases cover the key scenarios:
- Custom cutoffs trigger auto-enable
- Modified multiplier triggers auto-enable
- Default values do not trigger auto-enable
tests/test_detect.py (2)
85-138: LGTM! Comprehensive validation of custom cutoff parsing.The test class thoroughly validates the
_parse_custom_cutoffsmethod with:
- Valid simple and multiple pair formats
- Whitespace handling
- Error cases (missing colon, missing dash, invalid distance)
- Helpful error messages
265-300: LGTM! Auto-enable tests provide good coverage.These tests validate the auto-enable behavior for ASE mode, covering both positive cases (custom cutoffs and modified multiplier) and the negative case (defaults).
reacnetgenerator/_detect.py (6)
48-63: LGTM! Conditional imports properly structured.The ASE and SciPy imports are correctly guarded with try-except blocks and availability flags. The static analysis warnings about "possibly unbound" are false positives—all imported symbols are used only within their respective availability checks.
203-267: LGTM! Well-implemented SciPy-based connected components with proper fallback.The implementation elegantly uses SciPy's sparse graph algorithms when available and falls back to the existing DPS implementation otherwise. The code correctly:
- Builds a CSR adjacency matrix from bond lists
- Computes connected components
- Groups atoms by component
- Extracts bonds within each component (avoiding duplicates by checking
atom_idx < neighbor_idx)- Serializes components in the expected format
The static analysis warning about
csr_matrixbeing "possibly unbound" (line 218) is a false positive—it's imported in the try block and only used within theSCIPY_AVAILABLEguard.
338-390: LGTM! Robust parsing with clear error messages.The
_parse_custom_cutoffsmethod properly validates user input and provides helpful error messages for malformed strings. The implementation correctly:
- Handles empty/None input
- Strips whitespace to allow flexible formatting
- Validates presence of colon and dash separators
- Validates numeric distance values
- Returns a frozenset-keyed dictionary for order-independent pair lookups
This addresses the past review comment requesting error handling for malformed inputs.
392-482: LGTM! Comprehensive ASE-based bond detection with custom cutoffs.The
_getbondfromasemethod implements a robust bond detection algorithm:
- Computes natural covalent radii as a baseline
- Parses and applies custom per-pair cutoffs
- Calculates an appropriate global search cutoff (max of base + custom with buffer)
- Uses ASE neighbor lists with PBC support
- Applies pair-specific thresholds (custom if available, else scaled radii)
- Deduplicates bonds (line 475 check prevents duplicate bonds from PBC images)
The implementation correctly handles edge cases like empty atom lists and integrates well with the existing codebase.
503-505: LGTM! Clean delegation to ASE-based detection.The conditional check properly routes to ASE-based bond detection when enabled, preserving the original Open Babel path otherwise.
574-574: LGTM! Helpful logging for LAMMPS dump parsing.The logging statements improve observability during file parsing, making it easier to diagnose issues with trajectory files.
Also applies to: 603-603, 610-610
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
tests/test_detect.py (1)
249-254: Remove unused variable assignment.The variable
component_bytesis assigned but never used. The subsequent assertion only checkslen(result), not the variable itself.🔎 Proposed fix
- # The component should contain all atoms - component_bytes = result[0] - # The first part of the component bytes contains the atom indices - # Need to extract the atom list from the bytes format - # This is tricky since it's in the internal format, so just check length - # The result format is: atom_indices + bond_pairs + bond_levels assert len(result) == 1 # Single connected component
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
tests/test_detect.py
🧰 Additional context used
🪛 GitHub Check: CodeQL
tests/test_detect.py
[warning] 76-76: Unreachable code
This statement is unreachable.
[notice] 257-257: Unused local variable
Variable component_bytes is not used.
🪛 Ruff (0.14.10)
tests/test_detect.py
249-249: Local variable component_bytes is assigned to but never used
Remove assignment to unused variable component_bytes
(F841)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Build wheels for cp38-win_amd64
- GitHub Check: Build wheels for cp310-manylinux_aarch64
- GitHub Check: Benchmark with codspeed
- GitHub Check: Test with tox
🔇 Additional comments (4)
tests/test_detect.py (4)
25-28: LGTM! Typo fix.The fixture variable rename from
start_direcrotytostart_directorycorrects the typo.
82-135: LGTM! Comprehensive test coverage.The test cases thoroughly cover valid input formats, edge cases with whitespace, and error scenarios with descriptive assertion messages.
137-211: LGTM! Well-structured ASE bond detection tests.The test cases effectively validate bond detection logic for water molecules, duplicate prevention with periodic boundary conditions, and custom cutoff override behavior.
257-292: LGTM! Auto-enable logic tests are well-designed.The tests effectively verify that ASE mode is automatically enabled when relevant parameters (custom cutoffs or modified multiplier) are provided, even when
use_aseis explicitly set toFalse.
for more information, see https://pre-commit.ci
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (1)
tests/test_detect.py (1)
249-257: Remove unused variable and duplicate assertion.The variable
component_bytesis assigned but never used, and the assertion at line 257 duplicates line 249. Either complete the verification logic or clean up the dead code.🔎 Proposed fix
# Should have 1 component containing all atoms assert len(result) == 1 - - # The component should contain all atoms - component_bytes = result[0] - # The first part of the component bytes contains the atom indices - # Need to extract the atom list from the bytes format - # This is tricky since it's in the internal format, so just check length - # The result format is: atom_indices + bond_pairs + bond_levels - assert len(result) == 1 # Single connected component
🧹 Nitpick comments (1)
tests/test_detect.py (1)
74-80: Remove the debug print statement.The
print(scipy.__version__)statement pollutes test output and serves no functional purpose. The SciPy availability check works correctly without it.🔎 Proposed fix
try: import scipy - print(scipy.__version__) SCIPY_AVAILABLE = True except ImportError: SCIPY_AVAILABLE = False
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
tests/test_detect.py
🧰 Additional context used
🪛 GitHub Check: CodeQL
tests/test_detect.py
[notice] 257-257: Unused local variable
Variable component_bytes is not used.
🪛 Ruff (0.14.10)
tests/test_detect.py
252-252: Local variable component_bytes is assigned to but never used
Remove assignment to unused variable component_bytes
(F841)
🔇 Additional comments (4)
tests/test_detect.py (4)
25-28: LGTM!The typo fix from
start_direcrotytostart_directoryimproves code clarity and consistency.
85-138: LGTM!Comprehensive test coverage for the
_parse_custom_cutoffsmethod with clear scenarios covering valid formats, edge cases with spaces, and various error conditions with helpful message assertions.
140-214: LGTM!Well-structured tests for ASE-based bond detection covering water molecule bonds, PBC duplicate prevention, and custom cutoff overrides. The
skipifdecorator properly guards against missing ASE.
260-295: LGTM!Good test coverage for the auto-enable logic, verifying that ASE mode is automatically enabled when
custom_cutoffsorase_cutoff_multparameters are provided, even ifuse_ase=Falseis explicitly set.
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/setup-node/releases">actions/setup-node's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <h2>What's Changed</h2> <p><strong>Breaking Changes</strong></p> <ul> <li>Limit automatic caching to npm, update workflows and documentation by <a href="https://github.com/priyagupta108"><code>@priyagupta108</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1374">actions/setup-node#1374</a></li> </ul> <p><strong>Dependency Upgrades</strong></p> <ul> <li>Upgrade ts-jest from 29.1.2 to 29.4.1 and document breaking changes in v5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1336">#1336</a></li> <li>Upgrade prettier from 2.8.8 to 3.6.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1334">#1334</a></li> <li>Upgrade actions/publish-action from 0.3.0 to 0.4.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1362">#1362</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-node/compare/v5...v6.0.0">https://github.com/actions/setup-node/compare/v5...v6.0.0</a></p> <h2>v5.0.0</h2> <h2>What's Changed</h2> <h3>Breaking Changes</h3> <ul> <li>Enhance caching in setup-node with automatic package manager detection by <a href="https://github.com/priya-kinthali"><code>@priya-kinthali</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1348">actions/setup-node#1348</a></li> </ul> <p>This update, introduces automatic caching when a valid <code>packageManager</code> field is present in your <code>package.json</code>. This aims to improve workflow performance and make dependency management more seamless. To disable this automatic caching, set <code>package-manager-cache: false</code></p> <pre lang="yaml"><code>steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v5 with: package-manager-cache: false </code></pre> <ul> <li>Upgrade action to use node24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1325">actions/setup-node#1325</a></li> </ul> <p>Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. <a href="https://github.com/actions/runner/releases/tag/v2.327.1">See Release Notes</a></p> <h3>Dependency Upgrades</h3> <ul> <li>Upgrade <code>@octokit/request-error</code> and <code>@actions/github</code> by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1227">actions/setup-node#1227</a></li> <li>Upgrade uuid from 9.0.1 to 11.1.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1273">actions/setup-node#1273</a></li> <li>Upgrade undici from 5.28.5 to 5.29.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1295">actions/setup-node#1295</a></li> <li>Upgrade form-data to bring in fix for critical vulnerability by <a href="https://github.com/gowridurgad"><code>@gowridurgad</code></a> in <a href="https://redirect.github.com/actions/setup-node/pull/1332">actions/setup-node#1332</a></li> <li>Upgrade actions/checkout from 4 to 5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/actions/setup-node/pull/1345">actions/setup-node#1345</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/priya-kinthali"><code>@priya-kinthali</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-node/pull/1348">actions/setup-node#1348</a></li> <li><a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> made their first contribution in <a href="https://redirect.github.com/actions/setup-node/pull/1325">actions/setup-node#1325</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/setup-node/compare/v4...v5.0.0">https://github.com/actions/setup-node/compare/v4...v5.0.0</a></p> <h2>v4.4.0</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/setup-node/commit/2028fbc5c25fe9cf00d9f06a71cc4710d4507903"><code>2028fbc</code></a> Limit automatic caching to npm, update workflows and documentation (<a href="https://redirect.github.com/actions/setup-node/issues/1374">#1374</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/13427813f706a0f6c9b74603b31103c40ab1c35a"><code>1342781</code></a> Bump actions/publish-action from 0.3.0 to 0.4.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1362">#1362</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/89d709d423dc495668cd762a18dd4a070611be3f"><code>89d709d</code></a> Bump prettier from 2.8.8 to 3.6.2 (<a href="https://redirect.github.com/actions/setup-node/issues/1334">#1334</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/cd2651c46231bc0d6f48d6b34433b845331235fe"><code>cd2651c</code></a> Bump ts-jest from 29.1.2 to 29.4.1 (<a href="https://redirect.github.com/actions/setup-node/issues/1336">#1336</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/a0853c24544627f65ddf259abe73b1d18a591444"><code>a0853c2</code></a> Bump actions/checkout from 4 to 5 (<a href="https://redirect.github.com/actions/setup-node/issues/1345">#1345</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/b7234cc9fe124f0f4932554b4e5284543083ae7b"><code>b7234cc</code></a> Upgrade action to use node24 (<a href="https://redirect.github.com/actions/setup-node/issues/1325">#1325</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/d7a11313b581b306c961b506cfc8971208bb03f6"><code>d7a1131</code></a> Enhance caching in setup-node with automatic package manager detection (<a href="https://redirect.github.com/actions/setup-node/issues/1348">#1348</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/5e2628c959b9ade56971c0afcebbe5332d44b398"><code>5e2628c</code></a> Bumps form-data (<a href="https://redirect.github.com/actions/setup-node/issues/1332">#1332</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/65beceff8e91358525397bdce9103d999507ab03"><code>65becef</code></a> Bump undici from 5.28.5 to 5.29.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1295">#1295</a>)</li> <li><a href="https://github.com/actions/setup-node/commit/7e24a656e1c7a0d6f3eaef8d8e84ae379a5b035b"><code>7e24a65</code></a> Bump uuid from 9.0.1 to 11.1.0 (<a href="https://redirect.github.com/actions/setup-node/issues/1273">#1273</a>)</li> <li>Additional commits viewable in <a href="https://github.com/actions/setup-node/compare/v4...v6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added a new "Install via uv" section to the installation guide, including a help example. * Included help (-h) examples shown after conda and pip install commands. * Minor formatting adjustments in the Docker installation area for clarity. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Jinzhe Zeng <jinzhe.zeng@ustc.edu.cn> Signed-off-by: Jinzhe Zeng <njzjz@qq.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jinzhe Zeng <jinzhe.zeng@ustc.edu.cn> Signed-off-by: Jinzhe Zeng <njzjz@qq.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * CI workflow and installer updated to a slimmer runner and modernized steps; type-checking runs changed to a new check invocation. * Project tooling configuration added/updated. * **Refactor** * Tightened type annotations and generics across utilities; download accepts optional checksum and a zero-check helper now returns a native bool. * Public API surface preserved; type-only imports added to improve static typing. * **Style** * Minor cleanup of suppressed-type comments and small sorting-key clarifications. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p> <blockquote> <h2>v6.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>v6-beta by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li> <li>update readme/changelog for v6 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p> <h2>v6-beta</h2> <h2>What's Changed</h2> <p>Updated persist-credentials to store the credentials under <code>$RUNNER_TEMP</code> instead of directly in the local git config.</p> <p>This requires a minimum Actions Runner version of <a href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a> to access the persisted credentials for <a href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker container action</a> scenarios.</p> <h2>v5.0.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p> <h2>v5.0.0</h2> <h2>What's Changed</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> <li>Prepare v5.0.0 release by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2238">actions/checkout#2238</a></li> </ul> <h2>⚠️ Minimum Compatible Runner Version</h2> <p><strong>v2.327.1</strong><br /> <a href="https://github.com/actions/runner/releases/tag/v2.327.1">Release Notes</a></p> <p>Make sure your runner is updated to this version or newer to use this release.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v5.0.0">https://github.com/actions/checkout/compare/v4...v5.0.0</a></p> <h2>v4.3.1</h2> <h2>What's Changed</h2> <ul> <li>Port v6 cleanup to v4 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v4...v4.3.1">https://github.com/actions/checkout/compare/v4...v4.3.1</a></p> <h2>v4.3.0</h2> <h2>What's Changed</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>v6.0.2</h2> <ul> <li>Fix tag handling: preserve annotations and explicit fetch-tags by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li> </ul> <h2>v6.0.1</h2> <ul> <li>Add worktree support for persist-credentials includeIf by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li> </ul> <h2>v6.0.0</h2> <ul> <li>Persist creds to a separate file by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li> <li>Update README to include Node.js 24 support details and requirements by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li> </ul> <h2>v5.0.1</h2> <ul> <li>Port v6 cleanup to v5 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li> </ul> <h2>v5.0.0</h2> <ul> <li>Update actions checkout to use node 24 by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li> </ul> <h2>v4.3.1</h2> <ul> <li>Port v6 cleanup to v4 by <a href="https://github.com/ericsciple"><code>@ericsciple</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li> </ul> <h2>v4.3.0</h2> <ul> <li>docs: update README.md by <a href="https://github.com/motss"><code>@motss</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li> <li>Add internal repos for checking out multiple repositories by <a href="https://github.com/mouismail"><code>@mouismail</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li> <li>Documentation update - add recommended permissions to Readme by <a href="https://github.com/benwells"><code>@benwells</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li> <li>Adjust positioning of user email note and permissions heading by <a href="https://github.com/joshmgross"><code>@joshmgross</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li> <li>Update README.md by <a href="https://github.com/nebuk89"><code>@nebuk89</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li> <li>Update CODEOWNERS for actions by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li> <li>Update package dependencies by <a href="https://github.com/salmanmkc"><code>@salmanmkc</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li> </ul> <h2>v4.2.2</h2> <ul> <li><code>url-helper.ts</code> now leverages well-known environment variables by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li> <li>Expand unit test coverage for <code>isGhes</code> by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li> </ul> <h2>v4.2.1</h2> <ul> <li>Check out other refs/* by commit if provided, fall back to ref by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li> </ul> <h2>v4.2.0</h2> <ul> <li>Add Ref and Commit outputs by <a href="https://github.com/lucacome"><code>@lucacome</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li> <li>Dependency updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>- <a href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>, <a href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li> </ul> <h2>v4.1.7</h2> <ul> <li>Bump the minor-npm-dependencies group across 1 directory with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li> <li>Bump actions/checkout from 3 to 4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li> <li>Check out other refs/* by commit by <a href="https://github.com/orhantoy"><code>@orhantoy</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li> <li>Pin actions/checkout's own workflows to a known, good, stable version. by <a href="https://github.com/jww3"><code>@jww3</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li> </ul> <h2>v4.1.6</h2> <ul> <li>Check platform to set archive extension appropriately by <a href="https://github.com/cory-miller"><code>@cory-miller</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/checkout/commit/8e8c483db84b4bee98b60c0593521ed34d9990e8"><code>8e8c483</code></a> Clarify v6 README (<a href="https://redirect.github.com/actions/checkout/issues/2328">#2328</a>)</li> <li><a href="https://github.com/actions/checkout/commit/033fa0dc0b82693d8986f1016a0ec2c5e7d9cbb1"><code>033fa0d</code></a> Add worktree support for persist-credentials includeIf (<a href="https://redirect.github.com/actions/checkout/issues/2327">#2327</a>)</li> <li><a href="https://github.com/actions/checkout/commit/c2d88d3ecc89a9ef08eebf45d9637801dcee7eb5"><code>c2d88d3</code></a> Update all references from v5 and v4 to v6 (<a href="https://redirect.github.com/actions/checkout/issues/2314">#2314</a>)</li> <li><a href="https://github.com/actions/checkout/commit/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3"><code>1af3b93</code></a> update readme/changelog for v6 (<a href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li> <li><a href="https://github.com/actions/checkout/commit/71cf2267d89c5cb81562390fa70a37fa40b1305e"><code>71cf226</code></a> v6-beta (<a href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li> <li><a href="https://github.com/actions/checkout/commit/069c6959146423d11cd0184e6accf28f9d45f06e"><code>069c695</code></a> Persist creds to a separate file (<a href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li> <li><a href="https://github.com/actions/checkout/commit/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493"><code>ff7abcd</code></a> Update README to include Node.js 24 support details and requirements (<a href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li> <li><a href="https://github.com/actions/checkout/commit/08c6903cd8c0fde910a37f88322edcfb5dd907a8"><code>08c6903</code></a> Prepare v5.0.0 release (<a href="https://redirect.github.com/actions/checkout/issues/2238">#2238</a>)</li> <li><a href="https://github.com/actions/checkout/commit/9f265659d3bb64ab1440b03b12f4d47a24320917"><code>9f26565</code></a> Update actions checkout to use node 24 (<a href="https://redirect.github.com/actions/checkout/issues/2226">#2226</a>)</li> <li>See full diff in <a href="https://github.com/actions/checkout/compare/v4...v6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.23 to 3.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/cibuildwheel/releases">pypa/cibuildwheel's releases</a>.</em></p> <blockquote> <h2>v3.3.0</h2> <ul> <li>🐛 Fix an incompatibility with Docker v29 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2660">#2660</a>)</li> <li>✨ Adds <code>test-runtime</code> option, to customise how tests on simulated/emulated environments are run (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2636">#2636</a>)</li> <li>✨ Adds support for new <code>manylinux_2_35</code> images on 32-bit ARM <code>armv7l</code>, offering better C++20 compatibility (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2656">#2656</a>)</li> <li>✨ <code>build[uv]</code> is now supported on Android (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2587">#2587</a>)</li> <li>✨ You can now install extras (such as <code>uv</code>) with a simple option on the GitHub Action (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2630">#2630</a>)</li> <li>✨ <code>{project}</code> and <code>{package}</code> placeholders are now supported in <code>repair-wheel-command</code> (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2589">#2589</a>)</li> <li>🛠 The versions set with <code>dependency-versions</code> no longer constrain packages specified by your <code>build-system.requires</code>. Previously, on platforms other than Linux, the constraints in this option would remain in the environment during the build. This has been tidied up make behaviour more consistent between platforms, and to prevent version conflicts. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2583">#2583</a>)</li> <li>🛠 Improve the handling of <code>test-command</code> on Android, enabling more options to be passed (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2590">#2590</a>)</li> <li>📚 Docs improvements (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2618">#2618</a>)</li> </ul> <h2>v3.2.1</h2> <ul> <li>🛠 Update to CPython 3.14.0 final (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2614">#2614</a>)</li> <li>🐛 Fix the default MACOSX_DEPLOYMENT_TARGET on Python 3.14 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2613">#2613</a>)</li> <li>📚 Docs improvements (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2617">#2617</a>)</li> </ul> <h2>v3.2.0</h2> <ul> <li>✨ Adds GraalPy v25 (Python 3.12) support (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2597">#2597</a>)</li> <li>🛠 Update to CPython 3.14.0rc3 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2602">#2602</a>)</li> <li>🛠 Adds CPython 3.14.0 prerelease support for Android, and a number of improvements to Android builds (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2568">#2568</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2591">#2591</a>)</li> <li>🛠 Improvements to testing on Android, passing environment markers when installing the venv, and providing more debug output when build-verbosity is set (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2575">#2575</a>)</li> <li>⚠️ PyPy 3.10 was moved to <code>pypy-eol</code> in the <code>enable</code> option, as it is now end-of-life. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2521">#2521</a>)</li> <li>📚 Docs improvements (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2574">#2574</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2601">#2601</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2598">#2598</a>)</li> </ul> <h2>v3.1.4</h2> <ul> <li>✨ Add a <code>--clean-cache</code> command to clean up our cache (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2489">#2489</a>)</li> <li>🛠 Update Python to 3.14rc2 and other patch version bumps (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2542">#2542</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2556">#2556</a>)</li> <li>🛠 Update Pyodide to 0.28.2 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2562">#2562</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2558">#2558</a>)</li> <li>🐛 Fix resolution with <code>pyodide-build</code> when <code>dependency-versions</code> is set (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2548">#2548</a>)</li> <li>🐛 Set <code>CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</code> to <code>BOTH</code> on Android (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2547">#2547</a>)</li> <li>🐛 Add <code>patchelf</code> dependency for platforms that can build Android wheels (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2552">#2552</a>)</li> <li>🐛 Ignore empty values for <code>CIBW_ARCHS</code> like most other environment variables (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2541">#2541</a>)</li> <li>💼 The <code>color</code> and <code>suggest_on_error</code> argparse options are now default in 3.14rc1+ (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2554">#2554</a>)</li> <li>💼 Use the virtualenv release URL instead of blob URL (should be more robust) (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2555">#2555</a>)</li> <li>🧪 For iOS, lowering to macos-14 is needed for now due to issues with GitHub's runner images (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2557">#2557</a>)</li> <li>🧪 Split out platforms iOS and Android in our tests (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2519">#2519</a>)</li> <li>🧪 Fix and enable doctests (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2546">#2546</a>)</li> <li>📚 Improve our docs on free-threading (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2549">#2549</a>)</li> </ul> <h2>v3.1.3</h2> <ul> <li>🐛 Fix bug where "latest" dependencies couldn't update to pip 25.2 on Windows (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2537">#2537</a>)</li> <li>🧪 Use pytest-rerunfailures to improve some of our iOS/Android tests (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2527">#2527</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2539">#2539</a>)</li> <li>🧪 Remove some GraalPy Windows workarounds in our tests (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2501">#2501</a>)</li> </ul> <h2>v3.1.2</h2> <ul> <li>⚠️ Add an error if <code>CIBW_FREE_THREADING_SUPPORT</code> is set; you are likely missing 3.13t wheels, please use the <code>enable</code>/<code>CIBW_ENABLE</code> (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2520">#2520</a>)</li> <li>🛠 <code>riscv64</code> now enabled if you target that architecture, it's now supported on PyPI (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2509">#2509</a>)</li> <li>🛠 Add warning when using <code>cpython-experimental-riscv64</code> (no longer needed) (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2526">#2526</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2528">#2528</a>)</li> <li>🛠 iOS versions bumped, fixing issues with 3.14 (now RC 1) (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2530">#2530</a>)</li> <li>🐛 Fix bug in Android running wheel from our GitHub Action (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2517">#2517</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md">pypa/cibuildwheel's changelog</a>.</em></p> <blockquote> <h3>v2.23.3</h3> <p><em>26 April 2025</em></p> <ul> <li>🛠 Dependency updates, including Python 3.13.3 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2371">#2371</a>)</li> </ul> <h3>v2.23.2</h3> <p><em>24 March 2025</em></p> <ul> <li>🐛 Workaround an issue with pyodide builds when running cibuildwheel with a Python that was installed via UV (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2328">#2328</a> via <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2331">#2331</a>)</li> <li>🛠 Dependency updates, including a manylinux update that fixes an <a href="https://redirect.github.com/pypa/manylinux/issues/1760">'undefined symbol' error</a> in gcc-toolset (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2334">#2334</a>)</li> </ul> <h3>v2.23.1</h3> <p><em>15 March 2025</em></p> <ul> <li>⚠️ Added warnings when the shorthand values <code>manylinux1</code>, <code>manylinux2010</code>, <code>manylinux_2_24</code>, and <code>musllinux_1_1</code> are used to specify the images in linux builds. The shorthand to these (unmaintainted) images will be removed in v3.0. If you want to keep using these images, explicitly opt-in using the full image URL, which can be found in <a href="https://github.com/pypa/cibuildwheel/blob/v2.23.1/cibuildwheel/resources/pinned_docker_images.cfg">this file</a>. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2312">#2312</a>)</li> <li>🛠 Dependency updates, including a manylinux update which fixes an <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2303">issue with rustup</a>. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2315">#2315</a>)</li> </ul> <h3>v2.23.0</h3> <p><em>1 March 2025</em></p> <ul> <li>✨ Adds official support for the new GitHub Actions Arm runners. In fact these worked out-of-the-box, now we include them in our tests and example configs. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2135">#2135</a> via <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2281">#2281</a>)</li> <li>✨ Adds support for building PyPy 3.11 wheels (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2268">#2268</a> via <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2281">#2281</a>)</li> <li>🛠 Adopts the beta pypa/manylinux image for armv7l builds (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2269">#2269</a> via <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2281">#2281</a>)</li> <li>🛠 Dependency updates, including Pyodide 0.27 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2117">#2117</a> and <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2281">#2281</a>)</li> </ul> <h3>v2.22.0</h3> <p><em>23 November 2024</em></p> <ul> <li>🌟 Added a new <code>CIBW_ENABLE</code>/<code>enable</code> feature that replaces <code>CIBW_FREETHREADED_SUPPORT</code>/<code>free-threaded-support</code> and <code>CIBW_PRERELEASE_PYTHONS</code> with a system that supports both. In cibuildwheel 3, this will also include a PyPy setting and the deprecated options will be removed. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2048">#2048</a>)</li> <li>🌟 <a href="https://peps.python.org/pep-0735/">Dependency groups</a> are now supported for tests. Use <code>CIBW_TEST_GROUPS</code>/<code>test-groups</code> to specify groups in <code>[dependency-groups]</code> for testing. (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2063">#2063</a>)</li> <li>🌟 Support for the experimental Ubuntu-based ARMv7l manylinux image (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2052">#2052</a>)</li> <li>✨ Show a warning when cibuildwheel is run from Python 3.10 or older; cibuildwheel 3.0 will require Python 3.11 or newer as host (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2050">#2050</a>)</li> <li>🐛 Fix issue with stderr interfering with checking the docker version (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2074">#2074</a>)</li> <li>🛠 Python 3.9 is now used in <code>CIBW_BEFORE_ALL</code>/<code>before-all</code> on linux, replacing 3.8, which is now EoL (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2043">#2043</a>)</li> <li>🛠 Error messages for producing a pure-Python wheel are slightly more informative (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2044">#2044</a>)</li> <li>🛠 Better error when <code>uname -m</code> fails on ARM (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2049">#2049</a>)</li> <li>🛠 Better error when repair fails and docs for abi3audit on Windows (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2058">#2058</a>)</li> <li>🛠 Better error when <code>manylinux-interpreters ensure</code> fails (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2066">#2066</a>)</li> <li>🛠 Update Pyodide to 0.26.4, and adapt to the unbundled pyodide-build (now 0.29) (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2090">#2090</a>)</li> <li>🛠 Now cibuildwheel uses dependency-groups for development dependencies (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2064">#2064</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2085">#2085</a>)</li> <li>📚 Docs updates and tidy ups (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2061">#2061</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2067">#2067</a>, <a href="https://redirect.github.com/pypa/cibuildwheel/issues/2072">#2072</a>)</li> </ul> <h3>v2.21.3</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pypa/cibuildwheel/commit/298ed2fb2c105540f5ed055e8a6ad78d82dd3a7e"><code>298ed2f</code></a> Bump version: v3.3.1</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/f0ff94431807b2d31ad3170007669061f91f0241"><code>f0ff944</code></a> [3.3.x] Update dependencies (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2708">#2708</a>)</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/63fd63b352a9a8bdcc24791c9dbee952ee9a8abc"><code>63fd63b</code></a> Bump version: v3.3.0</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/f4fe311fc96f735aa0d7beb74d6ae61801cf5382"><code>f4fe311</code></a> fix: support Docker 29 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2660">#2660</a>)</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/f6c810852d424abdddc6abc44d1e4b165797399d"><code>f6c8108</code></a> feat: make the <code>{project}</code> placeholder available to <code>repair-wheel-command</code> (#...</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/ccbae30b538eeacb2269052ca6603ba28485206b"><code>ccbae30</code></a> feat: support uv with Android (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2587">#2587</a>)</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/1337e50f74cda9ab8a65568b3052d7e4b82da54c"><code>1337e50</code></a> chore: pytest log_level is better than log_cli_level (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2657">#2657</a>)</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/720f8e266f6c4b5d3064fc8c366397266eaedfe5"><code>720f8e2</code></a> feat: add manylinux_2_35 (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2656">#2656</a>)</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/4c7f3696b166b9a2cefcd9c33a7ace9648a823b9"><code>4c7f369</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2658">#2658</a>)</li> <li><a href="https://github.com/pypa/cibuildwheel/commit/e1baa60eb0f6e7e57cbb5087940acefcaa86fb97"><code>e1baa60</code></a> chore: enable more Ruff checks (<a href="https://redirect.github.com/pypa/cibuildwheel/issues/2654">#2654</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pypa/cibuildwheel/compare/v2.23...v3.3">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Jinzhe Zeng <jinzhe.zeng@ustc.edu.cn> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jinzhe Zeng <jinzhe.zeng@ustc.edu.cn>
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6 to 7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/setup-uv/releases">astral-sh/setup-uv's releases</a>.</em></p> <blockquote> <h2>v7.2.1 🌈 update known checksums up to 0.9.28</h2> <h2>Changes</h2> <h2>🧰 Maintenance</h2> <ul> <li>chore: update known checksums for 0.9.28 @<a href="https://github.com/apps/github-actions">github-actions[bot]</a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/744">#744</a>)</li> <li>chore: update known checksums for 0.9.27 @<a href="https://github.com/apps/github-actions">github-actions[bot]</a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/742">#742</a>)</li> <li>chore: update known checksums for 0.9.26 @<a href="https://github.com/apps/github-actions">github-actions[bot]</a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/734">#734</a>)</li> <li>chore: update known checksums for 0.9.25 @<a href="https://github.com/apps/github-actions">github-actions[bot]</a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/733">#733</a>)</li> <li>chore: update known checksums for 0.9.24 @<a href="https://github.com/apps/github-actions">github-actions[bot]</a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/730">#730</a>)</li> </ul> <h2>📚 Documentation</h2> <ul> <li>Clarify impact of using actions/setup-python <a href="https://github.com/eifinger"><code>@eifinger</code></a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/732">#732</a>)</li> </ul> <h2>⬆️ Dependency updates</h2> <ul> <li>Bump zizmorcore/zizmor-action from 0.3.0 to 0.4.1 @<a href="https://github.com/apps/dependabot">dependabot[bot]</a> (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/741">#741</a>)</li> </ul> <h2>v7.0.0 🌈 node24 and a lot of bugfixes</h2> <h2>Changes</h2> <p>This release comes with a load of bug fixes and a speed up. Because of switching from node20 to node24 it is also a breaking change. If you are running on GitHub hosted runners this will just work, if you are using self-hosted runners make sure, that your runners are up to date. If you followed the normal installation instructions your self-hosted runner will keep itself updated.</p> <p>This release also removes the deprecated input <code>server-url</code> which was used to download uv releases from a different server. The <a href="https://github.com/astral-sh/setup-uv?tab=readme-ov-file#manifest-file">manifest-file</a> input supersedes that functionality by adding a flexible way to define available versions and where they should be downloaded from.</p> <h3>Fixes</h3> <ul> <li>The action now respects when the environment variable <code>UV_CACHE_DIR</code> is already set and does not overwrite it. It now also finds <a href="https://docs.astral.sh/uv/reference/settings/#cache-dir">cache-dir</a> settings in config files if you set them.</li> <li>Some users encountered problems that <a href="https://github.com/astral-sh/setup-uv?tab=readme-ov-file#disable-cache-pruning">cache pruning</a> took forever because they had some <code>uv</code> processes running in the background. Starting with uv version <code>0.8.24</code> this action uses <code>uv cache prune --ci --force</code> to ignore the running processes</li> <li>If you just want to install uv but not have it available in path, this action now respects <code>UV_NO_MODIFY_PATH</code></li> <li>Some other actions also set the env var <code>UV_CACHE_DIR</code>. This action can now deal with that but as this could lead to unwanted behavior in some edgecases a warning is now displayed.</li> </ul> <h3>Improvements</h3> <p>If you are using minimum version specifiers for the version of uv to install for example</p> <pre lang="toml"><code>[tool.uv] required-version = ">=0.8.17" </code></pre> <p>This action now detects that and directly uses the latest version. Previously it would download all available releases from the uv repo to determine the highest matching candidate for the version specifier, which took much more time.</p> <p>If you are using other specifiers like <code>0.8.x</code> this action still needs to download all available releases because the specifier defines an upper bound (not 0.9.0 or later) and "latest" would possibly not satisfy that.</p> <h2>🚨 Breaking changes</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/setup-uv/commit/eac588ad8def6316056a12d4907a9d4d84ff7a3b"><code>eac588a</code></a> Bump typesafegithub/github-actions-typing from 2.2.1 to 2.2.2 (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/753">#753</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/a97c6cbe9c11a3fc620e0f506b2967ef4fe74ebb"><code>a97c6cb</code></a> Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/751">#751</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/02182fa02a198f2423c87ba9a41982b2efbaa3ef"><code>02182fa</code></a> fix: warn instead of error when no python to cache (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/762">#762</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/a3b3eaea92d7cf978795e7ae0a996f861347b70b"><code>a3b3eae</code></a> chore: update known checksums for 0.10.0 (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/759">#759</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/78cebeceac116b9740b3fb83de1d99c68aa4ced9"><code>78cebec</code></a> fix: use --clear to create venv (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/761">#761</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/b6b8e2cd6a1bad11205c4c74af16307cdbecd194"><code>b6b8e2c</code></a> refactor: tilde-expansion tests as unittests and no self-hosted tests (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/760">#760</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/e31bec8546a22248f075a182e7e60c534bffa057"><code>e31bec8</code></a> chore: update known checksums for 0.9.30 (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/756">#756</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/db2b65ebaeba7fdae1dfc2a646812fa8ebccefe2"><code>db2b65e</code></a> Bump actions/checkout from 6.0.1 to 6.0.2 (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/740">#740</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/3511ff7054b4bdbf897f4410d573261859a8eeb2"><code>3511ff7</code></a> feat: add venv-path input for activate-environment (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/746">#746</a>)</li> <li><a href="https://github.com/astral-sh/setup-uv/commit/99b0f0474b8c709992d2d82e9cfa8745d4715d14"><code>99b0f04</code></a> Fix punctuation (<a href="https://redirect.github.com/astral-sh/setup-uv/issues/747">#747</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/setup-uv/compare/v6...v7">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Follow up deepmodeling/deepmd-kit@69eb0c3, use mdformat to format Markdown. - Add mdformat hook - Remove markdown from prettier types_or --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…ator into feat/support-ase-detect
dd21b23 to
e9d298c
Compare
Removed redundant guards: Deleted the try/except ASE_AVAILABLE and try/except SCIPY_AVAILABLE blocks. ase is a required dependency; from ase.neighborlist import natural_cutoffs, neighbor_list is now a plain top-level import.
Simplified _connectmolecule: Removed ~60 lines of scipy-based connected-components logic. The method now always uses the original dps algorithm.
Added _DetectCrd.__init__: Properly copies use_ase, ase_cutoff_mult, custom_cutoffs from rng via SharedRNGData, consistent with the pattern used for all other parameters. Also pre-parses custom_cutoffs once into self._parsed_custom_cutoffs instead of re-parsing on every timestep.
Simplified _getbondfromase: Replaced the manual two-pass global-cutoff approach with ASE's native dict-based per-pair cutoff support. Builds a complete {('El1', 'El2'): distance} dict covering all element pairs (natural cutoffs as default, custom values as overrides), then passes it directly to neighbor_list. ASE handles tilt box (arbitrary 3×3 cell) natively.
Removed noisy debug logger.info calls added by the PR in _DetectLAMMPSdump._readNfunc.
Fixed _getbondfromcrd: Changed getattr(self.rng, "use_ase", False) to self.use_ase (now properly set via SharedRNGData).
3fc096c to
7d250d1
Compare
for more information, see https://pre-commit.ci
1eda938
Summary by CodeRabbit
New Features
Improvements
Tests