Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add release and roadmap plan #18

Merged
merged 1 commit into from
Jul 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions Release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Release Planning

This document outlines Dragonfly process for planning and scheduling releases, so you can familiarize yourself with the flow of work from opening an issue to seeing it published in a release. We aim to ship updates to production approximately every 6 months, to ensure a continuous flow of improvements to our users.

## Release version

All release artifacts must follow [Semantic Versioning](https://semver.org). Each release milestone increments the minor version. In exceptional cases, the major version can be increased too.

We organize releases in two ways - marketing and milestones:

- Marketing releases are what we use to represent stable version.
- **for example: v2.1, v2.2, etc.**
- Milestones are used to track issues and pull requests associated with an upcoming release, and can be [followed on GitHub](https://github.com/Dragonflyoss/Dragonfly2/milestones)
- **for example: v2.1.x, v2.1.0-alpha.x, v2.1.0-beta.x, etc.**

Hotfixes should also be applied directly into each of the impacted release branches. Then, the fix can be merged back into master (or main) branch or cherry-picked.

## Release milestone

The Dragonfly project maintains a dynamic development cycle, addressing both existing feature bugs and implementing new functionalities. Each release follows a structured 26-week (6-month) timeline, divided into three key phases:
- Feature definition (~ 4 weeks)
- Feature implementation (~ 18 weeks)
- Stabilization and release (~ 4 weeks)

Given the complexity of significant features, their full integration often spans multiple release cycles. As a release nears completion, it's not uncommon for complex features to be rescheduled for the subsequent milestone. This approach ensures each feature meets the rigorous requirements of the project's feature lifecycle, maintaining the high quality standards of the Dragonfly project.

## Release note

[Dragonfly Maintainers](https://github.com/dragonflyoss/Dragonfly2/blob/main/MAINTAINERS.md) from different companies take turns to prepare key information such as [release notes](https://d7y.io/docs/next/roadmap-v2.2/).

## Release team

The release team has the responsibility of enforcing processes to ensure the release is successfully delivered. The release team consists of the following roles:

- **Release manager.** This role oversees enforcing the processes for a release and ensuring communication to all contributors and community on the ongoing status of the release. For each release, one release manager is selected from each participating company.
19 changes: 19 additions & 0 deletions Roadmap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Dragonfly Roadmap

This document outlines the high-level roadmap for the Dragonfly project, providing a strategic overview of planned developments. The roadmap is flexible and subject to change, not representing a firm commitment to specific features or timelines.

The project maintainers update this roadmap annually following each major release, and share both the roadmap and release versions as milestones on GitHub, ensuring easy tracking for the community.

## Releases

For each Dragonfly release, a corresponding [GitHub milestone](https://github.com/dragonflyoss/Dragonfly2/milestones) is established, bearing the name of the release version. GitHub issues are assigned to each milestones to effectively track the scope and progress of each release.

### Current Release

The current Dragonfly release is v2.1. Details can be found in the [release notes](https://github.com/dragonflyoss/Dragonfly2/releases/tag/v2.1.0).

### Next Release

The next release is v2.2 This release is currently in development. For details on upcoming features and important changes, please see our [v2.2 roadmap](https://d7y.io/docs/next/roadmap-v2.2/).

Dragonfly encourages innovation and continuous improvement. Before proposing a new idea, please check existing issues in the relevant Dragonfly repositories to avoid duplication and ensure your contribution is unique. For suggestions involving new APIs or significant changes to the Dragonfly runtime, please submit these in the Dragonfly [issues tracker](https://github.com/dragonflyoss/Dragonfly2/issues).