Return-Path: X-Original-To: apmail-incubator-ooo-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-ooo-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D1F0AC538 for ; Wed, 16 May 2012 19:54:16 +0000 (UTC) Received: (qmail 84797 invoked by uid 500); 16 May 2012 19:54:16 -0000 Delivered-To: apmail-incubator-ooo-dev-archive@incubator.apache.org Received: (qmail 84720 invoked by uid 500); 16 May 2012 19:54:16 -0000 Mailing-List: contact ooo-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ooo-dev@incubator.apache.org Delivered-To: mailing list ooo-dev@incubator.apache.org Received: (qmail 84712 invoked by uid 99); 16 May 2012 19:54:16 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 May 2012 19:54:16 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of andrew.rist@oracle.com designates 141.146.126.227 as permitted sender) Received: from [141.146.126.227] (HELO acsinet15.oracle.com) (141.146.126.227) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 May 2012 19:54:06 +0000 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q4GJrhMs013459 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 16 May 2012 19:53:44 GMT Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157]) by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q4GJrhwh018653 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 16 May 2012 19:53:43 GMT Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59]) by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q4GJrgqd031637 for ; Wed, 16 May 2012 14:53:43 -0500 Received: from [130.35.70.168] (/130.35.70.168) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 16 May 2012 12:53:42 -0700 Message-ID: <4FB405C4.7060407@oracle.com> Date: Wed, 16 May 2012 12:53:40 -0700 From: Andrew Rist User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: ooo-dev@incubator.apache.org Subject: Re: Thoughts on AOO release size and complexity -- Can we do better? (And what does "better" mean in this case?) References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-Virus-Checked: Checked by ClamAV on apache.org see idea #5 below On 5/16/2012 12:06 PM, Rob Weir wrote: > Release = Size * Platforms * Languages > > That's the basic math we're dealing with now. Let's ignore SKD and > langpacks since they are much smaller. > > An AOO install is around 150MB. > > We currently support 6 platforms (taking into account different Linux > packaging models), and 15 languages. > > So Release = 150MB * 6 * 15 = 13.5 GB. > > Let's look at AOO 3.4.1 where we will probably add Finnish, UK > English, Norwegian and Hebrew. > > So Release = 150MB * 6 * 19 = 17.1 GB. This gets added to the > previous 13.5 GB, since we keep older releases around, or at least we > do currently. > > Imagine then future growth. Maybe Windows 64-bit, OS/2, OpenIndiana. > Imagine we get back to 44 languages supported via full installers. > Then what? > > Release = 150 MB * 9 * 44 = 59.4 GB. > > So we're not talking TB's here. But it does add up, if we want > preserve the release artifacts for earlier releases. > > Aside from storage, this is complexity for build a release. It is > more stuff to build, more stuff to schlep around people.apache.org for > release candidates, more complexity in download scripts, more stuff to > sign, more places to make mistake. Someone could make a full time job > just managing the builds and releases of this full matrix. > > Now to be fair, this matrix is optimal for the end user. 99% of the > users can download a single file and it has everything they need. No > extra things to download. And their download is as small as it can be. > It is perfect for them. > > But I wonder if we can make a radical simplification while still > making it really easy for the user? Unless of course, someone wants > to volunteer to be a full-time build engineer? > > ==Idea #1== > > Factor out the translations for the install program versus the AOO > program itself. Make the installer support all languages. > > Make core installer only have en_US resources. Everything else is > provided via language packs. > > Make the language pack be platform-neutral, e.g., resources only. > Rely on the installer that you've already downloaded for the logic to > install the language pack. > > Have the installer prompt the user at the end of the install to > install a language pack and then take them to the right webpage to > download. > > Have the installer look in the current directory for any language > packs and automatically install them at the end of the install. This > would support install fro or other places where additional downloads > are not possible. > > Pro: A full release size then becomes 150 MB x Platforms + 20MB * > Languages. So the monster case that was 59.4 GB above now becomes 2.3 > GB. > > Con: A lot of Dev work. > > ==Idea #2== > > Create a single multi-language install that covers whatever languages > are needed to support 99% of our users. I've heard this idea > suggested, but it doesn't really work. We have "long tail" effect > here. Even if you bundle the top 20 languages it is still only a > little over 80% of our users. > > ==Idea #3== > > Create language installs on-demand via a cgi script. An MRU cache > would make the most common ones already ready. > > Pro: Can essentially dial in whatever space you want to allocate for > the cache. Is efficient with respect to bursty traffic, e.g., we get > a sudden appearance on the evening news in Kazakhstan. > > Con: Security aspects of cgi, and low likelihood that mirror operators > are willing to donate more CPU cycles as well. > > ==Idea #4== > > Chill. Relax. Disk space is cheap and dropping. > > Con: It is not just disk space. It is complexity as well, especially > for our release process. > > ==Idea #5== Two changes - create an installer that works from a local file system (or CD) that installs all of the signed and well formed artifacts in the fs. This means that it will install base AOO, language packs, extensions (dictionaries) , and templates. - create a bootstrap installer that will download the appropriate bits from the interwebs to your local fs and then kick off the install. Pro: - has lower disk footprint in archives and limits download bandwidth to required bits - provides seamless install experience for user whether from web, local fs, or cd. - improved install experience, as extensions, templates, extra languages, etc can be added into the base install seamlessly. - allows for value add downstream packaging - with dictionaries, extensions, etc. Once the file structure is created it can easily be written to media, thus custom install on a cd. - with proper design on bootstrap installer, the download can be optimized (compression, restartability, etc) Cons: - it is only ideaware at the moment > > > > Regards, > > -Rob