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