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

added cordova8 proposal #72

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions proposals/cordova8.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
We have come with a few ideas for the next major version of Cordova.

### Goals

* Reduce maintenance burden of cordova tooling
* Refactor cordova-lib
* Improve unit test coverage

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work on the proposal! I really like the idea of adding more unit tests! 👍

### Proposed Changes

* Remove non cordova-fetch fetching code
* remove no-fetch flag + any associated files with non cordova-fetch fetching
* drop npm dependency
* issue: https://issues.apache.org/jira/browse/CB-13055

* Create new `cordova install` command
* remove restore functionality from `cordova prepare` command
* move restore functionality into new `cordova install` command. (installing plugins/platforms listed in `package.json` and `config.xml`)
* update docs to include `cordova install`
* issue: https://issues.apache.org/jira/browse/CB-11981
* proposal: https://github.com/cordova/cordova-discuss/pull/54

* Remove plugins dir from cordova projects
This directory has traditionally been a staging directory. We copy plugins from the `plugins` directory to `platforms/platform/...` when a plugin needs to get installed. Now, these plugin directories also live in `node_modules` directory. I propose we delete the `plugins` directory and instead just copy the plugins straight from `node_modules`.
* TODO: investigate reason why `fetch.json`, + `<platform>.json` exist and if we need them. They live in plugins directory right now.
* https://issues.apache.org/jira/browse/CB-13059

* Remove `cordova platform save` command
This command isn't necessary anymore since we save by default since `cordova@7`. It was previously used to save added plugins and platforms to `config.xml`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would users upgrading from a project using an older cordova version still need this, to save their existing platforms and plugins?
If we remove this, they will have to manually add them in config.xml, no?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the analytics (assuming I'm doing this correctly), the command has been used 64 times out of the past 1.9 Million requests. Less that 0.1 percent. Pretty clear sign that it is not being used much.

I do see the usefulness of the command for users pre 7 who didn't used to use --save (which has been around much longer). I just don't think people in that group are even aware of the platform save command.

I think by this point asking users to modify config.xml or readd plugin + platforms is fair. They will probably have to readd/update older platforms or plugins anyways.

Removing it will clean up cordova-lib a bit and allow us to get rid of these extra generated config files that go into peoples cordova projects

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for digging into the analytics @stevengill. It is clearly not a use case we need to worry about much, which is good, simplifying the path forward!

* **Do Now** add deprecation notice for next `cordova@7` release.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* remove use of `cordovaProject/platforms/platforms.json`
* axe `cordova-lib/src/cordova.platform_metadata.js`
* issue: https://issues.apache.org/jira/browse/CB-13057
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

started the work for removing platform save 13057
apache/cordova-lib#586


* Remove deprecated platforms (non platform api compatibile platforms).
This is just a continuation of what we started in `cordova@7`
* **Do Now** deprecate `webos` (in cordova@7)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* Remove `webos`, `bb10`, `ubuntu` + all associated files
* issue: https://issues.apache.org/jira/browse/CB-13056
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

started 13056 --> apache/cordova-lib#588

* previous `cordova@7` release
* deprecated `bb10` & `ubuntu` https://issues.apache.org/jira/browse/CB-12674
* removed polyfill support for previously deprecated platforms https://issues.apache.org/jira/browse/CB-11242
* removed `firefoxos` https://github.com/apache/cordova-lib/commit/41bc8dafa928855a690c70e0b950dc72f37ac9fc
* removed `wp8` https://github.com/apache/cordova-lib/commit/6f0a5611aadb56cb1bba8beeb3c22b45eeffc974
* removed `amazon-fireos` https://github.com/apache/cordova-lib/commit/0d637f2d67a95ef709443eaa9d7481eb14f79b8d

* Incompatible plugins should make the build fail
Currently, if a plugin fails the engine requirement it is skipped and the build continues. It makes more sense for the build to fail and have a force flag to make the build continue if that is the intended behavior.
* issue: https://issues.apache.org/jira/browse/CB-12122

* `plugin add` should use `cordovaDependency` in `package.json` instead of `engine` tag in `plugin.xml` when installing plugins
The plan has always been to replace `engine` tag with `cordovaDependency`.
* issue: https://issues.apache.org/jira/browse/CB-13123