ember-test-waiters icon indicating copy to clipboard operation
ember-test-waiters copied to clipboard

Quest: Prep for v4: V2 Addon conversion

Open NullVoxPopuli opened this issue 2 years ago • 0 comments

NOTE: the main branch will not be releasable during this time, because we need to complete the plan, so that there is minimal/zero disruption to folks' test suites.

Here is a preview of what's in the next major:

  • https://github.com/emberjs/ember-test-waiters/pull/470

In order of blockers:

  • [x] create v3 branch from this commit -- done: https://github.com/emberjs/ember-test-waiters/tree/v3
    • [x] release another v3 version, since the types fix is still unreleased. we should keep changes on this branch to the bare minimum, as we don't want to need to sync back to main unless we really have to. NOTE that the v3 branch is a snapshot of what this repo looked like before everything is this quest issues started happening
  • [x] https://github.com/emberjs/ember-test-waiters/pull/454
  • [x] https://github.com/emberjs/ember-test-waiters/pull/453
  • [x] https://github.com/emberjs/ember-test-waiters/pull/452

Can happen in any order

  • [x] extract test-app(s)
    • [x] create boilerplate for all test apps at once, so the following has more reasonable diffs https://github.com/emberjs/ember-test-waiters/pull/460
    • [x] extract tests from addon to their own test-app https://github.com/emberjs/ember-test-waiters/pull/463
    • [x] separate test-app for ember-concurrency@v3 (it has babel transforms, and the types are different) https://github.com/emberjs/ember-test-waiters/pull/465
    • [x] separate test-app for ember-concurrency@v2 (it requires ember-concurrency-ts, which uses a version of ComputedProperty which is different from the built-in types) https://github.com/emberjs/ember-test-waiters/pull/464
    • [x] separate test-app with ember-fetch@v8
      • https://github.com/emberjs/ember-test-waiters/pull/471
    • [x] ensure all test-apps are type-checked
      • https://github.com/emberjs/ember-test-waiters/pull/473
  • [x] implement solution for force-highlander
    • [x] implement in main branch -- already implemented a long time ago via getGlobal and storing the WAITERS on globalThis.
  • [ ] convert @ember/test-waiters to a native package
    • https://github.com/emberjs/ember-test-waiters/pull/476
    • [ ] cleanup tasks
      • [ ] Do not import from 'ember' - this import path will be deprecated very soon
      • [ ] move duplicate WAITER_NAME handling to be based off the WAITERS' keys. (allows deleting code)
      • [ ] move the noop waiter to be a constant, rather than being initialized for every occurrence.
      • [ ] remove @ts-ignore from the test-apps
      • [ ] add support for native fetch -- coordinate with https://github.com/ember-cli/ember-fetch/issues/738
  • [ ] update README so that folks can discover how to best ensure only one copy of @ember/test-waiters is present across all their dependencies (which won't be required for the waiter system to work, but will be required to get improvements across the whole dep graph)
    • [ ] ~~add notes for addon authors to utilize peerDependencies with @ember/test-waiters (with permissive range, which would be allowed post-globalThis usage)~~ with state held on globalThis, we don't need peerDependencies, we can allow duplicates of test-waiters. Using dependencies instead of peerDependencies can help make installation experience smoother for folks, however everyone should end up having @ember/test-waiters declared in their apps anyway.
    • [ ] note that peers however help with install time and debugging but won't be necessary for things to work.
  • [ ] release new version of ember-test-waiters that re-exports everything from @ember/test-waiters this is needed because some super old projects import from ember-test-waiters, and if someone is using v4 of test waiters, yet part of their dep graph uses the super old ember-test-waiters, we may want to do this to allow users control over which @ember/test-waiters their deep dep of ember-test-waiters is using. We may also want to "wait and see" if this problem even exists.
    • [ ] declare ember-test-waiters as deprecated https://www.npmjs.com/package/ember-test-waiters
  • [ ] review changes for changelog
    • https://github.com/emberjs/ember-test-waiters/pull/470
  • [ ] release v4

NullVoxPopuli avatar May 05 '23 21:05 NullVoxPopuli