Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-08 Thread Esteban Lorenzano

> On 8 Oct 2017, at 01:40, Tim Mackinnon  wrote:
> 
> I see the answer is due to STON - fine I'll live with it.
> 
> I think we missed a chance to superficially look like more conventional 
> languages on the web in GitHub but that ship had sailed and maybe it's not 
> such a bad thing.

I think tonel does a fair job in keeping “Pharo flavour” and not looking 
completely alien to newcomers/non-pharoers.
the method detail is just that, a detail. And even looking for readability, we 
still need to keep what we are, I think :)

> I'll happily take just been able to efficiently use GitHub asap any day.

well, that’s what I’m working on :)

Esteban

> 
> So please keep rolling forward.
> 
> Tim
> 
> Sent from my iPhone
> 
>> On 7 Oct 2017, at 09:08, Stephane Ducasse  wrote:
>> 
>> Tim
>> 
>> we talk about this format of methods year ago and we will like it and
>> we will not discuss it anymore.
>> For the record a method is a named block so it fits and we do not have
>> to have {} for method delimiters.
>> 
>> Stef
>> 
>>> On Fri, Oct 6, 2017 at 11:34 PM, Tim Mackinnon  wrote:
>>> Gosh - It actually work quite well to be able to easily browse code online
>>> in a more traditional format of seeing an entire class. Hopefully this leads
>>> to us being able to share solutions to common language agnostic problems.
>>> 
>>> One small observation - I quickly grok’d the use of class { …. } (with the
>>> curly braces) - but given that smalltalk methods often have lots of  [ ]
>>> (square braces in them), I was a bit surprised to see that method
>>> declarations in tonal don’t use { … } (curly braces) to denote them, but
>>> instead use [ ] - which feels slightly strange given the class declaration
>>> above has. {}.
>>> 
>>> Was it easier to parse this way, or is there some subtlety I missed? I would
>>> have been tempted to use  {} for classes and methods and [] for the
>>> protocols as this more closely matches what other languages do - and it
>>> might actually make it more easily readable for other programmers. Given we
>>> have to learn this new format anyway - I’d be prepared to give a nod to what
>>> others do…
>>> 
>>> Possibly this observation comes to late - and maybe there is compelling
>>> reason to go the route we have gone - but maybe its worth a quick double
>>> check as its an exciting development.
>>> 
>>> Tim
>>> 
>>> On 6 Oct 2017, at 18:18, Esteban Lorenzano  wrote:
>>> 
>>> 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)
>>> 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/pharo-tonel (this was just an example and it
>>> has some minimal errors already fixed)
>>> 
>>> 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
>>> 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
>>> 
>>> 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
>>> 
>>> 
>> 
> 
> 




Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Tim Mackinnon
I see the answer is due to STON - fine I'll live with it.

I think we missed a chance to superficially look like more conventional 
languages on the web in GitHub but that ship had sailed and maybe it's not such 
a bad thing.

I'll happily take just been able to efficiently use GitHub asap any day.

So please keep rolling forward.

Tim

Sent from my iPhone

> On 7 Oct 2017, at 09:08, Stephane Ducasse  wrote:
> 
> Tim
> 
> we talk about this format of methods year ago and we will like it and
> we will not discuss it anymore.
> For the record a method is a named block so it fits and we do not have
> to have {} for method delimiters.
> 
> Stef
> 
>> On Fri, Oct 6, 2017 at 11:34 PM, Tim Mackinnon  wrote:
>> Gosh - It actually work quite well to be able to easily browse code online
>> in a more traditional format of seeing an entire class. Hopefully this leads
>> to us being able to share solutions to common language agnostic problems.
>> 
>> One small observation - I quickly grok’d the use of class { …. } (with the
>> curly braces) - but given that smalltalk methods often have lots of  [ ]
>> (square braces in them), I was a bit surprised to see that method
>> declarations in tonal don’t use { … } (curly braces) to denote them, but
>> instead use [ ] - which feels slightly strange given the class declaration
>> above has. {}.
>> 
>> Was it easier to parse this way, or is there some subtlety I missed? I would
>> have been tempted to use  {} for classes and methods and [] for the
>> protocols as this more closely matches what other languages do - and it
>> might actually make it more easily readable for other programmers. Given we
>> have to learn this new format anyway - I’d be prepared to give a nod to what
>> others do…
>> 
>> Possibly this observation comes to late - and maybe there is compelling
>> reason to go the route we have gone - but maybe its worth a quick double
>> check as its an exciting development.
>> 
>> Tim
>> 
>> On 6 Oct 2017, at 18:18, Esteban Lorenzano  wrote:
>> 
>> 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)
>> 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/pharo-tonel (this was just an example and it
>> has some minimal errors already fixed)
>> 
>> 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
>> 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
>> 
>> 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
>> 
>> 
> 




Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Ben Coman
On Sat, Oct 7, 2017 at 1:18 AM, Esteban Lorenzano 
wrote:

> 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)
> 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/pharo-tonel (this was just an example and it
> has some minimal errors already fixed)
>

Tonel looks really nice - very clean and readable.

A question about the dual use of #category here...
Class {
#name : #MUDAliasCommand,
#superclass : #Object,
#instVars : [
'keywords'
],
#classVars : [
'CommandParser'
],
#category : 'MUDClient-Plugin-Alias-Parser'
}
{ #category : #'instance creation' }
MUDAliasCommand class >> fromString: aString [
^ self parse: aString
]

It would be nice to separate the semantics, changing one to either #package
or the other to #protocol. I thought we were leaving class categories
behind, so the following seems to provide a more consistent future...
  #package : 'MUDClient-Plugin-Alias-Parser'


Now because we live with this the next ten years, even though I'm mindful
that you're "done", I'm going to be annoying and ask consideration to fine
tune one thing, to move the open-square-bracket like this...
{ #category : #'instance creation' } [
MUDAliasCommand class >> fromString: aString
^ self parse: aString
]

This would help adhoc copy-pasting from web repos into the Image.  Although
as Tonel currently stands it is trivial to delete one square bracket, it
would be more elegant not doing it when copy-pasting a dozen methods.

I hope for a future where new methods might be created directly from
Playground by doing...
MUDAliasCommand class >> fromString: aString
  ^ self parse: aString

and further, if Opal could be made parse STON format and recognize the
back-to-back close-curly/open-square brackets**, you could copy-paste a
whole class from a Tonel web repo into Playground or the Browser to adhoc
install of a whole class. That would be magic!

** Actually this might be easier to identify than if they are separated.

On a minor note, "fromString: aString" is part of the method source, so it
conceptually it should be okay to have inside the square brackets.

Anyway, I understand if there are constraints against making this change,
being late to the party but some thoughts don't arise until there is a
practical example to reflect on and the final chance is imminent, so just
asking it be considered.

cheers -ben


P.S. in a world where Bloc can do arbitrary objects inline with text, the
"MUDAliasCommand class >>" part might show as one chunk to the left of
"fromString: aString".  The benefit for newcomers would be *explicitly*
showing which instance/class-side the method belongs to, rather than
relying on the implicit selection of the class-button which newcomers often
miss (I remember being caught on that a few times until I got my eye
attuned)


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Esteban Lorenzano

> On 7 Oct 2017, at 10:10, Stephane Ducasse  wrote:
> 
> Yes it would be good that class description do not use category else
> we will never be able to clean.

but as I said to Denis, adapting tonel would be easy, but it would be a 
cosmetic change when what we actually need is to adapt the structure. Right now 
Ring2 supports this, but Monticello metadata still doesn’t.
And I prefer to do the real fix, not just the cosmetic one… for me putting a 
line like this: 

TonelWriter >> methodDefinitionOf: aMethodDefinition
^ self toSTON: (OrderedDictionary new 
at: #protocol put: aMethodDefinition category; 
yourself)   

would be a smell, and pointless. 
but: 

methodDefinitionOf: aMethodDefinition
^ self toSTON: (OrderedDictionary new 
at: #protocol put: aMethodDefinition protocol; 
yourself)

looks a lot better :)

Esteban

> 
> Denis multiple tags for methods. when we will stop to add new features
> and stabilise what we have?
> 
> Yes I'm not in a good mood because I see that I will have to migrate
> all calypso in the future to brick.
> 
> Stef
> 
> On Sat, Oct 7, 2017 at 10:08 AM, Stephane Ducasse
>  wrote:
>> Tim
>> 
>> we talk about this format of methods year ago and we will like it and
>> we will not discuss it anymore.
>> For the record a method is a named block so it fits and we do not have
>> to have {} for method delimiters.
>> 
>> Stef
>> 
>> On Fri, Oct 6, 2017 at 11:34 PM, Tim Mackinnon  wrote:
>>> Gosh - It actually work quite well to be able to easily browse code online
>>> in a more traditional format of seeing an entire class. Hopefully this leads
>>> to us being able to share solutions to common language agnostic problems.
>>> 
>>> One small observation - I quickly grok’d the use of class { …. } (with the
>>> curly braces) - but given that smalltalk methods often have lots of  [ ]
>>> (square braces in them), I was a bit surprised to see that method
>>> declarations in tonal don’t use { … } (curly braces) to denote them, but
>>> instead use [ ] - which feels slightly strange given the class declaration
>>> above has. {}.
>>> 
>>> Was it easier to parse this way, or is there some subtlety I missed? I would
>>> have been tempted to use  {} for classes and methods and [] for the
>>> protocols as this more closely matches what other languages do - and it
>>> might actually make it more easily readable for other programmers. Given we
>>> have to learn this new format anyway - I’d be prepared to give a nod to what
>>> others do…
>>> 
>>> Possibly this observation comes to late - and maybe there is compelling
>>> reason to go the route we have gone - but maybe its worth a quick double
>>> check as its an exciting development.
>>> 
>>> Tim
>>> 
>>> On 6 Oct 2017, at 18:18, Esteban Lorenzano  wrote:
>>> 
>>> 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)
>>> 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/pharo-tonel (this was just an example and it
>>> has some minimal errors already fixed)
>>> 
>>> 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
>>> 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
>>> 
>>> 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
>>> 
>>> 
> 




Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Esteban Lorenzano

> On 7 Oct 2017, at 08:14, Denis Kudriashov  wrote:
> 
> How method history will be supported with Tonel?

we will use git blame, probably. 
or we will use log from class then take definitions and trace method changes. 

what is easier to implement (right now, I think is the 2nd, what looks easier… )

Esteban

ps: btw, 2nd way is how plain Monticello supports method history too.


> 
> 2017-10-06 19:18 GMT+02:00 Esteban Lorenzano  >:
> 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 
> )
> 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/pharo-tonel 
>  (this was just an example and it 
> has some minimal errors already fixed)
> 
> 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 
> 
> 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 
> 
> 
> 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 
> 



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Esteban Lorenzano

> On 7 Oct 2017, at 08:10, Denis Kudriashov  wrote:
> 
> Hi Esteban
> 
> 2017-10-06 19:18 GMT+02:00 Esteban Lorenzano  >:
> 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 
> )
> 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/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 
> 
> 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 
> 
> 
> 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 
> 



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Esteban Lorenzano

> On 6 Oct 2017, at 23:44, Cyril Ferlicot D.  wrote:
> 
> Le 06/10/2017 à 23:34, Tim Mackinnon a écrit :
>> Gosh - It actually work quite well to be able to easily browse code
>> online in a more traditional format of seeing an entire class. Hopefully
>> this leads to us being able to share solutions to common language
>> agnostic problems.
>> 
>> One small observation - I quickly grok’d the use of class { …. } (with
>> the curly braces) - but given that smalltalk methods often have lots of
>>  [ ] (square braces in them), I was a bit surprised to see that method
>> declarations in tonal don’t use { … } (curly braces) to denote them, but
>> instead use [ ] - which feels slightly strange given the class
>> declaration above has. {}.
>> 
>> Was it easier to parse this way, or is there some subtlety I missed? I
>> would have been tempted to use  {} for classes and methods and [] for
>> the protocols as this more closely matches what other languages do - and
>> it might actually make it more easily readable for other programmers.
>> Given we have to learn this new format anyway - I’d be prepared to give
>> a nod to what others do…
>> 
>> Possibly this observation comes to late - and maybe there is compelling
>> reason to go the route we have gone - but maybe its worth a quick double
>> check as its an exciting development.
>> 
>> Tim
>> 
>> 
> Hi,
> 
> I cannot say for class, but the {} for methods metadata (as protocols)
> is because it is STON.

yeah, that’s the reason… we use STON to store package/class/method metadata. 
And STON uses curly braces :S
not a big fan either, but at a point I had to make the thing work :)

Esteban 

> 
> -- 
> Cyril Ferlicot
> https://ferlicot.fr 
> 
> http://www.synectique.eu 
> 2 rue Jacques Prévert 01,
> 59650 Villeneuve d'ascq France



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Esteban Lorenzano

> On 6 Oct 2017, at 21:56, Mariano Martinez Peck  wrote:
> 
> 
> 
> On Fri, Oct 6, 2017 at 4:46 PM, Cyril Ferlicot D.  > wrote:
> Le 06/10/2017 à 21:38, Cyril Ferlicot D. a écrit :
> > Le 06/10/2017 à 21:34, Mariano Martinez Peck a écrit :
> >> I followed the instructions to update Iceberg from in a 6.1 image. When
> >> I tried to clone the repository, I have the attached error (DNU on
> >> #dangerTextColor). I workedaround that by doing:
> >>
> >> IceAbstractModel >> colorError
> >> ^ Color red
> >>
> >> After I manage to make some progress and I finally was able to clone the
> >> repository, I get a #free DNU (see attached too). 
> >>
> >
> > Hi,
> >
> > I introduced #dangerTextColor in Pharo 7 and used it on Iceberg. But I
> > though I added it to #Iceberg-Pharo6 package.
> >
> > I'll check and do a hotfix when I'll have the time.
> >
> 
> Hum… This is weird because I see those methods in the Iceberg-Pharo6
> package and I see this package in the baseline.
> 
> Can you check if you have this package?
> 
> 
> Weird that package is not being loaded...  sure I can explicitly load it 
> ... but I think we must fix the baseline... but the baseline looks correct 
> doesnt it ? I don't understand.

I will release 0.6.1 with that fix and all problems that arise this week end ;)

Esteban


> 
>  
> 
> -- 
> Mariano
> http://marianopeck.wordpress.com 


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Stephane Ducasse
Yes it would be good that class description do not use category else
we will never be able to clean.

Denis multiple tags for methods. when we will stop to add new features
and stabilise what we have?

Yes I'm not in a good mood because I see that I will have to migrate
all calypso in the future to brick.

Stef

On Sat, Oct 7, 2017 at 10:08 AM, Stephane Ducasse
 wrote:
> Tim
>
> we talk about this format of methods year ago and we will like it and
> we will not discuss it anymore.
> For the record a method is a named block so it fits and we do not have
> to have {} for method delimiters.
>
> Stef
>
> On Fri, Oct 6, 2017 at 11:34 PM, Tim Mackinnon  wrote:
>> Gosh - It actually work quite well to be able to easily browse code online
>> in a more traditional format of seeing an entire class. Hopefully this leads
>> to us being able to share solutions to common language agnostic problems.
>>
>> One small observation - I quickly grok’d the use of class { …. } (with the
>> curly braces) - but given that smalltalk methods often have lots of  [ ]
>> (square braces in them), I was a bit surprised to see that method
>> declarations in tonal don’t use { … } (curly braces) to denote them, but
>> instead use [ ] - which feels slightly strange given the class declaration
>> above has. {}.
>>
>> Was it easier to parse this way, or is there some subtlety I missed? I would
>> have been tempted to use  {} for classes and methods and [] for the
>> protocols as this more closely matches what other languages do - and it
>> might actually make it more easily readable for other programmers. Given we
>> have to learn this new format anyway - I’d be prepared to give a nod to what
>> others do…
>>
>> Possibly this observation comes to late - and maybe there is compelling
>> reason to go the route we have gone - but maybe its worth a quick double
>> check as its an exciting development.
>>
>> Tim
>>
>> On 6 Oct 2017, at 18:18, Esteban Lorenzano  wrote:
>>
>> 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)
>> 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/pharo-tonel (this was just an example and it
>> has some minimal errors already fixed)
>>
>> 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
>> 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
>>
>> 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
>>
>>



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Stephane Ducasse
Tim

we talk about this format of methods year ago and we will like it and
we will not discuss it anymore.
For the record a method is a named block so it fits and we do not have
to have {} for method delimiters.

Stef

On Fri, Oct 6, 2017 at 11:34 PM, Tim Mackinnon  wrote:
> Gosh - It actually work quite well to be able to easily browse code online
> in a more traditional format of seeing an entire class. Hopefully this leads
> to us being able to share solutions to common language agnostic problems.
>
> One small observation - I quickly grok’d the use of class { …. } (with the
> curly braces) - but given that smalltalk methods often have lots of  [ ]
> (square braces in them), I was a bit surprised to see that method
> declarations in tonal don’t use { … } (curly braces) to denote them, but
> instead use [ ] - which feels slightly strange given the class declaration
> above has. {}.
>
> Was it easier to parse this way, or is there some subtlety I missed? I would
> have been tempted to use  {} for classes and methods and [] for the
> protocols as this more closely matches what other languages do - and it
> might actually make it more easily readable for other programmers. Given we
> have to learn this new format anyway - I’d be prepared to give a nod to what
> others do…
>
> Possibly this observation comes to late - and maybe there is compelling
> reason to go the route we have gone - but maybe its worth a quick double
> check as its an exciting development.
>
> Tim
>
> On 6 Oct 2017, at 18:18, Esteban Lorenzano  wrote:
>
> 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)
> 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/pharo-tonel (this was just an example and it
> has some minimal errors already fixed)
>
> 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
> 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
>
> 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
>
>



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Denis Kudriashov
How method history will be supported with Tonel?

2017-10-06 19:18 GMT+02:00 Esteban Lorenzano :

> 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)
> 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/pharo-tonel (this was just an example and it
> has some minimal errors already fixed)
>
> 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
> 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
>
> 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
>


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-07 Thread Denis Kudriashov
Hi Esteban

2017-10-06 19:18 GMT+02:00 Esteban Lorenzano :

> 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)
> 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/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 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
> 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
>
> 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
>


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Cyril Ferlicot D.
Le 07/10/2017 à 00:34, Cyril Ferlicot D. a écrit :
> Le 06/10/2017 à 21:56, Mariano Martinez Peck a écrit :
>>
>> Weird that package is not being loaded...  sure I can explicitly
>> load it ... but I think we must fix the baseline... but the baseline
>> looks correct doesnt it ? I don't understand.
>>
>>  
> 
> I think I found the way to correct this problem. I will do a PR with the
> fix.
> 

https://github.com/pharo-vcs/iceberg/pull/478

>>
>> -- 
>> Mariano
>> http://marianopeck.wordpress.com
> 
> 


-- 
Cyril Ferlicot
https://ferlicot.fr

http://www.synectique.eu
2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France



signature.asc
Description: OpenPGP digital signature


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Cyril Ferlicot D.
Le 06/10/2017 à 21:56, Mariano Martinez Peck a écrit :
>
> Weird that package is not being loaded...  sure I can explicitly
> load it ... but I think we must fix the baseline... but the baseline
> looks correct doesnt it ? I don't understand.
> 
>  

I think I found the way to correct this problem. I will do a PR with the
fix.

> 
> -- 
> Mariano
> http://marianopeck.wordpress.com


-- 
Cyril Ferlicot
https://ferlicot.fr

http://www.synectique.eu
2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France



signature.asc
Description: OpenPGP digital signature


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Cyril Ferlicot D.
Le 06/10/2017 à 23:34, Tim Mackinnon a écrit :
> Gosh - It actually work quite well to be able to easily browse code
> online in a more traditional format of seeing an entire class. Hopefully
> this leads to us being able to share solutions to common language
> agnostic problems.
> 
> One small observation - I quickly grok’d the use of class { …. } (with
> the curly braces) - but given that smalltalk methods often have lots of
>  [ ] (square braces in them), I was a bit surprised to see that method
> declarations in tonal don’t use { … } (curly braces) to denote them, but
> instead use [ ] - which feels slightly strange given the class
> declaration above has. {}.
> 
> Was it easier to parse this way, or is there some subtlety I missed? I
> would have been tempted to use  {} for classes and methods and [] for
> the protocols as this more closely matches what other languages do - and
> it might actually make it more easily readable for other programmers.
> Given we have to learn this new format anyway - I’d be prepared to give
> a nod to what others do…
> 
> Possibly this observation comes to late - and maybe there is compelling
> reason to go the route we have gone - but maybe its worth a quick double
> check as its an exciting development.
> 
> Tim
> 
> 
Hi,

I cannot say for class, but the {} for methods metadata (as protocols)
is because it is STON.

-- 
Cyril Ferlicot
https://ferlicot.fr

http://www.synectique.eu
2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France



signature.asc
Description: OpenPGP digital signature


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Tim Mackinnon
Gosh - It actually work quite well to be able to easily browse code online in a 
more traditional format of seeing an entire class. Hopefully this leads to us 
being able to share solutions to common language agnostic problems.

One small observation - I quickly grok’d the use of class { …. } (with the 
curly braces) - but given that smalltalk methods often have lots of  [ ] 
(square braces in them), I was a bit surprised to see that method declarations 
in tonal don’t use { … } (curly braces) to denote them, but instead use [ ] - 
which feels slightly strange given the class declaration above has. {}.

Was it easier to parse this way, or is there some subtlety I missed? I would 
have been tempted to use  {} for classes and methods and [] for the protocols 
as this more closely matches what other languages do - and it might actually 
make it more easily readable for other programmers. Given we have to learn this 
new format anyway - I’d be prepared to give a nod to what others do…

Possibly this observation comes to late - and maybe there is compelling reason 
to go the route we have gone - but maybe its worth a quick double check as its 
an exciting development.

Tim

> On 6 Oct 2017, at 18:18, Esteban Lorenzano  wrote:
> 
> 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 
> )
> 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/pharo-tonel 
>  (this was just an example and it 
> has some minimal errors already fixed)
> 
> 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 
> 
> 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 
> 
> 
> 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 



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Mariano Martinez Peck
On Fri, Oct 6, 2017 at 4:46 PM, Cyril Ferlicot D. 
wrote:

> Le 06/10/2017 à 21:38, Cyril Ferlicot D. a écrit :
> > Le 06/10/2017 à 21:34, Mariano Martinez Peck a écrit :
> >> I followed the instructions to update Iceberg from in a 6.1 image. When
> >> I tried to clone the repository, I have the attached error (DNU on
> >> #dangerTextColor). I workedaround that by doing:
> >>
> >> IceAbstractModel >> colorError
> >> ^ Color red
> >>
> >> After I manage to make some progress and I finally was able to clone the
> >> repository, I get a #free DNU (see attached too).
> >>
> >
> > Hi,
> >
> > I introduced #dangerTextColor in Pharo 7 and used it on Iceberg. But I
> > though I added it to #Iceberg-Pharo6 package.
> >
> > I'll check and do a hotfix when I'll have the time.
> >
>
> Hum… This is weird because I see those methods in the Iceberg-Pharo6
> package and I see this package in the baseline.
>
> Can you check if you have this package?
>
>
Weird that package is not being loaded...  sure I can explicitly load
it ... but I think we must fix the baseline... but the baseline looks
correct doesnt it ? I don't understand.



-- 
Mariano
http://marianopeck.wordpress.com


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Cyril Ferlicot D.
Le 06/10/2017 à 21:34, Mariano Martinez Peck a écrit :
> I followed the instructions to update Iceberg from in a 6.1 image. When
> I tried to clone the repository, I have the attached error (DNU on
> #dangerTextColor). I workedaround that by doing:
> 
> IceAbstractModel >> colorError
> ^ Color red
> 
> After I manage to make some progress and I finally was able to clone the
> repository, I get a #free DNU (see attached too). 
> 

Hi,

I introduced #dangerTextColor in Pharo 7 and used it on Iceberg. But I
though I added it to #Iceberg-Pharo6 package.

I'll check and do a hotfix when I'll have the time.

> Cheers, 
>  
> 
> 
> 
> 
> 
> -- 
> Mariano
> http://marianopeck.wordpress.com


-- 
Cyril Ferlicot
https://ferlicot.fr

http://www.synectique.eu
2 rue Jacques Prévert 01,
59650 Villeneuve d'ascq France



signature.asc
Description: OpenPGP digital signature


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Stephane Ducasse
Hi gabriel

I think so because this is important for many people.

Stef

On Fri, Oct 6, 2017 at 8:46 PM, Gabriel Cotelli  wrote:
> Will it be also integrated on Pharo 6.1?
>
> On Fri, Oct 6, 2017 at 3:10 PM, Esteban Lorenzano 
> wrote:
>>
>>
>> On 6 Oct 2017, at 20:08, Esteban Lorenzano  wrote:
>>
>>
>> On 6 Oct 2017, at 20:05, Stephane Ducasse  wrote:
>>
>> Hi esteban
>>
>> I did not find the script that you mentioned.
>>
>>
>> the one for filetree to tonel?
>>
>> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md
>>
>> I will copy here:
>>
>> locationDir := 'path/to/your/repo' asFileReference.
>> subDir := 'your-source-dir-or-empty'.
>> sourceDir := locationDir.
>> subDir
>>  ifNotNil: [
>>  subDirWithDelim := subDir, '/'.
>>  sourceDir := sourceDir / subDir ]
>>  ifNil: [
>>  subDirWithDelim := '' ].
>>
>> repo := IceRepositoryCreator new
>>  location: locationDir;
>>  subdirectory: subDir;
>>  createRepository.
>>
>> "branch if you want to perform the migration on separated place (you can
>> later do a PR)"
>> repo createBranch: 'migrate-sources-to-tonel'.
>>
>> commit := repo branch lastCommit.
>> repo savedPackages do: [ :each | | filetreePackage |
>>  TonelWriter fileOut: (commit versionFor: each) on: sourceDir.
>>  filetreePackage := IceLibgitFiletreeWriter directoryNameFor: each.
>>  (sourceDir / filetreePackage) ensureDeleteAll.
>>   repo addFilesToIndex: {
>>  subDirWithDelim, (IceLibgitTonelWriter directoryNameFor: each).
>>  subDirWithDelim, (IceLibgitFiletreeWriter directoryNameFor: 
>> each). } ].
>>
>> repo addProperties: (IceRepositoryProperties fromDictionary: { #format ->
>> #tonel } asDictionary).
>>
>> repo
>>  commitIndexWithMessage: 'sources migrated'
>>  andParents: { commit }.
>>  
>> repo push.
>>
>>
>>
>>
>> but beware, to use 0.6 on Pharo7, better wait until integration (next
>> week): update is not trivial because pharo project comes with some
>> IceMCVersionInfo inside that will become obsolete, etc., etc., etc.
>>
>> Esteban
>>
>>
>>
>> Stef
>>
>> On Fri, Oct 6, 2017 at 7:18 PM, Esteban Lorenzano 
>> wrote:
>>
>> 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)
>> 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/pharo-tonel (this was just an example and it
>> has some minimal errors already fixed)
>>
>> 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
>> 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
>>
>> 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
>>
>>
>>
>>
>



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Gabriel Cotelli
Will it be also integrated on Pharo 6.1?

On Fri, Oct 6, 2017 at 3:10 PM, Esteban Lorenzano 
wrote:

>
> On 6 Oct 2017, at 20:08, Esteban Lorenzano  wrote:
>
>
> On 6 Oct 2017, at 20:05, Stephane Ducasse  wrote:
>
> Hi esteban
>
> I did not find the script that you mentioned.
>
>
> the one for filetree to tonel?
>
> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md
>
> I will copy here:
>
> locationDir := 'path/to/your/repo' asFileReference.
> subDir := 'your-source-dir-or-empty'.
> sourceDir := locationDir.
> subDir
>   ifNotNil: [
>   subDirWithDelim := subDir, '/'.
>   sourceDir := sourceDir / subDir ]
>   ifNil: [
>   subDirWithDelim := '' ].
>
> repo := IceRepositoryCreator new
>   location: locationDir;
>   subdirectory: subDir;
>   createRepository.
> "branch if you want to perform the migration on separated place (you can 
> later do a PR)"
> repo createBranch: 'migrate-sources-to-tonel'.
>
> commit := repo branch lastCommit.
> repo savedPackages do: [ :each | | filetreePackage |
>   TonelWriter fileOut: (commit versionFor: each) on: sourceDir.
>   filetreePackage := IceLibgitFiletreeWriter directoryNameFor: each.
>   (sourceDir / filetreePackage) ensureDeleteAll.
>repo addFilesToIndex: {
>   subDirWithDelim, (IceLibgitTonelWriter directoryNameFor: each).
>   subDirWithDelim, (IceLibgitFiletreeWriter directoryNameFor: 
> each). } ].
>
> repo addProperties: (IceRepositoryProperties fromDictionary: { #format -> 
> #tonel } asDictionary).
>
> repo
>   commitIndexWithMessage: 'sources migrated'
>   andParents: { commit }.
>   
> repo push.
>
>
>
>
> but beware, to use 0.6 on Pharo7, better wait until integration (next
> week): update is not trivial because pharo project comes with some
> IceMCVersionInfo inside that will become obsolete, etc., etc., etc.
>
> Esteban
>
>
>
> Stef
>
> On Fri, Oct 6, 2017 at 7:18 PM, Esteban Lorenzano 
> wrote:
>
> 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)
> 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/pharo-tonel (this was just an example and it
> has some minimal errors already fixed)
>
> 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
> 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
>
> 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
>
>
>
>
>


Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Tudor Girba
Great work!

I am looking forward for the integration.

Doru


> On Oct 6, 2017, at 7:18 PM, Esteban Lorenzano  wrote:
> 
> 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)
> 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/pharo-tonel (this was just an example and it has 
> some minimal errors already fixed)
> 
> 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
> 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
> 
> 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 

--
www.tudorgirba.com
www.feenk.com

"The coherence of a trip is given by the clearness of the goal."








Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Esteban Lorenzano

> On 6 Oct 2017, at 20:08, Esteban Lorenzano  wrote:
> 
> 
>> On 6 Oct 2017, at 20:05, Stephane Ducasse > > wrote:
>> 
>> Hi esteban
>> 
>> I did not find the script that you mentioned.
> 
> the one for filetree to tonel?
> 
> https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md 
> 
> 
> I will copy here:
> 
> locationDir := 'path/to/your/repo' asFileReference.
> subDir := 'your-source-dir-or-empty'.
> sourceDir := locationDir.
> subDir 
>   ifNotNil: [
>   subDirWithDelim := subDir, '/'. 
>   sourceDir := sourceDir / subDir ]
>   ifNil: [
>   subDirWithDelim := '' ].
> 
> repo := IceRepositoryCreator new 
>   location: locationDir;
>   subdirectory: subDir;
>   createRepository.
> 
> "branch if you want to perform the migration on separated place (you can 
> later do a PR)"
> repo createBranch: 'migrate-sources-to-tonel'.
> 
> commit := repo branch lastCommit.
> repo savedPackages do: [ :each | | filetreePackage |
>   TonelWriter fileOut: (commit versionFor: each) on: sourceDir.
>   filetreePackage := IceLibgitFiletreeWriter directoryNameFor: each.
>   (sourceDir / filetreePackage) ensureDeleteAll.
>repo addFilesToIndex: { 
>   subDirWithDelim, (IceLibgitTonelWriter directoryNameFor: each).
>   subDirWithDelim, (IceLibgitFiletreeWriter directoryNameFor: 
> each). } ].
> 
> repo addProperties: (IceRepositoryProperties fromDictionary: { #format -> 
> #tonel } asDictionary).
> 
> repo 
>   commitIndexWithMessage: 'sources migrated' 
>   andParents: { commit }.
>   
> repo push.
> 
> 

but beware, to use 0.6 on Pharo7, better wait until integration (next week): 
update is not trivial because pharo project comes with some IceMCVersionInfo 
inside that will become obsolete, etc., etc., etc.

Esteban

> 
>> 
>> Stef
>> 
>> On Fri, Oct 6, 2017 at 7:18 PM, Esteban Lorenzano > > wrote:
>>> 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 
>>> )
>>> 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/pharo-tonel (this was just an example and it
>>> has some minimal errors already fixed)
>>> 
>>> 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
>>> 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
>>> 
>>> 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
>> 
> 



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Esteban Lorenzano

> On 6 Oct 2017, at 20:05, Stephane Ducasse  wrote:
> 
> Hi esteban
> 
> I did not find the script that you mentioned.

the one for filetree to tonel?

https://github.com/pharo-vcs/tonel/blob/master/MigrateFromFileTree.md 


I will copy here:

locationDir := 'path/to/your/repo' asFileReference.
subDir := 'your-source-dir-or-empty'.
sourceDir := locationDir.
subDir 
ifNotNil: [
subDirWithDelim := subDir, '/'. 
sourceDir := sourceDir / subDir ]
ifNil: [
subDirWithDelim := '' ].

repo := IceRepositoryCreator new 
location: locationDir;
subdirectory: subDir;
createRepository.

"branch if you want to perform the migration on separated place (you can later 
do a PR)"
repo createBranch: 'migrate-sources-to-tonel'.

commit := repo branch lastCommit.
repo savedPackages do: [ :each | | filetreePackage |
TonelWriter fileOut: (commit versionFor: each) on: sourceDir.
filetreePackage := IceLibgitFiletreeWriter directoryNameFor: each.
(sourceDir / filetreePackage) ensureDeleteAll.
 repo addFilesToIndex: { 
subDirWithDelim, (IceLibgitTonelWriter directoryNameFor: each).
subDirWithDelim, (IceLibgitFiletreeWriter directoryNameFor: 
each). } ].

repo addProperties: (IceRepositoryProperties fromDictionary: { #format -> 
#tonel } asDictionary).

repo 
commitIndexWithMessage: 'sources migrated' 
andParents: { commit }.

repo push.



> 
> Stef
> 
> On Fri, Oct 6, 2017 at 7:18 PM, Esteban Lorenzano  wrote:
>> 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)
>> 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/pharo-tonel (this was just an example and it
>> has some minimal errors already fixed)
>> 
>> 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
>> 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
>> 
>> 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
> 



Re: [Pharo-dev] [ANN] Iceberg 0.6 released

2017-10-06 Thread Stephane Ducasse
Hi esteban

I did not find the script that you mentioned.

Stef

On Fri, Oct 6, 2017 at 7:18 PM, Esteban Lorenzano  wrote:
> 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)
> 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/pharo-tonel (this was just an example and it
> has some minimal errors already fixed)
>
> 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
> 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
>
> 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