Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to create a CKEditor 5 setup without forking ckeditor5 repo? #112

Closed
Reinmar opened this issue Jan 28, 2016 · 7 comments
Closed

How to create a CKEditor 5 setup without forking ckeditor5 repo? #112

Reinmar opened this issue Jan 28, 2016 · 7 comments
Labels

Comments

@Reinmar
Copy link
Member

Reinmar commented Jan 28, 2016

Right now the building process requires you to clone ckeditor5, install dependencies (including CKE5 packages which you want to include) and then running the builder.

It sounds OK, but I am afraid that it may be a bit cumbersome when working on implementations (CKEditor 5 dependent projects). If you have your project's repo (let's say my-awesome-website), you want to be able to add ckeditor5 and a couple of ckeditor5-* packages to your package.json, run the builder and do something with the output. With such a setup you're able to quickly upgrade everything by running npm update in your project and to install new dependencies by simply calling npm install --save ckeditor5-*.

If we require forking ckeditor5 developers will need to do 3 additional things:

  • do the fork,
  • maintain the fork (marge changes from the upstream),
  • commit to another repository changes in your project's dependencies (normally if your website needs one more CKEditor package you would add it to your package.json, not some ckeditor5 fork's configuration).

Therefore, I'm opting strongly for enabling the former solution. We just need to learn the current builder to read CKEditor 5 packages from the same level at which ckeditor5 is. A similar feature is also required for CI, because when running tests for a specific repo (ckeditor5-* package) that package is the starting point for npm install. Perhaps we'll be able to unify this cases, so CI runner will create a simple temporary project including ckeditor5 and the package that needs to be tested.

@Reinmar
Copy link
Member Author

Reinmar commented Jan 28, 2016

BTW. Integrating CKEditor 5 building process into your project's building process is now a bit inconvenient, because the only safe approach would be to run gulp --cwd=node_modules/ckeditor5/... build. However, a small refactoring may allow either importing CKE's build task into your gulpfile or even using it as a gulp plugin.

@SteveTheTechie
Copy link

Are you essentially requiring app developers using CKE5 to be using git, github, and related build tools (grunt / gulp)? Does that become an "implicit dependency"?

In my case, my web app (a large scale CMS hybrid) is for a non-profit and was developed over several years by a series of individual volunteer developers (now that one is me). Therefore, not any real attention to git repos or build scripts. I am now moving in that direction to support multiple future developers, but thank goodness for the CKE4 builder web interface.

You obviously need to build/distribute in a way that makes sense to you, but keep in mind that not all app developers may be using the same development practices as you are. (for better or for worse)

@Reinmar
Copy link
Member Author

Reinmar commented Jan 29, 2016

Are you essentially requiring app developers using CKE5 to be using git, github, and related build tools (grunt / gulp)? Does that become an "implicit dependency"?

Right now there's only the gulp based builder (actually – there's no bundler yet), but that's a temporary state. We'll definitely be releasing some kind of builds (perhaps for each Implementation). Additionally, we may develop an online builder, although it may come later (because giving it a nice GUI is a lot of work).

@Reinmar
Copy link
Member Author

Reinmar commented Jan 29, 2016

Two more thoughts:

  1. When talking about building, once you have Node.JS installed, the process will boil down to executing ~4 commands git clone <cke5> && cd ckeditor5 && npm install && gulp dist. We'll definitely recommend this method, because it's the most flexible scenario, for us and for the developers.
  2. I think that in an early stage, when we'll not have a nice GUI for the online builder yet, we may release a simpler online build service, where developers will be able to upload their build configuration (like today). We'll have more time to produce a good GUI for the configurator generator and this part is definitely more time consuming.

BTW. A related ticket: #50.

@jodator
Copy link

jodator commented Jan 29, 2016

Perhaps we'll be able to unify this cases, so CI runner will create a simple temporary project including ckeditor5 and the package that needs to be tested.

Wouldn't be enough to define dependencies in my-awesome-project or in any of ckeditor5-* projects. Actually the ckeditor5 project is needed only because of builder scripts and benderjs pugins for testing.

The more I'm thinking of it the more I would like to have builder/dev task in separate repo. Copyint and creating a temporary project for CI building looks like a hack.

@Reinmar Reinmar mentioned this issue Jan 29, 2016
@Reinmar
Copy link
Member Author

Reinmar commented Jan 29, 2016

I described the CI strategy in #45 (comment)

@Reinmar
Copy link
Member Author

Reinmar commented Apr 20, 2018

Cleaning up old discussions. See #186.

@Reinmar Reinmar closed this as completed Apr 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants