public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-portage-dev] [Patch] Repoman rewrite stage2 modularization conversion complete
@ 2016-01-10 21:40 Brian Dolbec
  2016-01-10 22:28 ` Brian Dolbec
  2016-01-11 15:39 ` Alexander Berntsen
  0 siblings, 2 replies; 24+ messages in thread
From: Brian Dolbec @ 2016-01-10 21:40 UTC (permalink / raw
  To: gentoo-portage-dev


   I have now pushed a fully rebased, properly sequenced commit history
to the repoman branch.  To be honest I think all the rebasing,
re-testing took as much time as the initial conversion and testing.
Anyway, I consider the branch now ready for final review.  Since there
are a total of 45 commits.  I am not sending them to the list at this
time.  They are available for review via the repoman branch at

https://gitweb.gentoo.org/proj/portage.git/log/?h=repoman

https://github.com/gentoo/portage/commits/repoman

or github pull request for commit order convienience

https://github.com/gentoo/portage/pull/22

But please try to follow our standard rules and reply with any comments
or code review to this email thread.  I can also generate the email
patches if necessary, but I fear they will just clog up your inbox.
There are some patches that are quite large like the vcs plug-in
conversion which could not be done piecemeal and still be able to run
the code to test.


Summary:

This stage now has three plugin system loops to process all the checks
and maintenance actions.  The three loops are currently hard-coded and
many of the checks must be run in a certain order as many of the
checks add or modify the dynamic data required by later checks.  I
will endeavour to create a complete wiki page on the new system when
approved, detailing how to create modules.  I will also generate a
table of dynamic data available and the modules responsible for
it.  In that way any modification to the modules run, added or removed
can be determined.

1) Primary pkg level checks
2) Ebuild level checks
3) Final pkg level summary checks

There are 2 primary plugin systems

1) The VCS plugin system
2) The Scan plugin system

All use the existing portage plugin system used in emaint and the new
sysnc systems.

The scan plugin modules can have functions that run in any of the three
loops.  They can also have more that one function that runs in any one
loop.  All functions in the loop will be run in sequence in the order
listed.  The plugin system runs the functions via reference, not name,
so the module lists the functions by reference.  The runInPkgs,
runInEbuild and runInFinal functions are designed in a way that allow
for the most flexibility and control by the module itself.  As such one
loop level function can control the actions of the next levels.  They
are not forced to be hard-coded.  Although, there are currently no
modules that use or need that ability at this time. 

Still to do in further rewites:

	Create a file or files to store easily edited repository data
	that can be included in the repo metadata.  In that way small
	changes can be done by maintainers without requiring a new
	repoman release because that data comes with the release.

	Make the plug-in checks loops configurable.  Then the checks
	run can be configured for the repo being checked.  All repos
	are not created equal and may have their own eclasses and
	eclass checks, etc..

	Continued code optimizations.  At this point many of the scan
	checks, etc.  have not undergone extensive changes.  Only what
	was necessary to fit the new structure.  Many could probably be
	optimised for better configure-ability and execution.
-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2016-03-15 22:37 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-10 21:40 [gentoo-portage-dev] [Patch] Repoman rewrite stage2 modularization conversion complete Brian Dolbec
2016-01-10 22:28 ` Brian Dolbec
2016-01-11  6:52   ` Brian Dolbec
2016-01-11  9:08   ` Brian Dolbec
2016-01-11 15:39 ` Alexander Berntsen
2016-03-05 21:37   ` Brian Dolbec
2016-03-07 12:21     ` Alexander Berntsen
2016-03-14 17:14     ` Zac Medico
2016-03-14 17:22       ` Zac Medico
2016-03-14 17:52         ` Brian Dolbec
2016-03-15  0:18           ` Zac Medico
2016-03-15  0:47             ` Brian Dolbec
2016-03-15  1:04               ` Zac Medico
2016-03-15  6:24                 ` Zac Medico
2016-03-15 19:04                 ` Brian Dolbec
2016-03-15 19:38                   ` Zac Medico
2016-03-15 19:42                     ` Zac Medico
     [not found]                       ` <20160315131731.2edf502d.dolsen@gentoo.org>
2016-03-15 20:25                         ` Zac Medico
2016-03-15 20:31                           ` Zac Medico
     [not found]                             ` <20160315135751.166ba608.dolsen@gentoo.org>
2016-03-15 21:03                               ` Zac Medico
2016-03-15 21:19                                 ` Brian Dolbec
2016-03-15 22:37                                   ` Zac Medico
2016-03-14 17:35       ` Brian Dolbec
2016-03-14 19:09         ` Brian Dolbec

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox