Skip to content

feat(schemas): add package schema v1.2.2 with conda channel support#25

Merged
LittleCoinCoin merged 1 commit intoCrackingShells:mainfrom
LittleCoinCoin:schema-updates
Nov 3, 2025
Merged

feat(schemas): add package schema v1.2.2 with conda channel support#25
LittleCoinCoin merged 1 commit intoCrackingShells:mainfrom
LittleCoinCoin:schema-updates

Conversation

@LittleCoinCoin
Copy link
Copy Markdown
Member

Overview

This PR introduces package schema v1.2.2 with conda channel support, enabling packages to specify conda channels for Python dependencies. This enhancement allows for more flexible dependency management, particularly for scientific packages distributed through specialized conda channels.

Key Features

🎯 Conda Channel Support

  • New channel field: Optional field for specifying conda channels (e.g., colomoto, conda-forge, bioconda)
  • Enhanced package_manager: Re-enabled conda support alongside pip
  • Mixed dependencies: Support for both pip and conda dependencies in the same package

📋 Schema Changes

  • Updated package_schema_version to accept "1.2.2"
  • Added optional channel field with pattern validation ^[a-zA-Z0-9_\-]+$
  • Enhanced field descriptions and documentation
  • Added $schema property support for JSON schema references

📚 Documentation

  • Migration Guide: Comprehensive v1.2.2_migration_guide.md
  • Updated Examples: New v1.2.2 examples with conda channel usage
  • Field Documentation: Updated field reference with conda channel details
  • Practical Example: MaBoSS package example demonstrating conda install -c colomoto maboss

Use Case Example

The schema now supports the requested conda channel functionality:

conda install -c colomoto maboss

Translates to:

{
  "name": "maboss",
  "version_constraint": ">= 2.5.0",
  "package_manager": "conda",
  "channel": "colomoto"
}

Files Added/Modified

New Files

  • package/v1.2.2/hatch_pkg_metadata_schema.json - Main schema file
  • docs/package/v1.2.2_migration_guide.md - Migration documentation
  • examples/maboss_package_example.json - Practical conda channel example

Modified Files

  • README.md - Updated schema references
  • docs/package/fields.md - Updated field documentation
  • docs/package/examples.md - Added v1.2.2 examples
  • docs/package/overview.md - Updated version information
  • docs/usage/access.md - Updated schema URLs

Validation

✅ JSON schema syntax validation passed
✅ Conda channel examples validate successfully
✅ Mixed pip/conda dependencies work correctly
✅ MaBoSS example with colomoto channel validates perfectly
✅ Backward compatibility maintained

Backward Compatibility

  • No breaking changes to existing packages
  • All previous schema versions (v1.0, v1.1.0, v1.2.0, v1.2.1) continue to work
  • Migration to v1.2.2 is optional but recommended for packages requiring conda dependencies

Benefits

  1. Scientific Computing Support: Access to specialized conda channels like bioconda, conda-forge
  2. Flexible Package Management: Mix pip and conda dependencies as needed
  3. Enhanced Ecosystem: Better support for scientific and research packages
  4. Future-Proof: Foundation for additional package manager enhancements

This enhancement significantly improves the schema's capability to handle complex scientific computing dependencies while maintaining the simplicity and backward compatibility of the existing system.


Pull Request opened by Augment Code with guidance from the PR author

- Add conda channel support for Python dependencies
- Enable mixed pip/conda package management
- Support for specialized conda channels (colomoto, conda-forge, bioconda)
- Add comprehensive documentation and migration guide
- Include practical MaBoSS example demonstrating conda install -c colomoto maboss
- Update all documentation to reflect v1.2.2 capabilities
- Maintain backward compatibility with all previous versions

Resolves conda channel dependency management requirements
@LittleCoinCoin LittleCoinCoin linked an issue Sep 25, 2025 that may be closed by this pull request
@LittleCoinCoin LittleCoinCoin merged commit 59fb352 into CrackingShells:main Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Installation through conda/mamba

1 participant