Charting the Pharo ecosystem

Project Idea

The Pharo ecosystem has been growing and morphing since its birth from sharing code in Monticello archives on SqueakSource, via Metacello configurations on Monticello-backed projects on SmalltalkHub, to its current home on GitHub with the rise of the Iceberg git client. As building a project on top of existing, specialized libraries circumvents to reinvent the wheel over and over again, projects became more and more interdependent. The heterogeneous and growing traits of the ecosystem make it non-trivial to search and find suitable libraries if a developer is not already clear about what exactly needs to be sought after. Despite the current solution of maintaining a central catalog of available libraries, many sources are invisible to a developer on the hunt for an appropriate library. The goal of this project is to chart the undiscovered seas and islands of Pharo projects in an extensible and self-updating index. Especially, inter-project dependencies are non-trivial to retrieve from Pharo projects, as dependency declarations are currently not declarative, but rather imperative. Creating a map of the Pharo ecosystem with reconstructed inter-project dependencies enables the discovery and targeted search of API clients, opening up opportunities for an improved gardening within the ecosystem itself. A prototype to install and inspect arbitrary projects already exists in randy with libraries.io integration for SmalltalkHub, yet it is incomplete and needs to be extended.

Contact

Manuel Leuenberger

Last changed by manuel on 14 February 2019