> On 7 Oct 2017, at 08:10, Denis Kudriashov <[email protected]> wrote:
> 
> Hi Esteban
> 
> 2017-10-06 19:18 GMT+02:00 Esteban Lorenzano <[email protected] 
> <mailto:[email protected]>>:
> Hi all, 
> 
> I released Iceberg version 0.6. It includes a lot of small tweaks and fixes, 
> but the most important inclusion is tonel file format which aims to replace 
> file tree.
> 
> What is Tonel? (https://github.com/pharo-vcs/tonel 
> <https://github.com/pharo-vcs/tonel>)
> Tonel is a file-per-class file format for monticello repositories. It’s 
> purpose is to reduce the amount of files touched each operation, make the IO 
> faster an compact the repositories database. 
> It has also as an objective to offer an “easy-to-read” format, so people 
> wanting to understand a chunk of code will recognise it easily. 
> For testing, I migrated several of my projects to Tonel and I’ve been using 
> it, you can see some as examples: 
> 
> https://github.com/estebanlm/MUDClient 
> <https://github.com/estebanlm/MUDClient>
> https://github.com/estebanlm/pharo-tonel 
> <https://github.com/estebanlm/pharo-tonel> (this was just an example and it 
> has some minimal errors already fixed)
> 
> Did you accept format changes?
> Because it still uses category for the class. Really, we are moving away from 
> it. Class has package and tags.
> Method also needs support for multiple tags. While you are not agree on using 
> tags terminology Tonel still uses single category for this. 
> I think it is important for the new format to not use deprecated names and 
> add support for upcoming features. Instead we will be forced to maintain old 
> Tonel format at some point.
> And what about slots and class extensions? Do you have example for them?

We will support changes when the subjacent model changes. 
Just cosmetic changes are a no go for me, because that’s always arguably. For 
example, is been months that I’m telling you that protocols and tags are not 
the same, even if mechanically they behave the same :)
So, tonel will support “protocol” (and “protocols”) instead category (when 
MCMethodDefinition changes). But for sure it will not support “tag” or “tags” :P
It will support slots too… just when MC metamodel supports it.

Class extensions are there: Object.extension.class, for example.

Now, Tonel format is thought to be flexible because we intend to use it to 
replace file tree and file tree *is* flexible. Using STON definitions allows us 
to quickly adapt at the only price of being backward compatible a reasonable 
amount of time. So, it will adapt… but as I said, it will adapt with real 
system changes.

Esteban
 

>  
> 
> We plan to migrate Pharo development to tonel to address some problems we 
> have: 
> 
> - since it has to read/write a lot of files, IO operations are slow
> - and even much more slow in Windows
> - Windows also has a problem with longpaths.
> 
> Iceberg 0.6 will be integrated to Pharo7 soon :)
> To update Pharo 6.1, there are instructions in the readme: 
> https://github.com/pharo-vcs/iceberg/blob/master/README.md 
> <https://github.com/pharo-vcs/iceberg/blob/master/README.md>
> now, if you wan to migrate your projects to Tonel (from FileTree), here is a 
> script you can use: 
> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md 
> <https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md>
> 
> btw, tonel is independent of Iceberg and can be used with plain Monticello 
> (but it is a metadaless format, history will reside on git, not on 
> monticello).
> 
> cheers, 
> Esteban 
> 

Reply via email to