You are viewing a plain text version of this content. The canonical link for it is here.
Posted to infrastructure-issues@apache.org by "Cédric Champeau (JIRA)" <ji...@apache.org> on 2015/04/29 22:06:05 UTC

[jira] [Created] (INFRA-9553) Migration of the Groovy website

Cédric Champeau created INFRA-9553:
--------------------------------------

             Summary: Migration of the Groovy website
                 Key: INFRA-9553
                 URL: https://issues.apache.org/jira/browse/INFRA-9553
             Project: Infrastructure
          Issue Type: Wish
            Reporter: Cédric Champeau
            Priority: Minor


The Groovy website is currently hosted on a dedicated server sponsored by Jetbrains. It would be
reasonable to migrate it to the ASF Infrastructure, but there are many specifics that make it
impossible to do so today without loosing major functionalities. This ticket aims at explaining
what we have and detail what can be achieved in a foreseeable future.

The site consists of several parts:

- a statically generated website, built using a custom engine written in Groovy [1] and hosted on a dedicated domain [2]
- documentation, uploaded as new Groovy releases are issued and hosted in a subdomain [3]

The static website and the documentation are interconnected, but the Groovy website
and the Groovy project have different lifecycles: the Groovy website is built independently
of Groovy builds. A commit on the master branch of the website project [1] will automatically:

- trigger a new build of the website on the CI server [4]
- deploy it on [1]

When a new version of Groovy is released, documentation is automatically uploaded to [3]. Each version of the Groovy documentation
is available through a dedicated URL in the form of http://docs.groovy-lang.org/<version>/. For example, docs for
Groovy 2.2.1 will be exposed in http://docs.groovy-lang.org/2.2.1/. In addition to version specific URLs, 2 symlinks are updated
on demand:

- "latest" points at the latest released version of Groovy
- "next" points to the latest *snapshot* version of Groovy

In particular, not only released version of Groovy trigger an upload of documentation to the server, but also each snapshot version.

When an official release is done, the "latest" and "next" symlinks need to be updated, and the website has to been regenerated:

- to include the newly released version of Groovy in the downloads page
- to regenerate a "skinned" version of the documentation available at [5] (there are reasons for this skinned documentation to
be different from the one available at [3] which are beyond the scope of this ticket).

To give some figures:

- latest zipped documentation is about 16.2 MB
- unzipped documentation weights 127 MB and contains 3651 files

"Upload" of both the website and documentation is very simple so far because it's hosted on the same server, so only consists of
unzipping the contents, but it should be very easy to use something else like GitHub pages to host the website pages. It's not
that simple for the documentation which is obviously much bigger and for which svnpub/git is a stopper. Best would be to be
able to upload a zip and unzip it remotely.

In addition to this, the webserver is an Apache HTTPd server with a special configuration:

- the 2 virtual hosts that were described here
- a set of RewriteRules to deal with redirections from the old Codehaus website. This is very important to keep them because most
of people still find documentation from Google on pages hosted on the old website. For that, a lot of redirects have been configured

Last but not least, all configuration, website configuration and server management is done by me. It would be nice if at some point
we could rely on the INFRA team :)

I hope this helps explaining what we have and what we need, I'd be happy to give you more details on demand.

[1] https://github.com/groovy/groovy-website
[2] http://groovy-lang.org
[3] http://docs.groovy-lang.org/latest/html/documentation/
[4] http://ci.groovy-lang.org/?guest=1
[5] http://www.groovy-lang.org/documentation.html





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)