From fbdd629411fcc1085e2dc49cb57fbdca0f8de025 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 14:55:16 +0200 Subject: [PATCH 01/22] release packaging attempt --- .github/workflows/releases.yml | 97 ++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .github/workflows/releases.yml diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml new file mode 100644 index 0000000..cf439ca --- /dev/null +++ b/.github/workflows/releases.yml @@ -0,0 +1,97 @@ +name: MonarcAppFO releases + +on: + push: + branches: [ 'ci-releases' ] + tags: [ 'v*.*', 'v*.*.*', 'v*.*.*-*' ] + pull_request: + branches: [ 'master' ] + +jobs: + build: + runs-on: ubuntu-20.04 + + strategy: + matrix: + node-version: [ "16.x" ] + php-version: [ "7.4" ] + + steps: + - uses: actions/checkout@v2 + + # PHP + #- name: Cache Composer dependencies + # uses: actions/cache@v2 + # with: + # path: /tmp/composer-cache + # key: ${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} + + - name: Install dependencies + uses: php-actions/composer@v6 + with: + php_version: ${{ matrix.php-version }} + php_extensions: json pdo bcmath + version: 2.3.x + + - name: Symlink Monarc modules + run: | + mkdir -p module/Monarc + ln -s ../../vendor/monarc/core module/Monarc/Core + ln -s ../../vendor/monarc/frontoffice module/Monarc/FrontOffice + + # javascript + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Prepare node_modules + run: | + mkdir -p node_modules + + # ng_anr + - name: Clone ng_anr + uses: actions/checkout@v2 + with: + repository: monarc-project/ng-anr + path: node_modules/ng_anr + + - name: checkout latest tag + run: | + git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" + working-directory: node_modules/ng_anr + + - name: Install ng_anr + run: | + npm ci + working-directory: node_modules/ng_anr + + # ng_client + - name: Clone ng_client + uses: actions/checkout@v2 + with: + repository: monarc-project/ng-client + path: node_modules/ng_client + + - name: checkout latest tag + run: | + git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" + working-directory: node_modules/ng_client + + - name: Install ng_client + run: | + npm ci + working-directory: node_modules/ng_client + + # rest of javascript deps + - name: Install grunt + run: npm install -g grunt-cli + + - name: Install dependencies + run: npm install + + # final "cleanup" + - name: post job + run: | + ./scripts/link_modules_resources.sh + ./scripts/compile_translations.sh From 1d1e4edf0718acbf5ec5a4fa845c3446f16f29a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 14:59:37 +0200 Subject: [PATCH 02/22] lets try without extension --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index cf439ca..f47405a 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -30,7 +30,7 @@ jobs: uses: php-actions/composer@v6 with: php_version: ${{ matrix.php-version }} - php_extensions: json pdo bcmath + # php_extensions: json pdo bcmath version: 2.3.x - name: Symlink Monarc modules From 5ef86725b84a1303424aaba9ac461a5049e2c831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:04:01 +0200 Subject: [PATCH 03/22] need arg to be set --- .github/workflows/releases.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index f47405a..8463948 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -30,6 +30,7 @@ jobs: uses: php-actions/composer@v6 with: php_version: ${{ matrix.php-version }} + command: install # php_extensions: json pdo bcmath version: 2.3.x From b728c2ee7194a0754f0eeff5541252f78335e2ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:07:47 +0200 Subject: [PATCH 04/22] use origin php setup action --- .github/workflows/releases.yml | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 8463948..b2b5ffa 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -20,19 +20,18 @@ jobs: - uses: actions/checkout@v2 # PHP - #- name: Cache Composer dependencies - # uses: actions/cache@v2 - # with: - # path: /tmp/composer-cache - # key: ${{ runner.os }}-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} - - - name: Install dependencies - uses: php-actions/composer@v6 + - name: Setup PHP + uses: shivammathur/setup-php@v2 with: - php_version: ${{ matrix.php-version }} - command: install - # php_extensions: json pdo bcmath - version: 2.3.x + php-version: ${{ matrix.php-version }} + tools: composer:v2.3 + extensions: bcmath + + - name: Validate composer.json and composer.lock + run: composer validate + + - name: Install PHP dependencies + run: composer install --prefer-dist --no-progress --no-suggest - name: Symlink Monarc modules run: | From 23d460771d21a458d2720f7bdd8813bbd5017191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:09:45 +0200 Subject: [PATCH 05/22] fetch tags --- .github/workflows/{php.yml => php.yml.disabled} | 0 .github/workflows/releases.yml | 2 ++ 2 files changed, 2 insertions(+) rename .github/workflows/{php.yml => php.yml.disabled} (100%) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml.disabled similarity index 100% rename from .github/workflows/php.yml rename to .github/workflows/php.yml.disabled diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index b2b5ffa..e65de22 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -58,6 +58,7 @@ jobs: - name: checkout latest tag run: | + git fetch --tags git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" working-directory: node_modules/ng_anr @@ -75,6 +76,7 @@ jobs: - name: checkout latest tag run: | + git fetch --tags git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" working-directory: node_modules/ng_client From 973e51933c813c73968f6766fe69d09eba8887ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:11:51 +0200 Subject: [PATCH 06/22] npm madness --- .github/workflows/releases.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index e65de22..6b218e8 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -63,8 +63,9 @@ jobs: working-directory: node_modules/ng_anr - name: Install ng_anr + # no package-lock.json in ng_anr run: | - npm ci + npm install working-directory: node_modules/ng_anr # ng_client @@ -81,6 +82,7 @@ jobs: working-directory: node_modules/ng_client - name: Install ng_client + # this one has a package-lock.json run: | npm ci working-directory: node_modules/ng_client From 596f74e03ad15b2ede3a0ac1aee38bb2e7087957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:15:09 +0200 Subject: [PATCH 07/22] missing gettext for post tasks --- .github/workflows/releases.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 6b218e8..b150801 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -19,6 +19,9 @@ jobs: steps: - uses: actions/checkout@v2 + - name: install deps + run: apt install -y gettext + # PHP - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -97,5 +100,5 @@ jobs: # final "cleanup" - name: post job run: | - ./scripts/link_modules_resources.sh - ./scripts/compile_translations.sh + bash -xe ./scripts/link_modules_resources.sh + bash -xe ./scripts/compile_translations.sh From 13a656617f5e7db615990472cb9b2976dd3db159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:16:00 +0200 Subject: [PATCH 08/22] sudo missing --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index b150801..a5da746 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -20,7 +20,7 @@ jobs: - uses: actions/checkout@v2 - name: install deps - run: apt install -y gettext + run: sudo apt-get update && sudo apt install -y gettext # PHP - name: Setup PHP From 76d3d73815d8f38b43539d49cae8053991053911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:25:59 +0200 Subject: [PATCH 09/22] let's ignore error for the moment --- .github/workflows/releases.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index a5da746..5601b75 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -100,5 +100,5 @@ jobs: # final "cleanup" - name: post job run: | - bash -xe ./scripts/link_modules_resources.sh - bash -xe ./scripts/compile_translations.sh + bash -x ./scripts/link_modules_resources.sh + bash -x ./scripts/compile_translations.sh From 907cbc0a28e88a29686ec87cdc98f9938703d405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:31:37 +0200 Subject: [PATCH 10/22] let's try to build tar.gz first --- .github/workflows/releases.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 5601b75..54c6df5 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -102,3 +102,20 @@ jobs: run: | bash -x ./scripts/link_modules_resources.sh bash -x ./scripts/compile_translations.sh + + # prepare release + - name: Get repository name + id: repository + run: echo "::set-output name=pathref::$(echo '${{ github.repository }}' | cut -d'/' -f2)-${{ env.COMPONENT }}-$(echo '${{ github.ref_name }}' | sed 's/[^[:alnum:]\.]/_/g')" + + - name: create artifact archive + run: | + tar --exclude .git --exclude .github -zcf '${{ steps.repository.outputs.pathref }}.tar.gz' . + + - name: release + uses: softprops/action-gh-release@v1 + with: + files: | + ${{ env.COMPONENT }}/${{ steps.repository.outputs.pathref }}.tar.gz + fail_on_unmatched_files: true + if: startsWith(github.ref, 'refs/tags/') From 4c0a19bef71f1f0e729ba8e3e7b5a3e993e8a748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:33:53 +0200 Subject: [PATCH 11/22] full pipeline run test --- .github/workflows/releases.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 54c6df5..fbd07b1 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -106,16 +106,16 @@ jobs: # prepare release - name: Get repository name id: repository - run: echo "::set-output name=pathref::$(echo '${{ github.repository }}' | cut -d'/' -f2)-${{ env.COMPONENT }}-$(echo '${{ github.ref_name }}' | sed 's/[^[:alnum:]\.]/_/g')" + run: echo "::set-output name=pathref::$(echo '${{ github.repository }}' | cut -d'/' -f2)-$(echo '${{ github.ref_name }}' | sed 's/[^[:alnum:]\.]/_/g')" - name: create artifact archive run: | - tar --exclude .git --exclude .github -zcf '${{ steps.repository.outputs.pathref }}.tar.gz' . + tar --exclude .git --exclude .github -zcf '../${{ steps.repository.outputs.pathref }}.tar.gz' . - name: release uses: softprops/action-gh-release@v1 with: files: | - ${{ env.COMPONENT }}/${{ steps.repository.outputs.pathref }}.tar.gz + ../${{ steps.repository.outputs.pathref }}.tar.gz fail_on_unmatched_files: true if: startsWith(github.ref, 'refs/tags/') From 45b1a8f9ff5b5bc27b3ac679fd0269586aa36f1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:45:38 +0200 Subject: [PATCH 12/22] checking ng_client checkout mechanism --- .github/workflows/releases.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index fbd07b1..f6823bb 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -80,14 +80,18 @@ jobs: - name: checkout latest tag run: | + head src/ClientApp.js git fetch --tags git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" + head src/ClientApp.js working-directory: node_modules/ng_client - name: Install ng_client # this one has a package-lock.json run: | + head src/ClientApp.js npm ci + head src/ClientApp.js working-directory: node_modules/ng_client # rest of javascript deps @@ -95,7 +99,10 @@ jobs: run: npm install -g grunt-cli - name: Install dependencies - run: npm install + run: | + head node_modules/ng_client/src/ClientApp.js + npm install + head node_modules/ng_client/src/ClientApp.js # final "cleanup" - name: post job From bb1fd6899409782b5d0a1daeb71ce744490cc456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 15:51:05 +0200 Subject: [PATCH 13/22] using tagged version in package.json --- .github/workflows/releases.yml | 51 ---------------------------------- package.json | 4 +-- 2 files changed, 2 insertions(+), 53 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index f6823bb..7926596 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -48,59 +48,8 @@ jobs: with: node-version: ${{ matrix.node-version }} - - name: Prepare node_modules - run: | - mkdir -p node_modules - - # ng_anr - - name: Clone ng_anr - uses: actions/checkout@v2 - with: - repository: monarc-project/ng-anr - path: node_modules/ng_anr - - - name: checkout latest tag - run: | - git fetch --tags - git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" - working-directory: node_modules/ng_anr - - - name: Install ng_anr - # no package-lock.json in ng_anr - run: | - npm install - working-directory: node_modules/ng_anr - - # ng_client - - name: Clone ng_client - uses: actions/checkout@v2 - with: - repository: monarc-project/ng-client - path: node_modules/ng_client - - - name: checkout latest tag - run: | - head src/ClientApp.js - git fetch --tags - git checkout "$(git describe --tags $(git rev-list --tags --max-count=1))" - head src/ClientApp.js - working-directory: node_modules/ng_client - - - name: Install ng_client - # this one has a package-lock.json - run: | - head src/ClientApp.js - npm ci - head src/ClientApp.js - working-directory: node_modules/ng_client - - # rest of javascript deps - - name: Install grunt - run: npm install -g grunt-cli - - name: Install dependencies run: | - head node_modules/ng_client/src/ClientApp.js npm install head node_modules/ng_client/src/ClientApp.js diff --git a/package.json b/package.json index 895c58c..9875c41 100644 --- a/package.json +++ b/package.json @@ -10,8 +10,8 @@ "author": "CASES", "license": "GNU Affero General Public License version 3", "dependencies": { - "ng_anr": "git+https://github.com/monarc-project/ng-anr.git#master", - "ng_client": "git+https://github.com/monarc-project/ng-client.git#master" + "ng_anr": "git+https://github.com/monarc-project/ng-anr.git#v2.11.1-p5", + "ng_client": "git+https://github.com/monarc-project/ng-client.git#v2.11.1-p7" }, "devDependencies": { "grunt": "~1.5.2", From 061718bb43d647a4d82c3658e4be4d8bb7ddc57d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 16:28:04 +0200 Subject: [PATCH 14/22] trying will full error handling --- .github/workflows/releases.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 7926596..8496684 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -53,11 +53,21 @@ jobs: npm install head node_modules/ng_client/src/ClientApp.js + - name: Install ng-anr dependencies + run: | + npm install + working-direcory: node_modules/ng_anr/ + + - name: Install ng-client dependencies + run: | + npm install + working-direcory: node_modules/ng_client/ + # final "cleanup" - name: post job run: | - bash -x ./scripts/link_modules_resources.sh - bash -x ./scripts/compile_translations.sh + bash -ex ./scripts/link_modules_resources.sh + bash -ex ./scripts/compile_translations.sh # prepare release - name: Get repository name From 6dcda5c83290543eadc061c304e9ba4d94901137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Mon, 30 May 2022 16:28:40 +0200 Subject: [PATCH 15/22] fixing typo --- .github/workflows/releases.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 8496684..34e1808 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -56,12 +56,12 @@ jobs: - name: Install ng-anr dependencies run: | npm install - working-direcory: node_modules/ng_anr/ + working-directory: node_modules/ng_anr/ - name: Install ng-client dependencies run: | npm install - working-direcory: node_modules/ng_client/ + working-directory: node_modules/ng_client/ # final "cleanup" - name: post job From 7d141347108af104884580c96bcf6db8315238ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Laurent?= Date: Tue, 31 May 2022 11:28:14 +0200 Subject: [PATCH 16/22] release pipeline working, ready to merge --- .github/workflows/{php.yml.disabled => php.yml} | 0 .github/workflows/releases.yml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{php.yml.disabled => php.yml} (100%) diff --git a/.github/workflows/php.yml.disabled b/.github/workflows/php.yml similarity index 100% rename from .github/workflows/php.yml.disabled rename to .github/workflows/php.yml diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 34e1808..4adeea5 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -2,7 +2,7 @@ name: MonarcAppFO releases on: push: - branches: [ 'ci-releases' ] + branches: [ 'master' ] tags: [ 'v*.*', 'v*.*.*', 'v*.*.*-*' ] pull_request: branches: [ 'master' ] @@ -72,7 +72,7 @@ jobs: # prepare release - name: Get repository name id: repository - run: echo "::set-output name=pathref::$(echo '${{ github.repository }}' | cut -d'/' -f2)-$(echo '${{ github.ref_name }}' | sed 's/[^[:alnum:]\.]/_/g')" + run: echo "::set-output name=pathref::$(echo '${{ github.repository }}' | cut -d'/' -f2)-$(echo '${{ github.ref_name }}' | sed 's/[^[:alnum:]\.-]/_/g')" - name: create artifact archive run: | From a2dfb1a41cf0200d2dc984f142e4fa201ef7e90d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 8 Jun 2022 14:29:55 +0200 Subject: [PATCH 17/22] chg: [scripts] replaced zendframework by Laminas. !minor --- scripts/update-all.sh | 125 +++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 63 deletions(-) diff --git a/scripts/update-all.sh b/scripts/update-all.sh index 295049b..8b99ce9 100755 --- a/scripts/update-all.sh +++ b/scripts/update-all.sh @@ -9,53 +9,53 @@ forceClearCache=0 isDevEnv=0 while getopts "hbcd" option do - case $option in - h) - echo -e "Update or install all Monarc modules, frontend views and migrate database." - echo -e "\t-b\tbypass migrate database" - echo -e "\t-c\tforce clear cache" - echo -e "\t-h\tdisplay this message" - exit 1 - ;; - b) - bypass=1 - echo "Migrate database don't execute !!!" - ;; - c) - forceClearCache=1 - ;; - d) - isDevEnv=1 - esac + case $option in + h) + echo -e "Update or install all Monarc modules, frontend views and migrate database." + echo -e "\t-b\tbypass migrate database" + echo -e "\t-c\tforce clear cache" + echo -e "\t-h\tdisplay this message" + exit 1 + ;; + b) + bypass=1 + echo "Migrate database don't execute !!!" + ;; + c) + forceClearCache=1 + ;; + d) + isDevEnv=1 + esac done checkout_to_latest_tag() { - if [ -d $1 ]; then - pushd $1 - git fetch --tags - tag=$(git describe --tags `git rev-list --tags --max-count=1`) - git checkout $tag -b $tag - git pull origin $tag - popd - fi + if [ -d $1 ]; then + pushd $1 + git fetch --tags + tag=$(git describe --tags `git rev-list --tags --max-count=1`) + git checkout $tag -b $tag + git pull origin $tag + popd + fi } migrate_module() { - if [[ -d $1 ]]; then - php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./$1/migrations/phinx.php - fi + if [[ -d $1 ]]; then + php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./$1/migrations/phinx.php + fi } if [[ ! -f "config/autoload/local.php" && $bypass -eq 0 ]]; then - echo "Configure Monarc (config/autoload/local.php)" - exit 1 + echo "Configure Monarc (config/autoload/local.php)" + exit 1 fi git pull if [ $? != 0 ]; then - echo "A problem occurred while retrieving remote files from repository." - exit 1 + echo "A problem occurred while retrieving remote files from repository." + exit 1 fi ./scripts/check_composer.sh @@ -64,38 +64,38 @@ if [[ $? -eq 1 ]]; then fi if [[ $isDevEnv -eq 0 ]]; then - composer ins -o --no-dev + composer ins -o --no-dev else - composer ins + composer ins fi pathCore="module/Monarc/Core" pathFO="module/Monarc/FrontOffice" if [[ $bypass -eq 0 ]]; then - if [ -e data/backup/credentialsmysql.cnf ]; then - backupdir=data/backup/$(date +"%Y%m%d_%H%M%S") - mkdir $backupdir - echo -e "${GREEN}Dumping database to $backupdir...${NC}" - mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_common > $backupdir/dump-common.sql - mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_cli > $backupdir/dump-cli.sql - else - echo -e "${GREEN}Database backup not configured. Skipping.${NC}" - fi - - migrate_module $pathCore - migrate_module $pathFO + if [ -e data/backup/credentialsmysql.cnf ]; then + backupdir=data/backup/$(date +"%Y%m%d_%H%M%S") + mkdir $backupdir + echo -e "${GREEN}Dumping database to $backupdir...${NC}" + mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_common > $backupdir/dump-common.sql + mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_cli > $backupdir/dump-cli.sql + else + echo -e "${GREEN}Database backup not configured. Skipping.${NC}" + fi + + migrate_module $pathCore + migrate_module $pathFO fi if [[ -d node_modules && -d node_modules/ng_anr ]]; then - if [[ -d node_modules/ng_anr/.git ]]; then - checkout_to_latest_tag node_modules/ng_client - checkout_to_latest_tag node_modules/ng_anr - else - npm update - fi + if [[ -d node_modules/ng_anr/.git ]]; then + checkout_to_latest_tag node_modules/ng_client + checkout_to_latest_tag node_modules/ng_anr + else + npm update + fi else - npm ci + npm ci fi cd node_modules/ng_client @@ -106,19 +106,18 @@ cd ../.. ./scripts/compile_translations.sh if [[ $forceClearCache -eq 1 ]]; then - # Clear doctrine cache - # Move to Monarc/Core Module.php - php ./public/index.php orm:clear-cache:metadata - php ./public/index.php orm:clear-cache:query - php ./public/index.php orm:clear-cache:result + # Clear Laminas cache + php ./public/index.php orm:clear-cache:metadata + php ./public/index.php orm:clear-cache:query + php ./public/index.php orm:clear-cache:result - # Clear ZF2 cache - touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade + # Clear Laminas cache + touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade fi if [[ $forceClearCache -eq 0 && $bypass -eq 0 ]]; then - # Clear ZF2 cache - touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade + # Clear Laminas cache + touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade fi ./scripts/update_config_variables.sh From 89bf9e8fe085505db0765f518eaecd53141a700b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 8 Jun 2022 14:31:12 +0200 Subject: [PATCH 18/22] chg: [dependencies] updated laminas/laminas-stdlib. !minor --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 2d303d2..5540bbe 100644 --- a/composer.lock +++ b/composer.lock @@ -4175,16 +4175,16 @@ }, { "name": "laminas/laminas-stdlib", - "version": "3.8.0", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "20f0787173fd514b870bb003e8bdd4d88b55020c" + "reference": "1df1cc0b9c2b8c7d1e322da1669a576386b5da46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/20f0787173fd514b870bb003e8bdd4d88b55020c", - "reference": "20f0787173fd514b870bb003e8bdd4d88b55020c", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/1df1cc0b9c2b8c7d1e322da1669a576386b5da46", + "reference": "1df1cc0b9c2b8c7d1e322da1669a576386b5da46", "shasum": "" }, "require": { @@ -4230,7 +4230,7 @@ "type": "community_bridge" } ], - "time": "2022-06-07T22:53:54+00:00" + "time": "2022-06-08T11:33:13+00:00" }, { "name": "laminas/laminas-text", From 5c92edfcfb8122d7a3f63adce376889b36c2e2cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Jun 2022 06:39:48 +0000 Subject: [PATCH 19/22] Bump guzzlehttp/guzzle from 6.5.6 to 6.5.7 Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 6.5.6 to 6.5.7. - [Release notes](https://github.com/guzzle/guzzle/releases) - [Changelog](https://github.com/guzzle/guzzle/blob/6.5.7/CHANGELOG.md) - [Commits](https://github.com/guzzle/guzzle/compare/6.5.6...6.5.7) --- updated-dependencies: - dependency-name: guzzlehttp/guzzle dependency-type: indirect ... Signed-off-by: dependabot[bot] --- composer.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.lock b/composer.lock index 5540bbe..387b7a3 100644 --- a/composer.lock +++ b/composer.lock @@ -1868,16 +1868,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.5.6", + "version": "6.5.7", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "f092dd734083473658de3ee4bef093ed77d2689c" + "reference": "724562fa861e21a4071c652c8a159934e4f05592" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f092dd734083473658de3ee4bef093ed77d2689c", - "reference": "f092dd734083473658de3ee4bef093ed77d2689c", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/724562fa861e21a4071c652c8a159934e4f05592", + "reference": "724562fa861e21a4071c652c8a159934e4f05592", "shasum": "" }, "require": { @@ -1963,7 +1963,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5.6" + "source": "https://github.com/guzzle/guzzle/tree/6.5.7" }, "funding": [ { @@ -1979,7 +1979,7 @@ "type": "tidelift" } ], - "time": "2022-05-25T13:19:12+00:00" + "time": "2022-06-09T21:36:50+00:00" }, { "name": "guzzlehttp/promises", From 75d132d77859de3772b12b7dccb717f3b2f5ad1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Mon, 13 Jun 2022 17:26:31 +0200 Subject: [PATCH 20/22] chg: [ci-releases] Do not install dev packages. --- .github/workflows/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 4adeea5..e3fae09 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -34,7 +34,7 @@ jobs: run: composer validate - name: Install PHP dependencies - run: composer install --prefer-dist --no-progress --no-suggest + run: composer install --prefer-dist --no-progress --no-suggest --no-dev - name: Symlink Monarc modules run: | From 3bd4dccd37e36f6843a6bae02006ee5b1c75a03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 15 Jun 2022 08:42:59 +0200 Subject: [PATCH 21/22] chg: [dependencies] Updated PHP dependencies. --- composer.lock | 139 +++++++++++++++++++------------------------------- 1 file changed, 53 insertions(+), 86 deletions(-) diff --git a/composer.lock b/composer.lock index 387b7a3..5a8786d 100644 --- a/composer.lock +++ b/composer.lock @@ -487,42 +487,6 @@ }, "time": "2020-12-09T02:43:02+00:00" }, - { - "name": "container-interop/container-interop", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "shasum": "" - }, - "require": { - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "support": { - "issues": "https://github.com/container-interop/container-interop/issues", - "source": "https://github.com/container-interop/container-interop/tree/master" - }, - "abandoned": "psr/container", - "time": "2017-02-14T19:40:03+00:00" - }, { "name": "doctrine/annotations", "version": "1.13.2", @@ -1009,22 +973,22 @@ }, { "name": "doctrine/doctrine-laminas-hydrator", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/doctrine-laminas-hydrator.git", - "reference": "3edcde4f7dface3f977215399b7bf11f8109f6cd" + "reference": "e01bf39537f9559c9f79c6b12f9bd16452278d6c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/doctrine-laminas-hydrator/zipball/3edcde4f7dface3f977215399b7bf11f8109f6cd", - "reference": "3edcde4f7dface3f977215399b7bf11f8109f6cd", + "url": "https://api.github.com/repos/doctrine/doctrine-laminas-hydrator/zipball/e01bf39537f9559c9f79c6b12f9bd16452278d6c", + "reference": "e01bf39537f9559c9f79c6b12f9bd16452278d6c", "shasum": "" }, "require": { "doctrine/collections": "^1.6.8", "doctrine/inflector": "^2.0.4", - "doctrine/persistence": "^2.2.3", + "doctrine/persistence": "^2.2.3 || ^3.0.0", "ext-ctype": "*", "laminas/laminas-hydrator": "^4.3.1", "laminas/laminas-stdlib": "^3.6.1", @@ -1073,7 +1037,7 @@ "type": "tidelift" } ], - "time": "2021-12-27T17:58:48+00:00" + "time": "2022-06-11T13:12:45+00:00" }, { "name": "doctrine/doctrine-module", @@ -3218,21 +3182,21 @@ }, { "name": "laminas/laminas-inputfilter", - "version": "2.15.0", + "version": "2.17.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-inputfilter.git", - "reference": "14dca8785b9d78ddfef725942854d9c8e81405b9" + "reference": "a6e8bc751c321bae1b3f8e235eeb4871256a6009" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/14dca8785b9d78ddfef725942854d9c8e81405b9", - "reference": "14dca8785b9d78ddfef725942854d9c8e81405b9", + "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/a6e8bc751c321bae1b3f8e235eeb4871256a6009", + "reference": "a6e8bc751c321bae1b3f8e235eeb4871256a6009", "shasum": "" }, "require": { "laminas/laminas-filter": "^2.13", - "laminas/laminas-servicemanager": "^3.3.1", + "laminas/laminas-servicemanager": "^3.12.0", "laminas/laminas-stdlib": "^3.0", "laminas/laminas-validator": "^2.15", "php": "^7.4 || ~8.0.0 || ~8.1.0" @@ -3289,7 +3253,7 @@ "type": "community_bridge" } ], - "time": "2022-06-07T22:55:45+00:00" + "time": "2022-06-13T16:43:33+00:00" }, { "name": "laminas/laminas-json", @@ -4089,37 +4053,39 @@ }, { "name": "laminas/laminas-servicemanager", - "version": "3.10.0", + "version": "3.12.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "e52b985909e0940bf22d34f322eb3f48bbef6bd1" + "reference": "05ac4b1fb1fe9333313eeafced9b6c7946589487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/e52b985909e0940bf22d34f322eb3f48bbef6bd1", - "reference": "e52b985909e0940bf22d34f322eb3f48bbef6bd1", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/05ac4b1fb1fe9333313eeafced9b6c7946589487", + "reference": "05ac4b1fb1fe9333313eeafced9b6c7946589487", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.2", "laminas/laminas-stdlib": "^3.2.1", "php": "~7.4.0 || ~8.0.0 || ~8.1.0", "psr/container": "^1.0" }, "conflict": { + "ext-psr": "*", "laminas/laminas-code": "<3.3.1", "zendframework/zend-code": "<3.3.1", "zendframework/zend-servicemanager": "*" }, "provide": { - "container-interop/container-interop-implementation": "^1.2", "psr/container-implementation": "^1.0" }, + "replace": { + "container-interop/container-interop": "^1.2.0" + }, "require-dev": { "composer/package-versions-deprecated": "^1.0", - "laminas/laminas-coding-standard": "~2.2.1", - "laminas/laminas-container-config-test": "^0.3", + "laminas/laminas-coding-standard": "~2.3.0", + "laminas/laminas-container-config-test": "^0.6", "laminas/laminas-dependency-plugin": "^2.1.2", "mikey179/vfsstream": "^1.6.10@alpha", "ocramius/proxy-manager": "^2.11", @@ -4138,6 +4104,9 @@ ], "type": "library", "autoload": { + "files": [ + "src/autoload.php" + ], "psr-4": { "Laminas\\ServiceManager\\": "src/" } @@ -4171,20 +4140,20 @@ "type": "community_bridge" } ], - "time": "2021-09-18T20:19:36+00:00" + "time": "2022-06-13T16:20:56+00:00" }, { "name": "laminas/laminas-stdlib", - "version": "3.9.1", + "version": "3.10.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "1df1cc0b9c2b8c7d1e322da1669a576386b5da46" + "reference": "0d669074845fc80a99add0f64025192f143ef836" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/1df1cc0b9c2b8c7d1e322da1669a576386b5da46", - "reference": "1df1cc0b9c2b8c7d1e322da1669a576386b5da46", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/0d669074845fc80a99add0f64025192f143ef836", + "reference": "0d669074845fc80a99add0f64025192f143ef836", "shasum": "" }, "require": { @@ -4230,7 +4199,7 @@ "type": "community_bridge" } ], - "time": "2022-06-08T11:33:13+00:00" + "time": "2022-06-10T14:49:09+00:00" }, { "name": "laminas/laminas-text", @@ -4350,22 +4319,22 @@ }, { "name": "laminas/laminas-validator", - "version": "2.17.0", + "version": "2.20.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-validator.git", - "reference": "bdd503adc83d814a5c94e598ea0eb9fc7ca56339" + "reference": "ba665f5a52763dda5a747c4ad826d2adf1510486" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/bdd503adc83d814a5c94e598ea0eb9fc7ca56339", - "reference": "bdd503adc83d814a5c94e598ea0eb9fc7ca56339", + "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/ba665f5a52763dda5a747c4ad826d2adf1510486", + "reference": "ba665f5a52763dda5a747c4ad826d2adf1510486", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.1", - "laminas/laminas-stdlib": "^3.6", - "php": "^7.3 || ~8.0.0 || ~8.1.0" + "laminas/laminas-servicemanager": "^3.12.0", + "laminas/laminas-stdlib": "^3.10", + "php": "^7.4 || ~8.0.0 || ~8.1.0" }, "conflict": { "zendframework/zend-validator": "*" @@ -4374,27 +4343,24 @@ "laminas/laminas-cache": "^2.6.1", "laminas/laminas-coding-standard": "~2.2.1", "laminas/laminas-db": "^2.7", - "laminas/laminas-filter": "^2.6", + "laminas/laminas-filter": "^2.14.0", "laminas/laminas-http": "^2.14.2", - "laminas/laminas-i18n": "^2.6", - "laminas/laminas-math": "^2.6", - "laminas/laminas-servicemanager": "^2.7.11 || ^3.0.3", - "laminas/laminas-session": "^2.8", - "laminas/laminas-uri": "^2.7", + "laminas/laminas-i18n": "^2.15.0", + "laminas/laminas-session": "^2.12.1", + "laminas/laminas-uri": "^2.9.1", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5.5", "psalm/plugin-phpunit": "^0.15.0", "psr/http-client": "^1.0", "psr/http-factory": "^1.0", "psr/http-message": "^1.0", - "vimeo/psalm": "^4.3" + "vimeo/psalm": "^4.23" }, "suggest": { "laminas/laminas-db": "Laminas\\Db component, required by the (No)RecordExists validator", "laminas/laminas-filter": "Laminas\\Filter component, required by the Digits validator", "laminas/laminas-i18n": "Laminas\\I18n component to allow translation of validation error messages", "laminas/laminas-i18n-resources": "Translations of validator messages", - "laminas/laminas-math": "Laminas\\Math component, required by the Csrf validator", "laminas/laminas-servicemanager": "Laminas\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", "laminas/laminas-session": "Laminas\\Session component, ^2.8; required by the Csrf validator", "laminas/laminas-uri": "Laminas\\Uri component, required by the Uri and Sitemap\\Loc validators", @@ -4436,7 +4402,7 @@ "type": "community_bridge" } ], - "time": "2022-03-08T18:16:51+00:00" + "time": "2022-06-14T12:31:18+00:00" }, { "name": "laminas/laminas-view", @@ -7959,12 +7925,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "961eba35293ca2e5b37bc281a63836243b35058a" + "reference": "bf362097fbfe4580b99b696dd8208b24ffd112b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/961eba35293ca2e5b37bc281a63836243b35058a", - "reference": "961eba35293ca2e5b37bc281a63836243b35058a", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/bf362097fbfe4580b99b696dd8208b24ffd112b2", + "reference": "bf362097fbfe4580b99b696dd8208b24ffd112b2", "shasum": "" }, "conflict": { @@ -8040,7 +8006,7 @@ "doctrine/mongodb-odm": ">=1,<1.0.2", "doctrine/mongodb-odm-bundle": ">=2,<3.0.1", "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", - "dolibarr/dolibarr": "<16|>= 3.3.beta1, < 13.0.2", + "dolibarr/dolibarr": "= 12.0.5|<16|>= 3.3.beta1, < 13.0.2", "dompdf/dompdf": "<1.2.1", "drupal/core": ">=7,<7.88|>=8,<9.2.13|>=9.3,<9.3.6", "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", @@ -8083,7 +8049,7 @@ "fooman/tcpdf": "<6.2.22", "forkcms/forkcms": "<5.11.1", "fossar/tcpdf-parser": "<6.2.22", - "francoisjacquet/rosariosis": "<8.1.1", + "francoisjacquet/rosariosis": "<9", "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", @@ -8103,7 +8069,7 @@ "gree/jose": "<=2.2", "gregwar/rst": "<1.0.3", "grumpydictator/firefly-iii": "<5.6.5", - "guzzlehttp/guzzle": "<6.5.6|>=7,<7.4.3", + "guzzlehttp/guzzle": "<6.5.7|>=7,<7.4.4", "guzzlehttp/psr7": "<1.8.4|>=2,<2.1.1", "helloxz/imgurl": "= 2.31|<=2.31", "hillelcoren/invoice-ninja": "<5.3.35", @@ -8141,7 +8107,7 @@ "laminas/laminas-http": "<2.14.2", "laravel/fortify": "<1.11.1", "laravel/framework": "<6.20.42|>=7,<7.30.6|>=8,<8.75", - "laravel/laravel": "<=5.8.38", + "laravel/laravel": "<=9.1.8", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "latte/latte": "<2.10.8", "lavalite/cms": "<=5.8", @@ -8183,6 +8149,7 @@ "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", "nilsteampassnet/teampass": "<=2.1.27.36", + "noumo/easyii": "<=0.9", "nukeviet/nukeviet": "<4.3.4", "nystudio107/craft-seomatic": "<3.4.12", "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", @@ -8448,7 +8415,7 @@ "type": "tidelift" } ], - "time": "2022-06-07T22:04:20+00:00" + "time": "2022-06-10T00:15:15+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", From 3f8486b83a65487519228147ab876789bc63de65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Bonhomme?= Date: Wed, 15 Jun 2022 08:43:29 +0200 Subject: [PATCH 22/22] chg: [dependencies] Updated JavaScript dependencies (ng-client). --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9875c41..2c17ad2 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "license": "GNU Affero General Public License version 3", "dependencies": { "ng_anr": "git+https://github.com/monarc-project/ng-anr.git#v2.11.1-p5", - "ng_client": "git+https://github.com/monarc-project/ng-client.git#v2.11.1-p7" + "ng_client": "git+https://github.com/monarc-project/ng-client.git#v2.11.1-p12" }, "devDependencies": { "grunt": "~1.5.2",