Releases - torrust/torrust-index GitHub Wiki

Introduction

Release process: https://github.com/torrust/torrust-index/blob/develop/docs/release_process.md

v3.0.0

Release Plan

  • Release Version: 3.0.0
  • Release Date: 30/09/2024

1. Introduction

This document outlines the release plan for Torrust Index version 3.0.0. The release plan includes the grouped releases of the Tracker and Index. Our goal with this group-release is to bake a consistent stable base for the community to upgrade to.

Grouped releases:

2. Objectives

3. Release Schedule

Milestone Target Date Version
Feature Freeze 31/07/2024 3.0.0-alpha.12
Code Freeze 15/08/2024
Beta Release 31/08/2024 3.0.0-beta
Release Candidate 15/09/2024 3.0.0-rc.1
Final Release 30/09/2024 3.0.0

Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.

4. Pre-Release Tasks

4.1. Feature Freeze
  • Complete the development of all planned features.
  • Ensure all new features are tested and documented.
4.2. Code Freeze
  • Merge all feature branches into the main branch.
  • Conduct a full regression test to ensure no existing functionality is broken.
  • Perform code review and address any critical issues.
4.3. Beta Release
  • Tag the release in the version control system.
  • Publish the beta release on crates.io.
  • Announce the beta release to the community and invite feedback (blog post).
  • Document any known issues and workarounds.
4.4. Release Candidate
  • Incorporate feedback from the beta release.
  • Perform additional testing, including security testing.
  • Prepare release notes and update documentation.

5. Final Release

5.1. Packaging

We are not currently distributing packages. We are only building docker images for the x86_64-unknown-linux-musl architecture. Images are generated automatically.

  • Ensure the docker image is published and working.
  • GitHub release.
5.2. Documentation
  • Ensure all new features are documented.
  • Update user manuals, installation guides, and FAQs.
  • Prepare a detailed changelog.
5.3. Announcement
  • Prepare an official release announcement.
  • Post the announcement on the project’s website, mailing lists, forums, and social media.
  • Notify major open-source directories and repositories (e.g., GitHub, GitLab).

6. Post-Release Tasks

6.1. Monitoring
  • Monitor issue trackers and forums for any post-release issues.
  • Provide timely responses and fixes for any critical bugs.
6.2. Feedback Collection
  • Collect feedback from users and contributors.
  • Conduct a post-mortem meeting to discuss what went well and what could be improved in future releases.
6.3. Planning Next Release
  • Review the backlog and prioritize features and fixes for the next release.
  • Update the roadmap and communicate it to the community.

7. Responsibilities

Release Manager:

  • Oversee the release process
  • Ensure code quality and feature completion
  • Coordinate testing and bug-fixing
  • Update documentation and user guides
  • Handle announcements and community feedback

8. Communication Plan

  • Regular updates in the project’s communication channels: GitHub Discussions, Blog.
  • Weekly status meetings with the release team.
  • Detailed release notes and user-friendly guides for end-users.

9. Risk Management

Risk Mitigation Strategy
Delays in feature development Set realistic deadlines and monitor progress
Critical bugs found late Conduct thorough testing and have a contingency plan
Lack of community engagement Actively communicate and involve the community early

10. Conclusion

This release plan aims to ensure a smooth and successful release of Torrust version 3.0.0. By following this plan, we hope to deliver a high-quality software update to our users and continue to build a solid and engaged community around our project.