How to upgrade a module already distributed with Drupal Commerce? - drupal

Drupal Commerce 1 has included Crumbs 1.10.
I need to upgrade Crumbs to 2.7, and this version isn't included with Drupal Commerce.
How can I upgrade it without breaking Drupal Commerce distribution (and update) ?
Thanks.

Composer Package Management:
If you are using Composer to manage the installed modules/distributions for your Drupal 7 site, you can set the minimum version constraint and then run composer update for the Crumbs module:
composer require 'drupal/crumbs:^2.7'
composer update 'drupal/crumbs'
Traditional/Legacy code repositories:
For traditional/legacy code repositories that don't use composer, you can:
Backup your database/codebase
Download the desired version of the module
replace the older version of the module (typically found in your codebase's /profiles/contrib/commerce/modules/ directory or /modules/contrib/ directory).
Deploy the updated module code.
Run update.php or drush updatedb.
Clear caches.
In the case that the Drupal Commerce profile has a fixed version dependency for Crumbs 1.10, you should be able to update the version constraint in the .info file for the module.

You can use drush command as follow to update a specific version of module.
$ drush pm-update views_send-7.x-1.x-dev
Thanks

Related

Cant Install Commerce Checkout Module

I'm in the process of upgrading my website from Drupal 7 to 8 and one of my tasks is to ensure that all modules are copied over and installed.
I've been able to install every 'Commerce' module apart from the checkout.
Unable to install Commerce Checkout due to unmet dependencies:
core.entity_view_display.commerce_product_variation.default.summary
(commerce_product.commerce_product_variation_type.default)
This question was asked and answered here: Can't install drupal 8 commerce checkout module
However, it does not help me because I've already used Composer to install the commerce module but I still cant enable it.
$ composer require drupal/commerce
Using version ^2.5 for drupal/commerce
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
> Drupal\Core\Composer\Composer::preAutoloadDump
> Drupal\Core\Composer\Composer::ensureHtaccess
$ composer require drupal/commerce_checkout
Using version ^2.5 for drupal/commerce_checkout
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
> Drupal\Core\Composer\Composer::preAutoloadDump
> Drupal\Core\Composer\Composer::ensureHtaccess
$ composer require drupal/commerce_product
Using version ^2.5 for drupal/commerce_product
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files
> Drupal\Core\Composer\Composer::preAutoloadDump
> Drupal\Core\Composer\Composer::ensureHtaccess
I appreciate any solutions that you may have and look forward to discussing this issue with you further.
Thanks!
I guess you already fixed the issue yourself simply by "installing" drupal/commerce first.
The three snippets you provided at the end of your question look fine and actually just says they are already "installed". Composer downloaded everything for you and now you just have to enable them via drush or from the UI.
Now I got it. This error message occurs when installing Commerce Checkout via drush/drupal console (or maybe even via the UI). And it says it requires a display or view mode from the Commerce Product entity type. Then I guess the second answer in the linked question is right: install Commerce Product first as that may provide the missing display upon installation.
Even if that doesn't work you may circumvent the issue by creating the display or view mode manually yourself.

Wordpress roots/sage installation options not working

I have install sage on my wordpress, but there no choice for selecting options that sage docs says
During theme installation you will have the options to:
Update theme headers (theme name, description, author, etc.)
Select a CSS framework (Bootstrap, Foundation, Tachyons, none)
Add Font Awesome
Configure Browsersync (path to theme, local development URL)
C:\php7\htdocs\blog\wp-content\themes>composer create-project roots/sage foundat
ion 8.5.3
Installing roots/sage (8.5.3)
- Installing roots/sage (8.5.3): Loading from cache
Created project in foundation
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
- Installing composer/installers (v1.4.0): Loading from cache
Writing lock file
Generating autoload files
I success activate the foundation theme on wordpress dashboard. Is I miss something?
After installing sage 9 there is still no choice for selecting options because TTY mode is not supported on Windows platforms.
To work around it, run these commands from within your theme directory:
./vendor/bin/sage meta
./vendor/bin/sage config
./vendor/bin/sage preset
You are reading the docs for sage 9.x but installing 8.5.3 which is a complete different setup and doesnt have the features mentioned above. Sage 9 can only be installed when running PHP 7.x and up.
If you just use the same composer command without the version number you shouls get the latest version.

How to instal modules with Drupal 8 and Composer?

I installed Drupal 8 via composer with:
composer create-project drupal-composer/drupal-project:8.x-dev my_site --stability dev --no-interaction
This downloaded all the files and run composer install. According to this tutorial - https://www.drupal.org/node/2718229 - doing so this way will also configure composer.json to allow installation of modules, themes etc too via composer. Nice
However, I'm trying to install a new module:
$ composer require drupal/codesnippet
Using version ^1.6 for drupal/codesnippet
./composer.json has been updated
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing drupal/codesnippet (1.6.0)
Downloading: 100%
Writing lock file
Generating autoload files
> DrupalProject\composer\ScriptHandler::createRequiredFiles
However, when I go to Admin Bar > Extend > Install new module, I can search for the module and it says it's not installed yet. If I try to enable/install it from there it tells me I need to download and copy to the /libraries directory:
Before you can use the CKEditor CodeSnippet module, you need to download the codesnippet plugin from ckeditor.com and place it in /libraries/codesnippet. Check the README.txt for more information. Get the plugin here. (Currently using CodeSnippet version Plugin not detected)
Are these two completely different methods? How can I complete the installation with composer of this module?
Composer is a dependency manager, and whether or not third-party dependencies are included depends on how the module author managed their dependencies in the first place.
You aren't going to be able to complete the install via Composer alone, if a specific dependency isn't present on the repository that Composer downloads its packages from.
You're going to have to download the CKEditor CodeSnippet module from ckeditor.com. Composer can't manage that dependency for you, because that CKEditor plugin isn't a Composer package.
You can download it here: http://ckeditor.com/addon/codesnippet
Martyn, I guess you are confusing two different things into the same one: the drupal module and the external library required by the module.
The Drupal module codesnippet (https://www.drupal.org/project/codesnippet) is just a drupal integration module for the CKeditor addon with the same name, which you can download it (http://download.ckeditor.com/codesnippet/releases/codesnippet_4.6.2.zip) and place it in the drupal webroot /libraries folder manually (in your case my_site/web/libraries/ to be more specific - you have to create it if does not exist already).
Then you should be able to enable the drupal module.
PS: You could also add the library requirement in the composer.json library manually, which might be just a bit more complicated for beginners, because you also have to manually specify other things like a repository type, url and installer-paths for the extra external library that you need , but might be easier in the long run to deploy new Drupal8 installations with the same requirements just with a proper main composer.json file, without the need to go and manually download external libraries. There is a similar comment of mine(user zet) that you could read on this drupal dropzonejs module issue https://www.drupal.org/node/2853274

Install module "Devel" on Drupal 8

I´m trying to install de Devel module of Drupal 8, I was reading the README.txt of Project/modules of Drupal, I have read this:
Placing downloaded and custom modules in this directory separates downloaded and
custom modules from Drupal core's modules. This allows Drupal core to be updated
without overwriting these files.
I have downloaded from the official website Drupal - Devel the 8.x-1.x-dev version, to Drupal 8, and when I paste the module (after descompressed) in Project/modules, I have cleared the cache and Updates the "Extends" menu, but I can´t find my "Devel" module.
Do I need to install and configuring the FTP server?
just try with drush .
drush en devel -y
If you are using composer try
composer require drupal/devel
Maybe you could try with
/admin/modules/install and let Drupal put it where it should be placed.

In drupal, do I need to update after "site install"ing using drush?

When I use drush to site install (drush si profileName), do I need to run an update so all the modules will run what they need as part as their update methods, or does a fresh "site install" doesn't require an update ?
If it matters, I'm talking about drupal 7. RC1 to be exact.
drush site-install does the same thing as a GUI site install: that is, it only installs local install profiles and does not update. The reason is presumably installation profiles are designed and tested around specific versions of modules.
You can update after the site install by running drush update.
In terms of whether or not you should run update.php (i.e. drush updatedb) after a site install to get the latest changes from hook_update_N() and hook_install(), you don't need to worry about it. hook_install() should always contain the latest version of the module's schema, and hook_install() is always invoked the first time a module is enabled.

Resources