Marketing/Release

    From The Document Foundation Wiki

    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. Click Expand to display the script.

    #!/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" "eighth" "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