forked from bead-project/bead
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Goal
Make bead installable via conda install -c conda-forge bead or mamba install bead by publishing to conda-forge.
Dependencies
- Depends on: Publish bead to PyPI for pipx installation #1 (PyPI publication) - conda-forge strongly prefers packages to be on PyPI first
Current Status
- Package uses modern pyproject.toml configuration
- Has clear dependencies listed
- Python 3.10+ requirement is conda-friendly
Required Steps
1. Prerequisites
- Complete PyPI publication (Publish bead to PyPI for pipx installation #1) - REQUIRED FIRST
- Wait for PyPI package to be indexed (usually ~15 minutes)
2. Generate Initial Recipe with Grayskull
# Install grayskull
conda create -n grayskull
conda activate grayskull
conda install -c conda-forge grayskull
# Generate recipe from PyPI
grayskull pypi --strict-conda-forge bead3. Review and Adjust Recipe
The generated meta.yaml will need review for:
- Verify all dependencies are available on conda-forge
- Check if
argcompleteneeds special activation scripts - Ensure entry point
beadis correctly specified - Add appropriate test commands including
pip check - Set proper license identifier (The Unlicense →
Unlicense)
4. Fork and Submit to staged-recipes
- Fork https://github.com/conda-forge/staged-recipes
- Create branch:
add-bead-recipe - Add recipe to
recipes/bead/meta.yaml - Follow conda-forge linting standards
5. Create Pull Request
- Submit PR to conda-forge/staged-recipes
- Address reviewer feedback
- Wait for CI checks (Azure Pipelines) to pass
- Get approval from conda-forge reviewers
6. Post-Acceptance
Once the PR is merged:
- Bot creates dedicated feedstock repo:
bead-feedstock - Package builds automatically for multiple platforms
- Available on conda-forge channel within hours
7. Maintenance
- Become feedstock maintainer
- Set up automated updates via regro-cf-autotick-bot
- Monitor for dependency updates
Recipe Template (Starting Point)
{% set name = "bead" %}
{% set version = "0.8.1" %}
package:
name: {{ name|lower }}
version: {{ version }}
source:
url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
sha256: <TO_BE_FILLED_FROM_PYPI>
build:
noarch: python
number: 0
entry_points:
- bead = bead_cli.main:main
script: {{ PYTHON }} -m pip install . -vv
requirements:
host:
- python >=3.10
- pip
- flit-core
run:
- python >=3.10
- appdirs
- argcomplete >=3.6.2
- attrs
- cached-property
- pip >=25.1.1
test:
imports:
- bead
- bead_cli
commands:
- pip check
- bead --help
about:
home: https://github.com/codedthinking/bead
summary: Linked frozen computations
license: Unlicense
license_file: LICENSE
description: |
BEAD is a format for freezing and storing computations while bead
is a tool that helps capturing and managing computations in BEAD formats.
extra:
recipe-maintainers:
- <YOUR_GITHUB_USERNAME>Benefits of conda-forge
- Cross-platform binary packages (Windows, macOS, Linux)
- Automatic dependency resolution
- Integration with scientific Python ecosystem
- Works with both conda and mamba
- Automated rebuilds when dependencies update
- Community maintenance support
Timeline Estimate
- After PyPI publication: 1-2 days to prepare recipe
- PR review: 3-7 days typically
- Post-merge availability: 2-6 hours
References
Metadata
Metadata
Assignees
Labels
No labels