Elgg 1.10 and composer

I'd like to start requiring composer if you're checking out directly from github for 1.10+.

Pull request: https://github.com/Elgg/Elgg/pull/7083

We have started switching to composer to manage our dependencies (both hard dependencies and development dependencies) in Elgg 1.10. Unfortunately, since Elgg has historically been fully functional after git checkout, we have been checking in all these dependencies into the repo. This has many negative effects, including:

  • causing lots of frivolous conflicts between PRs
  • bloats the size of the repo
  • lots of noise in PRs that add or update dependencies
  • inability to distinguish between development dependencies and hard dependencies (further bloating the size of the repo).

I think pretty much all the core devs feel the pain of this and would like to avoid these problems.

You could argue that this is a breaking change we said we wouldn't make in 1.x.

You could also argue that Elgg being ready-to-install from source control is not part of our plugin API, so it isn't a plugin-breaking change, which is what we really mean when we say we won't make breaking changes in 1.x. It won't break plugins, but it would break naive deployments.

And furthermore I might argue that if you are installing with git, you probably have enough chops to do a quick "composer install" as well.

And furthermore I would argue that if you're installing with git, you probably are installing from the 1.9 branch, not 1.x, so this will not actually break you. That's where the community comes in, because I don't know what some of you are doing for deployment and we need feedback.

I'm curious how people using git for deployment would feel about this change? It would really clean up development for us, I think. And of course the distributed zips of Elgg would come with all necessary dependencies pre-installed so that our command-line-averse friends don't have to geek out with these developer tools.

Feedback and Planning

Feedback and Planning

Discussions about the past, present, and future of Elgg and this community site.