Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
[[tags: egg]] == 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|"releasing your egg"]] document. === Requirements * [[spiffy]] * [[svn-client]] * [[intarweb]] * [[uri-common]] === 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 a toplevel directory named after the major CHICKEN release, with subdirectories matching the names of eggs. Those egg directories contain a "tags" directory for each revision, with the revision number as its name: /5 /MY-EGG /tags /1.0 /1.1 /ANOTHER-EGG /tags /0.1 /0.2 /1.0 /6 /MY-EGG /tags /2.0 /2.1 /SOME-NEWER-EGG /tags /0.1 You can use it like this (assuming you have [[spiffy-uri-match]] installed, too): <enscript highlight="scheme"> (import 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/{chicken-release}/") (vhost-map `((".*" . ,(uri-match/spiffy `(((/ "release-info") (GET ,release-info)) ((/ "files-list") (GET ,files-list))))))) (start-server) </enscript> This makes the release-info for the CHICKEN 5 version of egg MY-EGG, available under {{http://localhost:8080/release-info?egg=MY-EGG;release=5}} and the files-list for release 1.0 for the CHICKEN 6 version of MY-EGG under {{http://localhost:8080/files-list?egg=MY-EGG;egg-release=1.0;chicken-release=6}} <parameter>(egg-repo [URI-STRING])</parameter> {{URI-STRING}} is a string representing the repository URI holding the Subversion files. The placeholder {{{chicken-release}}} will get replaced with the requested major CHICKEN release. If none was supplied, "4" is assumed. <procedure>(release-info CONTINUE)</procedure> 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, and possibly a {{release}} query parameter that indicates the major release of CHICKEN for which to get the release info. <procedure>(files-list CONTINUE)</procedure> This serves up the file-list file. It assumes that {{current-request}} contains a request URI which contains a {{chicken-release}} query parameter that indicates the major CHICKEN version, an {{egg}} query parameter that indicates the name of the egg, and an {{egg-release}} query parameter that indicates the release version of the egg. === Changelog * 1.2 - Port to CHICKEN 6. * 1.1 - Port to CHICKEN 5. * 1.0 - Add support for multiple major CHICKEN releases. * 0.2 - Add extra validation so that empty egg names/release numbers are caught and a nice 400/404 is returned rather than triggering a hard assertion in libsvn and crashing the entire server. Thanks, Subversion team! :S * 0.1.1 - Improved error messages. * 0.1 - Initial release === Author [[/users/peter-bex|Peter Bex]] === Repository [[http://code.more-magic.net/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.
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you subtract 24 from 4?