Introduction

This document outlines the our process for coordinating releases of the Fluid source code and the UX Toolkit.

Frequency of Releases

Fluid is planning to release versions of the Fluid framework, components, and UX Toolkit on a roughly quarterly basis. For more information about the specific timing of our releases, check out the Fluid Project 2007-9 Release Plan. The choice to release on a quarterly basis was made in order to:

Process

As we approach an upcoming release, the following process kicks into gear:

Task

Who Coordinates with the Community?

Identify the Release Manager

Project Manager, Tech Lead

Set the release date and code freeze date

Project Manager, Tech Lead, Release Manager

Coordinate with component design/development teams to produce a test plan for each Fluid component

QA Lead

Recruit QA testers

QA Lead

Create the Release Status page

Release Manager

Ongoing:

 

Ensure known issues have the correct fix version for the release

Release Manager

Discuss bug fixes and commits on fluid-work

Whole Community

QA testing

Whole Community

Bug fixing

Whole community

Review commits

Release Manager

Tag and packages the release

Release Manager

This is a collaborative process, and the community is encouraged to take an active role in defining schedules and coordinating the release process. It is expected that the Release Manager and QA Lead roles can rotating positions based on interest from members of the community.

About the Release Manager

The Release Manager is a volunteer from the community who agrees to be the primary point of contact for a release. The release manager's responsibilities includes:

Release Status

Each Fluid release will have a status page, documenting the deliverables expected for the release, including new functionality, documentation, and the contents of the UX Toolkit. The status page will also outline all of the known bugs and issues that are expected to be fixed in time for the release. The release status page should also include a summary of the goals for the release.

How to Create the Release Status Page

The following summarizes the steps to create a release status page:

  1. In Confluence, create a new wiki page as a child of the Project Coordination page called "Fluid x.y Release Status."
  2. Document the release goals
  3. Create a table outlining the release deliverables, including the status and coordinator for each deliverable
  4. In JIRA, create a filter showing all of the open issues corresponding to the release.
  5. Save the filter and share it publicly. This may require special access in JIRA, so ask if you need help.
  6. Grab the URL to the RSS feed of the filter.
  7. Use the jiraissues tag in Confluence to automatically pull in the contents of the RSS feed and display it in a table:
{jiraissues:http://issues.fluidproject.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&&pid=10001&resolution=-1&fixfor=10000&sorter/field=priority&sorter/order=DESC&tempMax=100&reset=true&decorator=none
|columns=key;priority;summary;updated;assignee;resolution;status}

Managing Unexpected Issues

Bugs happen. When unexpected issues or problems arise, the Release Manager, Technical Lead, or Project Manager will inform the community and work with them to adjust the release schedule accordingly. If you find an issue that you think is a blocker, let the Release Manager know as soon as possible.

If you discover a security issue, follow the Fluid Security Policy and report the issue privately to the security team.