Pseudo-meta-egg-info

Description

Serve automatically generated release-info and meta-files via spiffy for henrietta-cache from Subversion.

See also svn-egg-author for another way to simplify release-info and meta-file management with Subversion. If you are using another VCS, see the "releasing your egg" document.

Requirements

Documentation

This is a really hacky plugin for spiffy that allows you to serve automatically-generated release-info files and files-list files (the latter of which serves as the files section of a meta-file) for an SVN repository.

It assumes the svn repository location contains subdirectories matching the names of eggs and those subdirectories contain a directory called "tags" with underneath it a directory for each revision, with the revision number as its name:

/MY-EGG
  /tags
    /1.0
    /1.1
/ANOTHER-EGG
  /tags
    /0.1
    /0.2
    /1.0

You can use it like this (assuming you have spiffy-uri-match installed, too):

(use spiffy spiffy-uri-match pseudo-meta-egg-info)

;; Trailing slash is mandatory here!
;; By default this uses the Chicken repo
(egg-repo "http://example.com/your-egg-repo/eggs/release/4/")

(vhost-map `((".*" 
              . ,(uri-match/spiffy
                  `(((/ "release-info") (GET ,release-info))
                    ((/ "files-list")   (GET ,files-list)))))))
(start-server)

This makes the release-info for egg MY-EGG available under http://localhost:8080/release-info?egg=MY-EGG

and the files-list for release 1.0 under http://localhost:8080/files-list?egg=MY-EGG;release=1.0

[parameter] (egg-repo [URI-STRING])

URI-STRING is a string representing the repository URI holding the Subversion files.

[procedure] (release-info CONTINUE)

This serves up the release-info file. It assumes that current-request contains a request URI which contains a egg-name query parameter that indicates the name of the egg.

[procedure] (files-list CONTINUE)

This serves up the file-list file. It assumes that current-request contains a request URI which contains a egg-name query parameter that indicates the name of the egg and a release query parameter that indicates the release version of the egg.

Changelog

Author

Peter Bex

Repository

https://bitbucket.org/sjamaan/pseudo-meta-egg-info

License

 All code in this egg is explicitly placed in the public domain. You may do whatever you want with it.

This code can be used as a basis for generating any kind of pseudo-meta-egg-info stuff, for example the svn backend could be easily modified to read files from a directory or from any other VCS.