Browse Source

Merge branch 't/389'

Piotrek Koszuliński 9 years ago
parent
commit
d5d57ed841
9 changed files with 92 additions and 53 deletions
  1. 2 0
      .gitignore
  2. 3 2
      .travis.yml
  3. 0 12
      dev/.jshintrc
  4. 0 16
      gulpfile.js
  5. 7 0
      lerna.json
  6. 23 0
      mgit.json
  7. 22 21
      package.json
  8. 2 2
      scripts/fix-test-imports.js
  9. 33 0
      scripts/switch-to-scoped-imports.js

+ 2 - 0
.gitignore

@@ -12,3 +12,5 @@ build/dist/**
 build/modules/**
 build/docs/**
 coverage/**
+packages/**
+lerna-debug.log

+ 3 - 2
.travis.yml

@@ -15,7 +15,8 @@ before_install:
   - export DISPLAY=:99.0
   - sh -e /etc/init.d/xvfb start
 install:
-  - npm install
-  - npm install @ckeditor/ckeditor5-dev-tests
+  - npm install mgit2 lerna @ckeditor/ckeditor5-dev-tests
+  - mgit bootstrap --repository-resolver=@ckeditor/ckeditor5-dev-tests/lib/git-https-resolver.js
+  - lerna bootstrap
 script:
   - node_modules/.bin/ckeditor5-dev-tests --reporter=dots

+ 0 - 12
dev/.jshintrc

@@ -1,12 +0,0 @@
-{
-  "node": true,
-  "esnext": true,
-  "immed": true,
-  "loopfunc": true,
-  "noarg": true,
-  "nonbsp": true,
-  "undef": true,
-  "unused": true,
-  "strict": true,
-  "varstmt": true
-}

+ 0 - 16
gulpfile.js

@@ -16,22 +16,6 @@ gulp.task( 'lint', ckeditor5Lint.lint );
 gulp.task( 'lint-staged', ckeditor5Lint.lintStaged );
 gulp.task( 'pre-commit', [ 'lint-staged' ] );
 
-// Development environment tasks. ---------------------------------------------
-
-const ckeditor5DevEnv = require( '@ckeditor/ckeditor5-dev-env' )( {
-	workspaceDir: '..'
-} );
-
-gulp.task( 'init', ckeditor5DevEnv.initRepository );
-gulp.task( 'create-package', ckeditor5DevEnv.createPackage );
-gulp.task( 'update', ckeditor5DevEnv.updateRepositories );
-gulp.task( 'pull', ckeditor5DevEnv.updateRepositories );
-gulp.task( 'status', ckeditor5DevEnv.checkStatus );
-gulp.task( 'st', ckeditor5DevEnv.checkStatus );
-gulp.task( 'relink', ckeditor5DevEnv.relink );
-gulp.task( 'install', ckeditor5DevEnv.installPackage );
-gulp.task( 'exec', ckeditor5DevEnv.execOnRepositories );
-
 // Documentation. -------------------------------------------------------------
 
 gulp.task( 'docs', () => {

+ 7 - 0
lerna.json

@@ -0,0 +1,7 @@
+{
+  "lerna": "2.0.0-beta.32",
+  "packages": [
+    "packages/*"
+  ],
+  "version": "0.0.0"
+}

+ 23 - 0
mgit.json

@@ -0,0 +1,23 @@
+{
+  "packages": "packages/",
+  "dependencies": {
+    "ckeditor5-autoformat": "ckeditor/ckeditor5-autoformat#ckeditor5/t/389",
+    "ckeditor5-basic-styles": "ckeditor/ckeditor5-basic-styles#ckeditor5/t/389",
+    "ckeditor5-clipboard": "ckeditor/ckeditor5-clipboard#ckeditor5/t/389",
+    "ckeditor5-core": "ckeditor/ckeditor5-core#ckeditor5/t/389",
+    "ckeditor5-editor-classic": "ckeditor/ckeditor5-editor-classic#ckeditor5/t/389",
+    "ckeditor5-engine": "ckeditor/ckeditor5-engine#ckeditor5/t/389",
+    "ckeditor5-enter": "ckeditor/ckeditor5-enter#ckeditor5/t/389",
+    "ckeditor5-heading": "ckeditor/ckeditor5-heading#ckeditor5/t/389",
+    "ckeditor5-image": "ckeditor/ckeditor5-image#ckeditor5/t/389",
+    "ckeditor5-link": "ckeditor/ckeditor5-link#ckeditor5/t/389",
+    "ckeditor5-list": "ckeditor/ckeditor5-list#ckeditor5/t/389",
+    "ckeditor5-markdown-gfm": "ckeditor/ckeditor5-markdown-gfm#ckeditor5/t/389",
+    "ckeditor5-paragraph": "ckeditor/ckeditor5-paragraph#ckeditor5/t/389",
+    "ckeditor5-theme-lark": "ckeditor/ckeditor5-theme-lark#ckeditor5/t/389",
+    "ckeditor5-typing": "ckeditor/ckeditor5-typing#ckeditor5/t/389",
+    "ckeditor5-ui": "ckeditor/ckeditor5-ui#ckeditor5/t/389",
+    "ckeditor5-undo": "ckeditor/ckeditor5-undo#ckeditor5/t/389",
+    "ckeditor5-utils": "ckeditor/ckeditor5-utils#ckeditor5/t/389"
+  }
+}

+ 22 - 21
package.json

@@ -8,32 +8,33 @@
     "WYSIWYG"
   ],
   "dependencies": {
-    "ckeditor5-autoformat": "ckeditor/ckeditor5-autoformat",
-    "ckeditor5-basic-styles": "ckeditor/ckeditor5-basic-styles",
-    "ckeditor5-clipboard": "ckeditor/ckeditor5-clipboard",
-    "ckeditor5-core": "ckeditor/ckeditor5-core",
-    "ckeditor5-editor-classic": "ckeditor/ckeditor5-editor-classic",
-    "ckeditor5-engine": "ckeditor/ckeditor5-engine",
-    "ckeditor5-enter": "ckeditor/ckeditor5-enter",
-    "ckeditor5-heading": "ckeditor/ckeditor5-heading",
-    "ckeditor5-image": "ckeditor/ckeditor5-image",
-    "ckeditor5-link": "ckeditor/ckeditor5-link",
-    "ckeditor5-list": "ckeditor/ckeditor5-list",
-    "ckeditor5-markdown-gfm": "ckeditor/ckeditor5-markdown-gfm",
-    "ckeditor5-paragraph": "ckeditor/ckeditor5-paragraph",
-    "ckeditor5-theme-lark": "ckeditor/ckeditor5-theme-lark",
-    "ckeditor5-typing": "ckeditor/ckeditor5-typing",
-    "ckeditor5-ui": "ckeditor/ckeditor5-ui",
-    "ckeditor5-undo": "ckeditor/ckeditor5-undo",
-    "ckeditor5-utils": "ckeditor/ckeditor5-utils"
+    "@ckeditor/ckeditor5-autoformat": "*",
+    "@ckeditor/ckeditor5-basic-styles": "*",
+    "@ckeditor/ckeditor5-clipboard": "*",
+    "@ckeditor/ckeditor5-core": "*",
+    "@ckeditor/ckeditor5-editor-classic": "*",
+    "@ckeditor/ckeditor5-engine": "*",
+    "@ckeditor/ckeditor5-enter": "*",
+    "@ckeditor/ckeditor5-heading": "*",
+    "@ckeditor/ckeditor5-image": "*",
+    "@ckeditor/ckeditor5-link": "*",
+    "@ckeditor/ckeditor5-list": "*",
+    "@ckeditor/ckeditor5-markdown-gfm": "*",
+    "@ckeditor/ckeditor5-paragraph": "*",
+    "@ckeditor/ckeditor5-theme-lark": "*",
+    "@ckeditor/ckeditor5-typing": "*",
+    "@ckeditor/ckeditor5-ui": "*",
+    "@ckeditor/ckeditor5-undo": "*",
+    "@ckeditor/ckeditor5-utils": "*"
   },
   "devDependencies": {
     "@ckeditor/ckeditor5-dev-docs": "^6.0.0",
-    "@ckeditor/ckeditor5-dev-env": "^2.0.0",
     "@ckeditor/ckeditor5-dev-lint": "^2.0.0",
-    "@ckeditor/ckeditor5-dev-tests": "^4.0.0",
+    "@ckeditor/ckeditor5-dev-tests": "^6.0.0",
     "gulp": "^3.9.0",
-    "guppy-pre-commit": "^0.4.0"
+    "guppy-pre-commit": "^0.4.0",
+    "lerna": "2.0.0-beta.32",
+    "mgit2": "^0.3.2"
   },
   "engines": {
     "node": ">=6.0.0",

+ 2 - 2
scripts/fix-test-imports.js

@@ -38,7 +38,7 @@ function fixCkeditorPaths( wholeImport, path ) {
 
 	return (
 		wholeImport.slice( 0, index ) +
-		'ckeditor5-' + pathChunks[1] + '/src/' + pathChunks.slice( 2 ).join( '/' ) +
+		'ckeditor5-' + pathChunks[ 1 ] + '/src/' + pathChunks.slice( 2 ).join( '/' ) +
 		wholeImport.slice( path.length + index )
 	);
 }
@@ -53,7 +53,7 @@ function fixTestPaths( wholeImport, path ) {
 
 	return (
 		wholeImport.slice( 0, index ) +
-		'ckeditor5-' + pathChunks[1] + '/tests/' + pathChunks.slice( 2 ).join( '/' ) +
+		'ckeditor5-' + pathChunks[ 1 ] + '/tests/' + pathChunks.slice( 2 ).join( '/' ) +
 		wholeImport.slice( path.length + index )
 	);
 }

+ 33 - 0
scripts/switch-to-scoped-imports.js

@@ -0,0 +1,33 @@
+#!/usr/bin/env node
+
+'use strict';
+
+const fs = require( 'fs' );
+const path = require( 'path' );
+const glob = require( 'glob' );
+
+const srcPath = path.join( process.cwd(), '@(src|tests)' );
+
+for ( const filePath of glob.sync( path.join( srcPath, '**', '*.js' ) ) ) {
+	let fileContent = fs.readFileSync( filePath, 'utf-8' );
+
+	fileContent = fileContent.replace( /from '(ckeditor5-[\w\-]+)\//g, 'from \'@ckeditor/$1/' );
+	fileContent = fixInnerImports( filePath, fileContent );
+
+	fs.writeFileSync( filePath, fileContent );
+}
+
+// Inner imports should be relative.
+function fixInnerImports( filePath, fileContent ) {
+	const packageName = filePath.match( /ckeditor5-[\w-]+/ )[ 0 ];
+	const relativePath = filePath.replace( /^.+ckeditor5-[\w-]+\//, '' );
+	const depth = relativePath.split( '/' ).length - 1;
+
+	fileContent = fileContent.replace( new RegExp( ` '@ckeditor/${ packageName }/`, 'g' ), () => {
+		const relativePath = '../'.repeat( depth );
+
+		return ` '${ relativePath }`;
+	} );
+
+	return fileContent;
+}