public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Brian Dolbec <dolsen@gentoo.org>
To: gentoo-portage-dev@lists.gentoo.org
Subject: Re: [gentoo-portage-dev] New proposed modular sync system
Date: Thu, 30 Jan 2014 21:27:29 -0800	[thread overview]
Message-ID: <20140130212729.4826fc2f@big_daddy.dol-sen.ca> (raw)
In-Reply-To: <1389288831.7103.75.camel@big_daddy.dol-sen.ca>

On Thu, 09 Jan 2014 09:33:51 -0800
Brian Dolbec <dolsen@gentoo.org> wrote:

>  
> I have started a Proposals sub-page under the Portage project page in
> the wiki.  It has a link to a diagram I made showing how the plug-in
> system is laid out.  This thread will be used to discuss the proposal
> and the details needed for the module_spec dictionary that is used to
> provide the manager with the details of what a module provides,
> options, etc..
> 
> For a working example of the system in action, just try out emaint -h,
> and some other actions it provides.  Then move one of it's modules out
> of the the emaint/modules/ directory and re-try emaint -h.  You will
> see the options for that module and it's actions are no longer
> available. No code editing was required, no errors occurred,...  Put
> it back, retry...
> 
> The modular sync system I propose would re-use that plug-in manager to
> interface the sync manager code with the modules that perform the sync
> actions.  This sytem is easily extended with new modules for different
> transfer methods or VCS specific modules.
> 

STATUS UPDATE:

I have pushed the plugin-sync branch to the main portage.git repo on
g.o.g.o [1].  It has working and tested code for the rsync and git
modules.  The CVS module I have not yet tested or done any debugging on.

First off, let me state that this is only minimally changed code to
make it function.  It is by no means ready for any code review other
than for general program structure and the data that we need/want to
pass between the controller and the modules.

I have updated the Proposal page [2] with more things to do as well as
some insights I discovered during the initial porting.

Next up for discussion is what additional functionality should a module
supply?

I think it should provide a list or dictionary of the repos.conf
variables it needs or uses.  I also think that the module should
provide a function for validating the conf variables meet some minimum
standard/obvious error checking.

For a more involved example of the types of information that can be
passed through the module_spec see the working emaint logs module file
[3].  The information required/provided does not affect the plugin
system.  It is a standard set up by the controller and the modules
requirements.

So, please look over the code, avoid commenting on the poor code
quality just yet.  Before I work on cleaning up/improving the code I
wanted to establish what we feel the requirements should be.



[1]
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=shortlog;h=refs/heads/plugin-sync
[2] https://wiki.gentoo.org/wiki/Project:Portage/Proposals
[3]
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=blob;f=pym/portage/emaint/modules/logs/__init__.py;h=0407efe2bef19f2f815c53790e1ea790366b9967;hb=HEAD


-- 
Brian Dolbec <dolsen>



  parent reply	other threads:[~2014-01-31  5:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-09 17:33 [gentoo-portage-dev] New proposed modular sync system Brian Dolbec
2014-01-09 18:46 ` Sebastian Luther
2014-01-09 19:22   ` Brian Dolbec
2014-01-09 19:01 ` Brian Dolbec
2014-01-09 19:15 ` Alec Warner
2014-01-09 19:30   ` Brian Dolbec
2014-01-31  5:27 ` Brian Dolbec [this message]
2014-01-31  7:13   ` Sebastian Luther
2014-01-31  7:27     ` Brian Dolbec
2014-01-31  7:40       ` Sebastian Luther

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140130212729.4826fc2f@big_daddy.dol-sen.ca \
    --to=dolsen@gentoo.org \
    --cc=gentoo-portage-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox