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

feat(config): drop support for the all-in-one configuration format #3386

Merged
merged 1 commit into from May 12, 2022

Conversation

noomorph
Copy link
Collaborator

@noomorph noomorph commented May 11, 2022

BREAKING: please migrate to the new { apps, devices, configurations } schema that Detox has been already using for more than a year.

Description

  1. Enforces the migration to the modern normalized Detox config schema:
Legacy schema Modern schema
{
  "configurations": {
    "legacy.ios.debug": {
      "type": "ios.simulator",
      "device": "iPhone 12",
      "binaryPath": "/some/path/debug.app"
    },
    "legacy.ios.release": {
      "type": "ios.simulator",
      "device": "iPhone 12",
      "binaryPath": "/some/path/release.app"
    }
  }
}
{
  "apps": {
    "ios.debug": {
      "type": "ios.app",
      "binaryPath": "/some/path/debug.app"
    },
    "ios.release": {
      "type": "ios.app",
      "binaryPath": "/some/path/release.app"
    }
  },
  "devices": {
    "iphone": {
      "type": "ios.simulator",
      "device": { "type": "iPhone 12" }
    }
  },
  "configurations": {
    "legacy.ios.debug": {
      "device": "iphone",
      "app": "ios.debug"
    },
    "legacy.ios.release": {
      "device": "iphone",
      "app": "ios.release"
    }
  }
}
  1. If the user wishes to run a configuration based on the old schema, Detox will throw an error like this:
DetoxConfigError: Configuration "legacy" uses a deprecated all-in-one schema,
which is not supported by Detox.

HINT: Remove "type" property. A valid configuration should have "device" and "app"
properties defined, e.g.:

{
  "apps": {
*-->"myApp.ios": {
|     "type": "ios.app",
|     "binaryPath": "/some/path/debug.app",
|   },
| },
| "devices": {
|*->"simulator": {
||    "type": "ios.simulator",
||    "device": "iPhone 12"
||  },
||},
||"configurations": {
||  "legacy.ios.debug": {
||    /* REMOVE (!) "type": "ios.simulator" */
|*--- "device": "simulator",
*---- "app": "myApp.ios",
      ...
    }
  }
}
Examine your Detox config at path:
/home/detox/myproject/.detoxrc.json

{
  apps: undefined,
  devices: undefined,
  configurations: {
    legacy: {
      type: 'ios.simulator',
      device: 'iPhone 12',
      binaryPath: '/some/path'
    }
  }
}]

For features/enhancements:

  • I have added/updated the relevant references in the documentation files.

For API changes:

  • I have made the necessary changes in the types index file.

@noomorph noomorph requested a review from d4vidi as a code owner May 11, 2022 16:46
@noomorph noomorph force-pushed the breaking/remove-legacy-configurations branch from 2daf740 to b8beb37 Compare May 12, 2022 08:54
BREAKING: please migrate to the new { apps, devices, configurations }
schema that Detox has been already using for more than a year.
@noomorph noomorph force-pushed the breaking/remove-legacy-configurations branch from b8beb37 to 319566b Compare May 12, 2022 12:33
@noomorph noomorph merged commit e060c1b into next May 12, 2022
@noomorph noomorph deleted the breaking/remove-legacy-configurations branch May 12, 2022 13:07
noomorph added a commit that referenced this pull request May 13, 2022
…3386)

BREAKING: please migrate to the new { apps, devices, configurations }
schema that Detox has been already using for more than a year.
noomorph added a commit that referenced this pull request Nov 10, 2022
* feat: set minimal Node requirement to 14.5.x
* feat: drop old Jest integrations

BREAKING CHANGE: please upgrade to jest-circus
https://wix.github.io/Detox/docs/guide/jest/

* feat(config): drop default "e2e" value for specs (#3289)

BREAKING CHANGE: Detox won't be appending "e2e" glob to the test runner
if it is not explicitly configured to do so via "specs" property in the
config.

* feat(config): drop skipLegacyWorkersInjection (#3286)

BREAKING CHANGE: Detox will no longer be injecting "-w 1" to Jest as CLI
arguments

* feat(android): boot read-only emulators by default

* feat(iOS): support --headless config (#3304)

BREAKING: opens Simulator app by default unless the headless mode is enabled

* feat: drop Mocha support (#3310)

BREAKING: Detox users should migrate to Jest

* feat(android): remove deprecated native IdlePolicyConfig (#3332)

BREAKING CHANGE

* feat: drop device.appLaunchArgs [options] argument (#3360)

BREAKING: use device.appLaunchArgs.shared for permanent operations

* feat: remove ios.none device type (#3361)

* feat: undeprecate device.relaunchApp() (#3362)

* feat(config): remove legacy dash-based props (#3371)

BREAKING: removes test-runner and runner-config props
from Detox global config. Use testRunner and runnerConfig
instead.

* feat(config): drop support for the all-in-one configuration format (#3386)

BREAKING: please migrate to the new { apps, devices, configurations }
schema that Detox has been already using for more than a year.

* feat: drop jest<27.2.5 support (#3392)

BREAKING: please migrate your projects to Jest 28.x or 27.x

* fix(ios): headless mode

* feat: new global lifecycle for Detox (#3333)

* fix(cli): forward env overrides anyway

* feat(config): add testRunner.forwardEnv

Also, fixes --inspect-brk debugging experience.
Now the entire debug happens in a single test runner process.

* feat(api): detoxInternals.tracing.createEventStream

* feat(config): add reversePorts to app config (#3610)

* fix(Android): pass `headless` config param to the AVD validator. (#3614)

* feat(cli): add reset-lock-file command

* website: add Showcase page

* website: homepage changes

* feat(cli): drop --device-launch-args arg (#3665)

BREAKING: use --device-boot-args instead

Co-authored-by: Asaf Korem <asaf.korem@gmail.com>
Co-authored-by: d4vidi <amit.d4vidi@gmail.com>
Co-authored-by: jasonbariwix <jasonba@wix.com>
Co-authored-by: Yevheniia Hlovatska <33955728+evgeniyaglovatskaya@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant