Skip to content

garp composer

David Spreekmeester edited this page Jul 28, 2016 · 5 revisions

Migration

Garp has been made into an official Composer package.

That means the old subtree style is deprecated and Garp should be included in a project as a Composer dependency.

To help the migration, a Golem script was created.
After updating golem, the following oneliner will move you to the new setup:

g composer migrate

You have to manually delete the garp directory from the root of your project. Just make sure there are no changes left in there you wish to keep.

Note: Composer can be a bit whiney sometimes and you might want to add "minimum-stability": "dev" to the host project's composer.json.

Also, historically google/apiclient might be a dependency in the host project. Its version might conflict with Garp's dependent version, but you can safely remove it.

Some important things to consider

The migration script fixes known references to garp in the old location. For instance the inclusion of init.php in public/index.php or the inclusion of Garp's routes file in application/configs/routes.ini.
If your project references /garp in a non-traditional way you will have to change it manually to reference /vendor/grrr-amsterdam/garp3.

One known place that you probably have to update by hand that just can't be done with a migration script is the cron job on your project's servers.

❗ Make sure you go into the server and fix the cronjobs after migrating Garp!

Making changes

Changes to Garp are no longer pushed from a host project (git subtree style), but should be made directly to the Garp3 repo.

Garp3 has its own master / develop setup as you would expect from all our projects. The usual git flow rules apply: master should be stable, develop contains ongoing development. Releases are done thru git flow release start and should update .semver in the root.

Note that Packagist (the package repository for Composer) looks for tags in your repo to allow installation of specific versions. The above workflow using git flow provides such tags but you have to push them to the remote yourself:

git push origin --tags

This allows implementing authors to freeze Garp at a specific version.

More info on Contributing to the Garp codebase.

Clone this wiki locally