Nicolas,

Over the long July 4th weekend, I realized that the package-cache needs to be considered in the package naming scheme ...

As currently implemented, the GitFileTree scheme of sequentially numbering version numbers based on the order of git commits is problematic when the package-cache is considered, since switching branches can lead to a package named XXX-dkh.12 being in the package-cache and there is no way to know whether it is the "right package" ...

The short sha scheme would guarantee that the package-cache would not have improper collisions, so this is an argument in favor of going that route ...

When reading a package from a metadataless repository using FileTree as opposed to GitFileTree, the package-cache is even more problematic since all packages are given the same author-version number: cypress-1 and you are virtually guaranteed to have package-cache problems

The scheme that I favor: eliminating both author and version number from the name, suffers from the same package-cache problem ...

Now I believe that I should be able to "solve the package-cache problem" in Metacello when using the Cypress extension, because Metacello is already aware of the package-cache when doing a fetch ...

Unfortunately loads from the Monticello Browser and Gofer will still be using the package-cache unless those tools are made aware of metadataless repositories or the decisions about whether or not the package-cache is used is delegated to the repository instance itself --- probably the preferred solution --- and an approach that I also consider as I work through the issues for Metacello ...

Anyway, the short-sha may actually be the best solution. I have found the short sha very useful when displaying the loaded version of a project in the project browser for tODE and echoing the short sha (sans author) in the package names, would provide a useful reminder of the version that was checked out when the package was loaded ...

Dale

On 06/29/2016 01:24 AM, Nicolas Passerini wrote:
Hi Dale, Therry, I am working on a libgit-based git integration for Pharo and I am facing the same problem about version numbers. So maybe I can help you if you are working on that. I had the same idea as Dale, using short SHAs instead of correlative numbers, but I didn't have the time yet to got down that path.

Therry, you said that


     you'll have a bunch of stuff expecting version numbers that will
    stop working.

Do you already know which stuff will stop working? That would be realy helpful.


Reply via email to