Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Metacello should be the way to install a project #67

Open
jecisc opened this issue Mar 8, 2016 · 10 comments
Open

Metacello should be the way to install a project #67

jecisc opened this issue Mar 8, 2016 · 10 comments
Milestone

Comments

@jecisc
Copy link
Member

jecisc commented Mar 8, 2016

This is a question:

I think that the best way to load a project is via Metacello. But in some chapter there is Gofer scripts. Should we change them?

Example:
Gofer it
url: 'http://smalltalkhub.com/mc/estebanlm/Voyage/main';
configurationOf: 'VoyageMongo';
loadStable.

should be

Metacello new
smalltalkhubUser: 'estebanlm' project: 'Voyage';
configuration: 'VoyageMongo';
version: #stable;
load

@kilon
Copy link

kilon commented Mar 9, 2016

There is a constant sate of flux in this area, you are correct to note that we no longer use Gofer as much as we did in the past. However even metacello is on its way out to an extent because smalltalkhub has been abandonware for a long time now and the goal is to move to git, and mostly github or other websites.

Thats means versioning will aso be handled by git in the future, through branches, forks, releases, git tags and much more depending on the demands of each project.

Generally I am not too eager to update this section because I predict that several things are going to change in the near future. Already a lot of things have changed, we have tools that integrate already with github to the point you dont even need git installed to make commits, gitfiletree has versions that reject/ignore meta info of filetree to move versioning completely on git and much , much more.

Obviously Pharo being a smalltalk means we will have to find the balance that suits our live coding workflow. So for now there is no best way what is clear is that we moving to a git workflow.

Actually my best way so far is a combination of git, filetree, Catalog Browser, makefile and startupscript which has completely replaced my use of pharoLauncher sadly and probably will lead me to produce a new GUI tool for building images.

So for now my advise to people is yes use configurations only if you want to works with StHub and you want to add your project to Catalog Browser. For everyone else git is the way to go, and I dont see why we cant also support Mecurial and other VCS . The workflow afterall is pretty much the same and this way everyone can choose from the myriad tools that exist out there that are very mature and well tested and documented for other programming languages.

The question that remains to be answered is how to make those tools work best for Pharo.

@jfabry
Copy link
Contributor

jfabry commented Mar 9, 2016

I actually prefer gofer over metacello. But I am OK with metacello being used as well as gofer, in the book.

I think it is more important to focus on the other open issues, which are more important, and close them. This book has been without progress for too long and if we keep opening issues instead of closing them we will never get it done ...

@estebanlm
Copy link

but Metacello should be the recommended way to install projects.
in the “regular” case, is more or less the same, but Metacello has ways to deal with “exceptional” cases (like conflicts, upgrades, etc.)

Esteban

On 09 Mar 2016, at 14:48, Johan Fabry [email protected] wrote:

I actually prefer gofer over metacello. But I am OK with metacello being used as well as gofer, in the book.

I think it is more important to focus on the other open issues, which are more important, and close them. This book has been without progress for too long and if we keep opening issues instead of closing them we will never get it done ...


Reply to this email directly or view it on GitHub #67 (comment).

@jecisc
Copy link
Member Author

jecisc commented Mar 9, 2016

The problem is that they are not the same. The same configuration will bring different packages with Gofer and Metacello.
I heard that Metacello should be the default one (Christophe, Dale…). If it should be the default we should check that all configurations are fine with it and use it. The less we use Gofer to load configuration, the sooner we will have an unified api.
And Metacello can load configurations/baselines from git aswell.
But I agree that it is not the top priority. I just think that we should aim perfection, and this issue will be needed to get it.

@estebanlm
Copy link

On 09 Mar 2016, at 14:53, CyrilFerlicot [email protected] wrote:

The problem is that they are not the same. The same configuration will bring different packages with Gofer and Metacello.

no it shouldn’t.
if that is happening, there is a bug somewhere.

Esteban

I heard that Metacello should be the default one (Christophe, Dale…). If it should be the default we should check that all configurations are fine with it and use it. The less we use Gofer to load configuration, the sooner we will have an unified api.

as I said… if it does not installs the same, there is an error.

And Metacello can load configurations/baselines from git aswell.
But I agree that it is not the top priority. I just think that we should aim perfection, and this issue will be needed to get it.


Reply to this email directly or view it on GitHub #67 (comment).

@jfabry
Copy link
Contributor

jfabry commented Mar 9, 2016

2 things quickly:

  • supposedly the install instructions have been tested when the text was written or edited. So the gofer vs metacello bug (that has happened to me in other cases) is not an issue. Worse even, if we change the install instructions the bug can appear and we will lose more time.
  • Le mieux est l'ennemi du bien (Perfect is the enemy of good) ;-)

@jecisc
Copy link
Member Author

jecisc commented Mar 9, 2016

We cannot use Metacello now at Synectique because our configurations works only with gofer.
Our current configuration works with gofer probably because of bugs in gofer (for example if we load two times the same configuration we have some different packages each time).
So yes, they bring different packages. This is due to some bugs in Gofer but they still bring different packages. We should not use these bugs but sometime we don't know we use them and they are hard to correct.

@kilon
Copy link

kilon commented Mar 9, 2016

I agree for now Metacello is the default and not Gofer. I dont think I have seen people mention Gofer for over a year in the mailing list and I have no idea if its still developed. On the other hand Metacello is currently heavily used. Pretty much every pharo project comes with a configuration or at least a baseline.

@DamienCassou
Copy link
Contributor

Too late to change that now.

@DamienCassou DamienCassou added this to the v2.0 milestone Mar 16, 2016
@tinchodias
Copy link

This is fixed by #118, right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants