Navigating Change in Conda-Build Recipe Formats: Balancing Legacy and Innovation
The recent approval of a new recipe format (v1) by the Conda Steering Council via CEP-13 and CEP-14 marks an important milestone in the evolution of package management in the conda ecosystem. While the community embraces the potential improvements that come with the new format, we acknowledge that the v1 recipe format is still undergoing development in rattler-build. Consequently, the v0 recipe format remains widely in use, emphasizing the need to balance innovation with support for legacy systems.
While the focus is on innovating with the v1 format, the transition and adoption will take time. In the meantime, we still need to remain responsive to the challenges and requirements of those who continue to rely on the v0 format for their packaging needs. Updates to the v0 format should be driven by the needs of the user community, guided by user feedback, and aimed at addressing pain points.
To initiate changes to the v0 conda-build recipe format, the following workflow is followed:
- Conda Enhancement Proposal: Any proposed modifications to the v0 format should also be proposed in the v1 format. The rationale being, if it's necessary for v0 it should also be necessary for v1. All proposals go through the CEP process; see CEPs.
- Review & Approval: The proposed modification will undergo the CEP review and
approval process and results in a v1 recipe format
schema_version
bump. - Implementation: Once approved, the changes can be implemented in the v0 format, ensuring alignment with the corresponding features in the v1 format.
As the community navigates the transition from v0 to v1, we aim to offer clear communication and guidance. Developers and maintainers need to be equipped with the resources and support necessary to understand the implications of the new format and make informed decisions about when and how to migrate (see rattler-build's recipe docs, rattler-build's migration docs, and conda-recipe-manager docs).
The approval of the v1 format represents an exciting step forward for the conda ecosystem. However, it's essential to recognize that change takes time, and the transition to the new format will be gradual. In the interim, the v0 format remains a critical component of the conda ecosystem and requires ongoing support and updates. As always the goal is to offer a smooth transition to the new standards while continuing to support the existing infrastructure and user base.