Csomagok frissítése a zeneszerzővel és a frissítés tudása
On február 10, 2021 by adminMost kezdek dolgozni a Drupal 8-zal és a zeneszerzővel, és megpróbálom kitalálni, hogy a frissítés a munkafolyamatnak működnie kell. Ismerem a Drupal 7 szerver évek óta tartó adminisztrációjának alapjait, de a Composer rész buktat.
Jelenleg a Drupal telepítésének gyökérmappájából futok (engedélyezett karbantartási mód mellett) composer outdated
és kapok egy listát egy csomó frissítésre szoruló csomagról.
Amennyire a dokumentációból meg tudom állapítani, csak a következővel kell frissítenem: “drupal /”. Feltételezve, hogy csak a konzol és a mag elavult, a composer update drupal/console drupal/core --with-dependencies
programot futtatom, és ez lehúzza a frissítéseket, és megteszi a dolgát. Miután ez megtörtént, ha újra futtatom a composer outdated
fájlt, akkor is egy csomó csomagot látok, amelyek a zeneszerző szerint elavultak. Ezt szánják? Vagy frissíteni kell ezeket a csomagokat?
Azt hiszem, hogy a Drupal a csomagok bizonyos verzióinak felhasználásával épül fel, így mindegyikük frissítése valószínűleg elrontaná a dolgokat, igaz? Honnan kell tudni valakinek, hogy milyen csomagoknak kell lenniük frissítve, és melyek maradjanak meg egy adott verziónál?
Ezt kapom, amikor futtatom a composer outdated
futtatást.
alchemy/zippy 0.4.3 0.4.8 Zippy, the archive manager companion composer/installers v1.4.0 v1.5.0 A multi-framework Composer library installer consolidation/annotated-command 2.8.1 2.8.2 Initialize Symfony Console commands from annotated command class methods. consolidation/output-formatters 3.1.12 3.1.13 Format text by applying transformations provided by plug-in formatters. cweagans/composer-patches 1.6.2 1.6.4 Provides a way to patch Composer packages. dflydev/dot-access-data v1.1.0 v2.0.0 Given a deep data structure, access data by dot notation. drupal/php 1.0.0-beta1 1.0.0-beta2 Allows embedded PHP code/snippets to be evaluated. Enabling this can cause security and performance issues as it allows users to execute PHP code on your site. egulias/email-validator 1.2.14 2.1.3 A library for validating emails fabpot/goutte v3.2.1 v3.2.2 A simple PHP Web Scraper gabordemooij/redbean v4.3.4 v5.0 RedBeanPHP ORM jcalderonzumba/gastonjs v1.0.3 v1.2.0 PhantomJS API based server for webpage automation phpdocumentor/reflection-docblock 2.0.5 4.2.0 phpspec/prophecy v1.7.2 1.7.3 Highly opinionated mocking framework for PHP 5.3+ phpunit/php-code-coverage 2.2.4 5.3.0 Library that provides collection, processing, and rendering functionality for PHP code coverage information. phpunit/php-file-iterator 1.4.2 1.4.5 FilterIterator implementation that filters files based on a list of suffixes. phpunit/php-token-stream 1.4.11 2.0.2 Wrapper around PHP"s tokenizer extension. phpunit/phpunit 4.8.36 6.5.5 The PHP Unit Testing framework. phpunit/phpunit-mock-objects 2.3.8 5.0.6 Mock Object library for PHPUnit sebastian/comparator 1.2.4 2.1.1 Provides the functionality to compare PHP values for equality sebastian/diff 1.4.3 2.0.1 Diff implementation sebastian/environment 1.3.8 3.1.0 Provides functionality to handle HHVM/PHP environments sebastian/exporter 1.2.2 3.1.0 Provides the functionality to export PHP variables for visualization sebastian/global-state 1.1.1 2.0.0 Snapshotting of global state sebastian/recursion-context 1.0.5 3.0.0 Provides functionality to recursively process PHP variables sebastian/version 1.0.6 2.0.1 Library that helps with managing the version number of Git-hosted PHP projects symfony-cmf/routing 1.4.1 2.0.3 Extends the Symfony2 routing component for dynamic routes and chaining several routers symfony/browser-kit v3.3.10 v4.0.3 Symfony BrowserKit Component symfony/class-loader v3.2.14 v3.4.3 Symfony ClassLoader Component symfony/config v3.2.14 v4.0.3 Symfony Config Component symfony/console v3.2.14 v4.0.3 Symfony Console Component symfony/css-selector v3.3.10 v4.0.3 Symfony CssSelector Component symfony/debug v3.4.3 v4.0.3 Symfony Debug Component symfony/dependency-injection v3.2.14 v4.0.3 Symfony DependencyInjection Component symfony/dom-crawler v3.4.3 v4.0.3 Symfony DomCrawler Component symfony/event-dispatcher v3.2.14 v4.0.3 Symfony EventDispatcher Component symfony/expression-language v3.4.3 v4.0.3 Symfony ExpressionLanguage Component symfony/filesystem v3.4.3 v4.0.3 Symfony Filesystem Component symfony/finder v3.4.3 v4.0.3 Symfony Finder Component symfony/http-foundation v3.2.14 v4.0.3 Symfony HttpFoundation Component symfony/http-kernel v3.2.14 v4.0.3 Symfony HttpKernel Component symfony/process v3.2.14 v4.0.3 Symfony Process Component symfony/routing v3.2.14 v4.0.3 Symfony Routing Component symfony/serializer v3.2.14 v4.0.3 Symfony Serializer Component symfony/translation v3.2.14 v4.0.3 Symfony Translation Component symfony/validator v3.2.14 v4.0.3 Symfony Validator Component symfony/var-dumper v3.4.3 v4.0.3 Symfony mechanism for exploring and dumping PHP variables symfony/yaml v3.2.14 v4.0.3 Symfony Yaml Component twig/twig v1.35.0 v2.4.4 Twig, the flexible, fast, and secure template language for PHP webflo/drupal-finder 1.0.0 1.1.0 Helper class to locate a Drupal installation from a given path.
Ez egy meglehetősen vaníliás Drupal telepítés. Csak néhány modul van hozzáadva és egy téma. Valószínűleg meg kell említenem azt is, hogy ezt a weboldalt a hivatalos dokumentumokban említett drupal-composer sablon ( https://github.com/drupal-composer/drupal-project ).
Megjegyzések
Válasz
Őszintén szólva, egy olyan kódbázis számára, mint a tipikus Drupal webhely, ez egy nehezen megoldható probléma. Vegyük például a Drupal VM Prod kódbázist, amelyet tegnap frissítettem a Drupal core 8.4.5-ről 8.5.0-ra:
- A drupal / core verzióra vonatkozó korlátozásom a composer.json fájlban
~8.4
-
composer update drupal/core --with-dependencies
nem futott Drupal core; 8.4.5-nél ragadt meg. -
composer update
futtatása (inkább a nukleáris opció – mindent frissíteni fog, beleértve a hozzárendelési modulokat és minden egyéb függőséget, ami problémákat okozhat, és megnehezítheti az egyes frissítések tesztelését egy összetett webhelyen!) A Drupal core frissítésén dolgozott … de ez nem ideális.
Ezért kérdeztem róla a kérdésben a zeneszerző nem tudott 8.4.4-ről 8.5.0-alfa1-re frissíteni , és még a Zeneszerző parancs:
composer prohibits drupal/core:8.5.0
Ez rengeteg különféle symfony komponenst sorolt fel … így “ülhettem ott és együtt py-beillesztette a 14 komponens mindegyikét a composer update
parancsomba, de ez nem szórakoztató, ezért tovább piszkáltam (hiába).
Később a megjegyzésszálban @eiriksm megemlítette, hogy mivel a projektem symfony/config
-vel rendelkezik (a drush és a drupal konzol függősége), futtatnom kellett a composer update drupal/core symfony/config --with-dependencies
.
Még mindig fogalmam sincs, hogyan tudtam “kitalálni, hogy csak hozzá kell adnom a symfony/config
-t az update parancsba (szemben az összes többi symfony hozzáadásával) komponensek) … de ha mégis megteszem, megpróbálom frissíteni ezt a választ ezen információkkal, hogy mások is részesülhessenek a jövőben!
Hozzászólások
- Én is írtam egy blogbejegyzést ebben a témában, egy kicsit több információval: A drupal / core frissítése a Composer-rel – de a Drupal core nem ‘ t frissítés
Válasz
Kisebb verziók frissítése (8.3> 8.4, 8.4> 8.5) zeneszerzővel rémálom.
Arra a következtetésre jutok, hogy talán composer update
-et “át kell ölelni”, és a modul verzióit gondosan kell kezelni a composer.json
talán lezárja mindet a jelenleg telepített verziókra, majd csak akkor módosítja a verziót, ha frissíteni kívánja a modult. Ez valójában nem olyan nagy dolog.
A zeneszerző előtt valóban így tettünk. Eldöntöttük, hogy mely modult frissítsük egyenként, nem egyszerre, a drush up modulename
vagy bármi mással.
Ez azt jelentheti, hogy bizonyos verziószámú modulokat kell telepíteni:
composer require "drupal/address:1.0"
nem ez
composer require "drupal/address:~1.0"
A "~1.0"
szöveget később bármikor megváltoztathatja "1.0"
-re később: composer.json
, de ha egy adott verziószámot telepít, akkor nem kell.
Megjegyzések
- Kisebb verziók frissítése (8.3 > 8.4, 8.4 > 8.5) zeneszerzővel rémálom. I ‘ kb. 10 8,4 – > 8,5 frissítés történt az elmúlt héten, a zeneszerzőn keresztül, minden olyan egyszerű, mint a
composer update
futtatása , egyikükkel sincs probléma. Nem vagyok biztos benne, hogy a dolgok milyen kombinációja miatt küzdenek az emberek ezzel, nincs ‘ t egyetlen problémát talált a Drupal / Composer alkalmazással - @Clive, ha csak frissíteni szeretné a Drupal Core-ot, d nem minden mag, járulék és minden egyéb függőség, és ‘ nem zár le egy adott verziót a Core mellett minden más dologra …
composer update
nagyon sok nem szándékos következménye lehet. Számos webhely esetében általában elég biztonságos mindent folyamatosan frissíteni, de egyesek számára katasztrófa lehet. Mindig tesztelje, mielőtt gyártásba megy!
composer show --tree
megjeleníti a függőségi fát, böngészéssel, amely segíthet abban, hogy megtudja, mi szükséges a frissítendő csomagokhoz és tájékoztat egy döntést. Találhatja a következőt is: github.com/webflo/drupal-core-strict hasznos, rögzíti az alapvető függőségeket az ismert jó verziókhoz, amelyek segíthetnek önbizalommal frissítenicomposer update
parancsot használhatom, és a composer.json fájlra támaszkodhatom, hogy a csomagok kompatibilisek maradjanak ( legkevesebb a maggal)? És ha egy frissítés során a dev-en megszakadnak a dolgok, akkor csak végigjárom az egyes csomagfrissítéseket, és megtudom, mi okozta a problémát ‘. Van értelme.