This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Child pages
  • Improvements for the download webpages
Skip to end of metadata
Go to start of metadata

Immediate Concerns, Short/Mid Term Improvements

The following tasks need to be done to improve the download webpages:

Desciption

File

Issue ID

Owner

Target

Status

The section for additional links in the sub-green box - directly below the green download box - need to be re-worked. The links are very cramped, and there is no explanation of what they are for resp. what is the connection to the green box. At present the page reads:

Get all platforms, languages, language packs | Source code and SDK |
Portable USB versions and third-party ports | Older and legacy versions: 3.4.1 + 3.3.0 |
Signatures and hashes: KEYS , ASC , MD5 , SHA256 , How to verify? | Release Notes

It should read something like:

Signatures and hashes: KEYS , ASC , MD5 , SHA256 , How to verify?
Release Notes
(blank line)
Then another different colour box containing something like:
Looking for other downloads?

  • Builds of OpenOffice 4.0.0 for other platforms and languages
  • Additional Language packs for your OpenOffice installation
  • The source code and the SDK (Software Development Kit)
  • Portable USB versions and third-party ports of OpenOffice
  • Older and Legacy versions (should probably link to a separate page that explains the difference between 3.4.1 and 3.3.0)

* sebb: His suggestion from the dev@ mailing list.

download/index.html

marcus

AOO 4.x

New

Separate code from l10n. The "index.html" file with its green download button contains the processed download link, but also the text that is displayed to the user. Both should be separated from the HTML file. Then only some variables remain in the HTML file.

Advantages:

  1. The strings are better to indentify and then to translate. This can be located in a "download_l10n.js" file in L10N subdirs of "w.oo.o/".
  2. The JS logic can be put into the "download.js" file, too. Then L10N community just need to include this *.js file into their local download webpage.
  3. The whole embedded idea will be much more easier to maintain.
  4. Easier to update when there are improvements over the time.

download/index.html
download/download.js

marcus

AOO 4.x

New

Start with the "w.oo.o/dl/index.html" and test.

"DE" and "ES" could be a good candidates for intensive tests of a first l10n download webpage.

On the new webpage between "index.html" and "other.html" make a way available to download language packs.

download/?.html

marcus

AOO 4.x

New

Create a new webpage between "index.html" and "other.html" with choices the user can make (e.g., via drop-down-boxes) when the green download button does not provide the wanted build but the "other.html" is too confusing at this stage. Use the "other.html" as last resort and fallback if nothing else is working.

download/?.html

marcus

AOO 4.x

New

Extend the list of known/unknown platforms with others from the old error webpage for MirrorBrain.

download/test/download.js
download/test/index.html

marcus

AOO 4.x

In Progress



Test is running

Integrate links to localized release notes into the download webpages.

download/index.html

marcus

AOO 4.x

Problem



As log as the directory+filename structure is not unified, it will be more complicated than necessary

Show file sizes in the green download box. Then the users can compare for themselves roughly if the downloaded file is complete.

download/index.html

marcus

AOO 4.x

Resolved

Move all script files into an own "scripts/" subdir.

download/*.js
download/*.css

marcus

AOO 4.x

New

Move all image files into an own "images/" and/or "cachedimages/" subdir.

*.gif
*.jpg
*.png

marcus

AOO 4.x

Resolved

Cleanup the "download/" directory.

download/*

marcus

AOO 4.x

Resolved

Extended the logic to recognize Chrome browser to create download URL with deb or rpm package.

download/download.js

?

?

Not possible



Currently no possible way is known to reach this

Use version name and schema name to generate pack names to eliminate the long "if" statements.

download/*.js

kschenk

AOO 4.x

Recheck



Maybe not feasible given archive, etc considerations.

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 4.x

Resolved



Not applicable to Apache or SF download areas.

Chrome browser provides 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
128167
117524
86778

Google

Chrome 22.0.1229.14

Resolved


  • Fixed in version 22.0.1229.14
  • Not fixed in version 18.0.1025.151
  • Don't know what is inbetween

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

Resolved

Extended the logic to recognize "IceWeasel" to create download URL with deb package.

download/download.js

marcus

shortly after AOO 3.4.0

Resolved

Make the redirect for not-supported languages (like en-GB) work again

download/index.html

119357

marcus

shortly after AOO 3.4.0

Resolved

In the sub-green box, shorten the text to make space for links to checksum files directly. Example:

Other Platforms and LanguagesLegacy OOo VersionRelease Notes │ Signatures and Hashes: (Link to ASC), (Link to MD5), (Link to SHA1), (Link to SHA512) │ Verify your download with checksums

download/index.html
download/download.js

marcus

AOO 3.4.1

Resolved

Delete all stuff that has to do with Bouncer.

download/*.js

marcus

AOO 3.4.1

Resolved

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

Resolved

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

Resolved

Delete the additional JS file and make sure that all is still working.

download/download2.js

marcus

AOO 3.4.1

Resolved

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

Resolved

Delete all stuff that has to do with offering JRE and Mac builds.

download/languages.js

marcus

AOO 3.4.1

Resolved

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

Resolved

Toggle all sites in languages.js with jre to 'n' and investigate Mac setting for each.

* Marcus: IMHO we should simply delete the columns for JRE and Mac as it's no longer needed.

download/languages.js

kschenk/marcus

AOO 3.4.1

Resolved

Cleanup the "download/test" subdir.

download/test/*

kschenk/marcus ?

AOO 3.4.1

Resolved

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

Resolved

Integrate the dev builds / nightly builds into the download webpages, refer to the Wiki page instead to create new download links

download/index.html

marcus

AOO 3.4.1

Resolved

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

Resolved

Re-work to start over with the next bigger release (AOO 4.0, etc.)

The following tasks need to be done to re-work the download webpages:

Desciption

File

Issue ID

Owner

Target

Status

Part #2

 

 

 

 

 

Agree to a new directory structure. Current solution is:

* /<PROJECT_NAME>/<VERSION>/source/
* /<PROJECT_NAME>/<VERSION>/binaries/<LANG>/
* /<PROJECT_NAME>/<VERSION>/binaries/SDK/ 

download/test/*

All
(need to know: Release Manager, Kay, Marcus)

AOO 4.0

Resolved

Use a user dir on "people.apache.org" as test mirror and then put there some dummy files for testing.

marcus

AOO 4.0

Resolved

Adjust the DL scripting to use the new directory structure.

download/test/*

marcus

AOO 4.0

Resolved

Find some things to consolidate the scriping to reduce complexity.

download/test/*.js

marcus

AOO 4.0

Resolved

Make sure the webpages are W3C Validator compliant

download/test/*.html

marcus

AOO 4.0

Resolved

Do some larger test cases to verify the re-work

download/test/*

marcus

AOO 4.0

Resolved

Part #1

 

 

 

 

 

Creating a new subdir "new/" to avoid any interferring of the other DL scripts.

download/test/new/

marcus

AOO 4.0

Resolved

Copying over the latest versions of the DL scripts to "new/".

download/test/new/*

marcus

AOO 4.0

Resolved

Deleting the stuff regarding "we use 2/3 mirrors with a balanced system" (ASF / SF and MB). It seems that we we won't use it in the future.

download/test/new/download.js

marcus

AOO 4.0

Resolved

Combine some *.js files to make it more simpler. At the end I want to have the following only:

* globalvars.js
* download.js
* download_tables.js
* languages.js 

download/test/new/*.js

marcus

AOO 4.0

Resolved

Create the table with download links automatically with parameters.
Add the checksum links into the automatically created table.
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/new/other.html

marcus

AOO 4.0

Resolved



Deleting any pointing and naming to Mirrorbrain (e.g., URLs, function names). It seems that we won't support this system anymore.

download/test/new/*.js

marcus

AOO 4.0

Resolved

Refactor *.js files to cull out unused routines.

download/*.js

marcus

AOO 4.0

Resolved

Separate the DL logic for ASF, SF and MB mirror systems into own files to get a better overview where is what located.

* Kay: not sure this is needed.
* Marcus: right, when all logic is in single file local variables can be used all over the place, clearly better.

download/*.js

marcus

AOO 4.0

Resolved

Attempt to put getLink() and hasMirrorLink() in main page body with variable assignments to eliminate duplicate calls during processing.

download/*.js

marcus

AOO 4.0

Resolved



Reduced duplicate calls

Find some things to consolidate the scriping to reduce complexity.

download/test/new/*.js

marcus

AOO 4.0

Resolved

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/test/new/index.html

marcus

AOO 4.0

Resolved

Make sure the webpages are W3C Validator compliant

download/test/new/*.html

marcus

AOO 4.0

Resolved

Do some testing to verify the re-work

download/new/test/*

marcus

AOO 4.0

Resolved

Is the download working correctly for specific Linux + platform + browser combinations?

Linux

Package Manager

Platform

Browser

Correct download

Status

Fedora

RPM

x86

Firefox

Yes

 

Fedora

RPM

x86_86

Firefox

Yes

 

Fedora

RPM

x86

Chrome

Yes

 

Fedora

RPM

x86_86

Chrome

No

Browser doesn't provide the correct platform value, see item in table above, x86 will be used

openSUSE

RPM

x86

Firefox

Yes

 

openSUSE

RPM

x86_86

Firefox

Yes

 

openSUSE

RPM

x86

Chrome

Yes

 

openSUSE

RPM

x86_86

Chrome

No

Browser doesn't provide the correct platform value, see item in table above, x86 will be used

Debian

DEB

x86

IceWeasel

Yes

 

Debian

DEB

x86_86

IceWeasel

Yes

 

Debian

DEB

x86

Chrome

No

Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used

Debian

DEB

x86_86

Chrome

No

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

Yes

 

Ubuntu

DEB

x86_86

IceWeasel

Yes

 

Ubuntu

DEB

x86

Chrome (from distro)

Yes

 

Ubuntu

DEB

x86_86

Chrome (from distro)

No

Browser doesn't provide the correct platform value, see item in table above, x86 will be used

Ubuntu

DEB

x86

Chrome (from Google)

No

Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used

Ubuntu

DEB

x86_86

Chrome (from Google)

No

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

No

Browser doesn't provide a recognizable value to differentiate between RPM and DEB, RPM will be used

Ubuntu

DEB

x86_86

Opera

No

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

Design Overhaul – why we need it

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.
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.
Current state – good aspects.
  • So far, it mostly works.

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 the download area . Older versions no longer provided could be easily eliminated. An entry indicating mirror name would need to be provided in this tree as well. Additional details will follow.
    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.
  • No labels

1 Comment

  1. re cleanup of download/test

    I will take a look and move some of the things I want, like the old stuff dealing with java detection. The "newer" test items – new we could use to make these new modifications.