Optik-Konzern Zeiss investiert in seinen Gründungsort Jena

heise online Newsticker - 16. Oktober 2017 - 13:30
Deutschlands optische Industrie hat ihren Ursprung in einer kleinen Werkstatt des Mechanikers Carl Zeiss in Jena. Die Erben von Zeiss stecken jetzt viel Geld in die Thüringer Industrie- und Universitätsstadt.

Programmiersprachen: Rust bietet mehr Nebenläufigkeit beim Build

heise online Newsticker - 16. Oktober 2017 - 13:00
Version 1.21 von Mozillas Programmiersprache bringt nur wenige, aber nützliche Neuerungen. Unter anderem startet der Compiler nun beim Übersetzen parallele LLVM-Prozesse, und auch der Paketmanager Cargo bekommt ein paar Ergänzungen.

Analyse: Endlich offenes WLAN!

heise online Newsticker - 16. Oktober 2017 - 12:30
Die lang erwartete Änderung des Telemediengesetzes ist in Kraft getreten, die das Haftungsrisiko für die Betreiber offener WLANs entfallen lässt. Ein dicker Wermutstropfen bleibt allerdings.

AliOS: IoT-Betriebssystem von Alibaba.com

heise online Newsticker - 16. Oktober 2017 - 12:00
Der chinesische Internet-Gigant Alibaba.com stellt mit AliOS ein Betriebssystem für IoT-Geräte, Wearables und Autos vor; mit YunOS pflegt Alibaba auch ein Android-Derivat sowie das CentOS-kompatible Alibaba Cloud Linux (Aliyun Linux).

ESA-Satellit Sentinel-5P zur Analyse der Atmosphäre gestartet

heise online Newsticker - 16. Oktober 2017 - 12:00
Das Erdbeobachtungsprogramm Copernicus der ESA kann bald auf einen weiteren Satelliten zurückgreifen. Der am Freitag gestartete Sentinel-5P soll die Atmosphäre der Erde analysieren und nach Luftverschmutzung Ausschau halten.

5G: Vodafone zieht nach mit Gigabit-Mobilfunknetzen

heise online Newsticker - 16. Oktober 2017 - 11:30
Nach der Telekom startet nun auch Vodafone seine ersten 5G-Mobilfunknetze. Beim Tempo geht der Anbieter aber zunächst nur mit halber Kraft voraus.

Playerunknown's Battlegrounds: 16 Millionen Spieler, PS4-Gespräche mit Sony

heise online Newsticker - 16. Oktober 2017 - 11:00
PUBG verkauft sich weiter wie geschnitten Brot und hat mittlerweile bis zu zwei Millionen gleichzeitige Spieler. Noch 2017 erscheint die Xbox-One-Version, im kommenden Jahr wird womöglich auch die PS4 bedient.

Matt Glaman: Why and How for SSLs and your website

Planet Drupal - 16. Oktober 2017 - 11:00
Why and How for SSLs and your website mglaman Mon, 10/16/2017 - 04:00 Secure sites. HTTPS and SSL. A topic more and more site owners and maintainers are having to work with. For some, this is a great thing and others it is either nerve-wracking or confusing. Luckily, for us all, getting an SSL and implementing full site HTTPS is becoming easier.

Neues von der PuppetConf 2017: Discovery, Tasks und Pipelines

heise online Newsticker - 16. Oktober 2017 - 10:15
Mit den drei neuen Werkzeugen Discovery, Tasks und Pipelines hat Puppet auf der PuppetConf 2017 einiges für die Automatisierung vorgestellt. So manche wichtige Funktion fehlt noch, doch die Richtung stimmt.

Adware auf Equifax-Webseite: Unternehmen macht Drittanbieter verantwortlich

heise online Newsticker - 16. Oktober 2017 - 10:00
Schon wieder macht Equifax mit einem Sicherheitsvorfall von sich reden: Diesmal lieferte die Webseite des Unternehmens Adware aus. Auslöser soll allerdings kein Server-Hack, sondern Drittanbieter-Code gewesen sein.

Tolino Select: Eingeschränktes E-Book-Abo vorgestellt

heise online Newsticker - 16. Oktober 2017 - 10:00
Für Tolino-Kunden gibt es nun auch ein eigenes E-Book-Abo. Das funktioniert aber anders als bei der Konkurrenz. Zahlende Kunden dürfen sich jeden Monat aus einer zusammengestellten Liste von 40 Büchern vier zum Lesen auswählen.

Marktwert von im Darknet verkauften Erpressungstrojanern um 2500 Prozent gestiegen

heise online Newsticker - 16. Oktober 2017 - 9:30
Sicherheitsforschern zufolge finden sich auf verschiedenen Online-Schwarzmärkten rund 45.000 Verschlüsselungstrojaner-Angebote. Der durchschnittliche Preis für einen Schädling beträgt rund 10 US-Dollar.

Universal Windows Platform jetzt mit .NET Standard 2.0

heise online Newsticker - 16. Oktober 2017 - 9:15
Die Einbindung der technischen Vorgabe für APIs veröffentlicht Microsoft kurz nach der Meldung, dass Windows 10 Mobile keine Zukunft haben wird.

Kommentar: Schade ist's um Windows Mobile

heise online Newsticker - 16. Oktober 2017 - 9:15
Endlich hat sich mal jemand unmissverständlich zum Schicksal von Windows Mobile geäußert: Microsofts Smartphone-System steht auf dem Abstellgleis und hat keine Zukunft mehr. Ein Abgesang.

Mozilla will Deutschland besser verstehen

heise online Newsticker - 16. Oktober 2017 - 9:00
Das Open-Source-Unternehmen hat mitsamt seiner kompletten Chefetage seine größte europäische Niederlassung in Berlin eröffnet – und seine Agenda deutlich gemacht.

PreviousNext: Update to Drupal core 8.4, a step by step guide

Planet Drupal - 16. Oktober 2017 - 8:24
Share:

Drupal 8.4 is stable! With 8.3 coming to end of life, it's important to update your projects to the latest and greatest. This blog will guide you through upgrading from Drupal core 8.3 to 8.4 while avoiding those nasty and confusing composer dependency errors.

by Adam Bramley / 16 October 2017

The main issues with the upgrade to Drupal core 8.3 are dependency conflicts between Drush and Drupal core. The main conflict being that both Drush 8.1.x and Drupal 8.3 use the 2.x version of Symfony libraries, while Drupal 8.4 has been updated to use Symfony 3.x. This means that when using composer to update Drupal core alone, composer will complain about conflicts in dependencies, since Drush depends on Symfony 2.x

Updating your libraries

Note: If you are using Drush 8.1.15 you will not have these issues as it is now compatible with both Symfony 2.x and 3.x

However, if you are using Drush < 8.1.15 (which a lot of people will be on), running the following command will give you a dependency conflict:

composer update drupal/core --with-dependencies

Resulting in an error message, followed by a composer trace:

Your requirements could not be resolved to an installable set of packages.

The best way to fix this is to update both Drupal core and Drush at the same time. Drush 8.x is not compatible with Drupal 8.4 so you will need to update to Drush 9.x.

composer update drupal/core drush/drush --with-dependencies
composer require "drush/drush:~9.0"

Some people have reported success with simply running a require on both updated versions of Drupal and Drush at the same time, but this did not work for me

composer require "drupal/core:~8.4" "drush/drush:~9.0"

What next?

Great, you're on the latest versions of both core and drush, but what's next? Well, that depends on a lot of things like what contributed and custom modules your project is running, how you're deploying your site, and what automated tests you are running. As I can't possibly cover all bases, I'll go through the main issues we encountered.

First things first, you'll need to get your site's database and configuration updated. I highly recommend running your database update hooks and exporting your site's configuration before proceeding any further.

Next, you'll want to ensure that all of your deployment tools are still working. Here at PreviousNext our CI/CD tools call Make commands which are essentially just wrappers around one or more Drush commands.

For the most part, the core Drush commands (that is, the commands that ship with drush) continued working as expected, with a couple of small caveats:

1. You can no longer pipe a SQL dump into the drush sql-cli (sqlc) command.

Previously, we had:
drush sqlc < /path/to/db.sql
Now we have:
`eval drush sql-connect` < /path/to/db.sql

Note: As of Drush 9.0-beta7 this has now been fixed, meaning the old version will work again!

2. The drush --root option no longer works with relative paths

Previously, our make commands all ran Drush with the --root (or -r) option relative to the repository root:
./bin/drush -r ./app some-command
Now it must be an absolute path, or Drush will complain about not being able to find the Drupal settings:
./bin/drush -r /path/to/app some-command

3. Custom Drush commands

For custom Drush commands, you will need to port them to use the new object oriented style approach and put the command into a dedicated module. Since version 9.0-beta5, Drush has dropped support for the old drush.inc style approach that could be used to add commands to a site without adding a new module.

For an example on this, take a look at our drush_cmi_tools library which provides some great extensions for importing and exporting config. This PR shows how we ported these commands to the new Drush 9 format.

For more information on porting commands to Drush 9, check out Moshe Weitzman's blog on it.

Other gotchas

Following the Drush upgrades, your project will need various other updates based on the modules and libraries it uses. I'll detail some issues I faced when updating the Transport for NSW site below.

1. Stale bundles in the bundle field map key value collection

Added as part of this issue, views now throws warnings similar to "A non-existent config entity name returned by FieldStorageConfigInterface::getBundles(): field name: field_dates, bundle: page" for fields that are in the entity bundle field field map that no longer exist on the site. We had a handful of these fields which threw warnings on every cache clear. To fix this, simply add an update hook which clears out these stale fields from the entity.definitions.bundle_field_map keyvalue collection:

/** * Fix entity.definitions.bundle_field_map key store with old bundles. */ function my_module_update_8001() { /** @var \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $key_value_factory */ $key_value_factory = \Drupal::service('keyvalue'); $field_map_kv_store = $key_value_factory->get('entity.definitions.bundle_field_map'); $node_map = $field_map_kv_store->get('node'); // Remove the field_dates field from the bundle field map for the page bundle. unset($node_map['field_dates']['bundles']['page']); $field_map_kv_store->set('node', $node_map); }

2. Custom entities with external uri relationships throw Fatal errors when delete while menu_link_content is installed

The menu_link_content module now has an entity_predelete hook that looks through an entities uri relationships and tries to find any menu links that link to that specific route, and if so deletes them. When the uri is external, an error is thrown when it tries to get the route name "External URLs do not have an internal route name.". See this issue for more information.

3. Tests that submit a modal dialog window will need to be altered

This is a very edge case issue, but will hopefully help someone! In older versions of jQuery UI, the buttons that were added to the bottom of the modal form for submission had an inner span tag which could be clicked as part of a test. For example, in Linkit's LinkitDialogTest. This span no longer exists, and attempting to "click" any other part of that button in a similar way will throw an error in PhantomJS. To get around that simply change your test to do something similar to the following:

$this->click('.ui-dialog button:contains("Save")');

Kudos to jhedstrom for finding this one. See this issue for more information.

Conclusion

Personally, I found the upgrade to be quite tedious for a minor version upgrade. Thankfully, our project has a large suite of functional/end-to-end tests which really helped tease out the issues and gave us greater confidence that the site was still functioning well post-upgrade. Let me know in the comments what issues you're facing!

Finally, take a look at Lee's blog on some of the major changes in 8.4 for some more insight into what you might need to fix.

Tagged Composer, Drupal 8, drush

Posted by Adam Bramley
Senior Drupal Developer

Dated 16 October 2017

Add new comment

Elektroautos: EU-Kommission dementiert Quote für emissionsfreie Fahrzeuge

heise online Newsticker - 16. Oktober 2017 - 8:00
Die EU-Kommission betont, dass die EU-Gesetzgebung "immer technologieneutral" gewesen sei. Vor diesem Hintergrund werde es keine Quote geben. Stattdessen setzt sie auf die Batteriezellenproduktion.

Love Huria: Time to level up Code Reviews

Planet Drupal - 16. Oktober 2017 - 8:00

Being part of a Code review process is very important for us and trust me we take it very seriously. This is required not just for the team but for an individual learning as well.

Code reviews are very crucial for knowledge transfer and to avoid making small/common mistakes and of course maintaining best practices throughout the dev team. So Let’s take my team for example: we are around 11 developers in the team, all producing code which needs to be reviewed. So basically yeah that’s a whole lot of code!

Why It’s Important?

Pushing code to production is...

Fehler in WSUS-Update: Windows-Clients booten nicht mehr

heise online Newsticker - 16. Oktober 2017 - 7:30
Fehlerhafte Update-Pakete für Windows 10 und Windows Server 2016, die Microsoft am jüngsten Patchday veröffentlicht hat, legten in den vergangenen Tagen Rechner in Unternehmensnetzwerken lahm. Betroffen waren nur Umgebungen mit WSUS und SCCM.

Tiangong 1: Chinesische Raumstation vor unkontrolliertem Absturz

heise online Newsticker - 16. Oktober 2017 - 7:00
Ende des Jahres oder Anfang 2018 wird Tiangong 1 abstürzen, ohne dass absehbar ist, wann genau das passieren wird und wo mögliche Trümmerteile einschlagen könnten. Das wird sich erst kurz vorher abzeichnen. Das Risiko einer Gefährdung sei sehr gering.