Răsfoiți Sursa

Merge pull request #1123 from ckeditor/t/1122

Internal: Added a script that updates version of CKEditor 5 dependencies during the release. Closes #1122.
Piotrek Koszuliński 7 ani în urmă
părinte
comite
d859964e03
2 a modificat fișierele cu 55 adăugiri și 0 ștergeri
  1. 1 0
      package.json
  2. 54 0
      scripts/update-dependencies-versions.js

+ 1 - 0
package.json

@@ -115,6 +115,7 @@
     "changelog": "node ./scripts/release/changelog.js",
     "release": "bash ./scripts/release-ckeditor5.sh",
     "release:dependencies": "node ./scripts/release/release-dependencies.js",
+    "release:update-dependencies": "node ./scripts/update-dependencies-versions.js",
     "switch-to-dev-dev": "sh ./scripts/switch-to-dev-dev.sh"
   },
   "lint-staged": {

+ 54 - 0
scripts/update-dependencies-versions.js

@@ -0,0 +1,54 @@
+#!/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 packageJsonPath = path.join( __dirname, '..', 'package.json' );
+
+log.info( 'Updating version of dependencies in "package.json"...' );
+let counter = 0;
+
+tools.updateJSONFile( packageJsonPath, packageJson => {
+	const dependencies = packageJson.dependencies;
+
+	for ( const packageName of Object.keys( dependencies ) ) {
+		try {
+			const dependencyPackageJson = require( packageName + '/package.json' );
+			const newVersion = '^' + dependencyPackageJson.version;
+
+			if ( packageJson.dependencies[ dependencyPackageJson.name ] !== newVersion ) {
+				counter += 1;
+			}
+
+			packageJson.dependencies[ dependencyPackageJson.name ] = newVersion;
+		} catch ( error ) {
+			log.warning( `Package "${ packageName }" is not installed and its version cannot be updated.` );
+		}
+	}
+
+	return packageJson;
+} );
+
+log.info( `Updated versions of ${ counter } packages.` );
+
+if ( counter ) {
+	log.info( 'Committing updated "package.json" file...' );
+
+	const response = tools.shExec( 'git add package.json && git commit -m "Internal: Updated dependencies."', { verbosity: 'error' } );
+
+	log.info( response.trim() );
+} else {
+	log.info( 'Nothing to update? It smells like troubles!' );
+}
+
+log.info( 'Done.' );