Not registered yet?
Register now! It is easy and done in 1 minute and gives you access to special discounts and much more!
By lesley n.
I have a Drupal 8 installation and I like to install a theme from github.com using composer.
It is this theme https://github.com/forumone/gesso
Can anybody help me what I have to add to the composer.json and where?
Adding this answer for more clarification for future readers:
The theme in question as of this comment date has a stable release from April 2018. But the development branch is active and updated.
In such a case, you would do this to fetch it instead of the latest stable:
composer require drupal/gesso:2.x-dev
To go even further, you can tack a commit sha on the end of the version to 'pin` the code at that commit - unless you want rolling updates from HEAD. This is a versatile option that you can opt for in Composer that is not so known in the Drupal circles.
You don't need to pull from GitHub in this instance. The only time you would want to do this is when a package does not live on drupal.org at all, 99% of the time they are on Packagist (third party packages, like Prophecy etc).
The rare case is when you have a private repo on GitHub/GitLab or elsewhere, then this is the approach you would want to take to fetch it.
This is a good answer, because you give the advice of best practice. So I've learned a lot today. How to add package to composer.json and how to use dev-version with cli command.
If you still want download theme from github, you can edit file composer.json by add more repository:
Add this code
and run composer require "forumone/gesso"
to download theme and update composer.lock.
composer require "forumone/gesso"
Just to clarify here, the dev branch for this theme is parallel on both GitHub and drupal.org. Alternatively, one could do composer require drupal/gesso:2.x-dev to get the dev branch. To me it looks exactly the same. So, you don't need to pull from GitHub in this instance. The only time you would want to do this is when a package does not live on d.o. at all, 99% of the time they are on packagist (third party vendor). The rare case is when you have a private repo on GitHub, then this is the approach you would want to take.
You shouldn't use the Github repository, unless you're getting involved in the theme's development - it doesn't contain a composer.json file, so isn't supposed to be installed this way.
You could mess about trying to set it up as a custom repository, but given that this is a theme hosted on (and packaged by) drupal.org, it would be easier to just install it the standard way:
composer require drupal/gesso
on drupal.org the files are from last year and on github from this year. That's why I want to install from github.
You would have to add the github repo as a new repository item and call it that way. It isn't ideal, and the Gesso theme should have updated its d.o. project as thats where everyone expects to obtain packages. getcomposer.org/doc/05-repositories.md
What @Kevin said. And just to add that when code isn't in a stable branch, it's often because it's not considered to be stable. i.e. don't run it in production without a plenty of testing. You can find out how to add a custom github repository in the composer docs, just make sure you have type: drupal-module if you want it to be moved into the correct folders etc when installing
@lesleyn. The development snapshot has been updated on February, 2019. If you want to know when the next official release will be made, you can check/ask on the theme issue queue, on drupal.org.