autogluon-conda-upgrade
Standardizes the process of upgrading AutoGluon packages in conda-forge through automated PR generation.
Install
mkdir -p .claude/skills/autogluon-conda-upgrade && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/8132" && unzip -o skill.zip -d .claude/skills/autogluon-conda-upgrade && rm skill.zipInstalls to .claude/skills/autogluon-conda-upgrade
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Automate AutoGluon conda-forge feedstock version upgrades. Use when the user wants to upgrade AutoGluon to a new version in conda-forge, create PRs for AutoGluon conda feedstocks, or update autogluon.common, autogluon.core, autogluon.features, autogluon.tabular, autogluon.multimodal, autogluon.timeseries, or autogluon meta-package feedstocks.Key capabilities
- →Automate AutoGluon version upgrades
- →Fork and clone conda-forge feedstocks
- →Compute SHA256 hashes for release tarballs
- →Generate pull requests for feedstock updates
- →Analyze dependency version bounds
How it works
It automates the feedstock update process by syncing forks, updating meta.yaml files with new hashes and dependencies, and creating PRs in dependency order.
Inputs & outputs
When to use autogluon-conda-upgrade
- →Updating AutoGluon version in conda
- →Generating conda-forge PRs
- →Managing AutoGluon meta-package upgrades
About this skill
AutoGluon Conda Feedstock Upgrade Workflow
CRITICAL: DO NOT MERGE PULL REQUESTS. Only create PRs. The user will review and merge them manually.
Step 1: Prerequisites Check
1.1 Check GitHub CLI
gh --version
If not installed, stop and tell the user to install from https://github.com/cli/cli#installation and run gh auth login.
1.2 Check Authentication
gh auth status
If not authenticated, ask user to run gh auth login.
1.3 Gather User Input
Ask for:
- New AutoGluon version number (e.g.,
1.5.0) - Working directory (default:
~/autogluon-feedstock-upgrade)
Step 2: Setup Working Directory and Fork/Clone Repos
mkdir -p {WORKING_DIR}
cd {WORKING_DIR}
gh repo fork conda-forge/autogluon.common-feedstock --clone=true --remote=true
gh repo fork conda-forge/autogluon.features-feedstock --clone=true --remote=true
gh repo fork conda-forge/autogluon.core-feedstock --clone=true --remote=true
gh repo fork conda-forge/autogluon.tabular-feedstock --clone=true --remote=true
gh repo fork conda-forge/autogluon.multimodal-feedstock --clone=true --remote=true
gh repo fork conda-forge/autogluon.timeseries-feedstock --clone=true --remote=true
gh repo fork conda-forge/autogluon-feedstock --clone=true --remote=true
Step 3: Compute SHA256 Hash
curl -sL "https://github.com/autogluon/autogluon/archive/refs/tags/v{NEW_VERSION}.tar.gz" -o /tmp/autogluon-{NEW_VERSION}.tar.gz
openssl sha256 /tmp/autogluon-{NEW_VERSION}.tar.gz | awk '{print $2}'
rm /tmp/autogluon-{NEW_VERSION}.tar.gz
If curl fails with 404, ask user to verify the version number.
Step 4: Fetch and Analyze Dependencies
4.1 Get Current (Old) Version
Read from {WORKING_DIR}/autogluon.common-feedstock/recipe/meta.yaml:
{% set version = "X.Y.Z" %}
4.2 Fetch Version Bounds
Fetch _setup_utils.py for both versions:
- New:
https://raw.githubusercontent.com/autogluon/autogluon/refs/tags/v{NEW_VERSION}/core/src/autogluon/core/_setup_utils.py - Old:
https://raw.githubusercontent.com/autogluon/autogluon/refs/tags/v{OLD_VERSION}/core/src/autogluon/core/_setup_utils.py
Extract DEPENDENT_PACKAGES dictionary and PYTHON_REQUIRES string.
4.3 Fetch Package-Specific Setup Files
For each subpackage (common, features, core, tabular, multimodal, timeseries, autogluon), fetch:
https://raw.githubusercontent.com/autogluon/autogluon/refs/tags/v{NEW_VERSION}/{SUBPACKAGE}/setup.py
The install_requires shows which DEPENDENT_PACKAGES each subpackage needs.
4.4 Create Dependency Change Summary
Compare old vs new. Summarize:
- Changed version bounds
- Added dependencies
- Removed dependencies
- Python version changes
Present summary to user and ask for confirmation before proceeding.
Step 5: Update Each Feedstock
Process in dependency order:
| Order | Feedstock | Dependencies |
|---|---|---|
| 1 | autogluon.common-feedstock | (none) |
| 2 | autogluon.features-feedstock | common |
| 3 | autogluon.core-feedstock | common |
| 4 | autogluon.tabular-feedstock | core, features |
| 5 | autogluon.multimodal-feedstock | core |
| 6 | autogluon.timeseries-feedstock | core, tabular |
| 7 | autogluon-feedstock | all subpackages |
For Each Feedstock:
5.1 Sync Fork and Create Branch (DO THIS FIRST)
cd {WORKING_DIR}/{FEEDSTOCK_NAME}
git fetch upstream
git checkout main
git reset --hard upstream/main
git checkout -b {NEW_VERSION}
5.2 Read Current meta.yaml
After creating branch, read recipe/meta.yaml to understand current structure.
5.3 Update meta.yaml
- Update version:
{% set version = "{NEW_VERSION}" %} - Update sha256: Use computed hash
- Reset build number:
number: 0 - Update Python version (if changed):
python >={{ python_min }},<{NEW_PYTHON_MAX} - Update dependency version bounds: Match
DEPENDENT_PACKAGES
Rules:
- Keep
autogluon.*dependencies as=={{ version }} - Only include dependencies from that package's
setup.py - Preserve existing comments
- Use conda naming (see Package Name Mappings below)
5.4 Handle python_min Changes
If minimum Python changed, update .ci_support/linux_64_.yaml:
python_min:
- '{NEW_PYTHON_MIN}'
Step 6: Commit and Push
For each feedstock:
cd {WORKING_DIR}/{FEEDSTOCK_NAME}
git add recipe/meta.yaml
git commit -m "Update to v{NEW_VERSION}"
git push -u origin {NEW_VERSION}
Step 7: Create Pull Requests
For each feedstock:
cd {WORKING_DIR}/{FEEDSTOCK_NAME}
gh pr create \
--repo conda-forge/{FEEDSTOCK_NAME} \
--title "Update to v{NEW_VERSION}" \
--body "$(cat <<'EOF'
## Summary
- Update {PACKAGE_NAME} to version {NEW_VERSION}
- Updated dependency version bounds from upstream
## Dependency Changes
{LIST_RELEVANT_CHANGES}
## Checklist
* [x] Used a personal fork of the feedstock to propose changes
* [x] Reset the build number to `0`
* [ ] Re-rendered (Use `@conda-forge-admin, please rerender` in a comment)
EOF
)"
Step 8: Final Summary
8.1 Provide PR Links
List all 7 created PRs with clickable links.
8.2 Merge Order Reminder
Merge PRs in dependency order:
autogluon.common(no dependencies)autogluon.featuresandautogluon.core(parallel)autogluon.tabularandautogluon.multimodal(parallel)autogluon.timeseriesautogluon(meta-package)
8.3 Post-Merge Instructions
After each PR's CI passes:
- Comment:
@conda-forge-admin, please rerender- Wait for rerender bot to update
- Once CI passes again, merge
- Wait for package to be published before merging dependent PRs
Appendix A: Dependency Tree
autogluon.common (base - no AG deps)
│
├── autogluon.features (depends: common)
│
├── autogluon.core (depends: common)
│ │
│ ├── autogluon.tabular (depends: core, features)
│ │
│ ├── autogluon.multimodal (depends: core)
│ │
│ └── autogluon.timeseries (depends: core, tabular)
│
└── autogluon [meta-package] (depends: all subpackages)
Appendix B: URL Patterns
| Resource | URL |
|---|---|
| Release tarball | https://github.com/autogluon/autogluon/archive/refs/tags/v{VERSION}.tar.gz |
| Version bounds file | https://raw.githubusercontent.com/autogluon/autogluon/refs/tags/v{VERSION}/core/src/autogluon/core/_setup_utils.py |
| Package setup.py | https://raw.githubusercontent.com/autogluon/autogluon/refs/tags/v{VERSION}/{SUBPACKAGE}/setup.py |
Appendix C: Sample PRs
- autogluon.common PR #6
- autogluon.features PR #5
- autogluon.core PR #8
- autogluon.tabular PR #15
- autogluon.multimodal PR #16
- autogluon.timeseries PR #7
- autogluon PR #6
Appendix D: Package Name Mappings
| PyPI Name | Conda-Forge Name |
|---|---|
| torch | pytorch |
| Pillow | pillow |
| scikit-learn | scikit-learn |
| PyYAML | pyyaml |
| opencv-python | opencv |
| tensorflow | tensorflow |
When not to use it
- →Merging pull requests directly
- →Manual feedstock repository management
Prerequisites
Limitations
- →Requires manual review and merging of PRs
- →Depends on GitHub CLI for repository operations
- →Limited to predefined AutoGluon subpackages
How it compares
It automates the entire multi-repo update workflow and dependency analysis instead of manually updating each feedstock individually.
Compared to similar skills
autogluon-conda-upgrade side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| autogluon-conda-upgrade (this skill) | 0 | 6mo | Review | Intermediate |
| dev | 2 | 6mo | Review | Advanced |
| pre-release | 1 | 3mo | Review | Intermediate |
| emitter-package-update | 1 | 2mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
dev
atopile
LLM-focused workflow for working in this repo: compile Zig, run the orchestrated test runner, consume test-report.json/html artifacts, and discover/debug ConfigFlags.
pre-release
ZhuoZhuoCrayon
Automates release preparation for throttled-py. Triggers when user message contains: - "release vX.Y.Z" with a GitHub release draft URL - "release vX.Y.Z" followed by changelog content Tasks: update version numbers, sync CHANGELOG_EN.rst and CHANGELOG.rst, run dependency sync.
emitter-package-update
Azure
Automate bumping typespec-python version in emitter-package.json for the Azure SDK for Python repository. Use this skill when the user wants to update @azure-tools/typespec-python to the latest version, create a PR for the version bump, or manage emitter-package.json updates.
klingai-ci-integration
jeremylongshore
Execute integrate Kling AI video generation into CI/CD pipelines. Use when automating video content generation in build pipelines. Trigger with phrases like 'klingai ci', 'kling ai github actions', 'klingai automation', 'automated video generation'.
uv
julianobarbosa
Guide for using uv - an extremely fast Python package and project manager written in Rust. Use when installing Python, managing virtual environments, adding dependencies, running scripts, building packages, or working with pyproject.toml. Replaces pip, pip-tools, pipx, poetry, pyenv, twine, and virt
airflow
ComeOnOliver
Apache Airflow lets you define workflows as Directed Acyclic Graphs (DAGs) in Python. Each DAG consists of tasks connected by dependencies, scheduled and monitored via a web UI.