Merge lp:~james-w/pkgme/add-docs into lp:pkgme
Proposed by
James Westby
Status: | Merged |
---|---|
Merged at revision: | 40 |
Proposed branch: | lp:~james-w/pkgme/add-docs |
Merge into: | lp:pkgme |
Prerequisite: | lp:~james-w/pkgme/fix-tests |
Diff against target: |
335 lines (+232/-26) 7 files modified
README.txt (+15/-17) conf.py (+2/-2) doc/authors/index.txt (+10/-0) doc/backends/index.txt (+109/-0) doc/index.txt (+12/-0) pkgme/info_elements.py (+15/-7) pkgme/rstinfo.py (+69/-0) |
To merge this branch: | bzr merge lp:~james-w/pkgme/add-docs |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
pkgme committers | Pending | ||
Review via email: mp+43727@code.launchpad.net |
This proposal supersedes a proposal from 2010-12-15.
Description of the change
Hi,
This branch adds some skeleton docs, splitting in to two
target audiences.
I want to get the backend docs to a good state first, as we want
to attract backend authors. I made a start on that documentation, but
the main aim of this branch was to write the sphinx extension.
This extension is similar to autodoc, but it writes out information on
the bits of information that backends can provide. This means that the
documentation will always be in sync with the code.
Thanks,
James
To post a comment you must log in.
Diff looks pretty good to me, though I think there are a few typos. Also, I get many failures in the test suite (I haven't tried the trunk to see if the same failures are there).
Here are just a few quick suggestions:
=== added file 'doc/backends/ index.txt' index.txt 1970-01-01 00:00:00 +0000 index.txt 2010-12-15 23:39:37 +0000
--- doc/backends/
+++ doc/backends/
> +pkgme itself is agnostic about the type of project that it is working on, but knows
> +how to put information about a project in to the packaging files such that result
"...into the packaging files such that the result should..."
> +should work, assuming that the information provided is good enough.
> +
> +Every time it needs a bit of information about the project, such as its name, or
> +the dependencies it requires, it asks the backend that is the best match for the
> +project.
"...it asks the matching backend for the project."
> +
> +In this manner, the backends, and so you as a backend author, don't need to know
"In this manner the backends (and you as a backend author), don't need..."
> +However, if it is asked about a Ruby on Rails project then it should report a higher
> +number, the question is just how high. Consider the fact that there may be a
> +generic Ruby backend, which would presumably be able to give some useful information
> +about this project. However, the Ruby backend shouldn't have to detect that this is a
> +Rails project, and know that there is a Rails backend, and so answer "0", as that would
s/and know/or know/
> +There are a couple of places where the backend needs to know something related to packaging.
> +
> +The first of these is in the specification of the build dependencies, where the backend
> +has to provide the list of packages that are needed. While the backend probably has
> +available the list of modules used or similar, it wouldn't be possible for pkgme to
> +translate these to a list of packages while remaining generic.
True, but I wonder if we could provide a set of conveniences for finding
packages. For example, a backend might know the name of an upstream package
it depends on, but not the binary package it must actually depend on. A
search facility (e.g. something like 'aptitude search') might be useful. Or
an API for finding the binary packages produced by a source package. Some of
that can be generalized even if the actual package dependency calculation must
be done by the backend.
> +Therefore one of the things the backend must be able to do is to go from the list of
> +modules to the list of packages that provide them, using whatever means is appropriate.
> +
> +The second area where the backend needs to know something related to packaging is specifying
> +what build system to use. pkgme leaves all the steps of actually building the package, knowing
> +what commands to run to build, what files to put where, up to debhelper. debhelper in turn
"...what files to put where, etc., up to..."
> +delegates some of this work to its buildsystems, which are analogous to pkgme's backends.
> +
> +Therefore pkgme needs to know which buildsystem to instruct debhelper to use, and for this it
> +will query the backend. This means th...