Marketing/Release

From The Document Foundation Wiki
Jump to: navigation, search

This is a work in progress

Coordination

This table should help to coordinate the work needed at the different stages of the release by the teams. The beginning date for the tasks is Feature Freeze. As a general advice:

  • keep the communication on the list, off list messages for coordinating work are not recommended
  • avoid multiple lists posting; discussions which span over several lists, will be too difficult to follow and will lose its effectiveness
Team Deadline Tasks Comments
Marketing
RC
  • Preparation of the Features page on the site
  • Draft of the press release
  • The drafts should be ready for RC3 and finalized a couple of days following RC3 (coordinated with the dev team), only minor changes to go on in the last days.
  • Publish the Features page on SilverStripe without making it public (switches for this are on SilverStripe) and direct-email nl site maintainers of the availability of the page ready for translation. (Note that the native language teams need approximately 1 week to complete the translation of the Features page and have asked that there be at least 1 weekend during that time frame. The nl website maintainers need to be contacted by direct-email to warn them of upcoming deadlines and to communicate these deadlines to their teams. The site maintainers will need the Features HTML coded page for their site in order to shorten the amount of coding necessary to put up their Features page on SilverStripe -- this will setup all of the image links and tables for them.)
  • Ready "Features" redirector page on SilverStripe "Features" section
  • Direct-email site maintainers of any subsequent last minute changes to the Features page
  • Direct-email site maintainers to assess the number of nl sites who are readying their Features page and report the list back to the Marketing team
  • Direct-email a copy of the PR release (with embargo) to all of the site maintainers who will then make arrangements for translation with their teams and hold off publishing until a coordinated date is sent to them.
Final
  • Announcement
  • Press kit
  • Social Media alert message
  • New Features page on marketing POV
check on G+ - FB - Twitter - Identica - Linkedin - Reddit
  • Our official Facebook group
  • Our official Google + community
  • The official TDF Google + page
  • The Libreoffice subreddit
  • The Open Source subreddit
  • Our official TDF Twitter: @tdforg
  • Our official LibreOffice Twitter: @libreoffice
Post
  • Features page
  • Follow up with any changes to the Features pages with direct-email to nl website maintainers
Documentation
Beta/Rcs
  • Features list on the wiki
  • Release Notes
to be coordinated with QA and Marketing
to be coordinated for inclusion in l10n process
Final
  • Release notes
  • Installation guides
to be coordinated with Marketing
Website
Beta/Rcs
  • upload of the builds
  • update of the download page
mirror propagation

  • coordinate with the Marketing team and nl website maintainers and offer help to these groups with regards to the Features page -- this requires an email mailout to the nl maintainers for direct contact. Make sure the nl maintainers are aware of deadline dates.
  • visit nl sites and suggest any fixes to their Features page layout if any
Final
  • Publish the Features page by making it public
  • Update Download->Release notes page
  • Publish "Features" redirector page on SilverStripe "Features" section and make it public
  • Installation guides
  • Upload of the builds
  • Update of download page
  • Update of home page
  • Update the wiki home page
  • Check the "Get Help->Installation" pages and sync LibreOffice version with all installation pages.
coordinated with Marketing
coordinated with Documentation
mirror propagation/P2P/Torrents/ISO/Portable
Development
Beta/Rcs
  • release notes up to date
  • check with Marketing on "Featured Selection" list
  • check with Design & Marketing about About/Splash/etc.
  • prepare update notifications
  • check with l10n that all is ok
  • security bulletin
  • have devs include screenshots of features (on the release notes wikipage) where appropriate
Final
  • check the PR
  • check the Features page
coordinated with Marketing
QA
Beta/Rcs
  • BH sessions for Beta1 and RC1
Final
  • BSA
  • IZ
NLPs
Beta/Rcs
  • Release notes
  • Main page
  • Install notes
  • Download page
Final
  • Publish the PR
  • Social media/press
  • Publish site pages
  • Update wiki page
coordinated with Marketing

At least two irc chats should be organized where all the projects are represented

  • two weeks before the estimated release date
  • one week before the estimated release date

If the release date is reported, one more irc chat should be organized

At least two members to coordinate, check that all the projects cross communicate on the tasks

Script to generate updated text for release notes web page

The following script generates updated contents for the release notes page. It depends on xmllint (from libxml2) and curl. Use the HTML edit mode in SilverStripe. Be sure to fill in the release dates based on the announcement dates.

#!/bin/sh
# Generate up-to-date text for https://www.libreoffice.org/download/release-notes/
# You only need to manually fill in the release dates.
# Not POSIX sh compliant (portability is not the point).
# Use xmllint to grab the version numbers, send errors to /dev/null
# Fresh is always the first span element, so [1], still is [2]
# Get the minor version by using cut with period as delimiter.
# Get final RC version from the old versions directory index.
# xmllint reads from stdin with - and we can use a here string to pass it the curled contents.
download=$(curl --silent https://www.libreoffice.org/download/download/)
old=$(curl --silent https://downloadarchive.documentfoundation.org/libreoffice/old/)
freshFull=$(xmllint --html --xpath 'string((//span[@class = "dl_version_number"])[1])' - <<<"$download" 2>/dev/null)
freshMajor=$(echo "$freshFull" | cut -d'.' -f3 --complement)
freshMinor=$(echo "$freshFull" | cut -d'.' -f3)
freshRC=$(xmllint --html --xpath "(//a[starts-with(text(), \"${freshFull}\")])[last()]/text()" - <<<"$old" 2>/dev/null | tr -d '/' | cut -d'.' -f4)
stillFull=$(xmllint --html --xpath 'string((//span[@class = "dl_version_number"])[2])' - <<<"$download" 2>/dev/null)
stillMajor=$(echo "$stillFull" | cut -d'.' -f3 --complement)
stillMinor=$(echo "$stillFull" | cut -d'.' -f3)
stillRC=$(xmllint --html --xpath "(//a[starts-with(text(), \"${stillFull}\")])[last()]/text()" - <<<"$old" 2>/dev/null | tr -d '/' | cut -d'.' -f4)

# Index 0 is first release, index 1 is first bugfix release
ordinalArray=("first" "first" "second" "third" "fourth" "fifth" "sixth" "seventh" "eight" "ninth" "tenth")

# rc function is used for all except the first release.
# First argument is final RC version upon release, second is full version.
# Use here document to avoid escaping double quotes in the HTML.
rc() {
    local i="1"
    local rcVersion="$1"
    local full="$2"
    local rcString=""

    while [[ $i -le $rcVersion ]]
    do
    if [[ $i == "1" ]];
    then
    read -r -d '' rcString <<EndOfMessage
<a href="https://wiki.documentfoundation.org/Releases/$full/RC$i#List_of_fixed_bugs" target="_blank">bugs fixed in RC$i</a>
EndOfMessage
    elif [[ $rcVersion != "1" && $i == "$rcVersion" ]];
    then
    read -r -d '' rcString <<EndOfMessage
$rcString and <a href="https://wiki.documentfoundation.org/Releases/$full/RC$i#List_of_fixed_bugs" target="_blank">RC$i</a>
EndOfMessage
    else
    read -r -d '' rcString <<EndOfMessage
$rcString, <a href="https://wiki.documentfoundation.org/Releases/$full/RC$i#List_of_fixed_bugs" target="_blank">RC$i</a>
EndOfMessage
    fi
    
    i=$((i+1))
    done
    echo "$rcString"
}

# First argument is minor version, second is "fresh" or "still".
bugfix() {
    # Second condition checks, if second parameter has been given.
    if [[ $1 != "0" && -z ${2+x} ]];
    then
        echo "bugfix "
    elif [[ $1 != "0" && $2 == "fresh" ]];
    then
        # Use here document to avoid escaping double quotes in the HTML.
        # Start heredoc string with whitespace as we begin a new sentence.
        cat <<EndOfMessage
 For a list of fixed bugs compared to the previous release see the list of $(rc "$freshRC" "$freshFull").
EndOfMessage
    elif [[ $1 != "0" && $2 == "still" ]];
    then
        cat <<EndOfMessage
 For a list of fixed bugs compared to the previous release see the list of $(rc "$stillRC" "$stillFull").
EndOfMessage
    fi
}

cat <<EndOfMessage
<h4><a style="display: block; position: relative; top: -5em;" name="Fresh"></a>LibreOffice ${freshFull} (YYYY-MM-DD) - Fresh Branch</h4>
<p><span class="dl_description_text">The latest "fresh" version of LibreOffice, recommended for technology enthusiasts, which contains new features and program enhancements.</span>&nbsp;This version may contain a few annoying bugs which will be fixed in the next bugfix versions to come. Detailed release notes can be accessed from the link below.</p>
<p>LibreOffice ${freshFull} is the ${ordinalArray[$freshMinor]} $(bugfix "$freshMinor")release of the fresh line.$(bugfix "$freshMinor" "fresh")</p>
<p>In case of problems on Windows related to OpenGL rendering, you can disable it completely by applying a registry setting (only needed if LibreOffice crashes on startup, otherwise you can disable it in Tools|Options &rarr; LibreOffice &rarr; View). You can find the necessary fragment <a title="registry setting to disable OpenGL based rendering" href="https://bugs.documentfoundation.org/attachment.cgi?id=118060" target="_blank">in Bugzilla</a> (save with a .reg file extension, then you can double-click on the file to apply the change).</p>
<p><strong><a href="https://wiki.documentfoundation.org/ReleaseNotes/${freshMajor}">Click here to learn about the new features in LibreOffice ${freshMajor}</a></strong></p>
<hr />
<h4><a style="display: block; position: relative; top: -5em;" name="Still"></a>LibreOffice ${stillFull} (YYYY-MM-DD) - Still Branch</h4>
<p><span class="dl_description_text">The mature "still" version of LibreOffice, recommended for enterprises.&nbsp;</span>As such, the version is stable and is suitable for all users. Detailed release notes can be accessed from the link below.</p>
<p>LibreOffice ${stillFull} is the ${ordinalArray[$stillMinor]} $(bugfix "$stillMinor")release of the still line.$(bugfix "$stillMinor" "still")</p>
<p>In case of problems on Windows related to OpenGL rendering, you can disable it completely by applying a registry setting (only needed if LibreOffice crashes on startup, otherwise you can disable it in Tools|Options &rarr; LibreOffice &rarr; View). You can find the necessary fragment <a title="registry setting to disable OpenGL based rendering" href="https://bugs.documentfoundation.org/attachment.cgi?id=118060" target="_blank">in Bugzilla</a> (save with a .reg file extension, then you can double-click on the file to apply the change).</p>
<p><strong><a href="https://wiki.documentfoundation.org/ReleaseNotes/${stillMajor}">Click here to learn about the new features in LibreOffice ${stillMajor}</a></strong></p>
EndOfMessage