Space: Apache OpenOffice Community (https://cwiki.apache.org/confluence/display/OOOUSERS) Page: Improvements for the download webpages (https://cwiki.apache.org/confluence/display/OOOUSERS/Improvements+for+the+download+webpages)
Change Comment: --------------------------------------------------------------------- Added item about new directory structure for install files and re-work the DL scripts Edited by Marcus Lange: --------------------------------------------------------------------- {toc} h2. Immediate Concerns, Short Term Improvements The following tasks need to be done to improve the download webpages: || Desciption || File || Issue ID || Owner || Target || Status || | Chrom browser provide different platform data in "navigator.platform" and "navigator.userAgent" (i686 and x86_64), so it's not possible to handle this in our DL magic (see issue IDs for update). | download/download.js | Google \\ [44905 | http://code.google.com/p/chromium/issues/detail?id=44905] \\ [128167 | http://code.google.com/p/chromium/issues/detail?id=128167] \\ [117524 | http://trac.webkit.org/changeset/117524] \\ [86778 | https://bugs.webkit.org/show_bug.cgi?id=86778] | ? | ? | Waiting for Google's bugfix | | Create a test environment to simulate a AOO 4.0 download. Targets: \\ - Create a more simple and flat directory structure for the AOO install files \\ - Adapt the DL scripts to support the new directory structure \\ - Do some larger test cases to verify the re-work \\ | -- | -- | marcus | AOO 4.0 | New | | In the green box, present a respective text to the user that a download is not possible for the platform / language combination. Check the platform and language if a build is available. Example: \\ \\ Download Apache OpenOffice 3.4.0 \\ A release for <platform> and <language> is not available. Please choose from the alternative download webpage for another build. | download/index.html \\ download/download.js | -- | marcus | AOO 3.4.1 | New | | Extend the list of known/unknown platforms with others from the old error webpage for MirrorBrain. | download/download.js | -- | marcus | AOO 3.4.1 | New | | Integrate links to localized release notes into the download webpages. | download/index.html \\ download/others.html | -- | marcus | AOO 3.4.1 | New | | Move all script files into an own "scripts/" subdir. | download/\*.js \\ download/\*.css | -- | marcus | AOO 3.4.1 | New | | Cleanup the "download/" directory. | download/* | -- | marcus | AOO 3.4.1 | New | | Extended the logic to recognize Chromium browser to create download URL with deb or rpm package. | download/download.js | -- | ? | ? | New | | Separate the DL logic for ASF, SF and MB mirror systems into own files to get a better overview where is what located. \\ {color:#ff0000} \[not sure this is needed - Kay] \\ \[right, when all logic is in single file local variables can be used all over the place, clearly better - Marcus\] {color} | download/*.js | -- | ? | AOO 3.4.1 | New | | Attempt to put getLink() and hasMirror() in main page body with variable assignments to eliminate duplicate calls during processing. | download/*.js | -- | kschenk | AOO 3.4.1 | New | | Use version name and schema name to generate pack names to eliminate the long "if" statements. | download/*.js | -- | kschenk | AOO 3.4.1 | New | | Set download directory names for any language based on version and mirror. Use in conjunction with name and schema for accessing installs -- providing complete path to mirrors. | download/index.html \\ download/*.js | -- | kschenk/marcus | AOO 3.4.1 | New | | Refactor *.js files to cull out unused routines. | download/*.js | -- | ? | AOO 3.4.1 | New | | Create the table with download links automatically with parameters. | download/other.html | -- | marcus | AOO 3.4.1 | {highlight:yellow} In Progress {highlight} \\ [other_print.html | http://ooo-site.staging.apache.org/download/test/other_print.html] \\ [print_table_aoo.js | http://ooo-site.staging.apache.org/download/test/print_table_aoo.js] \\ [globalvars_print.js | http://ooo-site.staging.apache.org/download/test/globalvars_print.js] | | Add the checksum links into the automatically created table. | download/other.html | -- | marcus | AOO 3.4.1 | {highlight:yellow} In Progress {highlight} \\ [other_print.html | http://ooo-site.staging.apache.org/download/test/other_print.html] \\ [print_table_aoo.js | http://ooo-site.staging.apache.org/download/test/print_table_aoo.js] \\ [globalvars_print.js | http://ooo-site.staging.apache.org/download/test/globalvars_print.js] | | Implement hints for the "other_print.html". \\ \\ Kay: empty line between the "download" and the checksum links (add another <br />). \\ Dennis: add labels to the table and change the TOC into clickable links to the labels. | download/test/other_print.html | -- | marcus | AOO 3.4.1 | {highlight:yellow} In Progress {highlight} \\ [other_print.html | http://ooo-site.staging.apache.org/download/test/other_print.html] | | In the green box, name clearly the Linux package that will be downloaded. Example: \\ \\ Click to start downloading the most recent version for Linux <32-bit │ 64-bit> <DEB │ RPM> and English (US) | download/index.html download/download.js | -- | marcus | shortly after AOO 3.4.0 | {highlight:green} Resolved {highlight} | | Extended the logic to recognize "IceWeasel" to create download URL with deb package. | download/download.js | -- | marcus | shortly after AOO 3.4.0 | {highlight:green} Resolved {highlight} | | Make the redirect for not-supported languages (like en-GB) work again | download/index.html | [119357|https://issues.apache.org/ooo/show_bug.cgi?id=119357] | marcus | shortly after AOO 3.4.0 | {highlight:green} Resolved {highlight} | | In the sub-green box, shorten the text to make space for links to checksum files directly. Example: \\ \\ [Other Platforms and Languages|http://www.openoffice.org/download/other.html] │ [Legacy OOo Version|http://www.openoffice.org/download/legacy/index.html] │ [Release Notes|http://www.openoffice.org/development/releases/AOO3.4.0.html] │ Signatures and Hashes: (Link to ASC), (Link to MD5), (Link to SHA1), (Link to SHA512) │ [Verify your download with checksums|http://www.openoffice.org/download/checksums.html#howto] | download/index.html \\ download/download.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete all stuff that has to do with Bouncer. | download/*.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete all stuff that has to do with file name schema "old". These have the structure that was needed for Bouncer and is now no longer needed. | download/*.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete all stuff that has to do with offering JRE builds. This will simplify making script work for all 3.x versions. | download/*.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete the additional JS file and make sure that all is still working. | download/download2.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete all stuff that has to do with the old download and webtracking | download/download.js \\ download/download_mirrorbrain.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete all stuff that has to do with offering JRE and Mac builds. | download/languages.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Extend the lanuages with the native name (to ease the translation of the "index.html" webpage for the NL community) | download/index.html \\ download/languages.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Toggle all sites in languages.js with jre to 'n' and investigate Mac setting for each. \\ {color:#ff0000}\[IMHO we should simply delete the columns for JRE and Mac as it's no longer needed - Marcus\] {color} | download/languages.js | -- | kschenk/marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Cleanup the "download/test" subdir. \\ {color:#ff0000} \[see comments\] {color} | download/test/* | -- | kschenk/marcus ? | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Delete legacy MD5sums files from "download/" as they are already in the "legacy/" subdir. | download/md5sums/ \\ download/legacy/md5sums/ | -- | marcus | shortly after AOO 3.4.0 | {highlight:green} Resolved {highlight} | | Integrate the dev builds / nightly builds into the download webpages, refer to the [Wiki page|https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+Unofficial+Developer+Snapshots] instead to create new download links | download/index.html | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | | Extend the getLink() function to accept a specific ISO code to get forced to build a download URL for a specific language (and not only recognize the ISO code by "navigator.language") to allow localized download webpages on the several NL websites | download/index.html \\ download/download.js \\ download_mirrorbrain.js | -- | marcus | AOO 3.4.1 | {highlight:green} Resolved {highlight} | h2. Is the download working correctly for specific Linux + platform + browser combinations? || Linux || Package Manager || Platform || Browser || Correct download || Status || | Fedora | RPM | x86 | Firefox | {highlight:green} Yes {highlight} | | | Fedora | RPM | x86_86 | Firefox | {highlight:green} Yes {highlight} | | | Fedora | RPM | x86 | Chrom | {highlight:green} Yes {highlight} | | | Fedora | RPM | x86_86 | Chrom | {highlight:red} No {highlight} | Browser doesn't provide the correct platform value, see item in table above, x86 will be used | | openSUSE | RPM | x86 | Firefox | {highlight:green} Yes {highlight} | | | openSUSE | RPM | x86_86 | Firefox | {highlight:green} Yes {highlight} | | | openSUSE | RPM | x86 | Chrom | {highlight:green} Yes {highlight} | | | openSUSE | RPM | x86_86 | Chrom | {highlight:red} No {highlight} | Browser doesn't provide the correct platform value, see item in table above, x86 will be used | Debian | DEB | x86 | IceWeasel | {highlight:green} Yes {highlight} | | | Debian | DEB | x86_86 | IceWeasel | {highlight:green} Yes {highlight} | | | Debian | DEB | x86 | Chrom | {highlight:red} No {highlight} | Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used | | Debian | DEB | x86_86 | Chrom | {highlight:red} No {highlight} | Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used \\ Browser doesn't provide the correct platform value, see item in table above, x86 will be used | | Ubuntu | DEB | x86 | IceWeasel | {highlight:green} Yes {highlight} | | | Ubuntu | DEB | x86_86 | IceWeasel | {highlight:green} Yes {highlight} | | | Ubuntu | DEB | x86 | Chrom (from distro) | {highlight:green} Yes {highlight} | | | Ubuntu | DEB | x86_86 | Chrom (from distro) | {highlight:red} No {highlight} | Browser doesn't provide the correct platform value, see item in table above, x86 will be used | | Ubuntu | DEB | x86 | Chrom (from Google) | {highlight:red} No {highlight} | Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used | | Ubuntu | DEB | x86_86 | Chrom (from Google) | {highlight:red} No {highlight} | Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used \\ Browser doesn't provide the correct platform value, see item in table above, x86 will be used | | Ubuntu | DEB | x86 | Opera | {highlight:red} No {highlight} | Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used | | Ubuntu | DEB | x86_86 | Opera | {highlight:red} No {highlight} | Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used \\ Browser doesn't provide the correct platform value, see item in table above, x86 will be used | h2. Design Overhaul -- why we need it h5. Current State * Client is identified for OS, OS variant, language with JS (navigator.platform, navigator.user-agent). * Package for client is provided based on a schema and a mirror location in JS -- globalvars.js combined with a package naming, SCHEMA (for the desired version), client's language, and whether that client is available from the standard mirror or elsewhere. * Language, package locations, and other variables (most no longer used) are defined as a JS array in languages.js. h5. Current state -- problems. * The languages array now contains fields that are no longer used. * The languages array is setup with majors of some languages, i.e. "en", with a cumbersome structure of sub-versions. * As new language translations are added as standard to the mirror repository, the languages.js must be edited to reflect this. * As new versions are provided, a change to the SCHEMA variable must be made. * The current file structure on the mirrors for the distribution -- "stable" vs "localized" makes it difficult to easily collect download statistics. * The internal logic in the ".js" files -- download.js , and download_mirrobrain.js -- is fairly cumbersome and circuitous, making it difficult to ascertain results for more complicated cases, lack of navigator.platform, non-identifiable language, etc. * Manual editing is needed to properly construct package names depending on the SCHEMA for the version. * Due to so much manual editing, mistakes are likely. * It's basically impossible to proved the same set of js scripts for each version we might want to provide to the client. h5. Current state -- good aspects. * So far, it mostly works. h2. Design Overhaul -- Ideas for Retooling * A means to generate an XML feed from the package build process that would provide information (existence) for each language/platform. This file would need to be concatenated with the existng XML file and saved in www.openoffice.org/download. Older versions no longer provided could be easily eliminated. An entry indicating mirror name would need to be provided in this tree as well. {color:#ff0000}Additional details will follow.{color} This would eliminate manual editing to control much of the DL process. * Retool much of the js scripts to process the XML file, checking for the existence of the desired version w/language. Change your notification preferences: https://cwiki.apache.org/confluence/users/viewnotifications.action