Selaa lähdekoodia

Merge branch 'master' into t/ckeditor5-utils/41

Aleksander Nowodzinski 7 vuotta sitten
vanhempi
commit
d2af1afd9e

+ 59 - 0
CHANGELOG.md

@@ -1,6 +1,65 @@
 Changelog
 =========
 
+## [11.1.0](https://github.com/ckeditor/ckeditor5/compare/v11.0.1...v11.1.0) (2018-10-08)
+
+We are happy to report the release of CKEditor 5 v11.1.0. This editor version brings the long-awaited [media embed](https://ckeditor.com/docs/ckeditor5/latest/features/media-embed.html) feature, [support for block content in tables](https://ckeditor.com/docs/ckeditor5/latest/features/table.html#block-vs-inline-content-in-table-cells), tables available in real-time collaboration, as well as many smaller features and improvements.
+
+Blog post is comming soon...
+
+### Dependencies
+
+New packages:
+
+* [@ckeditor/ckeditor5-media-embed](https://www.npmjs.com/package/@ckeditor/ckeditor5-media-embed): [v10.0.0](https://github.com/ckeditor/ckeditor5-media-embed/releases/tag/v10.0.0)
+
+Major releases (contain breaking changes):
+
+* [@ckeditor/ckeditor5-engine](https://www.npmjs.com/package/@ckeditor/ckeditor5-engine): v10.2.0 => [v11.0.0](https://github.com/ckeditor/ckeditor5-engine/releases/tag/v11.0.0)
+* [@ckeditor/ckeditor5-image](https://www.npmjs.com/package/@ckeditor/ckeditor5-image): v10.2.0 => [v11.0.0](https://github.com/ckeditor/ckeditor5-image/releases/tag/v11.0.0)
+* [@ckeditor/ckeditor5-table](https://www.npmjs.com/package/@ckeditor/ckeditor5-table): v10.1.0 => [v11.0.0](https://github.com/ckeditor/ckeditor5-table/releases/tag/v11.0.0)
+
+Minor releases:
+
+* [@ckeditor/ckeditor5-build-balloon](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-balloon): v11.0.1 => [v11.1.0](https://github.com/ckeditor/ckeditor5-build-balloon/releases/tag/v11.1.0)
+* [@ckeditor/ckeditor5-build-classic](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-classic): v11.0.1 => [v11.1.0](https://github.com/ckeditor/ckeditor5-build-classic/releases/tag/v11.1.0)
+* [@ckeditor/ckeditor5-build-decoupled-document](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-decoupled-document): v11.0.1 => [v11.1.0](https://github.com/ckeditor/ckeditor5-build-decoupled-document/releases/tag/v11.1.0)
+* [@ckeditor/ckeditor5-build-inline](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-inline): v11.0.1 => [v11.1.0](https://github.com/ckeditor/ckeditor5-build-inline/releases/tag/v11.1.0)
+* [@ckeditor/ckeditor5-cloud-services](https://www.npmjs.com/package/@ckeditor/ckeditor5-cloud-services): v10.0.2 => [v10.1.0](https://github.com/ckeditor/ckeditor5-cloud-services/releases/tag/v10.1.0)
+* [@ckeditor/ckeditor5-theme-lark](https://www.npmjs.com/package/@ckeditor/ckeditor5-theme-lark): v11.0.0 => [v11.1.0](https://github.com/ckeditor/ckeditor5-theme-lark/releases/tag/v11.1.0)
+* [@ckeditor/ckeditor5-ui](https://www.npmjs.com/package/@ckeditor/ckeditor5-ui): v11.0.0 => [v11.1.0](https://github.com/ckeditor/ckeditor5-ui/releases/tag/v11.1.0)
+* [@ckeditor/ckeditor5-widget](https://www.npmjs.com/package/@ckeditor/ckeditor5-widget): v10.2.0 => [v10.3.0](https://github.com/ckeditor/ckeditor5-widget/releases/tag/v10.3.0)
+
+Patch releases (bug fixes, internal changes):
+
+* [@ckeditor/ckeditor5-adapter-ckfinder](https://www.npmjs.com/package/@ckeditor/ckeditor5-adapter-ckfinder): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-adapter-ckfinder/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-alignment](https://www.npmjs.com/package/@ckeditor/ckeditor5-alignment): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-alignment/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-autoformat](https://www.npmjs.com/package/@ckeditor/ckeditor5-autoformat): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-autoformat/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-autosave](https://www.npmjs.com/package/@ckeditor/ckeditor5-autosave): v10.0.0 => [v10.0.1](https://github.com/ckeditor/ckeditor5-autosave/releases/tag/v10.0.1)
+* [@ckeditor/ckeditor5-basic-styles](https://www.npmjs.com/package/@ckeditor/ckeditor5-basic-styles): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-basic-styles/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-block-quote](https://www.npmjs.com/package/@ckeditor/ckeditor5-block-quote): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-block-quote/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-clipboard](https://www.npmjs.com/package/@ckeditor/ckeditor5-clipboard): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-clipboard/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-core](https://www.npmjs.com/package/@ckeditor/ckeditor5-core): v11.0.0 => [v11.0.1](https://github.com/ckeditor/ckeditor5-core/releases/tag/v11.0.1)
+* [@ckeditor/ckeditor5-easy-image](https://www.npmjs.com/package/@ckeditor/ckeditor5-easy-image): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-easy-image/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-editor-balloon](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-balloon): v11.0.0 => [v11.0.1](https://github.com/ckeditor/ckeditor5-editor-balloon/releases/tag/v11.0.1)
+* [@ckeditor/ckeditor5-editor-classic](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic): v11.0.0 => [v11.0.1](https://github.com/ckeditor/ckeditor5-editor-classic/releases/tag/v11.0.1)
+* [@ckeditor/ckeditor5-editor-decoupled](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-decoupled): v11.0.0 => [v11.0.1](https://github.com/ckeditor/ckeditor5-editor-decoupled/releases/tag/v11.0.1)
+* [@ckeditor/ckeditor5-editor-inline](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-inline): v11.0.0 => [v11.0.1](https://github.com/ckeditor/ckeditor5-editor-inline/releases/tag/v11.0.1)
+* [@ckeditor/ckeditor5-enter](https://www.npmjs.com/package/@ckeditor/ckeditor5-enter): v10.1.1 => [v10.1.2](https://github.com/ckeditor/ckeditor5-enter/releases/tag/v10.1.2)
+* [@ckeditor/ckeditor5-essentials](https://www.npmjs.com/package/@ckeditor/ckeditor5-essentials): v10.1.1 => [v10.1.2](https://github.com/ckeditor/ckeditor5-essentials/releases/tag/v10.1.2)
+* [@ckeditor/ckeditor5-font](https://www.npmjs.com/package/@ckeditor/ckeditor5-font): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-font/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-heading](https://www.npmjs.com/package/@ckeditor/ckeditor5-heading): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-heading/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-highlight](https://www.npmjs.com/package/@ckeditor/ckeditor5-highlight): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-highlight/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-link](https://www.npmjs.com/package/@ckeditor/ckeditor5-link): v10.0.3 => [v10.0.4](https://github.com/ckeditor/ckeditor5-link/releases/tag/v10.0.4)
+* [@ckeditor/ckeditor5-list](https://www.npmjs.com/package/@ckeditor/ckeditor5-list): v11.0.1 => [v11.0.2](https://github.com/ckeditor/ckeditor5-list/releases/tag/v11.0.2)
+* [@ckeditor/ckeditor5-markdown-gfm](https://www.npmjs.com/package/@ckeditor/ckeditor5-markdown-gfm): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-markdown-gfm/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-paragraph](https://www.npmjs.com/package/@ckeditor/ckeditor5-paragraph): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-paragraph/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-typing](https://www.npmjs.com/package/@ckeditor/ckeditor5-typing): v11.0.0 => [v11.0.1](https://github.com/ckeditor/ckeditor5-typing/releases/tag/v11.0.1)
+* [@ckeditor/ckeditor5-undo](https://www.npmjs.com/package/@ckeditor/ckeditor5-undo): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-undo/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-upload](https://www.npmjs.com/package/@ckeditor/ckeditor5-upload): v10.0.2 => [v10.0.3](https://github.com/ckeditor/ckeditor5-upload/releases/tag/v10.0.3)
+* [@ckeditor/ckeditor5-utils](https://www.npmjs.com/package/@ckeditor/ckeditor5-utils): v10.2.1 => [v10.2.2](https://github.com/ckeditor/ckeditor5-utils/releases/tag/v10.2.2)
+
+
 ## [11.0.1](https://github.com/ckeditor/ckeditor5/compare/v11.0.0...v11.0.1) (2018-07-18)
 
 Internal changes only (updated dependencies, documentation, etc.).

+ 3 - 3
docs/builds/guides/frameworks/angular.md

@@ -4,7 +4,7 @@ category: builds-integration-frameworks
 order: 20
 ---
 
-# Rich-text editor component for Angular 2+
+# Rich text editor component for Angular 2+
 
 [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-angular.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-angular)
 
@@ -18,7 +18,7 @@ Currently, the CKEditor 5 component for Angular supports integrating CKEditor 5
 
 ## Quick start
 
-In your existing Angular project, install the [CKEditor 5 rich-text editor component for Angular 2+](https://www.npmjs.com/package/@ckeditor/ckeditor5-angular):
+In your existing Angular project, install the [CKEditor 5 rich text editor component for Angular 2+](https://www.npmjs.com/package/@ckeditor/ckeditor5-angular):
 
 ```bash
 npm install --save-dev @ckeditor/ckeditor5-angular
@@ -69,7 +69,7 @@ export class MyComponent {
 }
 ```
 
-Finally, use the `<ckeditor>` tag in the template to run the rich-text editor:
+Finally, use the `<ckeditor>` tag in the template to run the rich text editor:
 
 ```html
 <ckeditor [editor]="Editor" data="<p>Hello world!</p>"></ckeditor>

+ 4 - 4
docs/builds/guides/frameworks/overview.md

@@ -8,7 +8,7 @@ menu-title: Overview
 
 ## Is CKEditor 5 compatible with framework XYZ?
 
-Yes. CKEditor 5 is compatible with every JavaScript framework that we have heard of so far. CKEditor 5 is a JavaScript rich-text editing component (a pretty complex one but still) and it does not require any uncommon techniques or technologies to be used. Threfore, unless the framework that you use has very not typical limitations, CKEditor 5 is compatible with it.
+Yes. CKEditor 5 is compatible with every JavaScript framework that we have heard of so far. CKEditor 5 is a JavaScript rich text editing component (a pretty complex one but still) and it does not require any uncommon techniques or technologies to be used. Threfore, unless the framework that you use has very not typical limitations, CKEditor 5 is compatible with it.
 
 > How do I use CKEditor 5 with my framework?
 
@@ -16,7 +16,7 @@ While CKEditor 5 is compatible with your framework and initializing it requires
 
 When checking how to integrate CKEditor 5 with your framework you can follow these steps:
 
-1. **Check whether an [official integration](#official-integrations) exists.**
+1. **Check whether an [official integration](#official-rich-text-editor-integrations) exists.**
 
 	There are two official integrations so far: for {@link builds/guides/frameworks/react React} and for {@link builds/guides/frameworks/angular Angular 2+}.
 2. **If not, search for community-driven integrations.** Most of them are available on [npm](https://www.npmjs.com/).
@@ -24,7 +24,7 @@ When checking how to integrate CKEditor 5 with your framework you can follow the
 
 	CKEditor 5 offers {@link builds/guides/overview ready-to-use builds} that expose a {@link builds/guides/integration/basic-api rich JavaScript API} which you can use to {@link builds/guides/integration/basic-api#creating-an-editor create editors} and {@link builds/guides/integration/basic-api#interacting-with-the-editor control them}.
 
-## Official rich-text editor integrations
+## Official rich text editor integrations
 
 There are two official integrations so far:
 
@@ -46,7 +46,7 @@ Check out a [sweet screencast of CKEditor 5 with real-time collaborative editing
 In order to display CKEditor 5 inside [Bootstrap](https://getbootstrap.com/) modals you need to proceed as follows:
 
 * Configure the `z-index` of CKEditor 5 floating balloons so they are displayed above the Bootstrap overlay.
-* Configure Bootstrap to not steal focus from rich-text editor fields.
+* Configure Bootstrap to not steal focus from rich text editor fields.
 
 The above can be ensured by adding this CSS:
 

+ 4 - 4
docs/builds/guides/frameworks/react.md

@@ -4,17 +4,17 @@ category: builds-integration-frameworks
 order: 30
 ---
 
-# Rich-text editor component for React
+# Rich text editor component for React
 
 [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-react.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-react)
 
 CKEditor 5 consists of {@link builds/guides/overview ready-to-use editor builds} and {@link framework/guides/overview CKEditor 5 Framework} upon which the builds are based.
 
-The easiest way to use CKEditor 5 in your React application is by choosing one of the {@link builds/guides/overview#available-builds rich-text editor builds}. Additionally, it is also possible to integrate [CKEditor 5 built from source](#integrating-ckeditor-5-from-source) into your application .
+The easiest way to use CKEditor 5 in your React application is by choosing one of the {@link builds/guides/overview#available-builds rich text editor builds}. Additionally, it is also possible to integrate [CKEditor 5 built from source](#integrating-ckeditor-5-from-source) into your application .
 
 ## Quick start
 
-Install the [CKEditor 5 rich-text editor component for React](https://www.npmjs.com/package/@ckeditor/ckeditor5-react) and the build of your choice.
+Install the [CKEditor 5 rich text editor component for React](https://www.npmjs.com/package/@ckeditor/ckeditor5-react) and the build of your choice.
 
 Assuming that you picked [`@ckeditor/ckeditor5-build-classic`](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-classic):
 
@@ -134,7 +134,7 @@ export default App;
 
 ## Integrating CKEditor 5 built from source
 
-Integrating the rich-text editor from source allows you to use the full power of {@link framework/guides/overview CKEditor 5 Framework}.
+Integrating the rich text editor from source allows you to use the full power of {@link framework/guides/overview CKEditor 5 Framework}.
 
 This guide assumes that you are using [Create React App CLI](https://github.com/facebook/create-react-app) as your boilerplate and it goes through adjusting it to fit CKEditor 5 needs. If you use your custom webpack setup, please read more about {@link builds/guides/integration/advanced-setup#scenario-2-building-from-source including CKEditor 5 built from source}.
 

+ 18 - 18
docs/builds/guides/integration/advanced-setup.md

@@ -7,7 +7,7 @@ order: 60
 
 The {@link builds/guides/integration/installation Installation} guide describes the easiest ways to run CKEditor builds in your project and the {@link builds/guides/development/custom-builds Custom builds} guide explains how to add or remove features from the build or change webpack configuration.
 
-In this guide, we would like to show you ways to closer integrate CKEditor with your application. Thanks to that, you will be able to optimize the bundling process of your project and customize the builds in a more convenient way.
+In this guide, we would like to show you ways to closer integrate CKEditor 5 with your application. Thanks to that, you will be able to optimize the bundling process of your project and customize the builds in a more convenient way.
 
 ## Requirements
 
@@ -25,7 +25,7 @@ Therefore, **a prerequisite to this guide is that you are using webpack as your
 
 ## Scenario 1: Integrating existing builds
 
-This is the simplest scenario. It assumes that you want to use {@link builds/guides/overview#available-builds one of the existing builds} "as-is" (you can, of course, still {@link builds/guides/integration/configuration configure the editor}). It also gives the fastest build times.
+This is the simplest scenario. It assumes that you want to use {@link builds/guides/overview#available-builds one of the existing builds} "as-is" (you can, of course, still {@link builds/guides/integration/configuration configure the rich text editor}). It also gives the fastest build times.
 
 First, install the build of your choice {@link builds/guides/integration/installation#npm from npm}:
 
@@ -56,7 +56,7 @@ ClassicEditor
 	} );
 ```
 
-Since you are using an already built editor (so a result of passing CKEditor 5's source through webpack), you do not need any additional webpack configuration. In this case CKEditor works as a ready-to-use library.
+Since you are using an already built editor (so a result of passing CKEditor 5 source through webpack), you do not need any additional webpack configuration. In this case CKEditor works as a ready-to-use library.
 
 ## Scenario 2: Building from source
 
@@ -108,13 +108,13 @@ npm install --save \
 
 ### Webpack configuration
 
-You can now configure webpack. There are a couple of things that you need to take care of when building CKEditor:
+You can now configure webpack. There are a couple of things that you need to take care of when building CKEditor 5:
 
-* Handling CSS files of the CKEditor theme. They are included in the CKEditor sources using `import 'path/to/styles.css'` statements, so you need [proper loaders](https://webpack.js.org/loaders/).
+* Handling CSS files of the CKEditor theme. They are included in the CKEditor 5 sources using `import 'path/to/styles.css'` statements, so you need [proper loaders](https://webpack.js.org/loaders/).
 * Similarly, you need to handle bundling SVG icons, which are also imported directly into the source. For that you need the [`raw-loader`](https://webpack.js.org/loaders/raw-loader/).
 * Finally, to localize the editor you need to use the [`@ckeditor/ckeditor5-dev-webpack-plugin`](https://www.npmjs.com/package/@ckeditor/ckeditor5-dev-webpack-plugin) webpack plugin.
 
-The minimal configuration, assuming that you use the same methods of handling assets as CKEditor builds, will look like this:
+The minimal configuration, assuming that you use the same methods of handling assets as CKEditor 5 builds, will look like this:
 
 ```js
 const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
@@ -328,11 +328,11 @@ ClassicEditor
 
 ### Building
 
-Finally, you can build your application. Run webpack on your project and the editor will be a part of it.
+Finally, you can build your application. Run webpack on your project and the rich text editor will be a part of it.
 
 ### Option: Minifying JavaScript
 
-Webpack 4 introduced the [concept of modes](https://webpack.js.org/concepts/mode/). It comes with two predefined modes &mdash; `development` and `production`. The latter automatically enables [`uglifyjs-webpack-plugin`](https://www.npmjs.com/package/uglifyjs-webpack-plugin) which takes care of JavaScript minification. Therefore, it is enough to execute `webpack` with the `--mode production` option or set `mode: 'production'` in your `webpack.config.js` to optimize the build.
+Webpack 4 introduced the [concept of modes](https://webpack.js.org/concepts/mode/). It comes with two predefined modes: `development` and `production`. The latter automatically enables [`uglifyjs-webpack-plugin`](https://www.npmjs.com/package/uglifyjs-webpack-plugin) which takes care of JavaScript minification. Therefore, it is enough to execute `webpack` with the `--mode production` option or set `mode: 'production'` in your `webpack.config.js` to optimize the build.
 
 <info-box>
 	Prior to version 1.2.7 `uglifyjs-webpack-plugin` had a bug which caused webpack to crash with the following error: `TypeError: Assignment to constant variable.`. If you experienced this error, make sure that your `node_modules` contains an up-to-date version of this package (and that webpack uses this version).
@@ -340,7 +340,7 @@ Webpack 4 introduced the [concept of modes](https://webpack.js.org/concepts/mode
 
 ### Option: Extracting CSS
 
-One of the most common requirements is to extract CKEditor's CSS to a separate file (by default it is included in the output JavaScript file). To do that, you can use [`mini-css-extract-plugin`](https://www.npmjs.com/package/mini-css-extract-plugin):
+One of the most common requirements is to extract CKEditor 5 CSS to a separate file (by default it is included in the output JavaScript file). To do that, you can use [`mini-css-extract-plugin`](https://www.npmjs.com/package/mini-css-extract-plugin):
 
 ```bash
 npm install --save \
@@ -452,7 +452,7 @@ entry: [
 
 ## Scenario 3: Using two different editors
 
-A common requirement is the ability to use two or more types of editors on one page. For instance, you may want to use the {@link builds/guides/overview#classic-editor classic editor} next to a couple of {@link builds/guides/overview#inline-editor inline editors}.
+The ability to use two or more types of rich text editors on one page is a common requirement. For instance, you may want to use the {@link builds/guides/overview#classic-editor classic editor} next to a couple of {@link builds/guides/overview#inline-editor inline editors}.
 
 **Do not load two builds on one page.** This is a mistake which leads to:
 
@@ -462,14 +462,14 @@ A common requirement is the ability to use two or more types of editors on one p
 
 ### Solutions
 
-If you want to load two different editors on one page you need to make sure that they are build together (once). This can be achieved in at least two ways:
+If you want to load two different editors on one page you need to make sure that they are built together (once). This can be achieved in at least two ways:
 
-* [Integrating CKEditor 5 from source](#running-the-editor-method-2) directly into your application. Since you build you application once the editors that you will use will be built together too.
+* [Integrating CKEditor 5 from source](#running-the-editor-method-2) directly into your application. Since you build you application once, the editors that you use will be built together, too.
 * [Creating a "super build" of CKEditor 5](#creating-super-builds). Instead of creating a build which exports just one editor, you can create a build which exports two or more at the same time.
 
 ### Creating "super builds"
 
-There is no limit for how many editor classes can a single build export. By default, the official builds export a single editor class only. However, they can easily import more.
+There is no limit for how many editor classes a single build can export. By default, the official builds export a single editor class only. However, they can easily import more.
 
 You can start from forking (or copying) an existing build like in the {@link builds/guides/development/custom-builds "Creating custom builds"} guide. Let's say you forked and cloned the [`ckeditor5-build-classic`](http://github.com/ckeditor/ckeditor5-build-classic) repository and want to add {@link module:editor-inline/inlineeditor~InlineEditor} to it:
 
@@ -479,13 +479,13 @@ cd ckeditor5-build-classic
 npm install
 ```
 
-Now, it is time to add the missing editor package and install:
+Now it is time to add the missing editor package and install it:
 
 ```
 npm install --save-dev @ckeditor/ckeditor5-editor-inline
 ```
 
-Once all the dependencies are installed, let's modify the webpack's entry point which is the `src/ckeditor.js` file. For now it was exporting just a single class:
+Once all the dependencies are installed, modify the webpack's entry point which is the `src/ckeditor.js` file. For now it was exporting just a single class:
 
 ```js
 // The editor creator to use.
@@ -506,7 +506,7 @@ ClassicEditor.defaultConfig = {
 };
 ```
 
-Let's make it export an object with two classes `ClassicEditor` and `InlineEditor`. To make both constructors work in the same way (load the same plugins and default configuration) we also need to assign `builtinPlugins` and `defaultConfig` static properties to both of them:
+Let's make it export an object with two classes: `ClassicEditor` and `InlineEditor`. To make both constructors work in the same way (load the same plugins and default configuration) you also need to assign `builtinPlugins` and `defaultConfig` static properties to both of them:
 
 ```js
 // The editor creators to use.
@@ -539,7 +539,7 @@ export default {
 };
 ```
 
-Since now we export an object with two properties `ClassicEditor` and `InlineEditor` it is also reasonable to rename the global variable to which webpack will assign this object. So far it was called `ClassicEditor`. A more adequate name now would be for example `CKEDITOR`. This variable is defined in `webpack.config.js` in the `output.library` setting:
+Since you now export an object with two properties (`ClassicEditor` and `InlineEditor`), it is also reasonable to rename the global variable to which webpack will assign this object. So far it was called `ClassicEditor`. A more adequate name now would be for example `CKEDITOR`. This variable is defined in `webpack.config.js` in the `output.library` setting:
 
 ```diff
 diff --git a/webpack.config.js b/webpack.config.js
@@ -563,7 +563,7 @@ Once you changed the `src/ckeditor.js` and `webpack.config.js` files it is time
 npm run build
 ```
 
-Finally, webpack finishes compiling your super build, you can change the `samples/index.html` file to test both editors:
+Finally, when webpack finishes compiling your super build, you can change the `samples/index.html` file to test both editors:
 
 ```html
 <!DOCTYPE html>

+ 44 - 44
package.json

@@ -1,6 +1,6 @@
 {
   "name": "ckeditor5",
-  "version": "11.0.1",
+  "version": "11.1.0",
   "description": "The development environment of CKEditor 5 – the best browser-based rich text editor.",
   "private": true,
   "keywords": [
@@ -21,49 +21,49 @@
     "framework"
   ],
   "dependencies": {
-    "@ckeditor/ckeditor5-adapter-ckfinder": "^10.0.2",
-    "@ckeditor/ckeditor5-alignment": "^10.0.2",
-    "@ckeditor/ckeditor5-autoformat": "^10.0.2",
-    "@ckeditor/ckeditor5-autosave": "^10.0.0",
-    "@ckeditor/ckeditor5-basic-styles": "^10.0.2",
-    "@ckeditor/ckeditor5-block-quote": "^10.0.2",
-    "@ckeditor/ckeditor5-build-balloon": "^11.0.1",
-    "@ckeditor/ckeditor5-build-classic": "^11.0.1",
-    "@ckeditor/ckeditor5-build-decoupled-document": "^11.0.1",
-    "@ckeditor/ckeditor5-build-inline": "^11.0.1",
-    "@ckeditor/ckeditor5-clipboard": "^10.0.2",
-    "@ckeditor/ckeditor5-cloud-services": "^10.0.2",
-    "@ckeditor/ckeditor5-core": "^11.0.0",
-    "@ckeditor/ckeditor5-easy-image": "^10.0.2",
-    "@ckeditor/ckeditor5-editor-balloon": "^11.0.0",
-    "@ckeditor/ckeditor5-editor-classic": "^11.0.0",
-    "@ckeditor/ckeditor5-editor-decoupled": "^11.0.0",
-    "@ckeditor/ckeditor5-editor-inline": "^11.0.0",
-    "@ckeditor/ckeditor5-engine": "^10.2.0",
-    "@ckeditor/ckeditor5-enter": "^10.1.1",
-    "@ckeditor/ckeditor5-essentials": "^10.1.1",
-    "@ckeditor/ckeditor5-font": "^10.0.2",
-    "@ckeditor/ckeditor5-heading": "^10.0.2",
-    "@ckeditor/ckeditor5-highlight": "^10.0.2",
-    "@ckeditor/ckeditor5-image": "^10.2.0",
-    "@ckeditor/ckeditor5-link": "^10.0.3",
-    "@ckeditor/ckeditor5-list": "^11.0.1",
-    "@ckeditor/ckeditor5-markdown-gfm": "^10.0.2",
-    "@ckeditor/ckeditor5-media-embed": "^0.0.1",
-    "@ckeditor/ckeditor5-paragraph": "^10.0.2",
-    "@ckeditor/ckeditor5-table": "^10.1.0",
-    "@ckeditor/ckeditor5-theme-lark": "^11.0.0",
-    "@ckeditor/ckeditor5-typing": "^11.0.0",
-    "@ckeditor/ckeditor5-ui": "^11.0.0",
-    "@ckeditor/ckeditor5-undo": "^10.0.2",
-    "@ckeditor/ckeditor5-upload": "^10.0.2",
-    "@ckeditor/ckeditor5-utils": "^10.2.1",
-    "@ckeditor/ckeditor5-widget": "^10.2.0"
+    "@ckeditor/ckeditor5-adapter-ckfinder": "^10.0.3",
+    "@ckeditor/ckeditor5-alignment": "^10.0.3",
+    "@ckeditor/ckeditor5-autoformat": "^10.0.3",
+    "@ckeditor/ckeditor5-autosave": "^10.0.1",
+    "@ckeditor/ckeditor5-basic-styles": "^10.0.3",
+    "@ckeditor/ckeditor5-block-quote": "^10.1.0",
+    "@ckeditor/ckeditor5-build-balloon": "^11.1.0",
+    "@ckeditor/ckeditor5-build-classic": "^11.1.0",
+    "@ckeditor/ckeditor5-build-decoupled-document": "^11.1.0",
+    "@ckeditor/ckeditor5-build-inline": "^11.1.0",
+    "@ckeditor/ckeditor5-clipboard": "^10.0.3",
+    "@ckeditor/ckeditor5-cloud-services": "^10.1.0",
+    "@ckeditor/ckeditor5-core": "^11.0.1",
+    "@ckeditor/ckeditor5-easy-image": "^10.0.3",
+    "@ckeditor/ckeditor5-editor-balloon": "^11.0.1",
+    "@ckeditor/ckeditor5-editor-classic": "^11.0.1",
+    "@ckeditor/ckeditor5-editor-decoupled": "^11.0.1",
+    "@ckeditor/ckeditor5-editor-inline": "^11.0.1",
+    "@ckeditor/ckeditor5-engine": "^11.0.0",
+    "@ckeditor/ckeditor5-enter": "^10.1.2",
+    "@ckeditor/ckeditor5-essentials": "^10.1.2",
+    "@ckeditor/ckeditor5-font": "^10.0.3",
+    "@ckeditor/ckeditor5-heading": "^10.1.0",
+    "@ckeditor/ckeditor5-highlight": "^10.0.3",
+    "@ckeditor/ckeditor5-image": "^11.0.0",
+    "@ckeditor/ckeditor5-link": "^10.0.4",
+    "@ckeditor/ckeditor5-list": "^11.0.2",
+    "@ckeditor/ckeditor5-markdown-gfm": "^10.0.3",
+    "@ckeditor/ckeditor5-media-embed": "^10.0.0",
+    "@ckeditor/ckeditor5-paragraph": "^10.0.3",
+    "@ckeditor/ckeditor5-table": "^11.0.0",
+    "@ckeditor/ckeditor5-theme-lark": "^11.1.0",
+    "@ckeditor/ckeditor5-typing": "^11.0.1",
+    "@ckeditor/ckeditor5-ui": "^11.1.0",
+    "@ckeditor/ckeditor5-undo": "^10.0.3",
+    "@ckeditor/ckeditor5-upload": "^10.0.3",
+    "@ckeditor/ckeditor5-utils": "^11.0.0",
+    "@ckeditor/ckeditor5-widget": "^10.3.0"
   },
   "devDependencies": {
     "@ckeditor/ckeditor5-collaboration": "^10.1.0",
-    "@ckeditor/ckeditor5-dev-docs": "^10.0.0",
-    "@ckeditor/ckeditor5-dev-env": "^12.0.0",
+    "@ckeditor/ckeditor5-dev-docs": "^10.0.3",
+    "@ckeditor/ckeditor5-dev-env": "^13.0.0",
     "@ckeditor/ckeditor5-dev-tests": "^13.0.0",
     "@ckeditor/ckeditor5-dev-utils": "^11.0.0",
     "@ckeditor/ckeditor5-dev-webpack-plugin": "^7.0.0",
@@ -111,9 +111,9 @@
     "translations:download": "ckeditor5-dev-env-translations download",
     "translations:upload": "ckeditor5-dev-env-translations upload",
     "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",
+    "release:bump-version": "node ./scripts/release/bump-versions.js",
+    "release:publish": "node ./scripts/release/publish.js",
+    "release:stable-branches": "sh ./scripts/update-stable-branches.sh",
     "switch-to-dev-dev": "sh ./scripts/switch-to-dev-dev.sh"
   },
   "lint-staged": {

+ 31 - 0
scripts/release/bump-versions.js

@@ -0,0 +1,31 @@
+#!/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';
+
+// This scripts preparing all packages to release:
+//   - checking what should be released,
+//   - updates version of all dependencies for all packages,
+//   - validates the whole process (whether the changes could be published),
+//   - tagging new versions.
+//
+// You can test the whole process using `dry-run` mode. It won't change anything in the project
+// and any repository.
+//
+// This task must be called before: `npm run release:publish`.
+//
+// Use:
+// npm run release:bump-version -- --dry-run
+
+require( '@ckeditor/ckeditor5-dev-env' )
+	.bumpVersions( {
+		cwd: process.cwd(),
+		packages: 'packages',
+		dryRun: process.argv.includes( '--dry-run' )
+	} );

+ 3 - 1
scripts/release/changelog.js

@@ -22,8 +22,10 @@ const commonOptions = {
 const editorBuildsGlob = '@ckeditor/ckeditor5-build-*';
 
 const optionsForDependencies = Object.assign( {}, commonOptions, {
-	skipPackages: editorBuildsGlob
+	skipPackages: editorBuildsGlob,
+	skipMainRepository: true
 } );
+
 const optionsForBuilds = Object.assign( {}, commonOptions, {
 	scope: editorBuildsGlob
 } );

+ 41 - 0
scripts/release/publish.js

@@ -0,0 +1,41 @@
+#!/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';
+
+// This scripts publish changes.
+//
+// You can test the whole process using `dry-run` mode. It won't change anything in the project
+// and any repository. Nothing will be pushed. Instead of `npm publish`, the `npm pack` command will be called.
+//
+// Note: This task based on versions published on NPM and GitHub. If something went wrong, you can call this script one more time.
+//
+// This task should be executed after: `npm run release:bump-version`.
+//
+// Use:
+// npm run release:publish -- --dry-run
+
+/* eslint-disable max-len */
+
+require( '@ckeditor/ckeditor5-dev-env' )
+	.releaseSubRepositories( {
+		cwd: process.cwd(),
+		packages: 'packages',
+		emptyReleases: [
+			'ckeditor5'
+		],
+		packageJsonForEmptyReleases: {
+			ckeditor5: {
+				description: 'A set of ready-to-use rich text editors created with a powerful framework. Made with real-time collaborative editing in mind.'
+			}
+		},
+		dryRun: process.argv.includes( '--dry-run' )
+	} );
+
+/* eslint-enable max-len */

+ 0 - 139
scripts/release/release-ckeditor5.js

@@ -1,139 +0,0 @@
-#!/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 versionUtils = require( '@ckeditor/ckeditor5-dev-env/lib/release-tools/utils/versions' );
-const cli = require( '@ckeditor/ckeditor5-dev-env/lib/release-tools/utils/cli' );
-const createGithubRelease = require( '@ckeditor/ckeditor5-dev-env/lib/release-tools/utils/creategithubrelease' );
-const validatePackageToRelease = require( '@ckeditor/ckeditor5-dev-env/lib/release-tools/utils/validatepackagetorelease' );
-const { getChangesForVersion } = require( '@ckeditor/ckeditor5-dev-env/lib/release-tools/utils/changelog' );
-
-const log = logger();
-const cke5Path = path.resolve( __dirname, '..', '..' );
-const packageJsonPath = path.resolve( cke5Path, 'package.json' );
-const templatePath = path.resolve( cke5Path, 'scripts', 'release', 'template' );
-const packageJsonTemplatePath = path.resolve( templatePath, 'package.json' );
-const packageJsonTemplateCopy = require( packageJsonTemplatePath );
-
-// That files will be copied from source to template directory and will be released too.
-const additionalFiles = [
-	'CHANGELOG.md',
-	'LICENSE.md',
-	'README.md'
-];
-
-cli.provideToken()
-	.then( token => {
-		const gitVersion = versionUtils.getLastTagFromGit();
-		const changelogVersion = versionUtils.getLastFromChangelog();
-
-		log.info( 'Checking whether there is anything to release...' );
-
-		// If the last tag is equal to version saved in changelog, we don't have new version for release.
-		if ( gitVersion === changelogVersion ) {
-			return reject( 'Before starting the release process, you should generate the changelog.' );
-		}
-
-		const releaseDescription = getChangesForVersion( changelogVersion );
-
-		log.info( 'Validating the repository for the release...' );
-
-		const errors = validatePackageToRelease( {
-			version: changelogVersion,
-			changes: releaseDescription
-		} );
-
-		// Abort due to errors during validation.
-		if ( errors.length ) {
-			const log = logger();
-
-			log.error( 'Unexpected errors occured:' );
-			errors.map( err => '* ' + err ).forEach( log.error.bind( log ) );
-
-			return reject( 'Releasing has been aborted due to errors.' );
-		}
-
-		log.info( 'Bumping the version...' );
-
-		// Bump the version.
-		tools.shExec(
-			`npm version ${ changelogVersion } --message "Release: v${ changelogVersion }." --allow-same-version`,
-			{ verbosity: 'error' }
-		);
-
-		tools.shExec( `git push origin master v${ changelogVersion }` );
-
-		const packageJson = require( packageJsonPath );
-
-		log.info( 'Copying the package.json...' );
-
-		// Update the template of `package.json`. We will use values from source `package.json`
-		// but only these ones which are defined in the template.
-		tools.updateJSONFile( packageJsonTemplatePath, jsonFile => {
-			for ( const property of Object.keys( jsonFile ) ) {
-				// If the `property` is set in the template, leave it.
-				if ( jsonFile[ property ] ) {
-					continue;
-				}
-
-				if ( property == 'private' ) {
-					continue;
-				}
-
-				// Copy value from original package.json file.
-				jsonFile[ property ] = packageJson[ property ];
-			}
-
-			return jsonFile;
-		} );
-
-		// Copy additional files.
-		for ( const file of additionalFiles ) {
-			tools.shExec( `cp ${ path.resolve( cke5Path, file ) } ${ path.resolve( templatePath, file ) }` );
-		}
-
-		log.info( 'Publishing on npm...' );
-
-		// Publish the package on npm.
-		tools.shExec( `cd ${ templatePath } && npm publish && cd ${ cke5Path }` );
-
-		// Remove files that were copy.
-		for ( const file of additionalFiles ) {
-			tools.shExec( `rm ${ path.resolve( templatePath, file ) }` );
-		}
-
-		log.info( 'Creating a release on GitHub...' );
-
-		// Create a release on GitHub.
-		return createGithubRelease( token, {
-			repositoryOwner: 'ckeditor',
-			repositoryName: 'ckeditor5',
-			version: `v${ changelogVersion }`,
-			description: releaseDescription
-		} ).then( () => changelogVersion );
-	} )
-	.then( version => {
-		log.info( 'Restoring the package.json template...' );
-
-		// Restore the template `package.json` to state before the publishing process.
-		tools.updateJSONFile( packageJsonTemplatePath, () => packageJsonTemplateCopy );
-
-		const url = `https://github.com/ckeditor/ckeditor5/releases/tag/v${ version }`;
-		log.info( `Created the release: ${ url }` );
-	} )
-	.catch( err => {
-		log.error( err.stack );
-	} );
-
-function reject( message ) {
-	return Promise.reject( new Error( message ) );
-}

+ 0 - 21
scripts/release/release-dependencies.js

@@ -1,21 +0,0 @@
-#!/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';
-
-// In order to test the whole process, you can use:
-// npm run release:dependencies -- --dry-run
-// It will create some commits but nothing will be pushed or published.
-
-require( '@ckeditor/ckeditor5-dev-env' )
-	.releaseSubRepositories( {
-		cwd: process.cwd(),
-		packages: 'packages',
-		dryRun: process.argv.includes( '--dry-run' )
-	} );

+ 0 - 12
scripts/release/template/package.json

@@ -1,12 +0,0 @@
-{
-  "name": null,
-  "version": null,
-  "description": "A set of ready-to-use rich text editors created with a powerful framework. Made with real-time collaborative editing in mind.",
-  "keywords": null,
-  "engines": null,
-  "author": null,
-  "license": null,
-  "homepage": null,
-  "bugs": null,
-  "repository": null
-}

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

@@ -1,54 +0,0 @@
-#!/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.' );

+ 1 - 6
scripts/release-ckeditor5.sh

@@ -5,14 +5,11 @@
 
 set -e
 
-read -p "Did you update the \"Releases\" section in README.md? " -n 1 -r
+read -p "Are you sure? " -n 1 -r
 echo ""
 
 if [[ $REPLY =~ ^[Yy]$ ]]
 then
-	# Release the CKEditor5 repository.
-	node ./scripts/release/release-ckeditor5.js
-
 	# Update the `stable` branch in the ckeditor5 repository.
 	git checkout stable && git merge master && git checkout master
 
@@ -39,6 +36,4 @@ then
 	mgit exec 'git push origin stable'
 
 	echo "Success! 🎂"
-else
-	echo "Update the \"Releases\" section in README.md before starting the release process."
 fi