Pier3AddOns Build

The Pier3Addons build for Pharo version 3.0 fails, running the build script manually shows:

../PierAddons.ksh 30
'Installing ConfigurationOfPier3AddOns release3.1'

Loading 3.1.1 of ConfigurationOfPier3AddOns...==== Startup Error: Error: Apparent loop in import expansion
^ t4 value: t6 ] in MetacelloPharo30Platform(MetacelloPlatform)>>stackCacheFor:cacheClass:at:doing: in Block: [ :t5 | ...
Got startup errors:
    Error: Apparent loop in import expansion
'Pharo cannot locate the sources file named /Users/jborden/Smalltalk/Pharo3/pharo-vm/PharoV40.sources.

The Pharo 4 an 5 images generate a MNU for default not understanding #contents in WAServerManager>>default. When opening http://localhost:8080/pier this error is generated:

SubclassResponsibility: WACache had the subclass responsibility to implement #store:
Your request could not be completed. An exception occurred.

This could be coming from an WAExpiringCache or WACache - unfortunately it appears to be the later. Both the cache and the manager are in Seaside-Core. It seems like I need to modify how it is originally created. When I open a Pier3.image, it does not have either of these problems. The browse and config are working fine. When browsing WACache>>store:, it isn't a subclassResponsibility method - the difference is Pier3 has Seaside3.1, Pier3AddOn has Seaside3.2. One can also see this in the Console Output:

WAPredictableCache>>store: (objectsByKey is Undeclared)

WAPredictableCache>>store: (keysByObject is Undeclared)

Loaded -> Seaside-Core-JohanBrichau.869 --- http://smalltalkhub.com/mc/Seaside/Seaside32/main/ --- cache
Loaded -> Seaside-Canvas-JohanBrichau.135 --- http://smalltalkhub.com/mc/Seaside/Seaside32/main/ --- cache
WASession>>cache (cache is Undeclared) 

It seems that this is coming from the SeasideRSS import.

These problems are similar to the previous Pier Development Image issues.

Several months of tracking through methods, creating a new 3.2 release, and I found that I could get the build working by commenting out Pier-Setup from the build script. The problem occurs when JQuery Widgetbox FormExample is loaded. The JQWidgetBox-FormExample-Core package includes:

  • The class JQFormExample - not referenced directly in Pier
  • The added method JQWidgetBoxDeploymentLibrary>>jqueryexampleminJs which is called from PRAjaxSearchWidget>>updateRoot:
  • The added method JQueryInstance>>example: and JQueryInstance>>example:class: (the later is called from PRAjaxSearchWidget>>renderContentOn:

Reverting to JQuery Widgetbox FormExample version 2.7 has solved the problem. Several things helped discover this:

  • Commenting out steps from the build script, in reality I spent several weeks trying different versions of each of the projects imported into Pier3Addons, and this didn't lead to an easy fix, next I made a new version, and minimized it down to the smallest configuration that could function, and built it up until I found the problem. Doing so in the build script would have been much faster
  • Reading Pharo By Example chapter on Metacello

Posted by John Borden at 30 September 2016, 1:58 am with tags Pier link