On Thu, Jun 30, 2016 at 7:26 AM, Dale Henrichs <dale.henri...@gemtalksystems.com> wrote: > > > On 6/29/16 3:44 PM, Ben Coman wrote: >> >> On Thu, Jun 30, 2016 at 3:04 AM, Dale Henrichs >> <dale.henri...@gemtalksystems.com> wrote: >>> >>> >>> On 6/29/16 1:00 AM, Thierry Goubier wrote: >>>> >>>> Le 29/06/2016 00:55, Dale Henrichs a écrit : >>>>> >>>>> >>>> ... >>>>>> >>>>>> >>>>> I'm pretty certain the MCLazyVersionInfo is the real culprit here ... >>>>> while reading the code I recognized that many of the basic patterns >>>>> were >>>>> exactly as I had remembered them from years ago ... however ... >>>>> MCLazyVersionInfo this puppy with its "default behavior" to scan the >>>>> universe is the real culprit ... I would think that at a minimum the >>>>> repository or repository group would/could be know at the time that the >>>>> MCLazyVersionInfo was created and a scan of just those repositories --- >>>>> already associated with the project --- would not be nearly as bad as >>>>> when we have now ... >>>> >>>> >>>> The MCLazyVersionInfo thing is mine too; it was a solution to avoid >>>> keeping MBs of version info kept inside the image memory, with the cost >>>> of >>>> having to reload that information when you access the ancestry. >>>> >>>> Now, the approach needs to be tuned to avoid spurious "query the world" >>>> searches, but, as you point out, I hasn't been too successfull yet. And >>>> one >>>> of the thing MC lack, is that link between a repository and a working >>>> copy. >>> >>> That's not true. Each working copy has repository group where either the >>> developer has either explicitly declared the set of repositories that are >>> associated with the working copy and/or the system has recorded the set >>> of >>> repositories from which the package has been loaded ... you should >>> restrict >>> the search to the repos in the repository group. >>>> >>>> >>>> (at the same time, restricting version number determination to a subset >>>> of >>>> the repositories is against MC principles when numbering versions). >>> >>> In principle, yes, but from a practical point of view, the version number >>> search was "always" restricted to the set of repositories in the >>> repository >>> group for the working copy ... keep in mind that putting version numbers >>> in >>> the package name is a _convention_. I don't think that Monticello ever >>> defined a package name syntax ... Technically, Monticello is supposed to >>> use >>> the UUID to disambiguate between to packages with the same name, but as >>> you >>> and I know, this is not really enforced in the code --- Monticello >>> evolved >>> to rely on the version number for ordering package versions, but I don't >>> think that was ever part of the design of Monticello ... if you look at >>> the >>> older implementations of the tools, there was no enformcement of any >>> rationale package naming scheme ... >>> >>> I agree that today when looking at the point to which Monticello usage >>> has >>> evolved that the statement: >>> >>> "the only way to guarantee a unique version number for a package is to >>> scan all available repositories" >> >> What if rather than being incremental the Monticello number what >> generated YYMMDDhhmmss? Should be reasonably compatible with that >> scope creep of version numbers into Monticello tools. >> >> Maybe the length is a bit ugly and by convention we can condense it a >> bit. Does that timestamp in the filename need to be human decodable? >> YY-->alpha character, e.g. 2016-->F (these sort after existing numeric >> numbers) >> MM-->hex e.g. Jan-->1 Oct-->A Dec-->C >> DD-->extended hex 1-->1, 16-->F, 30-->T >> hh-->extended hex e.g. 1-->1, 16-->F, 23-->M >> mm-->standard number >> ss-->divide by 2 then extended hex, e.g. 8-->4, 32-->F >> >> Today 2016-06-30 23:15:32 --> F6TM15F >> e.g. Collections-Native.BenComan.F6TM15F.mcz >> > > Ben, > > the "unique version number" was in reference to the current scheme of > incrementing the version number ... the truth is that I don't think it is > necessary to "guarantee a unique version number" for Monticello purposes ... > it is sufficient to take the latest version number or the package from the > set of: the image and repositories in repository group... which is the > technique that was used for years ... > > The bug in MCLazyVersionInfo is that it is scanning all repositories > connected to the image, when it is sufficient to scan the repositories in > the working copy repository group to get a reasonably unique version number > ... > > Dale >
If changing that is sufficient, then cool. My idea was just covering Law Of Unintended Consequence ;) cheers -ben