Use conda-forge release flow for conda packages#368
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR consolidates three separate conda recipes ( ChangesConda Recipe Consolidation and Release Flow
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/publish.yaml:
- Around line 53-66: The current dedup logic builds ISSUE_TITLE as a constant
and queries gh issue list into EXISTING_ISSUE, which causes new releases to be
blocked if any prior "please update version" issue remains open; update the
script to include the release-specific identifier (e.g. the tag or version
variable such as GITHUB_REF_NAME or a RELEASE_TAG you compute) in ISSUE_TITLE
and in the gh issue list --search so the search is scoped to issues for this
exact release; modify the variables around ISSUE_TITLE and the gh command that
sets EXISTING_ISSUE (and any echo output) to reference that tag/version
identifier so only an open issue for the same release will prevent creating a
new one.
In `@conda/recipe/build-astcanopy.sh`:
- Line 15: The debug line echo "cmake: $(ls \"${PREFIX}/lib/cmake/clang\")" can
abort the script under strict mode if the directory/package is missing; change
it to a guarded check: test for the directory or glob first (using the PREFIX
variable and the "${PREFIX}/lib/cmake/clang" path) and only run ls or print its
contents when present, otherwise print a safe "not found" message or omit the ls
entirely so the build won't fail prematurely.
In `@conda/recipe/meta.yaml`:
- Around line 53-55: The test currently uses test.files to copy
lib/libastcanopy.so from the recipe instead of verifying the installed artifact;
replace the test.files entry with a test section that runs a command asserting
the installed shared library exists at ${PREFIX}/lib/libastcanopy.so (e.g., a
test command that checks for the file's presence or size). Update the meta.yaml
test block (replace test.files and its value) so the test invokes a
shell/command target that checks ${PREFIX}/lib/libastcanopy.so is present at
runtime.
In `@CONTRIBUTING.md`:
- Around line 94-95: Renumber the ordered sub-list items currently starting with
"7. Verify the publish workflow uploads PyPI wheels..." and "8. Verify docs
deployment publishes..." to start at "1." and "2." respectively so the nested
list resets after the block boundary and satisfies markdownlint MD029; edit the
two list markers in CONTRIBUTING.md to 1. and 2. while leaving the rest of the
bullet text unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: d7005d22-7797-4a6e-957d-c38171bcddca
📒 Files selected for processing (18)
.github/workflows/conda-python-build.yaml.github/workflows/publish.yamlCONTRIBUTING.mdci/build_conda_python.shci/test_conda_python.shci/upload_conda.shconda/recipe/build-astcanopy.shconda/recipe/build-numbast.shconda/recipe/conda_build_config.yamlconda/recipe/meta.yamlconda/recipes/ast_canopy/build.shconda/recipes/ast_canopy/conda_build_config.yamlconda/recipes/ast_canopy/meta.yamlconda/recipes/numbast/build.shconda/recipes/numbast/conda_build_config.yamlconda/recipes/numbast/meta.yamlconda/recipes/numbast_extensions/build.shconda/recipes/numbast_extensions/meta.yaml
💤 Files with no reviewable changes (10)
- conda/recipes/numbast/build.sh
- conda/recipes/ast_canopy/conda_build_config.yaml
- ci/upload_conda.sh
- conda/recipes/numbast_extensions/meta.yaml
- conda/recipes/numbast/meta.yaml
- conda/recipes/ast_canopy/build.sh
- conda/recipes/ast_canopy/meta.yaml
- conda/recipes/numbast_extensions/build.sh
- conda/recipes/numbast/conda_build_config.yaml
- .github/workflows/conda-python-build.yaml
| ISSUE_TITLE="@conda-forge-admin, please update version" | ||
| EXISTING_ISSUE="$( | ||
| gh issue list \ | ||
| --repo conda-forge/numbast-feedstock \ | ||
| --state open \ | ||
| --search "${ISSUE_TITLE} in:title" \ | ||
| --json number \ | ||
| --jq '.[0].number // ""' | ||
| )" | ||
|
|
||
| if [[ -n "${EXISTING_ISSUE}" ]]; then | ||
| echo "conda-forge update request already open: conda-forge/numbast-feedstock#${EXISTING_ISSUE}" | ||
| exit 0 | ||
| fi |
There was a problem hiding this comment.
Dedup check can block future release requests
Lines 53–60 search only by a constant title. If an older update issue is still open, a new tag release won’t create a new request, so the new release can be skipped unintentionally.
Proposed fix
- ISSUE_TITLE="`@conda-forge-admin`, please update version"
+ ISSUE_TITLE="`@conda-forge-admin`, please update version ${RELEASE_VERSION}"
EXISTING_ISSUE="$(
gh issue list \
--repo conda-forge/numbast-feedstock \
--state open \
--search "${ISSUE_TITLE} in:title" \
--json number \
--jq '.[0].number // ""'
)"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.github/workflows/publish.yaml around lines 53 - 66, The current dedup logic
builds ISSUE_TITLE as a constant and queries gh issue list into EXISTING_ISSUE,
which causes new releases to be blocked if any prior "please update version"
issue remains open; update the script to include the release-specific identifier
(e.g. the tag or version variable such as GITHUB_REF_NAME or a RELEASE_TAG you
compute) in ISSUE_TITLE and in the gh issue list --search so the search is
scoped to issues for this exact release; modify the variables around ISSUE_TITLE
and the gh command that sets EXISTING_ISSUE (and any echo output) to reference
that tag/version identifier so only an open issue for the same release will
prevent creating a new one.
|
|
@cryos I think the new conda build is about 20% faster than the old recipe. |
Summary
ast_canopyandnumbast.numbast-extensionsconda package.@conda-forge-admin, please update versionrequest onconda-forge/numbast-feedstock.CONDA_FORGE_FEEDSTOCK_TOKENsecret.Validation
bash -n ci/build_conda_python.sh ci/test_conda_python.sh conda/recipe/build-astcanopy.sh conda/recipe/build-numbast.sh.github/workflows/conda-python-build.yaml,.github/workflows/publish.yaml, andconda/recipe/conda_build_config.yamlgit diff --checkPROJECT_VERSION=0.10.0.dev7 GIT_DESCRIBE_NUMBER=7 conda render --output conda/recipeSummary by CodeRabbit
Chores
Documentation