Add file-overrides to the try config

Open
#1,046 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
38/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
javascript

Research direction

No implementation file or test is named. Start with the WIP try configuration and trace how each scenario applies project files, using tests/test-helper.js and tests/test-helper.ts as the example targets. Done means a scenario can provide alternate contents for those files while other scenarios retain their existing files.

Written by the indexing model from the issue text.

Description

When supporting wide ranges of ember versions, like 3.28 to 6.1, sometimes config changes to various files may be needed to better simulate what folks would have in their actual apps.

For example, with the 6.1 blueprint, ember-qunit v9 is used, and that requires a different tests/test-helper.js / .ts, so it would be handy for me to be able to specify different contents for that file for the 6.1 scenario that I'm building.

My WIP broad ember-try config so far
'use strict';

const getChannelURL = require('ember-source-channel-url');
const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup');

module.exports = async function () {
  const ember3Deps = {
    'ember-maybe-import-regenerator': '^1.0.0',
    'ember-qunit': '^5.1.5',
    '@ember/test-waiters': '^2.4.5',
    '@ember/test-helpers': '^2.6.0',
    'ember-resolver': '^8.0.3',
    // Compat Upgrades
    'ember-cli': '~4.12.0',
    'ember-auto-import': '^2.10.0',
    // Not needed
    'ember-fetch': null,
    'ember-cli-app-version': null,
  };

  const ember4Deps = {
    ...ember3Deps,
    '@ember/test-waiters': '^3.0.0',
    '@ember/test-helpers': '^3.0.0',
    'ember-qunit': '^8.0.0',
    'ember-resolver': '^10.0.0',
    // not needed
    'ember-maybe-import-regenerator': null,
    'ember-cli-dependency-checker': null,
  };

  const ember5Deps = {
    ...ember4Deps,
    '@glimmer/component': '^1.1.2',
    '@ember/string': '^3.1.1',
    'ember-resolver': '^11.0.0',
    'ember-template-lint': '^6.0.0',
    'ember-cli': '^5.12.0',
    'qunit-dom': '^3.4.0',
  };

  const ember6Deps = {
    ...ember5Deps,
    '@ember/string': '^4.0.0',
    '@ember/test-waiters': '^4.0.0',
    '@ember/test-helpers': '^4.0.4',
    'ember-cli': '^6.1.0',
    'ember-load-initializers': '^3.0.1',
    'ember-resolver': '^13.1.0',
    typescript: '^5.7.0',
  };

  return {
    usePnpm: true,
    scenarios: [
      {
        name: 'ember-3.28',
        npm: {
          devDependencies: {
            ...ember4Deps, // close enough, really
            'ember-source': '~3.28.0',
          },
        },
      },
      {
        name: 'ember-4.0.0',
        npm: {
          devDependencies: {
            ...ember4Deps,
            'ember-source': '~4.0.0',
          },
        },
      },
      {
        name: 'ember-4.4',
        npm: {
          devDependencies: {
            ...ember4Deps,
            'ember-source': '~4.4.0',
          },
        },
      },
      {
        name: 'ember-4.8',
        npm: {
          devDependencies: {
            ...ember4Deps,
            'ember-source': '~4.8.0',
          },
        },
      },
      {
        name: 'ember-4.12',
        npm: {
          devDependencies: {
            ...ember4Deps,
            'ember-source': '~4.12.0',
          },
        },
      },
      {
        name: 'ember-5.4',
        npm: {
          devDependencies: {
            ...ember5Deps,
            'ember-source': '~5.4.0',
          },
        },
      },
      {
        name: 'ember-5.8',
        npm: {
          devDependencies: {
            ...ember5Deps,
            'ember-source': '~5.8.0',
          },
        },
      },
      {
        name: 'ember-5.12',
        npm: {
          devDependencies: {
            ...ember5Deps,
            'ember-source': '~5.12.0',
          },
        },
      },
      {
        name: 'ember-release',
        npm: {
          devDependencies: {
            ...ember6Deps,
            'ember-source': await getChannelURL('release'),
          },
        },
      },
      {
        name: 'ember-beta',
        npm: {
          devDependencies: {
            ...ember6Deps,
            'ember-source': await getChannelURL('beta'),
          },
        },
      },
      {
        name: 'ember-canary',
        npm: {
          devDependencies: {
            ...ember6Deps,
            'ember-source': await getChannelURL('canary'),
          },
        },
      },
      embroiderSafe({
        npm: {
          devDependencies: {
            ...ember6Deps,
            'ember-source': await getChannelURL('release'),
          },
        },
      }),
      embroiderOptimized({
        npm: {
          devDependencies: {
            ...ember6Deps,
            'ember-source': await getChannelURL('release'),
          },
        },
      }),
    ],
  };
};
Dominant language
JavaScript
Stars
180
Forks
57
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ember-cli/ember-try

All issues in ember-cli/ember-try

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.