Intro to git-only Pharo

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Intro to git-only Pharo

jtuchel

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim


Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

Stephane Ducasse-3
Hi joachim

There is a distinction between managing projects and pharo. Pharo 60 is managed with Monticello. 
Pharo 70 will not. 

  • git only - no monticello meta info any more - possible?
Yes people use that everyday. But Pharo is not manage like that (even if we follow since years a git flow). 
In Pharo 70 Pharo itself will be manage with iceberg with git as a back end (notice the difference)

  • tools like merge/diff, committing from within the image
You have all the diff merge tools within pharo
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
Metacello handles this since year.
There is a chapter on deep into pharo since ages
  • what is the current "most official" source repository for open source code?
SmalltalkHub and SS3, 
  • best practices for managing complex projects and keeping old versions reproducible at any time
Use Metacello and use versions
or symbolic versions to your own projects if you want to minimize changes.
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)
There is one on the the github of iceberg.

Stef

On Wed, May 10, 2017 at 7:56 AM, Joachim Tuchel <[hidden email]> wrote:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim



Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

jtuchel
Stef,

thanks for answering.

Am 10.05.17 um 08:59 schrieb Stephane Ducasse:
Hi joachim

There is a distinction between managing projects and pharo. Pharo 60 is managed with Monticello. 
Pharo 70 will not.
Okay, I came from the perspective of an application developer and not so much as a contributor (which may, of yourse, change for bug reports and such)...


  • git only - no monticello meta info any more - possible?
Yes people use that everyday. But Pharo is not manage like that (even if we follow since years a git flow). 
In Pharo 70 Pharo itself will be manage with iceberg with git as a back end (notice the difference)

So that will sure be a showcase for it being ready for prime time ;-)

  • tools like merge/diff, committing from within the image
You have all the diff merge tools within pharo
including local commits and oushes to the central repo?
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
Metacello handles this since year.
There is a chapter on deep into pharo since ages

Okay, thanks! I'll definitely take a look at deep into Pharo.


  • what is the current "most official" source repository for open source code?
SmalltalkHub and SS3,
I'm not surprised by these two, but I am surprised github is not in this list...

  • best practices for managing complex projects and keeping old versions reproducible at any time
Use Metacello and use versions
or symbolic versions to your own projects if you want to minimize changes.
Okay, thanks.

  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)
There is one on the the github of iceberg.
IIRC, iceberg will be in the Pharo 6 images by default..? So iceberg is what people are/will be using.


Again, thanks a lot for the pointers!


Joachim




Stef

On Wed, May 10, 2017 at 7:56 AM, Joachim Tuchel <[hidden email]> wrote:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim





-- 
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          [hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1

Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

Peter Uhnak
In reply to this post by jtuchel
Hi,

this is my (=not canonical) perspective

On Wed, May 10, 2017 at 07:56:19AM +0200, Joachim Tuchel wrote:

> Hi guys,
>
> please forgive me if this mail is a sign of ignorance. I am not a
> regular Pharo user and one of the reasons for this is that I didn't
> like most of the source management tools around Monticello. Coming
> from an envy background, it feels like not being ready for prime
> time. Of course you guys have been proving you can work with these
> tools quite well, but still I'd be interested in using Pharo in a
> pure git-based environment, as it most closely resembles some of the
> most-beloved features of envy.
>
> Over the years there was a lot of work and discussion on filetree,
> gitfiletree, iceberg, cypress and maybe quite a few other projects
> that sounded promising and interesting. But I must admit I lost
> track of what was really done and how far things went in the last
> years.
>
> So are there any pointers to info material that I could look at to
> see what the current status of source control in Pharo 5 and Pharo 6
> is and/or will be soon?
>
> I am mostly interested in these topics:
>
>  * git only - no monticello meta info any more - possible?

first of all -- filetree is an export format which stores Pharo code in an organized fashion on disk... a folder for every package, folder for every class, file for every method... e.g. https://github.com/peteruhnak/pharo-changes-builder/tree/master/repository/ChangesBuilder.package/CBClass.class/instance
this format makes it easier for git to manage the code.

There however two variants of filetree... one containing metacello metadata, e.g. the red here https://github.com/peteruhnak/IconFactory/commit/729da03653d527bd6ca34e0a512b1c1c634fd32e - which caused a lot of pains during merging (because you are almost guaranteed a merge conflict)... so a new variant emerged which doesn't use this metadata and instead determines it directly from git versioning.

neither GitFileTree (which is a filetree that performs git commits on the background) nor Iceberg use monticello metadata.

GFT is still managed via Monticello tools, but the metadata is derived from git commits. This is what I've been using for ~two years until recently (now I've switched to Iceberg).
I wrote a guide about GFT some time ago https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/

Iceberg uses the same filetree format as GFT (so they are compatible), but the tooling inside Pharo has changed. Now there is dedicated iceberg interface for managing git repositories and projects. Although Iceberg is not in stable yet, so it breaks from time to time, but when it works I am really happy with it. (Thanks Esteban & Nico!).


>  * tools like merge/diff, committing from within the image

Committing from within the image is handled with both GFT and Iceberg; merging is not yet. (And of course you see diff when committing/comparing versions)

>  * dependencies within my own project as well as dependencies on
>    external code in - possibly multiple - external repositories

With git came also the switch from ConfigurationOf to BaselineOf, which somewhat simplified version and dependency management. The Baseline is no longer filled with methods for each version, as this is handled by git.


>  * what is the current "most official" source repository for open
>    source code?

for Monticello naturally SmalltalkHub/ss3; for git GitHub, however you are not restricted from other git sites (gitlab, bitbucket, your own server, ...)

>  * best practices for managing complex projects and keeping old
>    versions reproducible at any time

well, this is quite general question... I'd say semver.org is a good start, however most people depend on #stable and #development, which are not actually versions, so reproducibility is not possible... but there is work being done iirc regarding better dependency management (Cargo iirc)


>  * tutorial for git newbies in a Pharo context? (Like, how do I start
>    with a new packege - create folder first and do git init, or start
>    in the image and push into repo later? as I said: beginners' stuff)

Chapter 8 of Pharo by example, https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ and possibly other resources.

Peter

Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

jtuchel
Peter,

thanks for your view and links. Helps me sort things out and find what's
remained and keeps being relevant ;-)

Joachim

Am 10.05.17 um 10:08 schrieb Peter Uhnak:

> Hi,
>
> this is my (=not canonical) perspective
>
> On Wed, May 10, 2017 at 07:56:19AM +0200, Joachim Tuchel wrote:
>> Hi guys,
>>
>> please forgive me if this mail is a sign of ignorance. I am not a
>> regular Pharo user and one of the reasons for this is that I didn't
>> like most of the source management tools around Monticello. Coming
>> from an envy background, it feels like not being ready for prime
>> time. Of course you guys have been proving you can work with these
>> tools quite well, but still I'd be interested in using Pharo in a
>> pure git-based environment, as it most closely resembles some of the
>> most-beloved features of envy.
>>
>> Over the years there was a lot of work and discussion on filetree,
>> gitfiletree, iceberg, cypress and maybe quite a few other projects
>> that sounded promising and interesting. But I must admit I lost
>> track of what was really done and how far things went in the last
>> years.
>>
>> So are there any pointers to info material that I could look at to
>> see what the current status of source control in Pharo 5 and Pharo 6
>> is and/or will be soon?
>>
>> I am mostly interested in these topics:
>>
>>   * git only - no monticello meta info any more - possible?
> first of all -- filetree is an export format which stores Pharo code in an organized fashion on disk... a folder for every package, folder for every class, file for every method... e.g. https://github.com/peteruhnak/pharo-changes-builder/tree/master/repository/ChangesBuilder.package/CBClass.class/instance
> this format makes it easier for git to manage the code.
>
> There however two variants of filetree... one containing metacello metadata, e.g. the red here https://github.com/peteruhnak/IconFactory/commit/729da03653d527bd6ca34e0a512b1c1c634fd32e - which caused a lot of pains during merging (because you are almost guaranteed a merge conflict)... so a new variant emerged which doesn't use this metadata and instead determines it directly from git versioning.
>
> neither GitFileTree (which is a filetree that performs git commits on the background) nor Iceberg use monticello metadata.
>
> GFT is still managed via Monticello tools, but the metadata is derived from git commits. This is what I've been using for ~two years until recently (now I've switched to Iceberg).
> I wrote a guide about GFT some time ago https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/
>
> Iceberg uses the same filetree format as GFT (so they are compatible), but the tooling inside Pharo has changed. Now there is dedicated iceberg interface for managing git repositories and projects. Although Iceberg is not in stable yet, so it breaks from time to time, but when it works I am really happy with it. (Thanks Esteban & Nico!).
>
>
>>   * tools like merge/diff, committing from within the image
> Committing from within the image is handled with both GFT and Iceberg; merging is not yet. (And of course you see diff when committing/comparing versions)
>
>>   * dependencies within my own project as well as dependencies on
>>     external code in - possibly multiple - external repositories
> With git came also the switch from ConfigurationOf to BaselineOf, which somewhat simplified version and dependency management. The Baseline is no longer filled with methods for each version, as this is handled by git.
>
>
>>   * what is the current "most official" source repository for open
>>     source code?
> for Monticello naturally SmalltalkHub/ss3; for git GitHub, however you are not restricted from other git sites (gitlab, bitbucket, your own server, ...)
>
>>   * best practices for managing complex projects and keeping old
>>     versions reproducible at any time
> well, this is quite general question... I'd say semver.org is a good start, however most people depend on #stable and #development, which are not actually versions, so reproducibility is not possible... but there is work being done iirc regarding better dependency management (Cargo iirc)
>
>
>>   * tutorial for git newbies in a Pharo context? (Like, how do I start
>>     with a new packege - create folder first and do git init, or start
>>     in the image and push into repo later? as I said: beginners' stuff)
> Chapter 8 of Pharo by example, https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/ and possibly other resources.
>
> Peter
>
>


--
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          mailto:[hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1


Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

NorbertHartl
In reply to this post by jtuchel
Hi Joachim,

I think your timing is quite good. We had some changes in the last years and it is getting better now. 
Before we had only monticello. Monticello is a zip container that contains a version number in the filename and prior version pointer inside the repository. Regarding dependencies there was nothing that was used widely. Then Metacello appeared and solved the problem by providing dependency management and versioning of dependencies. Dependency management works good, the integrated versioning has issues. Especially when you look at a system like git you can see that versioning is solved there. Filetree is needed because git and other vcs systems are file based so you need to layout your code in files (how quaint!)
To make a long story short: The best thing to use is git with Metacello Baselines. Filetree is used to store code. Versioning you do with git tags that can be used in Baselines. Now we have a decent UI (iceberg) that supports the most needed workflow items. 
We have a UI for the dependency management as well (versionner) but it sadly targets ConfigurationOfs and not BaselineOfs. That needs to be changed.

my 2 cents,

Norbert

Am 10.05.2017 um 07:56 schrieb Joachim Tuchel <[hidden email]>:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim



Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

Ben Coman
In reply to this post by jtuchel
On Wed, May 10, 2017 at 1:56 PM, Joachim Tuchel <[hidden email]> wrote:

> Hi guys,
>
> please forgive me if this mail is a sign of ignorance. I am not a regular
> Pharo user and one of the reasons for this is that I didn't like most of the
> source management tools around Monticello. Coming from an envy background,
> it feels like not being ready for prime time. Of course you guys have been
> proving you can work with these tools quite well, but still I'd be
> interested in using Pharo in a pure git-based environment, as it most
> closely resembles some of the most-beloved features of envy.
>
> Over the years there was a lot of work and discussion on filetree,
> gitfiletree, iceberg, cypress and maybe quite a few other projects that
> sounded promising and interesting. But I must admit I lost track of what was
> really done and how far things went in the last years.
>
> So are there any pointers to info material that I could look at to see what
> the current status of source control in Pharo 5 and Pharo 6 is and/or will
> be soon?
>
> I am mostly interested in these topics:
>
> git only - no monticello meta info any more - possible?

As mentioned in other responses, GitFileTree and Iceberg are operating
without Monticello metadata.
This has been the case for a while but personally, even to I love to
use git for C code, I just haven't managed to make the leap for
image-side Pharo.  Monticello was "good enough".  Probably a lot of
people are the same.  Now with the coming Pharo 7,  Iceberg/git will
be the only game in town for "pharo-core contributions".  Everyone
will be forced to use Iceberg (and personally I welcome this) and
there'll be many more eyeballs to polish off any rough edges of the
tools and workflow.  So *now* in Pharo 7 is an ideal time to start
paying attention and to help identify any gaps in requirements for
Pharo git tools and workflow.

cheers -ben

> tools like merge/diff, committing from within the image
> dependencies within my own project as well as dependencies on external code
> in - possibly multiple - external repositories
> what is the current "most official" source repository for open source code?
> best practices for managing complex projects and keeping old versions
> reproducible at any time
> tutorial for git newbies in a Pharo context? (Like, how do I start with a
> new packege - create folder first and do git init, or start in the image and
> push into repo later? as I said: beginners' stuff)
>
> Thanks for pointers and help
>
>
> Joachim
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

jtuchel
In reply to this post by NorbertHartl
Hi Norbert,

thanks for your explanations.
So it seems liek I should start by using Pharo6 and load Iceberg and just take a look.

Joachim



Am 10.05.17 um 10:34 schrieb Norbert Hartl:
Hi Joachim,

I think your timing is quite good. We had some changes in the last years and it is getting better now. 
Before we had only monticello. Monticello is a zip container that contains a version number in the filename and prior version pointer inside the repository. Regarding dependencies there was nothing that was used widely. Then Metacello appeared and solved the problem by providing dependency management and versioning of dependencies. Dependency management works good, the integrated versioning has issues. Especially when you look at a system like git you can see that versioning is solved there. Filetree is needed because git and other vcs systems are file based so you need to layout your code in files (how quaint!)
To make a long story short: The best thing to use is git with Metacello Baselines. Filetree is used to store code. Versioning you do with git tags that can be used in Baselines. Now we have a decent UI (iceberg) that supports the most needed workflow items. 
We have a UI for the dependency management as well (versionner) but it sadly targets ConfigurationOfs and not BaselineOfs. That needs to be changed.

my 2 cents,

Norbert

Am 10.05.2017 um 07:56 schrieb Joachim Tuchel <[hidden email]>:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim





-- 
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          [hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1

Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

jtuchel
In reply to this post by NorbertHartl
Hi again,

seems like I am too early. I just downloaded Pharo-60484 and loaded Iceberg from the Catalog Browser and I get a Walkbacks as answer to almost any click I perform ;-)

So I'll better start with the docs suggested in this thread to be ready once Iceberg is ;-)

Joachim


Am 10.05.17 um 10:34 schrieb Norbert Hartl:
Hi Joachim,

I think your timing is quite good. We had some changes in the last years and it is getting better now. 
Before we had only monticello. Monticello is a zip container that contains a version number in the filename and prior version pointer inside the repository. Regarding dependencies there was nothing that was used widely. Then Metacello appeared and solved the problem by providing dependency management and versioning of dependencies. Dependency management works good, the integrated versioning has issues. Especially when you look at a system like git you can see that versioning is solved there. Filetree is needed because git and other vcs systems are file based so you need to layout your code in files (how quaint!)
To make a long story short: The best thing to use is git with Metacello Baselines. Filetree is used to store code. Versioning you do with git tags that can be used in Baselines. Now we have a decent UI (iceberg) that supports the most needed workflow items. 
We have a UI for the dependency management as well (versionner) but it sadly targets ConfigurationOfs and not BaselineOfs. That needs to be changed.

my 2 cents,

Norbert

Am 10.05.2017 um 07:56 schrieb Joachim Tuchel <[hidden email]>:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim





-- 
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          [hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1

Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

NorbertHartl
In reply to this post by jtuchel

Am 11.05.2017 um 08:54 schrieb [hidden email]:

Hi Norbert,

thanks for your explanations.
So it seems liek I should start by using Pharo6 and load Iceberg and just take a look.

Yes, iceberg has still some issues but is usable and it will evolve quickly. If you are the brave type of guy you can start with pharo6 64bits ;)

Norbert

Joachim



Am 10.05.17 um 10:34 schrieb Norbert Hartl:
Hi Joachim,

I think your timing is quite good. We had some changes in the last years and it is getting better now. 
Before we had only monticello. Monticello is a zip container that contains a version number in the filename and prior version pointer inside the repository. Regarding dependencies there was nothing that was used widely. Then Metacello appeared and solved the problem by providing dependency management and versioning of dependencies. Dependency management works good, the integrated versioning has issues. Especially when you look at a system like git you can see that versioning is solved there. Filetree is needed because git and other vcs systems are file based so you need to layout your code in files (how quaint!)
To make a long story short: The best thing to use is git with Metacello Baselines. Filetree is used to store code. Versioning you do with git tags that can be used in Baselines. Now we have a decent UI (iceberg) that supports the most needed workflow items. 
We have a UI for the dependency management as well (versionner) but it sadly targets ConfigurationOfs and not BaselineOfs. That needs to be changed.

my 2 cents,

Norbert

Am 10.05.2017 um 07:56 schrieb Joachim Tuchel <[hidden email]>:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim





-- 
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          [hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1


Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

Stephane Ducasse-3
Joachim 

many people are using Pharo to develop ***COMPLEX*** Pharo applications and it works. They use monticello and metacello and it works. 
So you do not have to have Github to make great software in Pharo. 

Now in addition many people are using github to build complex applications 
with github. 

Stef


On Thu, May 11, 2017 at 9:54 AM, Norbert Hartl <[hidden email]> wrote:

Am 11.05.2017 um 08:54 schrieb [hidden email]:

Hi Norbert,

thanks for your explanations.
So it seems liek I should start by using Pharo6 and load Iceberg and just take a look.

Yes, iceberg has still some issues but is usable and it will evolve quickly. If you are the brave type of guy you can start with pharo6 64bits ;)

Norbert

Joachim



Am 10.05.17 um 10:34 schrieb Norbert Hartl:
Hi Joachim,

I think your timing is quite good. We had some changes in the last years and it is getting better now. 
Before we had only monticello. Monticello is a zip container that contains a version number in the filename and prior version pointer inside the repository. Regarding dependencies there was nothing that was used widely. Then Metacello appeared and solved the problem by providing dependency management and versioning of dependencies. Dependency management works good, the integrated versioning has issues. Especially when you look at a system like git you can see that versioning is solved there. Filetree is needed because git and other vcs systems are file based so you need to layout your code in files (how quaint!)
To make a long story short: The best thing to use is git with Metacello Baselines. Filetree is used to store code. Versioning you do with git tags that can be used in Baselines. Now we have a decent UI (iceberg) that supports the most needed workflow items. 
We have a UI for the dependency management as well (versionner) but it sadly targets ConfigurationOfs and not BaselineOfs. That needs to be changed.

my 2 cents,

Norbert

Am 10.05.2017 um 07:56 schrieb Joachim Tuchel <[hidden email]>:

Hi guys,

please forgive me if this mail is a sign of ignorance. I am not a regular Pharo user and one of the reasons for this is that I didn't like most of the source management tools around Monticello. Coming from an envy background, it feels like not being ready for prime time. Of course you guys have been proving you can work with these tools quite well, but still I'd be interested in using Pharo in a pure git-based environment, as it most closely resembles some of the most-beloved features of envy.

Over the years there was a lot of work and discussion on filetree, gitfiletree, iceberg, cypress and maybe quite a few other projects that sounded promising and interesting. But I must admit I lost track of what was really done and how far things went in the last years.

So are there any pointers to info material that I could look at to see what the current status of source control in Pharo 5 and Pharo 6 is and/or will be soon?

I am mostly interested in these topics:

  • git only - no monticello meta info any more - possible?
  • tools like merge/diff, committing from within the image
  • dependencies within my own project as well as dependencies on external code in - possibly multiple - external repositories
  • what is the current "most official" source repository for open source code?
  • best practices for managing complex projects and keeping old versions reproducible at any time
  • tutorial for git newbies in a Pharo context? (Like, how do I start with a new packege - create folder first and do git init, or start in the image and push into repo later? as I said: beginners' stuff)

Thanks for pointers and help


Joachim





-- 
-----------------------------------------------------------------------
Objektfabrik Joachim Tuchel          [hidden email]
Fliederweg 1                         http://www.objektfabrik.de
D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1



Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

Thierry Goubier
Le 11/05/2017 à 20:52, Stephane Ducasse a écrit :
> Joachim
>
> many people are using Pharo to develop ***COMPLEX*** Pharo applications
> and it works. They use monticello and metacello and it works.
> So you do not have to have Github to make great software in Pharo.
>
> Now in addition many people are using github to build complex applications
> with github.

And people have been building complex applications with Monticello,
Metacello and Github...

Thierry

>
> Stef
>
>
> On Thu, May 11, 2017 at 9:54 AM, Norbert Hartl <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>
>>     Am 11.05.2017 um 08:54 schrieb [hidden email]
>>     <mailto:[hidden email]>:
>>
>>     Hi Norbert,
>>
>>     thanks for your explanations.
>>     So it seems liek I should start by using Pharo6 and load Iceberg
>>     and just take a look.
>>
>     Yes, iceberg has still some issues but is usable and it will evolve
>     quickly. If you are the brave type of guy you can start with pharo6
>     64bits ;)
>
>     Norbert
>
>>     Joachim
>>
>>
>>
>>     Am 10.05.17 um 10:34 schrieb Norbert Hartl:
>>>     Hi Joachim,
>>>
>>>     I think your timing is quite good. We had some changes in the
>>>     last years and it is getting better now.
>>>     Before we had only monticello. Monticello is a zip container that
>>>     contains a version number in the filename and prior version
>>>     pointer inside the repository. Regarding dependencies there was
>>>     nothing that was used widely. Then Metacello appeared and solved
>>>     the problem by providing dependency management and versioning of
>>>     dependencies. Dependency management works good, the integrated
>>>     versioning has issues. Especially when you look at a system like
>>>     git you can see that versioning is solved there. Filetree is
>>>     needed because git and other vcs systems are file based so you
>>>     need to layout your code in files (how quaint!)
>>>     To make a long story short: The best thing to use is git with
>>>     Metacello Baselines. Filetree is used to store code. Versioning
>>>     you do with git tags that can be used in Baselines. Now we have a
>>>     decent UI (iceberg) that supports the most needed workflow items.
>>>     We have a UI for the dependency management as well (versionner)
>>>     but it sadly targets ConfigurationOfs and not BaselineOfs. That
>>>     needs to be changed.
>>>
>>>     my 2 cents,
>>>
>>>     Norbert
>>>
>>>>     Am 10.05.2017 um 07:56 schrieb Joachim Tuchel
>>>>     <[hidden email] <mailto:[hidden email]>>:
>>>>
>>>>     Hi guys,
>>>>
>>>>     please forgive me if this mail is a sign of ignorance. I am not
>>>>     a regular Pharo user and one of the reasons for this is that I
>>>>     didn't like most of the source management tools around
>>>>     Monticello. Coming from an envy background, it feels like not
>>>>     being ready for prime time. Of course you guys have been proving
>>>>     you can work with these tools quite well, but still I'd be
>>>>     interested in using Pharo in a pure git-based environment, as it
>>>>     most closely resembles some of the most-beloved features of envy.
>>>>
>>>>     Over the years there was a lot of work and discussion on
>>>>     filetree, gitfiletree, iceberg, cypress and maybe quite a few
>>>>     other projects that sounded promising and interesting. But I
>>>>     must admit I lost track of what was really done and how far
>>>>     things went in the last years.
>>>>
>>>>     So are there any pointers to info material that I could look at
>>>>     to see what the current status of source control in Pharo 5 and
>>>>     Pharo 6 is and/or will be soon?
>>>>
>>>>     I am mostly interested in these topics:
>>>>
>>>>       * git only - no monticello meta info any more - possible?
>>>>       * tools like merge/diff, committing from within the image
>>>>       * dependencies within my own project as well as dependencies
>>>>         on external code in - possibly multiple - external repositories
>>>>       * what is the current "most official" source repository for
>>>>         open source code?
>>>>       * best practices for managing complex projects and keeping old
>>>>         versions reproducible at any time
>>>>       * tutorial for git newbies in a Pharo context? (Like, how do I
>>>>         start with a new packege - create folder first and do git
>>>>         init, or start in the image and push into repo later? as I
>>>>         said: beginners' stuff)
>>>>
>>>>     Thanks for pointers and help
>>>>
>>>>
>>>>     Joachim
>>>>
>>>>
>>>
>>
>>
>>     --
>>     -----------------------------------------------------------------------
>>     Objektfabrik Joachim Tuchel          mailto:[hidden email]
>>     Fliederweg 1                         http://www.objektfabrik.de <http://www.objektfabrik.de/>
>>     D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
>>     <http://joachimtuchel.wordpress.com/>
>>     Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Intro to git-only Pharo

kilon.alios
So far coding solo with git and filetree has been painless and straightforward for me, I use github for public and gitlab for private projects. I do not use configurations other than copy pasting one for adding my project in Package browser. I do not use versioner because a simple copy paste is enough. I do not use iceberg I prefer my favourite git client "gitup". My experience has been both simpler, easier and far more reliable than working with the pharo vcs and smalltalkhub. But I was already familiar with git because I was already an experienced python coder , and still am, way before working with Pharo. 

I have made a tutorial about Pharo and git that can be viewed here. Its with sourcetree not gitup because gitup is only available for macos and I wanted to make a tutorial that would work on all 3 major desktop OSes. 


On Thu, May 11, 2017 at 9:56 PM Thierry Goubier <[hidden email]> wrote:
Le 11/05/2017 à 20:52, Stephane Ducasse a écrit :
> Joachim
>
> many people are using Pharo to develop ***COMPLEX*** Pharo applications
> and it works. They use monticello and metacello and it works.
> So you do not have to have Github to make great software in Pharo.
>
> Now in addition many people are using github to build complex applications
> with github.

And people have been building complex applications with Monticello,
Metacello and Github...

Thierry

>
> Stef
>
>
> On Thu, May 11, 2017 at 9:54 AM, Norbert Hartl <[hidden email]
> <mailto:[hidden email]>> wrote:
>
>
>>     Am 11.05.2017 um 08:54 schrieb [hidden email]
>>     <mailto:[hidden email]>:
>>
>>     Hi Norbert,
>>
>>     thanks for your explanations.
>>     So it seems liek I should start by using Pharo6 and load Iceberg
>>     and just take a look.
>>
>     Yes, iceberg has still some issues but is usable and it will evolve
>     quickly. If you are the brave type of guy you can start with pharo6
>     64bits ;)
>
>     Norbert
>
>>     Joachim
>>
>>
>>
>>     Am 10.05.17 um 10:34 schrieb Norbert Hartl:
>>>     Hi Joachim,
>>>
>>>     I think your timing is quite good. We had some changes in the
>>>     last years and it is getting better now.
>>>     Before we had only monticello. Monticello is a zip container that
>>>     contains a version number in the filename and prior version
>>>     pointer inside the repository. Regarding dependencies there was
>>>     nothing that was used widely. Then Metacello appeared and solved
>>>     the problem by providing dependency management and versioning of
>>>     dependencies. Dependency management works good, the integrated
>>>     versioning has issues. Especially when you look at a system like
>>>     git you can see that versioning is solved there. Filetree is
>>>     needed because git and other vcs systems are file based so you
>>>     need to layout your code in files (how quaint!)
>>>     To make a long story short: The best thing to use is git with
>>>     Metacello Baselines. Filetree is used to store code. Versioning
>>>     you do with git tags that can be used in Baselines. Now we have a
>>>     decent UI (iceberg) that supports the most needed workflow items.
>>>     We have a UI for the dependency management as well (versionner)
>>>     but it sadly targets ConfigurationOfs and not BaselineOfs. That
>>>     needs to be changed.
>>>
>>>     my 2 cents,
>>>
>>>     Norbert
>>>
>>>>     Am 10.05.2017 um 07:56 schrieb Joachim Tuchel
>>>>     <[hidden email] <mailto:[hidden email]>>:
>>>>
>>>>     Hi guys,
>>>>
>>>>     please forgive me if this mail is a sign of ignorance. I am not
>>>>     a regular Pharo user and one of the reasons for this is that I
>>>>     didn't like most of the source management tools around
>>>>     Monticello. Coming from an envy background, it feels like not
>>>>     being ready for prime time. Of course you guys have been proving
>>>>     you can work with these tools quite well, but still I'd be
>>>>     interested in using Pharo in a pure git-based environment, as it
>>>>     most closely resembles some of the most-beloved features of envy.
>>>>
>>>>     Over the years there was a lot of work and discussion on
>>>>     filetree, gitfiletree, iceberg, cypress and maybe quite a few
>>>>     other projects that sounded promising and interesting. But I
>>>>     must admit I lost track of what was really done and how far
>>>>     things went in the last years.
>>>>
>>>>     So are there any pointers to info material that I could look at
>>>>     to see what the current status of source control in Pharo 5 and
>>>>     Pharo 6 is and/or will be soon?
>>>>
>>>>     I am mostly interested in these topics:
>>>>
>>>>       * git only - no monticello meta info any more - possible?
>>>>       * tools like merge/diff, committing from within the image
>>>>       * dependencies within my own project as well as dependencies
>>>>         on external code in - possibly multiple - external repositories
>>>>       * what is the current "most official" source repository for
>>>>         open source code?
>>>>       * best practices for managing complex projects and keeping old
>>>>         versions reproducible at any time
>>>>       * tutorial for git newbies in a Pharo context? (Like, how do I
>>>>         start with a new packege - create folder first and do git
>>>>         init, or start in the image and push into repo later? as I
>>>>         said: beginners' stuff)
>>>>
>>>>     Thanks for pointers and help
>>>>
>>>>
>>>>     Joachim
>>>>
>>>>
>>>
>>
>>
>>     --
>>     -----------------------------------------------------------------------
>>     Objektfabrik Joachim Tuchel          mailto:[hidden email]
>>     Fliederweg 1                         http://www.objektfabrik.de <http://www.objektfabrik.de/>
>>     D-71640 Ludwigsburg                  http://joachimtuchel.wordpress.com
>>     <http://joachimtuchel.wordpress.com/>
>>     Telefon: +49 7141 56 10 86 0         Fax: +49 7141 56 10 86 1
>>
>
>