diff --git a/.ember-cli b/.ember-cli index ee64cfed2..8c1812cff 100644 --- a/.ember-cli +++ b/.ember-cli @@ -5,5 +5,11 @@ Setting `disableAnalytics` to true will prevent any data from being sent. */ - "disableAnalytics": false + "disableAnalytics": false, + + /** + Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript + rather than JavaScript by default, when a TypeScript version of a given blueprint is available. + */ + "isTypeScriptProject": false } diff --git a/.eslintignore b/.eslintignore index 69fe5d9e6..94705f3a9 100644 --- a/.eslintignore +++ b/.eslintignore @@ -16,10 +16,13 @@ .*/ .eslintcache +# data git checkout +/ember-api-docs-data/ + # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try - -# data git checkout -/ember-api-docs-data/ +/package-lock.json.ember-try +/yarn.lock.ember-try diff --git a/.eslintrc.js b/.eslintrc.js index ae230a7df..7608c97cc 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,32 +2,23 @@ module.exports = { root: true, - parser: 'babel-eslint', + parser: '@babel/eslint-parser', parserOptions: { - ecmaVersion: 2018, + ecmaVersion: 'latest', sourceType: 'module', - ecmaFeatures: { - legacyDecorators: true, + requireConfigFile: false, + babelOptions: { + plugins: [ + ['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }], + ], }, }, - plugins: ['ember'], - extends: [ - 'eslint:recommended', - 'plugin:ember/recommended', - 'plugin:prettier/recommended', - ], + extends: ['eslint:recommended'], env: { browser: true, }, rules: { 'no-console': 'off', - 'ember/no-new-mixins': 'off', - 'ember/no-mixins': 'off', - 'ember/require-tagless-components': 'off', - 'ember/no-classic-classes': 'off', - 'ember/no-get': 'off', - 'ember/no-classic-components': 'off', - 'ember/no-private-routing-service': 'off', }, overrides: [ // node files @@ -35,6 +26,7 @@ module.exports = { files: [ './.eslintrc.js', './.prettierrc.js', + './.stylelintrc.js', './.template-lintrc.js', './ember-cli-build.js', './testem.js', @@ -55,17 +47,38 @@ module.exports = { browser: false, node: true, }, - plugins: ['node'], - extends: ['plugin:node/recommended'], + extends: ['plugin:n/recommended'], + }, + { + files: ['**/*.{js,ts}'], + plugins: ['ember'], + parser: '@typescript-eslint/parser', + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', // or other configuration + ], rules: { - // this can be removed once the following is fixed - // https://github.com/mysticatea/eslint-plugin-node/issues/77 - 'node/no-unpublished-require': 'off', + 'ember/no-new-mixins': 'off', + 'ember/no-mixins': 'off', + 'ember/require-tagless-components': 'off', + 'ember/no-classic-classes': 'off', + 'ember/no-get': 'off', + 'ember/no-classic-components': 'off', + 'ember/no-private-routing-service': 'off', }, }, { - // Test files: - files: ['tests/**/*-test.{js,ts}'], + files: ['**/*.gjs'], + parser: 'ember-eslint-parser', + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:ember/recommended-gjs', + ], + }, + { + files: ['tests/**/*.{js,ts,gjs,gts}'], extends: ['plugin:qunit/recommended'], }, ], diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ee4d2910..53ae2ccdd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,51 +12,43 @@ env: PERCY_PARALLEL_NONCE: ${{ github.run_id }}-${{ github.run_number }} PERCY_PARALLEL_TOTAL: 1 +concurrency: + group: ci-${{ github.head_ref || github.ref }} + cancel-in-progress: true + jobs: lint: - name: Lint files + name: "Lint" runs-on: ubuntu-latest - timeout-minutes: 5 - steps: - - name: Check out a copy of the repo - uses: actions/checkout@v4 + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: - cache: 'pnpm' + cache: pnpm node-version: ${{ env.NODE_VERSION }} - - - name: Install dependencies - run: pnpm i --frozen-lockfile - + - name: Install Dependencies + run: pnpm install - name: Lint run: pnpm run lint - - test-app: - name: Test app + test: + name: "Test" runs-on: ubuntu-latest timeout-minutes: 10 - steps: - - name: Check out a copy of the repo - uses: actions/checkout@v4 + steps: + - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v4 + - uses: actions/setup-node@v4 with: - cache: 'pnpm' + cache: pnpm node-version: ${{ env.NODE_VERSION }} - - - run: pnpm install --frozen-lockfile - + - run: pnpm install - run: pnpm run clone - - - name: Test + - name: Run Tests env: PERCY_PARALLEL_NONCE: ${{ env.PERCY_PARALLEL_NONCE }} PERCY_PARALLEL_TOTAL: ${{ env.PERCY_PARALLEL_TOTAL }} diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 73046de0c..1c37919d8 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -15,7 +15,7 @@ jobs: - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: - cache: 'pnpm' + cache: "pnpm" node-version: 20 - run: pnpm i --frozen-lockfile - run: npx lint-to-the-future output -o lttfOutput --rootUrl ember-api-docs --previous-results https://ember-learn.github.io/ember-api-docs/data.json diff --git a/.gitignore b/.gitignore index 41ce02222..662ce3157 100644 --- a/.gitignore +++ b/.gitignore @@ -36,10 +36,17 @@ browserstack-local.pid local.log .vscode/ +# ember-api-docs-data checkout +/ember-api-docs-data/ +/ember-api-docs-data + # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try -/ember-api-docs-data/ -/ember-api-docs-data +# broccoli-debug +/DEBUG/ diff --git a/.prettierignore b/.prettierignore index 922165552..1492509de 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,8 +14,24 @@ /coverage/ !.* .eslintcache +.lint-todo/ # ember-try /.node_modules.ember-try/ /bower.json.ember-try +/npm-shrinkwrap.json.ember-try /package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try + +# Misc files +*.md +pnpm-lock.yaml +jsconfig.json + +# api docs data +/ember-api-docs-data/ + + +# hbs -- no point to prettier before moving to