-
Notifications
You must be signed in to change notification settings - Fork 192
Release Process Overview
This page provides a high-level overview of the release process for Apache Cloudberry (Incubating). It outlines the steps involved in preparing, voting on, and publishing releases in accordance with ASF requirements.
This section outlines the necessary steps and considerations before initiating a release of Apache Cloudberry (Incubating). Proper preparation ensures compliance with ASF policies and facilitates a smooth release process.
Before initiating a release, it's essential to define clear objectives and set a realistic timeline. This ensures alignment among contributors and stakeholders, facilitating a smooth release process.
- Scope Determination: Identify the features, enhancements, and bug fixes intended for the release.
- Compliance Goals: Ensure all planned changes adhere to ASF policies and licensing requirements.
- Quality Standards: Set criteria for testing, documentation, and code quality to be met before release.
- Milestone Planning: Outline key phases such as code freeze, testing periods, and voting windows.
- Resource Assessment: Evaluate the availability of contributors and adjust timelines accordingly.
- Buffer Inclusion: Allocate extra time to accommodate unforeseen challenges or delays.
- Documentation: Record the release goals and timeline in a shared document or tracking system.
- Stakeholder Engagement: Share the plan with the community via mailing lists or meetings to gather feedback and ensure transparency.
Assigning a Release Manager (RM) is a critical step in orchestrating a successful release. The RM is responsible for coordinating the release process, ensuring compliance with ASF policies, and serving as the primary point of contact throughout the release cycle.
- Coordinate Release Activities: Oversee the preparation, packaging, and distribution of the release artifacts.
- Ensure Compliance: Verify that all release components adhere to ASF licensing and distribution policies.
- Facilitate Communication: Act as the liaison between the development community and the PPMC, providing updates and addressing concerns.
- Manage Voting Process: Initiate and manage the voting process for the release, ensuring that all necessary approvals are obtained from the PPMC and IPMC.
- Handle Release Artifacts: Sign the release artifacts and upload them to the appropriate ASF distribution channels.
- Community Consensus: The RM should be selected through consensus within the community, typically involving a discussion and agreement on the development mailing list.
- Committer Status: The RM must be a committer with the necessary permissions to manage and publish release artifacts.
- Experience and Familiarity: Ideally, the RM should have experience with the project's release process and be familiar with ASF policies and procedures.
- Documentation: Maintain clear documentation of the release process to assist current and future RMs.
- Mentorship: Encourage experienced RMs to mentor new volunteers, fostering knowledge transfer and community growth.
- Rotation: Consider rotating the RM role among qualified community members to distribute knowledge and responsibilities.
Before initiating a release, it's crucial to ensure that the codebase is stable, compliant, and ready for distribution. This involves thorough reviews, testing, and final adjustments to meet the project's quality standards and ASF policies.
- Comprehensive Code Reviews: Ensure that all recent changes have been reviewed and approved by qualified committers. Focus on code correctness, clarity, and adherence to project standards.
- Testing: Verify that all unit, integration, and system tests pass consistently. Address any flaky or failing tests.
- Static Analysis: Utilize tools like linters or static analyzers to detect potential issues in the codebase.
- Dependency Audit: Review all project dependencies to ensure they are up-to-date and compatible with the Apache License. Remove or replace any dependencies with incompatible licenses.
- License Compliance: Confirm that all source files contain the appropriate ASF license headers and that the LICENSE and NOTICE files are accurate and complete.
- Documentation: Update README files, user guides, and other relevant documentation to reflect the upcoming release.
- Versioning: Ensure that version numbers are correctly set throughout the codebase, including in configuration files and documentation.
- Cleanup: Remove any deprecated code, unused files, or temporary artifacts that are not intended for the release.
By meticulously reviewing and finalizing the codebase, the project ensures a high-quality release that aligns with ASF standards and provides value to the community.
Ensuring that all documentation is accurate and up-to-date is a critical step in the release process. Comprehensive and current documentation enhances user experience and facilitates adoption of the new release.
- User Guides and Manuals: Verify that all user-facing documents reflect the latest features, configurations, and usage instructions.
- API References: Ensure that all API documentation is updated to match any changes or additions made in the release.
- Installation Instructions: Confirm that setup guides are accurate and include any new dependencies or configuration steps.
- Changelog: Compile a list of all significant changes, enhancements, and bug fixes included in the release.
- Migration Guides: Provide clear instructions for users upgrading from previous versions, highlighting any breaking changes or deprecated features.
- FAQ and Troubleshooting: Update common questions and solutions to address new features or known issues in the release.
- Format Consistency: Maintain a consistent format and style across all documentation to ensure readability.
- Localization: If applicable, update translations of documentation to include new content.
- Publishing: Ensure that all updated documents are published to the appropriate platforms, such as the project's website, repositories, or documentation portals.
By thoroughly updating documentation, the project ensures that users and contributors have the necessary information to effectively utilize and support the new release.
Ensuring that all code and dependencies comply with ASF licensing policies is a critical step in the release process. This verification helps maintain the project's integrity and legal standing.
- Audit Dependencies: Compile a list of all project dependencies, including direct and transitive ones.
- License Compatibility: Verify that each dependency's license is compatible with the Apache License 2.0.
- Update or Replace: For any dependencies with incompatible licenses, consider updating to a compatible version or replacing them with alternatives.
- Execute RAT: Use the Apache RAT tool to scan the codebase for license compliance.
- Identify Issues: Review the RAT report to identify files lacking proper license headers or containing incompatible licenses.
- Remediate Findings: Add missing license headers and address any other issues highlighted by the RAT report.
- LICENSE File: Ensure the LICENSE file accurately reflects the project's licensing terms and includes all necessary notices.
- NOTICE File: Update the NOTICE file to include attributions for bundled third-party components, as required.
- Third-Party Notices: If applicable, include a separate file detailing third-party notices and attributions.
By thoroughly verifying licensing and dependencies, the project upholds ASF standards and fosters trust within the community.
Content coming soon.
Content coming soon.
Content coming soon.
Content coming soon.
Content coming soon.
Content coming soon.