Willow web


We’re happy to announce the general availability of Willow and it’s related projects in the Web Stack ecosystem hosted at https://github.com/ba-st/.
Willow is a Web Interaction Library that eases the burden of creating AJAX-based web applications. The project goals are:

  • Provide a Smalltalk protocol for the interactive behavior of web components
  • Reify the pieces of a web application to improve reuse
  • Offer a simple and polymorphic protocol for different front-end frameworks.

It’s MIT licensed and built on top of the Seaside Web Framework providing a set of composable components and easier AJAX interaction. It’s intented to work alongside the RenoirSt DSL to define the CSS of your application.

This is a multi-release announcement of the following related projects:

  • Willow v4.0.0 : Core features, components and commands
  • Willow-Bootstrap v4.0.0 : Bootstrap 3 integration, components and plugins
  • Willow-JQueryUI v4.0.0 : JQuery UI integration and components.
  • Willow-SpinKit v1.0.2 : Spinner components
  • Willow-Playground v1.0.0 : An interactive presentation introducing the project and two example applications: Web Based Test Runner and Live Docs.
  • RenoirSt v3.3.0 : CSS DSL. [ Latest Changes: Updated Seaside dependencies (for the Seaside extensions groups) and added Pharo 7 to the build matrix. ]

SemanticUI integration is still a work in progress.

We’ve started working on a more complete tutorial and a Pharo booklet.

Anyone interested in joining our ba-st projects is welcome


Gabriel Cotelli, Maxi Tabacman and all the contributors.Regards,

Gabriel Cotelli, Maxi Tabacman and all the contributors.


Bloc Beta 01

Feenk announced Bloc beta 01
We are happy to announce #bloc beta01 for @pharoproject:

Bloc will radically change the perception of Pharo. 🙂

Pharo-Chrome as a scraping solution

Most of the web pages I want to scrape use javascript to construct the
DOM, which makes Soup. XMLHTMLParser, etc. useless.

I’ve extended Torsten’s Pharo-Chrome library and use that to navigate
the DOM in a way similar to Soup:


This gets around the issue with javascript since it waits for the
browser to load the page, run the javascript and construct the DOM.


Easy I18N for Pharo

Need an easy translation framework for your Pharo application
with no external dependency?

Then check out the I18N project:


Docu and examples can be found on the same page, screenshot
is attached.


Bloc’s feenk log


Over the past couple of weeks Alex worked on stabilizing a first beta01 version for Pharo 6.1:

This is available as a beta01 tag in the pharo61 branch here:

The main readme was updated with instructions and links:

An overview of the improvements:
– improved animations support that also works for scaling
– improved debugging support for transformations
– support for programatic testing of bloc mouse events:
– updated MemoryGame tutorial:
– extended examples that offer a 52% coverage
– new Bloc world menu for easily accessing Bloc examples and reseting the Universe

The feenk team

Another example of invoking a REST/JSON web service – resolving User-Agent strings

In one of our web applications, when a user logs in, we give some meta/context information, like this:

You are user /users/4 in entity context /entities/0 for T3 using timezone Europe/Brussels [offset -1]
Last login Fri Nov 10 2017 15:15:46 from using Safari 11 on Mac OS X 10
Your login count is 10,375

The last login info functions as a soft security measure. In it, the part after using, ‘Safari 11 on Mac OS X 10’, is computed from the (previous) User-Agent string of the web browser when the user last logged in. But these strings are quite complex. There exist web services that parse these complex user agent strings and extract all possible information out of them, including the high level description used above.

The previous solution stopped working and I configured a new one today [https://www.whatismybrowser.com], the core implementation of which I would like to share as yet another example.

(ZnClient new
url: ‘https://api.whatismybrowser.com/api/v2/user_agent_parse’;
accept: ZnMimeType applicationJson;
headerAt: ‘x-api-key’ put: ‘8cf7cee797f3c68d59055eac96778000’;
contentReader: [ :entity | entity ifNotNil: [ NeoJSONObject fromString: entity contents ] ];
contentWriter: [ :object | ZnEntity json: object asString ];
contents: ({ ‘user_agent’ -> ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/604.3.5 (KHTML, like Gecko) Version/11.0.1 Safari/604.3.5’ } as: NeoJSONObject);
post) parse at: ‘simple_software_string’.



You have to create an account and insert your own API key. NeoJSON must be loaded.
Using #systemPolicy and #accept: makes this call throw an exception unless valid JSON is returned in a 2XX response. NeoJSONObject is a convenient way to use the NeoJSON infrastructure. The #parse message accesses the property by the same name (via a DNU), as does the #at: message (for keys that cannot be written as message sends).


[Pharo 7.0a] next enhancements

Report period: 23 October 2017 to 5 November 2017

* 20632-Rename-PluggableSortFunction-to-CollatorBlockFunction
>> PluggableSortFunction is renamed to CollatorBlockFunction

Issue URL: https://pharo.fogbugz.com/f/cases/20632
PR URL: https://github.com/pharo-project/pharo/pull/430
Diff URL: https://github.com/pharo-project/pharo/pull/430/files

Thanks to dionisiydk

* 20634 missing super messages in set up and tear down in kernel tests unit tests
>> Add missing super messages in #setUp and #tearDown in Kernel-Tests
>> https://pharo.fogbugz.com/f/cases/20634/Missing-super-messages-in-setUp-and-tearDown-in-Kernel-Tests-unit-tests

Issue URL: https://pharo.fogbugz.com/f/cases/20634 missing super messages in set up and tear down in kernel tests unit tests
PR URL: https://github.com/pharo-project/pharo/pull/432
Diff URL: https://github.com/pharo-project/pharo/pull/432/files

Thanks to astares

* 20623-Tests-in-the-CI-should-say-the-Architecture-and-the-OS
>> Adding the node name if running in JENKINS.
>> It fixes
>> https://pharo.fogbugz.com/f/cases/20623/Tests-in-the-CI-should-say-the-Architecture-and-the-OS

Issue URL: https://pharo.fogbugz.com/f/cases/20623
PR URL: https://github.com/pharo-project/pharo/pull/424
Diff URL: https://github.com/pharo-project/pharo/pull/424/files

Thanks to tesonep

* 20633-Update-Tonel-version
>> Upgrading Tonel version to 1.0.3.
>> Fixes issue https://pharo.fogbugz.com/f/cases/20633/Update-Tonel-version

Issue URL: https://pharo.fogbugz.com/f/cases/20633
PR URL: https://github.com/pharo-project/pharo/pull/431
Diff URL: https://github.com/pharo-project/pharo/pull/431/files

Thanks to tesonep

* 20629-wrong-FuelPlatform-Pharo-Core-package-loading
>> https://pharo.fogbugz.com/f/cases/20629/wrong-FuelPlatform-Pharo-Core-package-loading

Issue URL: https://pharo.fogbugz.com/f/cases/20629
PR URL: https://github.com/pharo-project/pharo/pull/429
Diff URL: https://github.com/pharo-project/pharo/pull/429/files

Thanks to pavel-krivanek

* 20630-The-package-Files-Prompt-is-not-loaded
>> https://pharo.fogbugz.com/f/cases/20630/The-package-Files-Prompt-is-not-loaded

Issue URL: https://pharo.fogbugz.com/f/cases/20630
PR URL: https://github.com/pharo-project/pharo/pull/427
Diff URL: https://github.com/pharo-project/pharo/pull/427/files

Thanks to pavel-krivanek

* 20628-Categories-definition-in-exported-Tonel-must-be-symbols-not-strings
>> https://pharo.fogbugz.com/f/cases/20628/Categories-definition-in-exported-Tonel-must-be-symbols-not-strings
>> – Converts category names from strings to symbols
>> – Remove unused packages
>> “`
>> delete mode 100644 src/BaselineOfHermes/BaselineOfHermes.class.st
>> delete mode 100644 src/BaselineOfHermes/package.st
>> delete mode 100644 src/Files-Prompt/DummyUIManager.extension.st
>> delete mode 100644 src/Files-Prompt/FileAlreadyExistsException.extension.st
>> delete mode 100644 src/Files-Prompt/FileDoesNotExistException.extension.st
>> delete mode 100644 src/Files-Prompt/MorphicUIManager.extension.st
>> delete mode 100644 src/Files-Prompt/NonInteractiveUIManager.extension.st
>> delete mode 100644 src/Files-Prompt/UIManager.extension.st
>> delete mode 100644 src/Files-Prompt/package.st
>> delete mode 100644 src/FuelPlatform-Pharo-Core/FLPharoPlatform.class.st
>> delete mode 100644 src/FuelPlatform-Pharo-Core/package.st
>> delete mode 100644 src/Hermes-Ring/FiBitsLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiCompiledMethodLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiEphemeronLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiFixedLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiImmediateLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiPointerLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiVariableLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/FiWeakVariableLayout.extension.st
>> delete mode 100644 src/Hermes-Ring/HERingBinder.class.st
>> delete mode 100644 src/Hermes-Ring/HERingToHermesBuilder.class.st
>> delete mode 100644 src/Hermes-Ring/RFiClass.extension.st
>> delete mode 100644 src/Hermes-Ring/RFiEnvironment.extension.st
>> delete mode 100644 src/Hermes-Ring/RFiMethod.extension.st
>> delete mode 100644 src/Hermes-Ring/RFiTrait.extension.st
>> delete mode 100644 src/Hermes-Ring/package.st
>> delete mode 100644 src/Hermes-Tests-External-Package/AClassToBeExtracted.class.st
>> delete mode 100644 src/Hermes-Tests-External-Package/AClassToBeExtractedFactory.class.st
>> delete mode 100644 src/Hermes-Tests-External-Package/HETeSimpleClassWithComplexTraits.extension.st
>> delete mode 100644 src/Hermes-Tests-External-Package/TSimpleTraitToBeExtracted.trait.st
>> delete mode 100644 src/Hermes-Tests-External-Package/package.st
>> delete mode 100644 src/Hermes-Tests/HEAbstractBinaryClassBuilderTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportedLiteralTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingClassTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingMethodTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingPackageFromRingTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingPackageTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEExportingTraitTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEInstallWholePackageTest.class.st
>> delete mode 100644 src/Hermes-Tests/HEInstallerTest.class.st
>> delete mode 100644 src/Hermes-Tests/HETeSimpleClass.class.st
>> delete mode 100644 src/Hermes-Tests/HETeSimpleClassWithComplexTraits.class.st
>> delete mode 100644 src/Hermes-Tests/HETeSimpleClassWithTraits.class.st
>> delete mode 100644 src/Hermes-Tests/THEATraitUsingOthers.trait.st
>> delete mode 100644 src/Hermes-Tests/THEOneTestTrait.trait.st
>> delete mode 100644 src/Hermes-Tests/THEOtherTestTrait.trait.st
>> delete mode 100644 src/Hermes-Tests/package.st
>> delete mode 100644 src/Network-Url/package.st
>> delete mode 100644 src/Ring-Navigation/RGMethodDefinition.extension.st
>> delete mode 100644 src/Ring-Navigation/package.st
>> “`

Issue URL: https://pharo.fogbugz.com/f/cases/20628
PR URL: https://github.com/pharo-project/pharo/pull/426
Diff URL: https://github.com/pharo-project/pharo/pull/426/files

Thanks to pavel-krivanek

* 20626-Fixing-Tests-in-CI
>> Fixing some tests related with the refactoring in FileStream.
>> Fixes issue
>> https://pharo.fogbugz.com/f/cases/20626/Fixing-Tests-in-CI

Issue URL: https://pharo.fogbugz.com/f/cases/20626
PR URL: https://github.com/pharo-project/pharo/pull/425
Diff URL: https://github.com/pharo-project/pharo/pull/425/files

Thanks to tesonep

* 20616-Convert-file-format-to-tonel
>> sources converted.
>> closes case 20616

Issue URL: https://pharo.fogbugz.com/f/cases/20616
PR URL: https://github.com/pharo-project/pharo/pull/423
Diff URL: https://github.com/pharo-project/pharo/pull/423/files

Thanks to estebanlm

* 20574-FFITypeArray–annonymousClassCreator-doesnt-handle-pointer-types-correctly
>> fix case #20574

Issue URL: https://pharo.fogbugz.com/f/cases/20574
PR URL: https://github.com/pharo-project/pharo/pull/392
Diff URL: https://github.com/pharo-project/pharo/pull/392/files

Thanks to estebanlm

* 20589-update-iceberg-to-062
>> closes case #20589

Issue URL: https://pharo.fogbugz.com/f/cases/20589
PR URL: https://github.com/pharo-project/pharo/pull/397
Diff URL: https://github.com/pharo-project/pharo/pull/397/files

Thanks to estebanlm

* 17299 sleep longer than a second in the delay scheduler

Issue URL: https://pharo.fogbugz.com/f/cases/17299 sleep longer than a second in the delay scheduler
PR URL: https://github.com/pharo-project/pharo/pull/197
Diff URL: https://github.com/pharo-project/pharo/pull/197/files

Thanks to zecke

* 20599 make kernel independent of deprecated file stream
>> This PR introduces the following changes:
>> – Extracted file creation for st and cs files into CodeExporter class
>> – removed usages of StandardFileStream and MultiByteFileStream
>> – Modularised StandardFileStream>>defaultAction to be in a separate package (depends on UI)

Issue URL: https://pharo.fogbugz.com/f/cases/20599 make kernel independent of deprecated file stream
PR URL: https://github.com/pharo-project/pharo/pull/415
Diff URL: https://github.com/pharo-project/pharo/pull/415/files

Thanks to guillep

* 20155-Browse-implementers-of-in-Nautilus-doesnt-parse-source-code-properly-for-methods-in-a-block
>> Fixes 20155 using a modificaton of teh code in the Bug report. The second commit removes what appears to be dead code; if this one casues trouble, it oculd be dropped. (Since the removed methods send unimplemented messages, they are unlikely to help!)

Issue URL: https://pharo.fogbugz.com/f/cases/20155
PR URL: https://github.com/pharo-project/pharo/pull/410
Diff URL: https://github.com/pharo-project/pharo/pull/410/files

Thanks to apblack

* 20609-defaultBackgroundColor-should-be-removed-from-Object
>> move defaultBackgroundColor from Object to Morph

Issue URL: https://pharo.fogbugz.com/f/cases/20609
PR URL: https://github.com/pharo-project/pharo/pull/414
Diff URL: https://github.com/pharo-project/pharo/pull/414/files

Thanks to dionisiydk

* 20577-Cleanup-Object-inspection-protocol
>> replace #explore users with #inspect.
>> move inspectorClass and Object>>inspector into Spec-Inspector
>> Object>>explore is deprecated

Issue URL: https://pharo.fogbugz.com/f/cases/20577
PR URL: https://github.com/pharo-project/pharo/pull/413
Diff URL: https://github.com/pharo-project/pharo/pull/413/files

Thanks to dionisiydk

* 18391-Debugger must guard against actions on process termination
>> added guards so the debugger doesn’t send stepping messages to nil contexts. (This was the cause of the freezing because it would loop until the context was dead).
>> Now the debugger closes when we are stepping out of a ‘terminal’ context instead of showing a ‘nil doesNotUnderstand: isDead’ exception. (It notifiies the user through an inform that the debugging session is finished)

Issue URL: https://pharo.fogbugz.com/f/cases/18391
PR URL: https://github.com/pharo-project/pharo/pull/409
Diff URL: https://github.com/pharo-project/pharo/pull/409/files

Thanks to Marmat21

* 20576-add-simplified-DADependenciesHTMLPublisher
>> https://pharo.fogbugz.com/f/cases/20576/add-simplified-DADependenciesHTMLPublisher
>> add DADependenciesHTMLPublisher from Tool-DependencyAnalyser-HTMLReport-ChristopheDemarey.1.mcz

Issue URL: https://pharo.fogbugz.com/f/cases/20576
PR URL: https://github.com/pharo-project/pharo/pull/388
Diff URL: https://github.com/pharo-project/pharo/pull/388/files

Thanks to pavel-krivanek

* 20547-missing-assertidenticalTo-and-denyidenticalTo-object-identity-equality
>> https://pharo.fogbugz.com/f/cases/20547/missing-assert-identicalTo-and-deny-identicalTo-object-identity-equality
>> add assert:identicalTo: and deny:identicalTo:

Issue URL: https://pharo.fogbugz.com/f/cases/20547
PR URL: https://github.com/pharo-project/pharo/pull/368
Diff URL: https://github.com/pharo-project/pharo/pull/368/files

Thanks to pavel-krivanek

* 20604-Metacello-Platform-is-dependent-on-Metacello-Bitbucket
>> https://pharo.fogbugz.com/f/cases/20604/Metacello-Platform-is-dependent-on-Metacello-Bitbucket

Issue URL: https://pharo.fogbugz.com/f/cases/20604
PR URL: https://github.com/pharo-project/pharo/pull/406
Diff URL: https://github.com/pharo-project/pharo/pull/406/files

Thanks to pavel-krivanek

* 20615-add-packages-for-MetacelloCommandLineHander-into-baselines
>> https://pharo.fogbugz.com/f/cases/20615/add-packages-for-MetacelloCommandLineHander-into-baselines

Issue URL: https://pharo.fogbugz.com/f/cases/20615
PR URL: https://github.com/pharo-project/pharo/pull/421
Diff URL: https://github.com/pharo-project/pharo/pull/421/files

Thanks to pavel-krivanek

* 20581-Manually-resolved-dependencies-in-manifests-need-update
>> https://pharo.fogbugz.com/f/cases/20581/Manually-resolved-dependencies-in-manifests-need-update
>> update manually resolved dependencies

Issue URL: https://pharo.fogbugz.com/f/cases/20581
PR URL: https://github.com/pharo-project/pharo/pull/391
Diff URL: https://github.com/pharo-project/pharo/pull/391/files

Thanks to pavel-krivanek

* 12160-Should-we-move-asUrl-to-Zinc-package
>> https://pharo.fogbugz.com/f/cases/12160/Should-we-move-asUrl-to-Zinc-package

Issue URL: https://pharo.fogbugz.com/f/cases/12160
PR URL: https://github.com/pharo-project/pharo/pull/418
Diff URL: https://github.com/pharo-project/pharo/pull/418/files

Thanks to pavel-krivanek

* 20584-SortFunction-should-not-use-block-in-collator
>> SortFunction is now abstract. It is refactored and splitted on two extra subclasses:
>> SortByPropertyFunction to collate objects using property defined by selector or one arg block.
>> PluggableSortFunction represents collator using two args block.
>> So subclasses implement single method #threeWayCompare:with: where they define own collarion logic independently from specified direction.
>> Old method #collate:with is now main method which taks into account three way comparison and direction. Subclasses do not supposed to redefine it.
>> And #value:value: method just convert collation result into the bool (returns is it negative or not).
>> All functions implements #= and #hash methods. So selector based functions can be used in application caches.
>> Also now applications are able to implement own sort functions instead of using selectors or blocks which improves reusability.

Issue URL: https://pharo.fogbugz.com/f/cases/20584
PR URL: https://github.com/pharo-project/pharo/pull/412
Diff URL: https://github.com/pharo-project/pharo/pull/412/files

Thanks to dionisiydk

* 20602 file locator local directory should be inside image directory
>> UserLocalDirectory should be placed in imageDirectory by default.
>> https://pharo.fogbugz.com/f/cases/20602/FileLocator-localDirectory-should-be-inside-image-directory

Issue URL: https://pharo.fogbugz.com/f/cases/20602 file locator local directory should be inside image directory
PR URL: https://github.com/pharo-project/pharo/pull/419
Diff URL: https://github.com/pharo-project/pharo/pull/419/files

Thanks to dionisiydk

* 20613-Improve-some-UUID-comments
>> Improve some UUID comments

Issue URL: https://pharo.fogbugz.com/f/cases/20613
PR URL: https://github.com/pharo-project/pharo/pull/420
Diff URL: https://github.com/pharo-project/pharo/pull/420/files

Thanks to svenvc

* 20598 update configuration command line handler to use metacello
>> A first implementation of a CommandLineHandler for Metacello.
>> It provides the ability to install projects using Configuration or Baseline.
>> It comes with unit tests.
>> After a discussion with @Ducasse , the ConfigurationCommandLineHandler was not modified in order to not break scripts using it. It should be deprecated once this handler provides enough features.

Issue URL: https://pharo.fogbugz.com/f/cases/20598 update configuration command line handler to use metacello
PR URL: https://github.com/pharo-project/pharo/pull/416
Diff URL: https://github.com/pharo-project/pharo/pull/416/files

Thanks to juliendelplanque

* 20610-Class-comments-displaying-is-failing-
>> https://pharo.fogbugz.com/f/cases/20610/Class-comments-displaying-is-failing
>> fix RubCommentAnnotationDisplayer>>#fontToUse

Issue URL: https://pharo.fogbugz.com/f/cases/20610
PR URL: https://github.com/pharo-project/pharo/pull/417
Diff URL: https://github.com/pharo-project/pharo/pull/417/files

Thanks to pavel-krivanek

* 20592-SizeInMemory-is-not-updated-to-handle-32-and-64-bits-for-WordLayout
>> Fixing sizeInMemory to handle properly WordLayout objects.
>> Also fixing the tests to handle both 32 and 64 bits.

Issue URL: https://pharo.fogbugz.com/f/cases/20592
PR URL: https://github.com/pharo-project/pharo/pull/400
Diff URL: https://github.com/pharo-project/pharo/pull/400/files

Thanks to tesonep

* 20587-remove-UIThemeWatery
>> https://pharo.fogbugz.com/f/cases/20587-remove-UIThemeWatery

Issue URL: https://pharo.fogbugz.com/f/cases/20587
PR URL: https://github.com/pharo-project/pharo/pull/395
Diff URL: https://github.com/pharo-project/pharo/pull/395/files

Thanks to pavel-krivanek

* 20551-Improve-way-how-Spec-presenters-are-linked-with-domain-models
>> https://pharo.fogbugz.com/f/cases/20551/Improve-way-how-Spec-presenters-are-linked-with-domain-models

Issue URL: https://pharo.fogbugz.com/f/cases/20551
PR URL: https://github.com/pharo-project/pharo/pull/374
Diff URL: https://github.com/pharo-project/pharo/pull/374/files

Thanks to pavel-krivanek

* 20600 rename opal compiler encoder from opal encoder to encoder
>> This can be tested through a boostrap, or by using this do it instead of loading the changes:
>> OpalEncoder withAllSubclassesDo: [ :sub | sub rename: (sub name allButFirst: 4)].
>> This cannot be tested through merge (Changes in the kernel).

Issue URL: https://pharo.fogbugz.com/f/cases/20600 rename opal compiler encoder from opal encoder to encoder
PR URL: https://github.com/pharo-project/pharo/pull/404
Diff URL: https://github.com/pharo-project/pharo/pull/404/files

Thanks to clementbera

* 19609-FileReferencebase-should-be-before-last-separator
>> https://pharo.fogbugz.com/f/cases/19609/FileReference-base-should-be-before-last-separator

Issue URL: https://pharo.fogbugz.com/f/cases/19609
PR URL: https://github.com/pharo-project/pharo/pull/137
Diff URL: https://github.com/pharo-project/pharo/pull/137/files

Thanks to pavel-krivanek

* 19746-WeakValueDictionary-has-counter-intuitive-behavior
>> https://pharo.fogbugz.com/f/cases/19746/WeakValueDictionary-has-counter-intuitive-behavior

Issue URL: https://pharo.fogbugz.com/f/cases/19746
PR URL: https://github.com/pharo-project/pharo/pull/140
Diff URL: https://github.com/pharo-project/pharo/pull/140/files

Thanks to pavel-krivanek

* 20606-AlienSunitperformTest-is-failing
>> https://pharo.fogbugz.com/f/cases/20606/AlienSunit-performTest-is-failing
>> ignore prefix

Issue URL: https://pharo.fogbugz.com/f/cases/20606
PR URL: https://github.com/pharo-project/pharo/pull/408
Diff URL: https://github.com/pharo-project/pharo/pull/408/files

Thanks to pavel-krivanek

* 20595-The-Bootstrap-process-should-log-the-command-line-command-executed
>> Adding the trace option to the bash scripts

Issue URL: https://pharo.fogbugz.com/f/cases/20595
PR URL: https://github.com/pharo-project/pharo/pull/402
Diff URL: https://github.com/pharo-project/pharo/pull/402/files

Thanks to tesonep

* 20537 Better class tagging in package ProfStef-Tests-Traits
>> – add some tags like “Mocks”, “Traits” and “Tests” to the package “ProfStef-Tests-Traits”
>> and move the classes into them so we better group them for browsing
>> https://pharo.fogbugz.com/f/cases/20537/Better-class-tagging-in-package-ProfStef-Tests-Traits

Issue URL: https://pharo.fogbugz.com/f/cases/20537 Better class tagging in package ProfStef
PR URL: https://github.com/pharo-project/pharo/pull/359
Diff URL: https://github.com/pharo-project/pharo/pull/359/files

Thanks to astares

* 20597 Rename-old-Compiler-encoder-to-LegacyEncoders
>> … Encoders (aka the OpalEncoders) to be named Encoder, and the old compiler encoder nobody use to be called whatever people want (I name them legacyEncoder).
>> Since EncoderForLongForV3 has never worked, and EncoderForSistaV1 is not compliant with the old compiler version present in Pharo, I also remove them.

Issue URL: https://pharo.fogbugz.com/f/cases/20597 Rename
PR URL: https://github.com/pharo-project/pharo/pull/403
Diff URL: https://github.com/pharo-project/pharo/pull/403/files

Thanks to clementbera

* 20578-add-BaselineOfMonticello-and-BaselineOfMetacello
>> https://pharo.fogbugz.com/f/cases/20578/add-BaselineOfMonticello-and-BaselineOfMetacello
>> – add package Metacello-PharoExtensions
>> – move class side utility methods from BaselineOfPharoBootstrap there for general use
>> – add BaselineOfMonticello
>> – add BaselineOfMetacello
>> – list them in BaselineOfIDE to have them in the image

Issue URL: https://pharo.fogbugz.com/f/cases/20578
PR URL: https://github.com/pharo-project/pharo/pull/389
Diff URL: https://github.com/pharo-project/pharo/pull/389/files

Thanks to pavel-krivanek

* 20583-introduce-system-dependencies-test
>> https://pharo.fogbugz.com/f/cases/20583/introduce-system-dependencies-test
>> introduce SystemDependenciesTest

Issue URL: https://pharo.fogbugz.com/f/cases/20583
PR URL: https://github.com/pharo-project/pharo/pull/393
Diff URL: https://github.com/pharo-project/pharo/pull/393/files

Thanks to pavel-krivanek

* [Bug]: Fix Issue 16136 – DateModel: Handle nil Sanely
>> I’ve been using this fix in production for two years, so it should be relatively reliable

Issue URL: https://pharo.fogbugz.com/f/cases/%5BBug%5D: Fix Issue 16136
PR URL: https://github.com/pharo-project/pharo/pull/394
Diff URL: https://github.com/pharo-project/pharo/pull/394/files

Thanks to seandenigris

* 20567-Instance-side-LayoutFramefractions-fractionsOrNil-offsets-should-be-deprecated
>> Fixed all the missing users and deprecate these methods!!!

Issue URL: https://pharo.fogbugz.com/f/cases/20567
PR URL: https://github.com/pharo-project/pharo/pull/386
Diff URL: https://github.com/pharo-project/pharo/pull/386/files

Thanks to Ducasse

* 20596-Zinc-should-not-use-asBytesDescription-as-it-is-deprecated
>> Zinc is using #asBytesDescription. It should not be used as it is deprecated.
>> This error is affecting all the users of Zinc. Ex: Smalltalk CI

Issue URL: https://pharo.fogbugz.com/f/cases/20596
PR URL: https://github.com/pharo-project/pharo/pull/401
Diff URL: https://github.com/pharo-project/pharo/pull/401/files

Thanks to tesonep

* 20026-Diff-has-incorrect-positions-red-and-green-colors-of-changed-text
>> The patch difference should have the cr character. If the patch has multiple lines and it does not have the CR, the resulting highlight is shifted a character per line.
>> Issue: [https://pharo.fogbugz.com/f/cases/resolve/20026/Diff-has-incorrect-positions-red-and-green-colors-of-changed-text](https://pharo.fogbugz.com/f/cases/resolve/20026/Diff-has-incorrect-positions-red-and-green-colors-of-changed-text)

Issue URL: https://pharo.fogbugz.com/f/cases/20026
PR URL: https://github.com/pharo-project/pharo/pull/396
Diff URL: https://github.com/pharo-project/pharo/pull/396/files

Thanks to tesonep

* 20569-Update-Layout-class-comment
>> better class comment

Issue URL: https://pharo.fogbugz.com/f/cases/20569
PR URL: https://github.com/pharo-project/pharo/pull/385
Diff URL: https://github.com/pharo-project/pharo/pull/385/files

Thanks to Ducasse

* 20557-Update-Zinc-and-Zodiac
>> https://pharo.fogbugz.com/f/cases/20557/Update-Zinc-and-Zodiac
>> merge packages:
>> Zodiac-Tests-SvenVanCaekenberghe.18
>> Zinc-Character-Encoding-Core-SvenVanCaekenberghe.54
>> Zinc-Character-Encoding-Tests-SvenVanCaekenberghe.35
>> Zinc-HTTP-SvenVanCaekenberghe.469
>> Zinc-Resource-Meta-Core-SvenVanCaekenberghe.65
>> Zinc-Resource-Meta-Tests-SvenVanCaekenberghe.38
>> Zinc-Tests-SvenVanCaekenberghe.243
>> Zinc-Zodiac-SvenVanCaekenberghe.40

Issue URL: https://pharo.fogbugz.com/f/cases/20557
PR URL: https://github.com/pharo-project/pharo/pull/379
Diff URL: https://github.com/pharo-project/pharo/pull/379/files

Thanks to pavel-krivanek

* 20580-ValueChanged-should-be-moved-to-System-Model
>> https://pharo.fogbugz.com/f/cases/20580/ValueChanged-should-be-moved-to-System-Model
>> move ValueChanged to the package System-Model

Issue URL: https://pharo.fogbugz.com/f/cases/20580
PR URL: https://github.com/pharo-project/pharo/pull/390
Diff URL: https://github.com/pharo-project/pharo/pull/390/files

Thanks to pavel-krivanek

* 20575-TextMorph-cannot-work-without-code-completion-temporary-solution
>> https://pharo.fogbugz.com/f/cases/20575/TextMorph-cannot-work-without-code-completion-temporary-solution
>> safer access to code completion

Issue URL: https://pharo.fogbugz.com/f/cases/20575
PR URL: https://github.com/pharo-project/pharo/pull/387
Diff URL: https://github.com/pharo-project/pharo/pull/387/files

Thanks to pavel-krivanek

* 20573-BaselineOfMorphic-should-include-System-Identification
>> https://pharo.fogbugz.com/f/cases/20573/BaselineOfMorphic-should-include-System-Identification
>> move System-Identification to the BaselineOfMorphic

Issue URL: https://pharo.fogbugz.com/f/cases/20573
PR URL: https://github.com/pharo-project/pharo/pull/384
Diff URL: https://github.com/pharo-project/pharo/pull/384/files

Thanks to pavel-krivanek

* 20546-There-is-no-denyequals-method-in-TestCase-
>> https://pharo.fogbugz.com/f/cases/20546
>> – simulate TAssertable flattening
>> – use different unexpected equality error message
>> – add denyCollection:equals:

Issue URL: https://pharo.fogbugz.com/f/cases/20546
PR URL: https://github.com/pharo-project/pharo/pull/366
Diff URL: https://github.com/pharo-project/pharo/pull/366/files

Thanks to pavel-krivanek

* 20560-Fix-instance-veriables-for-Spec-presenters-ending-with–model
>> https://pharo.fogbugz.com/f/cases/20560/Fix-instance-veriables-for-Spec-presenters-ending-with-model
>> fix some presenters instance veriables with wrong names

Issue URL: https://pharo.fogbugz.com/f/cases/20560
PR URL: https://github.com/pharo-project/pharo/pull/381
Diff URL: https://github.com/pharo-project/pharo/pull/381/files

Thanks to pavel-krivanek

* 20564-Spec-Core-must-be-Morphic-independent
>> https://pharo.fogbugz.com/f/cases/20564/Spec-Core-must-be-Morphic-independent

Issue URL: https://pharo.fogbugz.com/f/cases/20564
PR URL: https://github.com/pharo-project/pharo/pull/383
Diff URL: https://github.com/pharo-project/pharo/pull/383/files

Thanks to pavel-krivanek

LiteratureResearcher – where graphs, PDFs, and BibTex happily live together

Hi everyone,

I was experimenting in the last few weeks with my take on literature research. For me, the corpus of scientific papers form an interconnected graph, not those plain lists and tables we keep in our bibliographies. So, here is the first prototype that has Google Scholar integration for search, can fetch PDFs from IEEE and ACM, extracts metadata from PDFs – all this results in hyperlinked PDFs!

See a demo here: https://youtu.be/EcK3Pt_WnEw
Also slides from the SCG seminar here: http://scg.unibe.ch/download/softwarecomposition/2017-10-31-Leuenberger-ILE.pdf

I plan on packaging it, so that those who are interested can check it out themselves (help wanted!). Currently, it only works on macOS.

What do you think of my approach? Which use cases should be added?