[squeak-dev] Squeak and Tonel

David T. Lewis lewis at mail.msen.com
Fri Feb 15 01:14:08 UTC 2019

Hi Torsten,

Thank you very much for asking about this, and thanks to Nicolas for the

As a package maintainer (OSProcess and others), I want to be able to
provide continued support for Pharo users, and it would probably be helpful
if I could read and write to Tonel as an external format. I am also interested
in being able to browse and read the projects (many of them quite excellent)
that are being developed in Pharo from my Squeak image.

I am a big fan of git, but I do not care about integrating it with the
image (Squeak/Pharo) because I prefer using the in-image tools in Squeak,
and when I do use git, I prefer to use git tools directly.

I am not well informed about this topic, but overall I would say that being
able to read and write Tonel format from Squeak would be very helpful, and
I would probably not care very much about version control integration.

Thanks again for asking,


On Thu, Feb 14, 2019 at 11:15:23PM +0100, Nicolas Cellier wrote:
> I think that we should at least support the input/output of tonel packages
> for inter-operability.
> Since the git repositories are metadataless, we can't do much more without
> a lot of work.
> Since tonel has no support for timestamps, it looses authorship (it is
> replaced by committer-ship).
> If we don't want to loose authorship, then we need to port whole history to
> git with known initials <-> git(hub) account database.
> This is currently working for single package with complex graph (to
> filetree format, but could work for Tonel too).
> If you want to commit several MC packages in same git repository, then it's
> currently impossible to support complex history.
> There is generally no information that enables inter-MC-package
> synchronization (unless some sort of MCConfigurationMap is used, which at
> least gives a few sync point in history...).
> If we want to perform essential operations like commit/pull/merge or access
> essential information as history/revisions/diffs then we have to
> - either reproduce the very hard work that began in Pharo: program a git
> client inside the image,
> - or loose inside image tools.
> Squeak MC tools are much more productive than Pharo MC tools:
> - they scale well even for massive changes (i did check with auto generated
> Smallapack interface)
> - they support cherry-picking: you see and control what you commit
> - they are quasi bugfree
> - the magma backend provides a few additional features (revisions...)
> Pharo team has produced huge effort for the github switch, but it does not
> go without pain. Despite the importance of being visible on github, and
> profit by state of the art web collaborating tools, i don't see Squeak able
> to take this major turn in near future.
> If we want to have mix development with packages maintained both in a MC
> repository and a git metadataless repository,
> then we have the problem of finding a common ancestor.
> I think that this could be doable with some conventions (like storing the
> .last_known_mc_ancestor in a file)
> Of course, it's re-introduction of metadata, but the minimal possible, and
> leads to easy to resolve conflicts (that can be automated)...
> The last grief I have with Tonel is that it is not syntax agnostic.
> Since we have a language where we can define compilerClass/parserClass,
> that's unfortunate (The application i developed in the 90's did use such
> important feature, it's not just theoretical)
> It could have been language agnostic with very little effort (remember the
> discussion on Pharo-dev, just using an arbitrary number of [[[   ]]] as
> method body separators would suffice)
> For most packages, that will not be a problem though.
> Le jeu. 14 f??vr. 2019 ?? 15:17, Torsten Bergmann <astares at gmx.de> a ??crit :
> > Hi,
> >
> > as some of you might already know "Tonel" is a file-per-class format for
> > monticello repositories [1].
> >
> > In Pharo land many projects are already converted to it - as regular "file
> > tree" solution faces issues
> > with git handling due to very long file names / deep file hierarchy (often
> > leading to trouble on Windows).
> >
> > Dales's Rowan (a new project/package manager for Smalltalk) supports
> > FileTree and also Tonel
> > repositories [2]. There is also a tool to convert from STORE (VisualWorks
> > Source-Code Versioning System)
> > to Tonel format [3].
> >
> > So I wonder about adoption of Tonel in Squeak land.
> >
> > Any status/comments?
> >
> > Thx
> > T.
> >
> > [1] https://github.com/pharo-vcs/tonel
> > [2] https://github.com/GemTalk/Rowan
> > [3]
> > https://pharoweekly.wordpress.com/2019/01/20/ann-sett-store-export-to-tonel-tools-for-pharo6-1/
> >
> >
> >
> >


More information about the Squeak-dev mailing list