[repoman] conversation starter
Essien Ita Essien
me at essienitaessien.com
Sun Jul 1 18:45:38 EDT 2007
Paul Mattal wrote:
> So things have gotten off to a slow start, but they're speeding up.
>
> Have a look at the very first iteration of the repoman homepage:
>
> http://repoman.mattal.com
hey... looking good :)
>
> <snip>
> One thing I've been thinking about is whether our system can be entirely
> SCM agnostic, or at least designed in a way so that others could be used.
This is a very noble quest :) and infact I believe it is the best
approach. Low barrier to entry and no time wasting over best [D]SCM
talks (though i'll miss the nice flamings on [D]SCMs we _could_ have
had, if you'd allowed to us to argue about this :P)
>
> My idea was that in essence a repository can be completely specified as
> a set of (pkgname, PKGBUILD-dir, revision) triplets where no two package
> names are the same within a single repository. If you define some "UPL"
> or Uniform Package Locator comprised of essentially a name + SCM URL +
> revision, and you allow UPLs to support many different kinds of SCMs,
> you can end up expressing a repository as simply as:
>
> mypackage:svn://foo.bar.baz/mypackage:23785
> anotherpackage:cvs://arf.bar.boo/some/directory/anotherpackage:1.1.3
> package:hg://some.other.site/one/other/package:<revisionid>
> yapkg:git://...
I can't help thinking of the actual implementation at this stage. (my
coding arm is itching :) ). How will the folder structure look like, and
the SCM policy be? Do we maintain each package as its own REPO? Or all
of them as folders/modules under one repo?
Normally SVN and CVS have a repo root and then modules, and for DSCMs
like hg, you can usually only clone/pull the root. So I would guess that
we'd have repo's arranged like:
/reporoot/
-package1
PKGBUILD
...
-package2
PKGBUILD
...
Then for svn and cvs, svn://foo.bar.baz/mypackage would be come svn co
foo.bar.baz mypackage.
This would be problematic for hg (and git?), since we'd have to
clone(pull), the _entire_ repo first before now obtaining the *folder*
we're looking for. How also, would you be able to grab at the
<revisionid>s, being the tags are applied to the REPO not the
modules/folders in the REPO.
So it looks like package per REPO is the sanest way to do this, but
won't that be a lorry load of REPOs to manage?
Hope that mumbo jumbo makes some sense.
>
> The nice part is that this also alleviates the need for any sort of flag
> in SCM to tell you that a package is "current" or "testing" or whatever.
> The place where such a "tag" really belongs is in the specification for
> the repository, not the package.
makes sense.
>
> What do people think about this?
>
> You can then build a repository from just such a list, or export it to
> such a list. It's tempting to point to a higher level directory and get
> a whole bunch of packages.. but then remember you can't have a separate
> *version* specified for each package.
>
> Of course, you would have devtools and such to do the hard work for you.
> This is just how we would be thinking about things behind the scenes.
>
> - P
>
> _______________________________________________
> repoman mailing list
> repoman at archlinux.org
> http://archlinux.org/mailman/listinfo/repoman
>
More information about the repoman
mailing list