From 9afcddccc5aa46820a68b89dc530ac7e4d65b4ec Mon Sep 17 00:00:00 2001
From: Konstantinos Samaras-Tsakiris <ksamtsak@gmail.com>
Date: Mon, 10 May 2021 10:26:11 +0200
Subject: [PATCH] Add JS lib update instructions

closes https://gitlab.cern.ch/webservices/webframeworks-planning/-/issues/380
---
 README.md     | 51 ++++++++++++++++++++++++++++++---------------------
 composer.json | 10 +++++++++-
 2 files changed, 39 insertions(+), 22 deletions(-)

diff --git a/README.md b/README.md
index 41e678cfa..918321d6e 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ the [Documentation on drupal.org](https://www.drupal.org/node/2471553).
 First you need to [install composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx).
 
 > Note: The instructions below refer to the [global composer installation](https://getcomposer.org/doc/00-intro.md#globally).
-You might need to replace `composer` with `php composer.phar` (or similar) 
+You might need to replace `composer` with `php composer.phar` (or similar)
 for your setup.
 
 After that you can create the project:
@@ -23,7 +23,7 @@ After that you can create the project:
 composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
 ```
 
-With `composer require ...` you can download new dependencies to your 
+With `composer require ...` you can download new dependencies to your
 installation.
 
 ```
@@ -31,8 +31,8 @@ cd some-dir
 composer require drupal/devel:~1.0
 ```
 
-The `composer create-project` command passes ownership of all files to the 
-project that is created. You should create a new git repository, and commit 
+The `composer create-project` command passes ownership of all files to the
+project that is created. You should create a new git repository, and commit
 all files not excluded by the .gitignore file.
 
 ## What does the template do?
@@ -53,26 +53,26 @@ When installing the given `composer.json` some tasks are taken care of:
 
 ## Updating Drupal Core
 
-This project will attempt to keep all of your Drupal Core files up-to-date; the 
-project [drupal-composer/drupal-scaffold](https://github.com/drupal-composer/drupal-scaffold) 
-is used to ensure that your scaffold files are updated every time drupal/core is 
-updated. If you customize any of the "scaffolding" files (commonly .htaccess), 
-you may need to merge conflicts if any of your modified files are updated in a 
+This project will attempt to keep all of your Drupal Core files up-to-date; the
+project [drupal-composer/drupal-scaffold](https://github.com/drupal-composer/drupal-scaffold)
+is used to ensure that your scaffold files are updated every time drupal/core is
+updated. If you customize any of the "scaffolding" files (commonly .htaccess),
+you may need to merge conflicts if any of your modified files are updated in a
 new release of Drupal core.
 
 Follow the steps below to update your core files.
 
 1. Run `composer update drupal/core webflo/drupal-core-require-dev symfony/* --with-dependencies` to update Drupal Core and its dependencies.
-1. Run `git diff` to determine if any of the scaffolding files have changed. 
-   Review the files for any changes and restore any customizations to 
+1. Run `git diff` to determine if any of the scaffolding files have changed.
+   Review the files for any changes and restore any customizations to
   `.htaccess` or `robots.txt`.
 1. Commit everything all together in a single commit, so `web` will remain in
    sync with the `core` when checking out branches or running `git bisect`.
-1. In the event that there are non-trivial conflicts in step 2, you may wish 
-   to perform these steps on a branch, and use `git merge` to combine the 
-   updated core files with your customized files. This facilitates the use 
-   of a [three-way merge tool such as kdiff3](http://www.gitshah.com/2010/12/how-to-setup-kdiff-as-diff-tool-for-git.html). This setup is not necessary if your changes are simple; 
-   keeping all of your modifications at the beginning or end of the file is a 
+1. In the event that there are non-trivial conflicts in step 2, you may wish
+   to perform these steps on a branch, and use `git merge` to combine the
+   updated core files with your customized files. This facilitates the use
+   of a [three-way merge tool such as kdiff3](http://www.gitshah.com/2010/12/how-to-setup-kdiff-as-diff-tool-for-git.html). This setup is not necessary if your changes are simple;
+   keeping all of your modifications at the beginning or end of the file is a
    good strategy to keep merges easy.
 
 ## Generate composer.json from existing project
@@ -86,7 +86,7 @@ that the generated `composer.json` might differ from this project's file.
 
 ### Should I commit the contrib modules I download?
 
-Composer recommends **no**. They provide [argumentation against but also 
+Composer recommends **no**. They provide [argumentation against but also
 workrounds if a project decides to do it anyway](https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md).
 
 ### Should I commit the scaffolding files?
@@ -111,11 +111,11 @@ achieve that by registering `@composer drupal:scaffold` as post-install and post
 ```
 ### How can I apply patches to downloaded modules?
 
-If you need to apply patches (depending on the project being modified, a pull 
-request is often a better solution), you can do so with the 
+If you need to apply patches (depending on the project being modified, a pull
+request is often a better solution), you can do so with the
 [composer-patches](https://github.com/cweagans/composer-patches) plugin.
 
-To add a patch to drupal module foobar insert the patches section in the extra 
+To add a patch to drupal module foobar insert the patches section in the extra
 section of composer.json:
 ```json
 "extra": {
@@ -145,7 +145,16 @@ To prevent this you can add this code to specify the PHP version you want to use
 ### How do I edit a profile?
 
 The profiles are imported during image creation, to edit one please see the
-following repository:   
+following repository:
 https://gitlab.cern.ch/drupal/profiles
 
+### How to update [JS libs](web/libraries)?
 
+Run after composer update:
+
+```
+( mkdir -p libraries/jquery.cycle && cd $_ && wget https://raw.githubusercontent.com/malsup/cycle/master/jquery.cycle.all.js; )
+( mkdir -p libraries/jquery.hoverIntent && cd $_ && wget https://raw.githubusercontent.com/briancherne/jquery-hoverIntent/master/jquery.hoverIntent.js; )
+( mkdir -p libraries/json2 && cd $_ && wget https://raw.githubusercontent.com/douglascrockford/JSON-js/master/json2.js; )
+( mkdir -p libraries/jquery.pause && cd $_ && wget https://raw.githubusercontent.com/tobia/Pause/master/jquery.pause.js; )
+```
diff --git a/composer.json b/composer.json
index 6756a0d77..fa9e2f59d 100644
--- a/composer.json
+++ b/composer.json
@@ -306,6 +306,14 @@
       "merge-extra": true,
       "merge-extra-deep": true,
       "merge-scripts": true
-    }
+    },
+   "scripts": {
+     "post-install-cmd": [
+       "@composer drupal:scaffold"
+     ],
+     "post-update-cmd": [
+       "@composer drupal:scaffold"
+     ]
+   }
   }
 }
-- 
GitLab