https://forum.world.st/Loading-Seaside-results-in-a-number-of-Grease-related-code-issues-tp5117363p5120199.html
Thanks for the help, pointers, and ideas.
tooling to access the FileTree/Cypress repo. That is why I tried Git
Browser (and I will continue to experiment with it). This morning,
ensureRecentMetacello", those troubles have gone away.
I have filed ... erm, not really a bug or issue, but inquiry, hoping
cloning fresh from an URL-based GitHub repo. Not sure where to start,
there, or if you have any pointers.
extension methods and file a bug with Squot as you suggest.
> Hi Tim,
>
> The repository has method metadata disabled:
>
https://github.com/SeasideSt/Grease/blob/master/repository/.filetree>
> Hence there is no timestamp information with the source and the Squeak
> implementation currently seems to fall back to use the load timestamp.
> Under these circumstances I think it would also be of no advantage to
> clone and load with the Git Browser directly instead of first loading
> via Metacello (which at least also pulls the dependencies, if any).
>
> The Git Browser uses Monticello under the hood to read and write
> packages, so the hunt for the variable amount of spaces needs to be
> sought there, or rather in the FileTree and Cypress classes.
>
> Cypress is slightly different from FileTree, but so far I did not have
> problems treating them basically like the same thing. If I am not
> mistaken, first Dale created FileTree, later at some conference or so
> several people decided on a common format for inter-Smalltalk exchange
> based on FileTree and called the result Cypress. Today we have Tonel
> in the game, so I guess not many people will call for Cypress anymore.
>
> TBehavior is a Pharo trait. Pharo refactored some parts of the basic
> class library to use traits. My guess is that there are packages in
> the repository that are not supposed to be loaded in Squeak (not a
> surprise for something like Grease), but Squot does not know about
> that and tries to load all the packages. You would currently have to
> exclude the additions of the non-Squeak packages in the load/merge
> dialog.
>
> For the issue that you excluded the extension methods in the commit
> dialog (with cmd-x), but some of them were committed nevertheless,
> please file a bug report in for Squot on GitHub with the details and a
> reference to the published commit (if it is public). Even if this
> should be a peculiarity of the underlying Monticello, it is at least
> unexpected to me.
>
>
https://github.com/hpi-swa/Squot/issues/>
> Kind regards,
> Jakob
>
> Am Fr., 31. Juli 2020 um 07:59 Uhr schrieb Tim Johnson <
[hidden email]
> >:
>>
>>
>>> On May 28, 2020, at 1:08 PM, David T. Lewis <
[hidden email]>
>>> wrote:
>>>
>>> On Thu, May 28, 2020 at 01:01:55PM -0700, tim Rowledge wrote:
>>>> Whilst checking things after installing Seaside and Cryptography
>>>> I noticed that there are a couple of dangling Undeclareds that
>>>> lead into some faulty loaded code.
>>>>
>>>> 'home' and 'startpc' are referenced in
>>>> BlockContext>>#tempVarRefs. This is not too much of a problem
>>>> since there are no senders but since there are also a bunch of
>>>> methods loaded into the no longer used Context/BlockContext/
>>>> MethodContext classes it might be an indicator of some updating
>>>> needed in the Grease package, specifically *grease-squeak5-core.
>>>> I don't know who looks after this, so if anyone does, please pass
>>>> it on.
>>>>
>>>
>>> The grease package is one of those things that we, the Squeak
>>> community,
>>> need to take more responsibility for. If anyone is looking for a
>>> worthwhile
>>> Sunday Squeaker project, this would be a good one.
>>
>> I agree. So here I am trying to do this, and running into
>> obstacles. :(
>>
>> The Grease repo is in Cypress format, which I have no experience
>> with. I have some experience with FileTree, but Cypress seems
>> different.
>>
>> So, I thought I would try out Squot and the Git Browser, because
>> they support Cypress.
>>
>> But now I'm having trouble with the Git Browser, and I don't know
>> if this list is the place to talk about it. Am I doing something
>> wrong? Or are these bugs I should file issues at Squot's GitHub
>> repo?
>>
>> I'm having three or four issues.
>>
>> 1) if I load Grease into my image using [1], then I also clone the
>> Grease repo from [2] in Git Browser as a new project, then the
>> timestamps on the methods are different between what Squot is
>> looking at and what is in the image. So I don't get a clean record
>> of what has actually changed in my image. Do I need to load Grease
>> from what Squot knows/handles, instead of [1], so I don't get
>> different timestamps in methods? If so, how? (Actually this begs
>> the question, why are method timestamps being changed to the moment
>> the method is being loaded into my image, instead of retaining
>> their original timestamp? Is this a Cypress thing?) I don't
>> remember this being an issue with Monticello; in MC, method
>> timestamps come in with the method, and don't change to the time
>> the method was loaded, right?
>>
>> MCModification
>> obsoletion timeStamp = ' 7/30/2020 22:03:37'
>> modification timeStamp = ' 7/30/2020 22:01:38'
>>
>> 2) When I delete the *extension method category "*grease-squeak5-
>> core" from BlockContext and create my commit,
>> carefully Cmd-X'ing the methods that only have a different
>> timestamp, there becomes two issues with my actual commit:
>> 2a) All the *Extensions methods are still part of my commit, even
>> though I Cmd-X'd all but one of them (do I recall right that this
>> this a Monticello bug/feature? It's all *Extensions or none?)
>> 2b) When I menu-click my commit in Git Browser and "compare with
>> parent commit," my commit now shows the method timestamps as being
>> different in a different way: the /time/ is the same, but now one
>> method has a leading space in its string and one doesn't:
>>
>> MCModification
>> obsoletion timeStamp = ' 7/30/2020 20:27:03'
>> modification timeStamp = '7/30/2020 20:27:03'
>>
>> 3) If I try to checkout a new branch off the top commit, or off a
>> package, I eventually end up with a Warning dialog that contains
>> this:
>>
>> This package depends on the following classes:
>> TBehavior
>> You must resolve these dependencies before you will be able to load
>> these definitions:
>> TBehavior>>fullName
>>
>> I can click Proceed a dozen times, but eventually I get to a DNU.
>>
>>
>> ...
>> So, I don't really know what to do. What am I doing wrong? Should
>> I file a bug report or two with Squot? Learn Cypress? Hmm.
>>
>>
>> A basic way to set up a test case is (not sure if order matters?):
>>
>> 1) Fresh 5.3 image, load Git Browser
>> 2) In Git Browser, tell it not to "add my first project now"; I
>> will menu-click, clone project, enter
https://github.com/SeasideSt/Grease.git
>> , create a new folder, watch in awe as it gets checked out (this is
>> cool!)
>> 3) load Grease via [1]
>> 4) Try something like:
>> 4a) menu-click 'repository/Grease-Squeak5-Core.package' and then
>> Checkout, and inspect the diffs to see the different timestamps
>> 4b) "Create new branch at this commit" (I just tried this, got "Key
>> not found: repository/Grease-Core.package")
>> 4c) remove (Cmd-X) BlockContext's "*grease-squeak5-core" method
>> category, then (wow, I just did this, and it actually resulted in a
>> EXC_CRASH in copyToOldSpacebytesformat + 90 (gcc3x-cointerp.c:
>> 40614), old VM 5.0.201811061137)
>>
>> Hmm. I'm no stranger to Git, nor a stranger to Monticello, but
>> this is all new.
>>
>> Thanks,
>> Tim
>>
>>
>> [1] Metacello new
>> baseline: 'Grease';
>> githubUser: 'SeasideSt' project: 'Grease' commitish: 'master'
>> path: 'repository';
>> load
>>
>>
>
>
>