> In Metacello there are more than one way to "visit specs":
>
> - raw specs
> - merged specs
> - specs by section
> - resolved specs
> - there are more
>
> If you are reasoning about the packages visible for a particular combination
> of attributes (#common, #pharo, etc.) then you are interested in the 'merged
> specs'.
>
> If you are interested in looking at the individual statements that are
> composed into the merged specs, then you need to look at the raw specs, again
> against a particular combination of attributes.
>
> If you are editting a spec or interested in extracting the list of all
> packages referenced independent of attribute, then you need to look at the
> specs by section ... in which case you have the choice of looking at the raw
> specs or merged specs for each section visited. You also probably need to
> control whether or not imports are followed or not.
>
> If you are interested in knowing the exact package version and repository
> that a spec resolves to, then you need to look at resolved specs against a
> particular combination of attributes.
>
> So I guess I need to know a little bit more about what you are thinking when
> you say "visitor on metacello spec."
>
> Dale
I see. But when I close my eyes and think about the metacello domain.
I see
trees of projects
baseline, versions
packages
required packages
the fact that the information is merged, resolved…. should give back trees
and I would like to be able to visit these structures so that we can build
analysis such as snapcello
on top. So probably that a visitor would have to be attached a strategy while
navigating.
Stef