|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Golang Xen packages and the golang packaging system
George Dunlap writes ("Golang Xen packages and the golang packaging system"):
> So currently, our build system will install the xenlight package into
> $PREFIX/share/gocode/src/golang.xenproject.org/xenlight. However, it
> actually takes a bit of wrestling to get golang to use this location, and
> makes it difficult to use shared code. It would be nice if people could
> simply add `golang.xenproject.org/xenlight` to their dependencies, and have
> `go get` just DTRT.
>
> This basically involves two things:
>
> 1. Creating a publicly-accessible suitable git repo containing the golang
> package(s)
>
> 2. Causing `curl golang.xenproject.org/$PKGNAME` to return some HTML with the
> following rune:
>
> <meta name="go-import" content=“golang.xenproject.org git $URL”>
>
> Where $URL points to the tree from #1.
>
> We should probably also have some more human-friendly content in case someone
> wanders there with a web browser.
>
> “Suitable git tree” means:
> - That it contains just the bindings.
...
> So what we’d need to do is have a process / hook somewhere which would, on
> push to xenbits.xenproject.org/xen.git ’s master branch:
> - Generate the bindings from the source code
> - Copy these bindings into the git repo, replacing the old bindings entirely
> (i.e., deleting files which don’t exist any more, adding new files)
> - Running ‘git commit’, probably with information about the commit from
> which this code has been generated
> - Check to see if there is a new RELEASE-X.Y.Z tag and generate an
> appropriate tag
> - Push to the git repo in step #1 above
This is quite unpleasant. In particular, it makes a git tree out of
output files. What will we do when someone sends us patches to the
bindings ?
Can we not instead provide some metadata at the top level of xen.git
which tells golang how to run enough of our build system to build the
needed .go files ?
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |