HctManualImports

HCT Manual Imports

Status

Introduction

There is a potential requirement that certain source packages that are not part of the requirements for BazImports be imported for use into HCT. These include source packages that:

  • have no, or at least no public, upstream CVS
  • are not in the Ubuntu main repository.

There's also a possibility that users will want to manage their own sources within HCT which aren't yet suitable for BazImports.

Rationale

Not all source packages have an upstream CVS, yet we want to be able to manage these within HCT and still allow changes to be pulled from newer releases.

Scope and Use Cases

  • Lamont maintains a package, bind9 that does not have a (public) upstream CVS. The only sources available to us are the public alpha, beta and full releases.

  • David maintains a package that doesn't have an upstream CVS, but does provide regular nightly snapshots of its tarballs as well as releases.
  • Brad is an upstream developer and wants to use HCT on his package, but his package isn't yet available in Launchpad. He wants to import it so he can use HCT with it.
  • Jane maintains a Debian-native package, the only source available is the Debian source package.

Implementation Plan

Dyson

To import upstream tarballs we will need a Gina-like process that:

  • Scans the FTP site specified by the Product and ProductSeries entries for new tarballs, including sub-directories.

  • Downloads them and places them in the "Launchpad Librarian"

  • Reports tarballs found by the Product record settings, but not in any ProductSeries (suggests a new series needs creating)

  • Parses the filename, and possibly files inside, to populate a ProductRelease entry for the new record

  • Adds ProductReleaseFile records to link the file in the librarian to the ProductRelease entry

This process will run from cron, and be called dyson.

Releases will be picked up and assigned to the correct ProductSeries, those sites with snapshots can be treated simply as a separate "nightly snapshot" series.

Sourcerer

Sourcerer is capable of chaining upstream tarballs and source packages without branching off CVS or release tarballs. Simply omitting the CVS information from ProductSeries, and any ProductRelease information causes this behavior, therefore no extra configuration will be required.

No changes are required, however we will need a job to identify those ProductRelease records with files in the librarian and no manifest and run Sourcerer to import them. This is almost identical to the way we would import SourcePackage records and can use exactly the same code with only slight changes.

Other Considerations

Brad's use case is simply fulfilled by providing him a method for registering his code in Launchpad and having the automatic process download the release, import and publish it.


CategoryUdu CategorySpec

UbuntuDownUnder/BOFs/HctManualImports (last edited 2008-08-06 16:20:54 by localhost)