From 6079f28bf7a7d2519d005f33dafedc10a9ae40f5 Mon Sep 17 00:00:00 2001 From: Dave Laird Date: Wed, 29 Jul 2020 20:23:17 -0700 Subject: [PATCH] updated to ember-cli 3.20 --- .gitignore | 2 + packages/ember-cli-fastboot/.editorconfig | 1 - packages/ember-cli-fastboot/.eslintignore | 4 + packages/ember-cli-fastboot/.eslintrc.js | 31 ++++---- packages/ember-cli-fastboot/.npmignore | 48 +++++++----- .../ember-cli-fastboot/.template-lintrc.js | 5 ++ packages/ember-cli-fastboot/.travis.yml | 59 ++++++++++++++ packages/ember-cli-fastboot/CONTRIBUTING.md | 26 +++++++ packages/ember-cli-fastboot/README.md | 38 +++++++++ .../ember-cli-fastboot/config/ember-try.js | 78 +++++++++++++++++++ packages/ember-cli-fastboot/index.js | 3 +- packages/ember-cli-fastboot/package.json | 52 ++++++++----- packages/ember-cli-fastboot/testem.js | 4 +- .../ember-cli-fastboot/tests/dummy/app/app.js | 16 ++-- .../tests/dummy/app/resolver.js | 3 - .../tests/dummy/app/router.js | 12 ++- .../dummy/app/templates/components/.gitkeep | 0 .../tests/dummy/config/ember-cli-update.json | 20 +++++ .../tests/dummy/config/environment.js | 2 +- .../tests/dummy/config/optional-features.json | 6 ++ .../tests/dummy/config/targets.js | 2 +- .../ember-cli-fastboot/tests/test-helper.js | 4 +- 22 files changed, 331 insertions(+), 85 deletions(-) create mode 100644 packages/ember-cli-fastboot/.template-lintrc.js create mode 100644 packages/ember-cli-fastboot/.travis.yml create mode 100644 packages/ember-cli-fastboot/CONTRIBUTING.md create mode 100644 packages/ember-cli-fastboot/README.md create mode 100644 packages/ember-cli-fastboot/config/ember-try.js delete mode 100644 packages/ember-cli-fastboot/tests/dummy/app/resolver.js delete mode 100644 packages/ember-cli-fastboot/tests/dummy/app/templates/components/.gitkeep create mode 100644 packages/ember-cli-fastboot/tests/dummy/config/ember-cli-update.json create mode 100644 packages/ember-cli-fastboot/tests/dummy/config/optional-features.json diff --git a/.gitignore b/.gitignore index 4ebf21e66..d5ab57c67 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,8 @@ bower_components/ node_modules/ # misc +/.env* +/.pnp* /.sass-cache /connect.lock /coverage/ diff --git a/packages/ember-cli-fastboot/.editorconfig b/packages/ember-cli-fastboot/.editorconfig index 219985c22..c35a00240 100644 --- a/packages/ember-cli-fastboot/.editorconfig +++ b/packages/ember-cli-fastboot/.editorconfig @@ -4,7 +4,6 @@ root = true - [*] end_of_line = lf charset = utf-8 diff --git a/packages/ember-cli-fastboot/.eslintignore b/packages/ember-cli-fastboot/.eslintignore index d9807d3ab..72df37307 100644 --- a/packages/ember-cli-fastboot/.eslintignore +++ b/packages/ember-cli-fastboot/.eslintignore @@ -8,9 +8,13 @@ # dependencies /bower_components/ +/node_modules/ # misc /coverage/ +!.* # ember-try /.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/packages/ember-cli-fastboot/.eslintrc.js b/packages/ember-cli-fastboot/.eslintrc.js index 55bb9d083..278360d3e 100644 --- a/packages/ember-cli-fastboot/.eslintrc.js +++ b/packages/ember-cli-fastboot/.eslintrc.js @@ -1,8 +1,14 @@ +'use strict'; + module.exports = { root: true, + parser: 'babel-eslint', parserOptions: { - ecmaVersion: 2017, - sourceType: 'module' + ecmaVersion: 2018, + sourceType: 'module', + ecmaFeatures: { + legacyDecorators: true + } }, plugins: [ 'ember' @@ -14,12 +20,13 @@ module.exports = { env: { browser: true }, - rules: { - }, + rules: {}, overrides: [ // node files { files: [ + '.eslintrc.js', + '.template-lintrc.js', 'ember-cli-build.js', 'index.js', 'testem.js', @@ -34,26 +41,14 @@ module.exports = { 'addon-test-support/**', ], parserOptions: { - sourceType: 'script', - ecmaVersion: 2015 + sourceType: 'script' }, env: { browser: false, node: true }, plugins: ['node'], - rules: Object.assign({}, require('eslint-plugin-node').configs.recommended.rules, { - // add your custom rules and overrides for node files here - }) - }, - - // test files - { - files: ['tests/**/*.js'], - excludedFiles: ['tests/dummy/**/*.js'], - env: { - embertest: true - } + extends: ['plugin:node/recommended'] } ] }; diff --git a/packages/ember-cli-fastboot/.npmignore b/packages/ember-cli-fastboot/.npmignore index 771cc8056..47649962b 100644 --- a/packages/ember-cli-fastboot/.npmignore +++ b/packages/ember-cli-fastboot/.npmignore @@ -1,23 +1,33 @@ -/bower_components +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ + +# misc +/.bowerrc +/.editorconfig +/.ember-cli +/.env* +/.eslintignore +/.eslintrc.js +/.git/ +/.gitignore +/.template-lintrc.js +/.travis.yml +/.watchmanconfig +/bower.json /config/ember-try.js -/dist +/CONTRIBUTING.md +/ember-cli-build.js /test -/tests -/tmp -**/.gitkeep -.bowerrc -.editorconfig -.ember-cli -.eslintrc.js -.gitignore -.watchmanconfig -.travis.yml -bower.json -ember-cli-build.js -testem.js -yarn.lock +/testem.js +/tests/ +/yarn.lock +.gitkeep # ember-try -.node_modules.ember-try/ -bower.json.ember-try -package.json.ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/packages/ember-cli-fastboot/.template-lintrc.js b/packages/ember-cli-fastboot/.template-lintrc.js new file mode 100644 index 000000000..f38737001 --- /dev/null +++ b/packages/ember-cli-fastboot/.template-lintrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: 'octane' +}; diff --git a/packages/ember-cli-fastboot/.travis.yml b/packages/ember-cli-fastboot/.travis.yml new file mode 100644 index 000000000..123e431b4 --- /dev/null +++ b/packages/ember-cli-fastboot/.travis.yml @@ -0,0 +1,59 @@ +--- +language: node_js +node_js: + # we recommend testing addons with the same minimum supported node version as Ember CLI + # so that your addon works for all apps + - "10" + +dist: xenial + +addons: + chrome: stable + +cache: + directories: + - $HOME/.npm + +env: + global: + # See https://git.io/vdao3 for details. + - JOBS=1 + +branches: + only: + - master + # npm version tags + - /^v\d+\.\d+\.\d+/ + +jobs: + fast_finish: true + allow_failures: + - env: EMBER_TRY_SCENARIO=ember-canary + + include: + # runs linting and tests with current locked deps + - stage: "Tests" + name: "Tests" + script: + - npm run lint + - npm run test:ember + + - stage: "Additional Tests" + name: "Floating Dependencies" + install: + - npm install --no-package-lock + script: + - npm run test:ember + + # we recommend new addons test the current and previous LTS + # as well as latest stable release (bonus points to beta/canary) + - env: EMBER_TRY_SCENARIO=ember-lts-3.12 + - env: EMBER_TRY_SCENARIO=ember-lts-3.16 + - env: EMBER_TRY_SCENARIO=ember-release + - env: EMBER_TRY_SCENARIO=ember-beta + - env: EMBER_TRY_SCENARIO=ember-canary + - env: EMBER_TRY_SCENARIO=ember-default-with-jquery + - env: EMBER_TRY_SCENARIO=ember-classic + +script: + - node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO diff --git a/packages/ember-cli-fastboot/CONTRIBUTING.md b/packages/ember-cli-fastboot/CONTRIBUTING.md new file mode 100644 index 000000000..6b880f4fa --- /dev/null +++ b/packages/ember-cli-fastboot/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# How To Contribute + +## Installation + +* `git clone ` +* `cd ember-cli-fastboot` +* `npm install` + +## Linting + +* `npm run lint:hbs` +* `npm run lint:js` +* `npm run lint:js -- --fix` + +## Running tests + +* `ember test` – Runs the test suite on the current Ember version +* `ember test --server` – Runs the test suite in "watch mode" +* `ember try:each` – Runs the test suite against multiple Ember versions + +## Running the dummy application + +* `ember serve` +* Visit the dummy application at [http://localhost:4200](http://localhost:4200). + +For more information on using ember-cli, visit [https://ember-cli.com/](https://ember-cli.com/). diff --git a/packages/ember-cli-fastboot/README.md b/packages/ember-cli-fastboot/README.md new file mode 100644 index 000000000..58f053db9 --- /dev/null +++ b/packages/ember-cli-fastboot/README.md @@ -0,0 +1,38 @@ +ember-cli-fastboot +============================================================================== + +[Short description of the addon.] + + +Compatibility +------------------------------------------------------------------------------ + +* Ember.js v3.12 or above +* Ember CLI v2.13 or above +* Node.js v10 or above + + +Installation +------------------------------------------------------------------------------ + +``` +ember install ember-cli-fastboot +``` + + +Usage +------------------------------------------------------------------------------ + +[Longer description of how to use the addon in apps.] + + +Contributing +------------------------------------------------------------------------------ + +See the [Contributing](CONTRIBUTING.md) guide for details. + + +License +------------------------------------------------------------------------------ + +This project is licensed under the [MIT License](LICENSE.md). diff --git a/packages/ember-cli-fastboot/config/ember-try.js b/packages/ember-cli-fastboot/config/ember-try.js new file mode 100644 index 000000000..8d803f555 --- /dev/null +++ b/packages/ember-cli-fastboot/config/ember-try.js @@ -0,0 +1,78 @@ +'use strict'; + +const getChannelURL = require('ember-source-channel-url'); + +module.exports = async function() { + return { + scenarios: [ + { + name: 'ember-lts-3.12', + npm: { + devDependencies: { + 'ember-source': '~3.12.0' + } + } + }, + { + name: 'ember-lts-3.16', + npm: { + devDependencies: { + 'ember-source': '~3.16.0' + } + } + }, + { + name: 'ember-release', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('release') + } + } + }, + { + name: 'ember-beta', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('beta') + } + } + }, + { + name: 'ember-canary', + npm: { + devDependencies: { + 'ember-source': await getChannelURL('canary') + } + } + }, + { + name: 'ember-default-with-jquery', + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + 'jquery-integration': true + }) + }, + npm: { + devDependencies: { + '@ember/jquery': '^0.5.1' + } + } + }, + { + name: 'ember-classic', + env: { + EMBER_OPTIONAL_FEATURES: JSON.stringify({ + 'application-template-wrapper': true, + 'default-async-observers': false, + 'template-only-glimmer-components': false + }) + }, + npm: { + ember: { + edition: 'classic' + } + } + } + ] + }; +}; diff --git a/packages/ember-cli-fastboot/index.js b/packages/ember-cli-fastboot/index.js index 433f58069..150d58c3b 100644 --- a/packages/ember-cli-fastboot/index.js +++ b/packages/ember-cli-fastboot/index.js @@ -31,12 +31,11 @@ function getVersionChecker(context) { } - /* * Main entrypoint for the Ember CLI addon. */ module.exports = { - name: 'ember-cli-fastboot', + name: require('./package').name, init() { this._super.init && this._super.init.apply(this, arguments); diff --git a/packages/ember-cli-fastboot/package.json b/packages/ember-cli-fastboot/package.json index a6cf4c602..31d0b337e 100644 --- a/packages/ember-cli-fastboot/package.json +++ b/packages/ember-cli-fastboot/package.json @@ -13,13 +13,16 @@ "test": "tests" }, "scripts": { - "build": "ember build", + "build": "ember build --environment=production", + "lint": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*", + "lint:hbs": "ember-template-lint .", "lint:js": "eslint ./*.js addon addon-test-support app config lib server test-support tests", "release": "release-it", "start": "ember serve", - "test": "mocha && ember test", + "test": "npm-run-all lint:* test:*", "test:mocha": "mocha", "test:ember": "ember test", + "test:ember-compatibility": "ember try:each", "test:precook": "node node_modules/ember-cli-addon-tests/scripts/precook-node-modules.js" }, "dependencies": { @@ -29,7 +32,8 @@ "broccoli-merge-trees": "^3.0.1", "broccoli-plugin": "^1.3.1", "chalk": "^2.4.1", - "ember-cli-babel": "^7.1.0", + "ember-cli-babel": "^7.21.0", + "ember-cli-htmlbars": "^5.2.0", "ember-cli-lodash-subset": "2.0.1", "ember-cli-preprocess-registry": "^3.1.2", "ember-cli-version-checker": "^3.0.0", @@ -42,6 +46,10 @@ "silent-error": "^1.1.0" }, "devDependencies": { + "@ember/optional-features": "^1.3.0", + "@glimmer/component": "^1.0.1", + "@glimmer/tracking": "^1.0.0", + "babel-eslint": "^10.1.0", "body-parser": "^1.18.3", "broccoli-asset-rev": "^3.0.0", "broccoli-test-helper": "^1.5.0", @@ -49,42 +57,44 @@ "chai-fs": "^2.0.0", "chai-string": "^1.4.0", "co": "^4.6.0", - "ember-ajax": "^3.1.0", - "ember-cli": "~3.3.0", + "ember-auto-import": "^1.6.0", + "ember-cli": "~3.20.0", "ember-cli-addon-tests": "^0.11.1", - "ember-cli-dependency-checker": "^3.0.0", - "ember-cli-eslint": "^4.2.3", - "ember-cli-htmlbars": "^3.0.0", - "ember-cli-htmlbars-inline-precompile": "^1.0.3", - "ember-cli-inject-live-reload": "^1.8.2", - "ember-cli-qunit": "^4.3.2", - "ember-cli-shims": "^1.2.0", + "ember-cli-dependency-checker": "^3.2.0", + "ember-cli-inject-live-reload": "^2.0.2", "ember-cli-sri": "^2.1.1", - "ember-cli-uglify": "^2.1.0", + "ember-cli-uglify": "^3.0.0", "ember-disable-prototype-extensions": "^1.1.3", - "ember-export-application-global": "^2.0.0", - "ember-load-initializers": "^1.1.0", + "ember-export-application-global": "^2.0.1", + "ember-load-initializers": "^2.1.1", "ember-maybe-import-regenerator-for-testing": "^1.0.0", - "ember-resolver": "^5.0.1", + "ember-qunit": "^4.6.0", + "ember-resolver": "^8.0.0", "ember-sinon": "^2.2.0", - "ember-source": "~3.8.0", - "eslint-plugin-ember": "^7.0.0", - "eslint-plugin-node": "^7.0.1", + "ember-source": "~3.20.2", + "ember-template-lint": "^2.9.1", + "eslint": "^7.5.0", + "eslint-plugin-ember": "^8.9.1", + "eslint-plugin-node": "^11.1.0", "glob": "^7.1.3", "loader.js": "^4.7.0", "mocha": "^5.2.0", - "qunit-dom": "^0.8.0", + "npm-run-all": "^4.1.5", + "qunit-dom": "^1.2.0", "release-it": "^12.0.1", "release-it-lerna-changelog": "^1.0.2", "request": "^2.88.0", "rsvp": "^4.8.3" }, "engines": { - "node": "10.* || 12.* || >= 14.*" + "node": "10.* || >= 12" }, "publishConfig": { "registry": "https://registry.npmjs.org/" }, + "ember": { + "edition": "octane" + }, "ember-addon": { "configPath": "tests/dummy/config", "before": [ diff --git a/packages/ember-cli-fastboot/testem.js b/packages/ember-cli-fastboot/testem.js index 726d18799..49f53feed 100644 --- a/packages/ember-cli-fastboot/testem.js +++ b/packages/ember-cli-fastboot/testem.js @@ -1,3 +1,5 @@ +'use strict'; + module.exports = { test_page: 'tests/index.html?hidepassed', disable_watching: true, @@ -7,13 +9,13 @@ module.exports = { launch_in_dev: [ 'Chrome' ], + browser_start_timeout: 120, browser_args: { Chrome: { ci: [ // --no-sandbox is needed when running Chrome inside a container process.env.CI ? '--no-sandbox' : null, '--headless', - '--disable-gpu', '--disable-dev-shm-usage', '--disable-software-rasterizer', '--mute-audio', diff --git a/packages/ember-cli-fastboot/tests/dummy/app/app.js b/packages/ember-cli-fastboot/tests/dummy/app/app.js index b3b2bd677..523bad60c 100644 --- a/packages/ember-cli-fastboot/tests/dummy/app/app.js +++ b/packages/ember-cli-fastboot/tests/dummy/app/app.js @@ -1,14 +1,12 @@ import Application from '@ember/application'; -import Resolver from './resolver'; +import Resolver from 'ember-resolver'; import loadInitializers from 'ember-load-initializers'; -import config from './config/environment'; +import config from 'dummy/config/environment'; -const App = Application.extend({ - modulePrefix: config.modulePrefix, - podModulePrefix: config.podModulePrefix, - Resolver -}); +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver; +} loadInitializers(App, config.modulePrefix); - -export default App; diff --git a/packages/ember-cli-fastboot/tests/dummy/app/resolver.js b/packages/ember-cli-fastboot/tests/dummy/app/resolver.js deleted file mode 100644 index 2fb563d6c..000000000 --- a/packages/ember-cli-fastboot/tests/dummy/app/resolver.js +++ /dev/null @@ -1,3 +0,0 @@ -import Resolver from 'ember-resolver'; - -export default Resolver; diff --git a/packages/ember-cli-fastboot/tests/dummy/app/router.js b/packages/ember-cli-fastboot/tests/dummy/app/router.js index d0bb00952..bdf0187b9 100644 --- a/packages/ember-cli-fastboot/tests/dummy/app/router.js +++ b/packages/ember-cli-fastboot/tests/dummy/app/router.js @@ -1,12 +1,10 @@ import EmberRouter from '@ember/routing/router'; -import config from './config/environment'; +import config from 'dummy/config/environment'; -const Router = EmberRouter.extend({ - location: config.locationType, - rootURL: config.rootURL -}); +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} Router.map(function() { }); - -export default Router; diff --git a/packages/ember-cli-fastboot/tests/dummy/app/templates/components/.gitkeep b/packages/ember-cli-fastboot/tests/dummy/app/templates/components/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/packages/ember-cli-fastboot/tests/dummy/config/ember-cli-update.json b/packages/ember-cli-fastboot/tests/dummy/config/ember-cli-update.json new file mode 100644 index 000000000..6a1c4bcb3 --- /dev/null +++ b/packages/ember-cli-fastboot/tests/dummy/config/ember-cli-update.json @@ -0,0 +1,20 @@ +{ + "schemaVersion": "1.0.0", + "packages": [ + { + "name": "ember-cli", + "version": "3.20.0", + "blueprints": [ + { + "name": "addon", + "outputRepo": "https://github.com/ember-cli/ember-addon-output", + "codemodsSource": "ember-addon-codemods-manifest@1", + "isBaseBlueprint": true, + "options": [ + "--no-welcome" + ] + } + ] + } + ] +} diff --git a/packages/ember-cli-fastboot/tests/dummy/config/environment.js b/packages/ember-cli-fastboot/tests/dummy/config/environment.js index 182d3fcbf..9f2393692 100644 --- a/packages/ember-cli-fastboot/tests/dummy/config/environment.js +++ b/packages/ember-cli-fastboot/tests/dummy/config/environment.js @@ -9,7 +9,7 @@ module.exports = function(environment) { EmberENV: { FEATURES: { // Here you can enable experimental features on an ember canary build - // e.g. 'with-controller': true + // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true }, EXTEND_PROTOTYPES: { // Prevent Ember Data from overriding Date.parse. diff --git a/packages/ember-cli-fastboot/tests/dummy/config/optional-features.json b/packages/ember-cli-fastboot/tests/dummy/config/optional-features.json new file mode 100644 index 000000000..b26286e2e --- /dev/null +++ b/packages/ember-cli-fastboot/tests/dummy/config/optional-features.json @@ -0,0 +1,6 @@ +{ + "application-template-wrapper": false, + "default-async-observers": true, + "jquery-integration": false, + "template-only-glimmer-components": true +} diff --git a/packages/ember-cli-fastboot/tests/dummy/config/targets.js b/packages/ember-cli-fastboot/tests/dummy/config/targets.js index 8ffae3636..228a07898 100644 --- a/packages/ember-cli-fastboot/tests/dummy/config/targets.js +++ b/packages/ember-cli-fastboot/tests/dummy/config/targets.js @@ -6,7 +6,7 @@ const browsers = [ 'last 1 Safari versions' ]; -const isCI = !!process.env.CI; +const isCI = Boolean(process.env.CI); const isProduction = process.env.EMBER_ENV === 'production'; if (isCI || isProduction) { diff --git a/packages/ember-cli-fastboot/tests/test-helper.js b/packages/ember-cli-fastboot/tests/test-helper.js index 0382a848d..4eae06f81 100644 --- a/packages/ember-cli-fastboot/tests/test-helper.js +++ b/packages/ember-cli-fastboot/tests/test-helper.js @@ -1,5 +1,5 @@ -import Application from '../app'; -import config from '../config/environment'; +import Application from 'dummy/app'; +import config from 'dummy/config/environment'; import { setApplication } from '@ember/test-helpers'; import { start } from 'ember-qunit';