Browse Source

Added a script that updates version of CKE5 dependencies during the release.

Kamil Piechaczek 7 years ago
parent
commit
a6be1a111c
2 changed files with 45 additions and 0 deletions
  1. 3 0
      scripts/release-ckeditor5.sh
  2. 42 0
      scripts/release/update-dependencies-versions.js

+ 3 - 0
scripts/release-ckeditor5.sh

@@ -10,6 +10,9 @@ echo ""
 
 if [[ $REPLY =~ ^[Yy]$ ]]
 then
+	# Update version of CKEditor 5 dependencies in package.json
+	node ./scripts/release/update-dependencies-versions.js
+
 	# Release the CKEditor5 repository.
 	node ./scripts/release/release-ckeditor5.js
 

+ 42 - 0
scripts/release/update-dependencies-versions.js

@@ -0,0 +1,42 @@
+#!/usr/bin/env node
+
+/**
+ * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+
+/* eslint-env node */
+
+'use strict';
+
+const path = require( 'path' );
+const { tools, logger } = require( '@ckeditor/ckeditor5-dev-utils' );
+
+const log = logger();
+const rootPath = path.join( __dirname, '..', '..' );
+const packageJsonPath = path.join( rootPath, 'package.json' );
+
+const mgitJson = require( path.join( rootPath, 'mgit.json' ) );
+
+log.info( 'Updating version of dependencies in "package.json"...' );
+
+tools.updateJSONFile( packageJsonPath, packageJson => {
+	const dependencies = packageJson.dependencies;
+
+	for ( const packageName of Object.keys( dependencies ) ) {
+		if ( !mgitJson.dependencies[ packageName ] ) {
+			log.warning( `Package "${ packageName }" is not defined in "mgit.json" and its version cannot be updated.` );
+
+			continue;
+		}
+
+		const dependencyPath = path.join( rootPath, mgitJson.packages, packageName.split( '/' )[ 1 ] );
+		const dependencyPackageJson = require( path.join( dependencyPath, 'package.json' ) );
+
+		packageJson.dependencies[ dependencyPackageJson.name ] = '^' + dependencyPackageJson.version;
+	}
+
+	return packageJson;
+} );
+
+log.info( 'Done.' );