Open
Conversation
- Reduce test matrix: skip Python 3.11, use reduced matrix for PRs - Exclude benchmark tests from regular CI (run in dedicated job) - Add cache restore-keys for better cache hit rates - Reduce flaky test reruns from 3 to 1 - Switch macOS to faster ARM runners (macos-latest) - Update SDK download for ARM architecture support
Add test_env_template config option that allows create_env to clone from a pre-existing template environment instead of creating from scratch. This provides ~38% speedup for test builds where the template contains all required packages. Cross-platform support: - macOS (APFS): uses cp -c for copy-on-write (~1.8s) - Linux: uses cp --reflink=auto for reflinks on btrfs/xfs - Windows: uses shutil.copytree (~2.5s) Also adds warm_package_cache pytest fixture that creates a session-scoped template environment with Python, pip, setuptools, and expat.
- Update package versions in test recipes to versions available on osx-arm64: - xz: 5.2.3 → 5.4.2 (30_top_level_finalized) - openssl: 1.0.2 → 3.0 (transitive_subpackage) - python: 3.6 → 3.10 (transitive_subpackage) - libpng: 1.6.34 → 1.6.37 (always_include_files_glob) - Update test_top_level_finalized assertion to match new xz version - Fix test_add_pip_as_python_dependency_from_condarc_file[False] by disabling template environment cloning for that test (template includes pip which defeats the test's purpose) - Skip R-related tests on osx-arm64 since r-base is not available in defaults channel for that platform
beckermr
reviewed
Feb 4, 2026
beckermr
requested changes
Feb 4, 2026
Contributor
beckermr
left a comment
There was a problem hiding this comment.
I have a few questions and confusions on my part.
This was referenced Feb 4, 2026
- Use `conda create --clone` instead of platform-specific copy methods for proper prefix replacement in scripts and metadata files - Use MatchSpec for proper spec parsing instead of manual string splitting - Fix test_transitive_subpackage_dependency: update assertion for openssl 3.0 - Fix test_top_level_finalized: update xz version to 5.6 (available in channels) - Update news file and docstrings to reflect the conda clone approach
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR improves CI test speed through several optimizations:
CI Workflow Improvements
test_render_recipe) now only run in the dedicatedlinux-benchmarksjobrestore-keysfallback patterns for better cache hit rates across jobsmacos-15-inteltomacos-latest(ARM), which are 2-3x fasterTemplate Environment Cloning (New Feature)
test_env_templateconfig option: Allowscreate_envto clone from a pre-existing template environment instead of creating from scratchconda create --clone: Properly handles prefix replacement in scripts and metadata filesMatchSpecfor spec parsing: Correctly handles all spec formats including~=,>=, and bracket syntax likenumpy[version='>1.0']warm_package_cachepytest fixture: Creates a session-scoped template environment with Python, pip, setuptools, and expatTest Fixes
test_transitive_subpackage_dependencyassertion to match openssl 3.0 (config was updated from 1.0.2)test_top_level_finalizedto use xz 5.6 (5.4.2 no longer available in channels)Estimated CI Impact
Why
test_render_recipewas slowThe benchmark test uses a complex conda-forge recipe (
petsc4py) with ~950 lines ofconda_build_config.yamlgenerating 48 variants on Linux. This is intentional for benchmarking real-world rendering performance.Test plan
linux-benchmarksjob