OASIS

Architecture for building OCaml libraries and applications

What is OASIS-DB

This sub-project aims to create a CPAN for OCaml in OCaml. It relies on the metadata contained in the _oasis files that must be contained in the tarball of a project.

The project manages packages, which are sets of versioned tarballs of the same project. For example, the package ounit is the set of tarballs ounit-1.0.1.tar.gz, ounit-1.0.2.tar.gz and ounit-1.0.3.tar.gz. Each tarball must contain a _oasis file which describes its content.

You can upload a tarball for a package directly on our website or on the sandbox website. It is then checked for a valid _oasis file and published.

Once uploaded, a notification is sent through the website RSS feed. You can download the new tarball using a command line tool or directly from the website. If build dependencies are also published on the website, you have a direct link to it on the package's web page and can download it as well.

For now this sub-project is at the early development stage. You can get the technical specifications to see what is planned. You can also look at our website prototype.

This project is a joint effort of Jane Street and OCamlCore.

Features

Just upload a tarball to the website. OASIS-DB creates a web page, provide a download link and publish an RSS feed aggregated on OCaml planet.

OASIS-DB package's web page links to other published projects which are required to compile. We also use this feature to create "bundled" tarball that can integrate your project, its build dependencies and a script to compile everything.

If possible the download link on the package's web page points to a place of your choice, but we also provide a backup of this tarball.

If you publish a new version of your project in the forge with a _oasis file, it is automatically published through OASIS-DB. The login/password information of OASIS-DB website are shared with the forge.

To ease the publication of your project, OASIS-DB translates _oasis files into a GODI alternate repository. Since we also follow the track of Cabal, we provide a tool similar to cabal-install as a proof of concept .

We will cooperate with these OCaml search engines, by publishing data in a format that allows them to easily reuse new version notification.

We use uscan and DEHS ideas to get your package directly from your website. If you are already hosted on github, Google Code or SourceForge, you can create an action that will check for new upstream releases directly on these website and publish them automatically on OASIS-DB.

OASIS-DB is a website and a sub-system of OASIS. The website provide an API to manage packages. This API is used by the command line interface to publish and download packages from the website.

Technical details

When we built OASIS, we choose to copy the architecture of Cabal. Cabal is the foundation of HackageDB which is a kind of CPAN for Haskell. This sub-project will follow the same path, we will copy what has been done with HackageDB.

Moreover, we use this project as a demonstration of other important OCaml projects:

Contribute

You can submit bugs and feature requests. Just use the OASIS-DB product for your submission.

We use darcs to manage our source code. You can browse it online.

To get a copy of the source tree:

$> darcs get http://darcs.ocamlcore.org/repos/oasis-db

To send back patches using darcs:

$> darcs send --to oasis-devel@lists.forge.ocamlcore.org 

To update the source code with the latest available version:

$> darcs pull http://darcs.ocamlcore.org/repos/oasis-db

Further documentation about darcs on darcs.net.