[repoman] first db and tool syntax work

Paul Mattal paul at mattal.com
Sat Jul 7 23:14:57 EDT 2007


So here's a first shot at the DB model:

   https://subzero.elys.com/svn/repoman/trunk/repoman/repos/models.py

And here's my first thoughts on what the syntax of the tool would look like.

   https://subzero.elys.com/svn/repoman/trunk/doc/REPOMAN.txt

Of these, the second seems more tentative to me right now. There could 
be a neater way to do this. I was thinking about if we should make the 
commandline options as pacman-like as possible or not. I have spec'd 
this out doing more word operation options, like you encounter in SCMs 
commandline tools.

Happy to hear thoughts on these!

Some things I thought about in process:

1) The repoman CLI can act as upload client and as management client. It 
would be nice to just have the client authenticate and talk to the DB 
directly for making updates. I think most DBs like postgres and mysql 
offer a way to do encrypted connections directly to them, and hopefully 
these mechanisms of connection are supported through the Django and 
Python DB abstraction layers.

2) The commit step gets separated from the upload step so you can do a 
bunch of work and then upload all the new packages at once via the most 
efficient transport. Thanks to package signatures, when you choose to 
put the same binary package into another repo, the server can tell it 
already has that package and doesn't require you to re-upload it!

3) There needs to be a custom server component of some sort anyway in 
order to handle updating the binary repositories themselves on disk and 
rebuilding the db files. So more than ever, I'm resolved to write that 
server component properly with SSL connection to the client and have it 
handle the file transfer step, too. I'll probably start with the 
codebase from the AUR tupkgs server.

4) Repos can depend on other repos. This means that it can only have 
dependencies in the same repo or in repos in its dependency tree. So 
extra depends on current, and this keeps you from putting packages into 
current that depend on packages in extra.

- P



More information about the repoman mailing list