Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-03-01 Thread Thierry Goubier
2017-03-01 13:15 GMT+01:00 Pierce Ng :

> On Tue, Feb 28, 2017 at 04:23:12PM +0100, Thierry Goubier wrote:
> > 2017-02-28 1:19 GMT+01:00 Pierce Ng :
> > > I have written a simple integration of FileTree with Fossil to avoid
> the
> > Congratulations! This was one of my objectives with GitFileTree: open up
> > the Pharo infrastructure to other DVCS such as Fossil.
>
> And indeed runOSSubprocessFossilCommand is basically
> runOSSubprocessGitCommand,
> so thank you for GitFileTree.
>
> I've only implemented #basicStoreVersion: and it is simply this:
>
>   basicStoreVersion: aVersion
> super basicStoreVersion: aVersion
> (MCFossil new repoDir: self directory fullName)
>   addRemove;
>   commit: aVersion info message
>
> The last 3 lines is of course just the Smalltalk way of saying
> "fossil addremove; fossil commit ..."
>
> Currently that's all it does.
>

Great!


>
>
> > How does Fossil handles merging the FileTree format?
>
> Just to be sure I get your question, do you mean whether FossilFileTree
> sees
> the changes if I edit the .st files using vi, say?
>

No, it is a bit more in depth. FileTree, by default, will save some
metadata with the packages (method timestamps, package version history) and
this, with git, creates conflicts when merging (and cherry picking and a
few other operations). GitFileTree introduced a variant of the format,
called metadata-less, to avoid that and recover the metadata from the git
history itself (and convert it to Monticello).


>
> Right now, after committing in Monticello Browser, when I click 'refresh'
> or
> 'changes' everything shows up as new again. That can't be right. Which
> part of
> GitFileTree deals that?
>

The all new again is the default FileTree approach.

In GitFileTree, it recovers all the versions with git log and rebuild them
for the repository browser. It is done starting with
MCFileTreeRepository>>#gitVersionsForPackage:, then
MCFileTreeGitRepository>>#getVersionsForPackageDirectoryName:, tied with a
specific class to register the data for all entries
(GitFileTreePackageEntry -> other repositories uses only strings to track
all the versions). In there you also see the bridge which converts from git
log metatadata to Monticello metadata (MCVersion and ancestry).

Side question then: is Iceberg factoring out some of that out of
GitFileTree, since it supports/supported the libgit and GitFileTree
backends? Factoring out could also be of benefit to Fossil.

Regards,

Thierry


>
> Pierce
>
>
>


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-03-01 Thread Pierce Ng
On Tue, Feb 28, 2017 at 10:09:06AM -0500, Offray Vladimir Luna Cárdenas wrote:
> BTW, when installing Grafoscopio you get a FossilRepo object that is
> used to query Fossil repositories via the JSON API and update
> documentation. Still in early stages, but I will experiment how
> Pierce's Fossil support give a more cohesive user experience when
> working with publication and collaboration of interactive notebooks.

Currently FossilFileTree runs Fossil "at the command line". But certainly
talking JSON with a Fossil server is another avenue to explore, similar to
having gitfiletree:// and remote git repository.

Pierce



Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-03-01 Thread Pierce Ng
On Tue, Feb 28, 2017 at 04:23:12PM +0100, Thierry Goubier wrote:
> 2017-02-28 1:19 GMT+01:00 Pierce Ng :
> > I have written a simple integration of FileTree with Fossil to avoid the
> Congratulations! This was one of my objectives with GitFileTree: open up
> the Pharo infrastructure to other DVCS such as Fossil.

And indeed runOSSubprocessFossilCommand is basically runOSSubprocessGitCommand,
so thank you for GitFileTree.

I've only implemented #basicStoreVersion: and it is simply this:

  basicStoreVersion: aVersion
super basicStoreVersion: aVersion
(MCFossil new repoDir: self directory fullName)
  addRemove;
  commit: aVersion info message

The last 3 lines is of course just the Smalltalk way of saying 
"fossil addremove; fossil commit ..."

Currently that's all it does.


> How does Fossil handles merging the FileTree format?

Just to be sure I get your question, do you mean whether FossilFileTree sees
the changes if I edit the .st files using vi, say?

Right now, after committing in Monticello Browser, when I click 'refresh' or
'changes' everything shows up as new again. That can't be right. Which part of
GitFileTree deals that? 

Pierce




Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread stepharong

it means that we could also use the same setup to store pillar books





On 28/02/17 10:56, Thierry Goubier wrote:



2017-02-28 16:43 GMT+01:00 Offray Vladimir Luna Cárdenas  
:


Hi Thierry,

What I'm using is the Fossil JSON API as described in [1]. Managing  
Grafoscopio documentation with it is pretty easy and yes I believe it  
could help in bringing >>>a unified API across several repositories (I  
have not tested that though).

[1] http://fossil.wanderinghorse.net/repos/fwiki/index.cgi/wiki/README


You probably intended [2], isn't it?



Yep, I meant that one. :-)

I wasn't thinking much about multiple repos, but it could be one  
target. I was just thinking that there was/is one attempt to have a  
close integration to github API >>over HTTP in Pharo, and that this  
effort would have to b partially redone for, say GitLab, or Bitbucket  
because git does not defines a HTTP API and every hosting >>company  
creates one, whereas in Fossil everybody uses the JSON API.




Ohh I understand now. Well is useful in both scenarios, and a showcase  
of the power of simplicity and being late in the game :-).


Cheers,

Offray




--
Using Opera's mail client: http://www.opera.com/mail/

Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Offray Vladimir Luna Cárdenas



On 28/02/17 10:56, Thierry Goubier wrote:



2017-02-28 16:43 GMT+01:00 Offray Vladimir Luna Cárdenas 
>:


Hi Thierry,

What I'm using is the Fossil JSON API as described in [1].
Managing Grafoscopio documentation with it is pretty easy and yes
I believe it could help in bringing a unified API across several
repositories (I have not tested that though).

[1]
http://fossil.wanderinghorse.net/repos/fwiki/index.cgi/wiki/README



You probably intended [2], isn't it?



Yep, I meant that one. :-)

I wasn't thinking much about multiple repos, but it could be one 
target. I was just thinking that there was/is one attempt to have a 
close integration to github API over HTTP in Pharo, and that this 
effort would have to b partially redone for, say GitLab, or Bitbucket 
because git does not defines a HTTP API and every hosting company 
creates one, whereas in Fossil everybody uses the JSON API.




Ohh I understand now. Well is useful in both scenarios, and a showcase 
of the power of simplicity and being late in the game :-).


Cheers,

Offray


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Thierry Goubier
2017-02-28 16:43 GMT+01:00 Offray Vladimir Luna Cárdenas <
offray.l...@mutabit.com>:

> Hi Thierry,
>
> What I'm using is the Fossil JSON API as described in [1]. Managing
> Grafoscopio documentation with it is pretty easy and yes I believe it could
> help in bringing a unified API across several repositories (I have not
> tested that though).
> [1] http://fossil.wanderinghorse.net/repos/fwiki/index.cgi/wiki/README
>

You probably intended [2], isn't it?

I wasn't thinking much about multiple repos, but it could be one target. I
was just thinking that there was/is one attempt to have a close integration
to github API over HTTP in Pharo, and that this effort would have to b
partially redone for, say GitLab, or Bitbucket because git does not defines
a HTTP API and every hosting company creates one, whereas in Fossil
everybody uses the JSON API.

Regards,

Thierry

[2]
https://docs.google.com/document/d/1fXViveNhDbiXgCuE7QDXQOKeFzf2qNUkBEgiUvoqFN4/view




>
>
> Cheers,
>
> Offray
>
>
> On 28/02/17 10:26, Thierry Goubier wrote:
>
> Hi Offray,
>
> is your FossilRepo object using a JSON over HTTP API to Fossil? It could
> make Fossil an interesting candidate, because it could mean a single http
> API (and not one API per git hosting provider...)
>
> Regards,
>
> Thierry
>
> 2017-02-28 16:09 GMT+01:00 Offray Vladimir Luna Cárdenas <
> offray.l...@mutabit.com>:
>
>> I'm also curious about iceberg integration. I'm also an advocate for
>> fossil: I like its lightness as process and software, offering full stack
>> distributed collaboration in just 2 Mb (wiki, tickets, DVCS, etc.) I can
>> not catch up with upcoming Pharo 6, but hopefully after being released I
>> will be able to test fossil stuff, particularly because is the chosen
>> collaboration backend for Grafoscopio.
>>
>> BTW, when installing Grafoscopio you get a FossilRepo object that is used
>> to query Fossil repositories via the JSON API and update documentation.
>> Still in early stages, but I will experiment how Pierce's Fossil support
>> give a more cohesive user experience when working with publication and
>> collaboration of interactive notebooks.
>>
>> Cheers,
>>
>> Offray
>>
>>
>>
>> On 28/02/17 02:12, stepharong wrote:
>>
>>> This is cool.
>>> I'm curious to see if we could manage fossil back-end via iceberg.
>>>
>>> Stef
>>>
>>>
>>> On Tue, 28 Feb 2017 01:19:50 +0100, Pierce Ng 
>>> wrote:
>>>
>>> Hi all,
 I have written a simple integration of FileTree with Fossil to avoid
 the 2-step
 Pharo- and shell-level work to add/delete/commit files.
 At the operating system command prompt, init a new Fossil project:
  os% mkdir ~/repo
   os% cd ~/repo
   os% fossil init myproject.fossil
   project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
   server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
   admin-user: laptop-user (initial password is "1fe2ff")
 Open the repository:
  os% mkdir ~/myproject
   os% cd ~/myproject
   os% fossil open ~/repo/myproject.fossil
 In a fresh Pharo 6 image - I used v60411 - install FossilFileTree:
  Metacello new
 baseline: 'FossilFileTree';
 repository: 'github://PierceNg/FossilFileTree';
 load.
 Write code in Pharo. Open Monticello Browser. Add a "fossilfiletree"
 repository, using ~/myproject as the directory. Save to said repository
 from within Monticello Browser. Done.
 Full blog post here:
  http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html
 Pierce

>>>
>>>
>>>
>>
>>
>
>


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Offray Vladimir Luna Cárdenas

Hi Thierry,

What I'm using is the Fossil JSON API as described in [1]. Managing 
Grafoscopio documentation with it is pretty easy and yes I believe it 
could help in bringing a unified API across several repositories (I have 
not tested that though).


[1] http://fossil.wanderinghorse.net/repos/fwiki/index.cgi/wiki/README

Cheers,

Offray

On 28/02/17 10:26, Thierry Goubier wrote:

Hi Offray,

is your FossilRepo object using a JSON over HTTP API to Fossil? It 
could make Fossil an interesting candidate, because it could mean a 
single http API (and not one API per git hosting provider...)


Regards,

Thierry

2017-02-28 16:09 GMT+01:00 Offray Vladimir Luna Cárdenas 
>:


I'm also curious about iceberg integration. I'm also an advocate
for fossil: I like its lightness as process and software, offering
full stack distributed collaboration in just 2 Mb (wiki, tickets,
DVCS, etc.) I can not catch up with upcoming Pharo 6, but
hopefully after being released I will be able to test fossil
stuff, particularly because is the chosen collaboration backend
for Grafoscopio.

BTW, when installing Grafoscopio you get a FossilRepo object that
is used to query Fossil repositories via the JSON API and update
documentation. Still in early stages, but I will experiment how
Pierce's Fossil support give a more cohesive user experience when
working with publication and collaboration of interactive notebooks.

Cheers,

Offray



On 28/02/17 02:12, stepharong wrote:

This is cool.
I'm curious to see if we could manage fossil back-end via iceberg.

Stef


On Tue, 28 Feb 2017 01:19:50 +0100, Pierce Ng
> wrote:

Hi all,
I have written a simple integration of FileTree with
Fossil to avoid the 2-step
Pharo- and shell-level work to add/delete/commit files.
At the operating system command prompt, init a new Fossil
project:
 os% mkdir ~/repo
  os% cd ~/repo
  os% fossil init myproject.fossil
  project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
  server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
  admin-user: laptop-user (initial password is "1fe2ff")
Open the repository:
 os% mkdir ~/myproject
  os% cd ~/myproject
  os% fossil open ~/repo/myproject.fossil
In a fresh Pharo 6 image - I used v60411 - install
FossilFileTree:
 Metacello new
baseline: 'FossilFileTree';
repository: 'github://PierceNg/FossilFileTree';
load.
Write code in Pharo. Open Monticello Browser. Add a
"fossilfiletree"
repository, using ~/myproject as the directory. Save to
said repository
from within Monticello Browser. Done.
Full blog post here:
http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html

Pierce










Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Thierry Goubier
2017-02-28 8:12 GMT+01:00 stepharong :

> This is cool.
> I'm curious to see if we could manage fossil back-end via iceberg.
>

It is a nice use case to check on an architecture for Iceberg with multiple
back-ends.

Thierry


>
> Stef
>
>
>
> On Tue, 28 Feb 2017 01:19:50 +0100, Pierce Ng 
> wrote:
>
> Hi all,
>> I have written a simple integration of FileTree with Fossil to avoid the
>> 2-step
>> Pharo- and shell-level work to add/delete/commit files.
>> At the operating system command prompt, init a new Fossil project:
>>  os% mkdir ~/repo
>>   os% cd ~/repo
>>   os% fossil init myproject.fossil
>>   project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
>>   server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
>>   admin-user: laptop-user (initial password is "1fe2ff")
>> Open the repository:
>>  os% mkdir ~/myproject
>>   os% cd ~/myproject
>>   os% fossil open ~/repo/myproject.fossil
>> In a fresh Pharo 6 image - I used v60411 - install FossilFileTree:
>>  Metacello new
>> baseline: 'FossilFileTree';
>> repository: 'github://PierceNg/FossilFileTree';
>> load.
>> Write code in Pharo. Open Monticello Browser. Add a "fossilfiletree"
>> repository, using ~/myproject as the directory. Save to said repository
>> from within Monticello Browser. Done.
>> Full blog post here:
>>  http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html
>> Pierce
>>
>
>
> --
> Using Opera's mail client: http://www.opera.com/mail/
>
>


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Thierry Goubier
Hi Offray,

is your FossilRepo object using a JSON over HTTP API to Fossil? It could
make Fossil an interesting candidate, because it could mean a single http
API (and not one API per git hosting provider...)

Regards,

Thierry

2017-02-28 16:09 GMT+01:00 Offray Vladimir Luna Cárdenas <
offray.l...@mutabit.com>:

> I'm also curious about iceberg integration. I'm also an advocate for
> fossil: I like its lightness as process and software, offering full stack
> distributed collaboration in just 2 Mb (wiki, tickets, DVCS, etc.) I can
> not catch up with upcoming Pharo 6, but hopefully after being released I
> will be able to test fossil stuff, particularly because is the chosen
> collaboration backend for Grafoscopio.
>
> BTW, when installing Grafoscopio you get a FossilRepo object that is used
> to query Fossil repositories via the JSON API and update documentation.
> Still in early stages, but I will experiment how Pierce's Fossil support
> give a more cohesive user experience when working with publication and
> collaboration of interactive notebooks.
>
> Cheers,
>
> Offray
>
>
>
> On 28/02/17 02:12, stepharong wrote:
>
>> This is cool.
>> I'm curious to see if we could manage fossil back-end via iceberg.
>>
>> Stef
>>
>>
>> On Tue, 28 Feb 2017 01:19:50 +0100, Pierce Ng 
>> wrote:
>>
>> Hi all,
>>> I have written a simple integration of FileTree with Fossil to avoid the
>>> 2-step
>>> Pharo- and shell-level work to add/delete/commit files.
>>> At the operating system command prompt, init a new Fossil project:
>>>  os% mkdir ~/repo
>>>   os% cd ~/repo
>>>   os% fossil init myproject.fossil
>>>   project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
>>>   server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
>>>   admin-user: laptop-user (initial password is "1fe2ff")
>>> Open the repository:
>>>  os% mkdir ~/myproject
>>>   os% cd ~/myproject
>>>   os% fossil open ~/repo/myproject.fossil
>>> In a fresh Pharo 6 image - I used v60411 - install FossilFileTree:
>>>  Metacello new
>>> baseline: 'FossilFileTree';
>>> repository: 'github://PierceNg/FossilFileTree';
>>> load.
>>> Write code in Pharo. Open Monticello Browser. Add a "fossilfiletree"
>>> repository, using ~/myproject as the directory. Save to said repository
>>> from within Monticello Browser. Done.
>>> Full blog post here:
>>>  http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html
>>> Pierce
>>>
>>
>>
>>
>
>


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Thierry Goubier
2017-02-28 1:19 GMT+01:00 Pierce Ng :

> Hi all,
>
> I have written a simple integration of FileTree with Fossil to avoid the
> 2-step
> Pharo- and shell-level work to add/delete/commit files.
>
> At the operating system command prompt, init a new Fossil project:
>
>   os% mkdir ~/repo
>   os% cd ~/repo
>   os% fossil init myproject.fossil
>   project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
>   server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
>   admin-user: laptop-user (initial password is "1fe2ff")
>
> Open the repository:
>
>   os% mkdir ~/myproject
>   os% cd ~/myproject
>   os% fossil open ~/repo/myproject.fossil
>
> In a fresh Pharo 6 image - I used v60411 - install FossilFileTree:
>
>   Metacello new
> baseline: 'FossilFileTree';
> repository: 'github://PierceNg/FossilFileTree';
> load.
>
> Write code in Pharo. Open Monticello Browser. Add a "fossilfiletree"
> repository, using ~/myproject as the directory. Save to said repository
> from within Monticello Browser. Done.
>
> Full blog post here:
>
>   http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html
>
> Pierce
>
>
>
Congratulations! This was one of my objectives with GitFileTree: open up
the Pharo infrastructure to other DVCS such as Fossil.

How does Fossil handles merging the FileTree format?

Regards,

Thierry


Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-28 Thread Offray Vladimir Luna Cárdenas
I'm also curious about iceberg integration. I'm also an advocate for 
fossil: I like its lightness as process and software, offering full 
stack distributed collaboration in just 2 Mb (wiki, tickets, DVCS, etc.) 
I can not catch up with upcoming Pharo 6, but hopefully after being 
released I will be able to test fossil stuff, particularly because is 
the chosen collaboration backend for Grafoscopio.


BTW, when installing Grafoscopio you get a FossilRepo object that is 
used to query Fossil repositories via the JSON API and update 
documentation. Still in early stages, but I will experiment how Pierce's 
Fossil support give a more cohesive user experience when working with 
publication and collaboration of interactive notebooks.


Cheers,

Offray


On 28/02/17 02:12, stepharong wrote:

This is cool.
I'm curious to see if we could manage fossil back-end via iceberg.

Stef


On Tue, 28 Feb 2017 01:19:50 +0100, Pierce Ng  
wrote:



Hi all,
I have written a simple integration of FileTree with Fossil to avoid 
the 2-step

Pharo- and shell-level work to add/delete/commit files.
At the operating system command prompt, init a new Fossil project:
 os% mkdir ~/repo
  os% cd ~/repo
  os% fossil init myproject.fossil
  project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
  server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
  admin-user: laptop-user (initial password is "1fe2ff")
Open the repository:
 os% mkdir ~/myproject
  os% cd ~/myproject
  os% fossil open ~/repo/myproject.fossil
In a fresh Pharo 6 image - I used v60411 - install FossilFileTree:
 Metacello new
baseline: 'FossilFileTree';
repository: 'github://PierceNg/FossilFileTree';
load.
Write code in Pharo. Open Monticello Browser. Add a "fossilfiletree"
repository, using ~/myproject as the directory. Save to said repository
from within Monticello Browser. Done.
Full blog post here:
 http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html
Pierce








Re: [Pharo-users] Proof of Concept: FileTree and Fossil

2017-02-27 Thread stepharong

This is cool.
I'm curious to see if we could manage fossil back-end via iceberg.

Stef


On Tue, 28 Feb 2017 01:19:50 +0100, Pierce Ng   
wrote:



Hi all,
I have written a simple integration of FileTree with Fossil to avoid the  
2-step

Pharo- and shell-level work to add/delete/commit files.
At the operating system command prompt, init a new Fossil project:
 os% mkdir ~/repo
  os% cd ~/repo
  os% fossil init myproject.fossil
  project-id: 3c05c3016eeabf8e87816ee218c6a86d3c87b950
  server-id:  ff42bc86dba1a26b1d94b64685f7c09d02581617
  admin-user: laptop-user (initial password is "1fe2ff")
Open the repository:
 os% mkdir ~/myproject
  os% cd ~/myproject
  os% fossil open ~/repo/myproject.fossil
In a fresh Pharo 6 image - I used v60411 - install FossilFileTree:
 Metacello new
baseline: 'FossilFileTree';
repository: 'github://PierceNg/FossilFileTree';
load.
Write code in Pharo. Open Monticello Browser. Add a "fossilfiletree"
repository, using ~/myproject as the directory. Save to said repository
from within Monticello Browser. Done.
Full blog post here:
 http://www.samadhiweb.com/blog/2017.02.28.fossil.filetree.html
Pierce



--
Using Opera's mail client: http://www.opera.com/mail/