Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Info
titleAbout this Page

This document outlines our process for coordinating releases of the Fluid source code and the Design Handbook. This page is currently out of date.

Section
Column
width60%

What's in a Release?

We expect that each Fluid release will contain a combination of framework code, reusable user interface components, and documentation. More specifically:

Technology

  • JavaScript code for the Fluid framework
  • JavaScript, HTML, and CSS for Fluid components
  • Examples and sample code
  • API documentation and tutorials

Design Handbook

  • UI Design Patterns
  • UX Walkthrough checklists and techniques
  • User testing guidelines
Column
with40%
Panel
borderColor#566b30
bgColor#fff
titleBGColor#D3E3C4
titleOn this Page
borderStylesolid
Table of Contents
minLevel2
maxLevel2
excludeIntroduction*

Frequency of Releases

We release versions of the Fluid framework, components, and Design Handbook on a monthly basis. For more information about the contents of each monthly release, check out the Fluid Project 2007-9 Project Plan.

Release Version Number

Each release has a unique version number associated with it, e.g. "0.1" or "0.3beta1". This version number must be recorded consistently in a few locations:

  • Wiki pages and other documentation
  • The project pom.xml file
  • The ant build scripts properties file, build-scripts/build.properties
  • The version number of the Wiki API page snapshots
    The following instructions will describe more specifically when, where and how to record the release number.

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 the release deliverables

Project Manager, Tech Lead , UX Leads

Work 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

Update Wiki pages

Tech Lead, UX Leads

Ensure known issues in JIRA have been marked with the correct fix version for the release

Release Manager

Discuss ongoing bug fixes and commits on fluid-work

Whole Community

Ongoing QA testing and bug fixing

Whole Community

Review commits

Release Manager

Create snapshots of the wiki API documents

Release Manager

Tag and package 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 be rotating positions based on interest and expertise.

Anchor
releasemanager
releasemanager

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:

...

Anchor
statuspage
statuspage

Release Status

Each Fluid release will have a status page, documenting the deliverables expected for the release. This includes a a list of new functionality, documentation, and the contents of the Design Handbook. 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:

...

Anchor
updatewiki
updatewiki

Updating the Wiki for Release

Updating Wiki: Development

  1. Update any development API and integration pages.
  2. Update any demos
  3. House cleaning - Delete any unnecessary pages and information created in this past iteration.
  4. Update download & component pages (see below)

Release download pages

  1. Consider putting a disclaimer at the top of any affected pages, with the following text (or something similar):
    • "This page is currently being edited in preparation for the pending X.X release. It's contents should be considered in flux and unreliable until this warning is removed. For the latest stable release, see Fluid Infusion X.X."
  2. Duplicate the old Fluid Infusion - Current Release page into a new page called "Fluid Infusion X.X" where X.X is the old release number.
  3. Update Fluid Infusion - Current Release to the latest release.
    • Be mindful to follow the excerpt format. The links to the bundles at the top will be excerpted, and displayed on the Downloads and Demos page.
  4. Update the Downloads and Demos page to reflect any new demos that are now available.

Component pages

  1. Go to the Components page
  2. For each Component that was updated in this release, ensure that the relevant information page is updated.
  3. Update API, Integration, Demo, and Testing sections as necessary.

Updating Wiki: UX

  1. House cleaning - Delete any unnecessary design information (pages, notes, etc) added to the Wiki in this past iteration.
  2. Update any Components pages to reflect the current state of the design.
    • Wireframes, Storyboards, Design pattern, Functional Req, User Testing, Story Cards, User modeling, Accessibility.
  3. Verify that any changes to the Design Handbook is reflected.

Anchor
snapshotwiki
snapshotwiki

How to Create a Snapshot of the Wiki API Pages

The following process should be carried out for two sets of technical documentation: API Documents and Tutorials:

...

When all the pages have been snapshotted, edit the Table of Content page to reference the new versioned docs.

Anchor
packagerelease
packagerelease

How to Tag and Package the Source Code

A major constituent of the release is the "source code". This is a collection of JavaScript, Java, html, css, build script, example, and unit test files that are tracked using the fluid source code repository. The main tasks to create a release of the source code are to tag the current revisions of the source files, and to bundle them into an archive (e.g., a zip file).

How to Tag the Source Code

Note that the Fluid-0.1 release is used as an example in what follows. If you are using these instructions for another release, remember to substitute the correct version number for occurrences of "0.1".

...

and update the version to reflect the new version now in Fluid's trunk.

How to Package the Source Code

The steps to package the source code are:

  1. Check out a fresh, clean copy of the tagged version of the source code.
    • Execute:
      Code Block
      svn co https://source.fluidproject.org/svn/fluid/components/tags/fluid-0.1 fluid-0.1
      
  2. cd into the build scripts folder (fluid-0.1/build-scripts) and run the ant task to build the release bundle:
    Code Block
    ant
    
    This creates a folder called products and places the release bundles there: fluid-0.1.zip fluid-0.1-src.zip.
    • This zip file should contain the license files, as well as source, examples, and the war file.
  3. Test the distribution file thoroughly by unpacking it into a clean environment and running all tests, etc.

Posting the Distribution

The distrbution file should be made available on the main project site's Downloads page (http://fluidproject.org/index.php/downloads) and on the wiki's Fluid Infusion - Current Release page.

Updating Demos on the Fluid Project website

  1. Archive the existing Demos page: create a new sub page to the Demos page and copy and paste the Demos page content there.
  2. Extract a copy of the new minified source code and demos into the new releases' directory. (i.e. ~/website/docs/releases/0.999beta1)
  3. update the Demos page links to reference the new sample code.
    • add any new Demos
  4. Add a link from the Demos page to the Demos just archived in Step 1. Put this link under the "Past Releases" section at the bottom of the page.

Update JIRA

  1. Mark the version released, moving remaining open issues to the next version.
  2. Do a query for all unresolved issues that affect the previous release and release candidates. Add the new release version as an affected version for each issue in the results.

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.

...