On Wednesday 05 December 2007, Stuart Henderson wrote:
> On 2007/12/04 17:30, J.C. Roberts wrote:
> > update: devel/p5-File-Find-Rule-0.30
> > update: devel/p5-File-Find-Rule-Filesys-Virtual-1.22
> > update: devel/p5-Params-Validate-0.89
> > update: devel/p5-Log-Dispatch
> > update: devel/p5-Test-Warn-0.10
> > update: devel/p5-Test-Tester-0.106
> > update: devel/p5-Devel-StackTrace-1.15
> > update: devel/p5-Test-NoWarnings-0.084
>
> Apart from p5-Test-Warn these are all depended on by other ports.
> Did you verify that no regressions for those depending ports have
> been introduced?

Assuming dependencies like this:

p5-ABC (outdated)
  |
  +- p5-123 (uptodate)
  |
  +- p5-345 (uptodate)
       |
       +----------------+
                        |
p5-DEF                  +--------+
  |                              |
  +------------------------------+--- p5-whatever (outdated)
                                 |
                        +--------+
p5-GHI                  |
  |                     |
  +- p5-123             |
  |                     |
  +- p5-678             |
       |                |
       +----------------+

When I want to update p5-ABC, I walk down the dependency tree. I'll
start with updating the right-most (p5-whatever), and eventually work my
way up to the original target (p5-ABC). When that branch is done, I go
back and walk from the right-most back out to the other paths (i.e. back
out to p5-DEF and p5-GHI).

Unfortunately, using `make show-required-by` on the right-most doesn't
really show all of the dependencies because it skips REGRESS_DEPENDS.

In case of a regression on a regression, I take a more aggressive
approach to finding all the dependencies, including REGRESS_DEPENDS.

  $ cd /usr/ports
  $ find . -type f -name 'Makefile' -exec sh -c 'if [ X`grep -l \
  > p5-whatever "{}"` == X"{}" ]; then echo {}; fi' \;

The above gives me everything touched by a port, including the 'stated'
regression test dependencies. Unfortunately, it doesn't give me the
unstated (in the port Makefile) dependencies.

It would be nice if I could automate the tree walking for regression
failures, but some stuff in the tree never passes regression tests, for
example, p5-Net-SSLeay just hangs.

It's slow going, but it seems to get the job done accurately as long as
I don't get confused in the hierarchy or miss an unstated dependency. 
The above has always worked for me, but it's something I made up on my 
own for quietly maintaining my personal -stable tree. If there's a 
better way to go about it, please drop kick me in the right direction.

Kind Regards,
JCR

Reply via email to