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:
It should read something like:
* 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.
|
download/index.html |
– |
marcus |
AOO 4.x |
New |
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 |
– |
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 |
– |
marcus |
AOO 4.x |
New |
Move all image files into an own "images/" and/or "cachedimages/" subdir. |
*.gif |
– |
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 |
– |
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 |
Chrome 22.0.1229.14 |
Resolved
|
||
In the green box, name clearly the Linux package that will be downloaded. Example: |
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 |
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: |
download/index.html |
– |
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 |
– |
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 |
– |
marcus |
AOO 3.4.1 |
Resolved |
Toggle all sites in languages.js with jre to 'n' and investigate Mac setting for each. |
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/ |
– |
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 |
– |
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 |
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. |
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. |
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/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 |
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 |
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 |
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.
1 Comment
Kay Schenk
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.