Commit Graph

10153 Commits

Author SHA1 Message Date
Christopher Hiller 485239d599 chore(ci): run smoke test in all packages
This uses the [boneskull/nodejs-production-test-action](https://github.com/boneskull/nodejs-production-test-action) GH action to run a smoke test across all packages.

The action does the following:

1. Runs `npm pack` on each package, writing the tarball to a temp dir. This tarball contains the package as a user would `npm install` it.
2. Changes into the temp dir and runs `npm install <tarball>` on each
3. Runs a specified script (in our case, `test:smoke`) in each installed package's dir in `<tmp_dir>/node_modules`

Because `devDependencies` will not be present, this should avoid a class of issues where production deps are miscategorized as dev deps.

The action should probably use a separate temp dir for each--in the case of a dependency being present but only because some other package depends on it--but it's not smart enough to figure out peer dependencies yet.
2022-06-13 16:08:17 -07:00
Renovate Bot 78d0419225 chore(): update dependency lint-staged to v13 2022-06-13 16:07:18 -07:00
Christopher Hiller 965752f288 fix(appium): postinstall: never assume local appium if it is being installed globally
In addition, wrap the text to the terminal.  `wrap-ansi` is good b/c it
considers colors/emoji/etc.

Removed unused dep `word-wrap`.

Resolves #17054
2022-06-13 16:05:20 -07:00
Christopher Hiller 1e42c2378c fix(appium): fix incorrect count of errors and warnings
This was always displaying a count of _n + 1_ due to the way the summaries are concatenated.
2022-06-13 11:00:20 -07:00
Renovate Bot ec5063b2f3 chore(execute-driver-plugin): update dependency webdriverio to v7.20.2 2022-06-11 12:52:02 +00:00
Renovate Bot 3f50133789 chore(): update dependency ws to v8.8.0 2022-06-10 13:12:57 +00:00
Renovate Bot 6b8f78b70b chore(doctor): update dependency appium-adb to v9.7.0 2022-06-09 22:21:23 +00:00
Renovate Bot 5b1664ce0b chore(): update dependency @types/node to v16.11.39 2022-06-09 17:17:49 +00:00
Renovate Bot e4682bb467 chore(workflows): update actions/setup-node digest to eeb10cf 2022-06-07 13:34:14 +00:00
Renovate Bot d00398fe91 chore(): update webdriverio monorepo 2022-06-04 14:43:48 +00:00
Renovate Bot 3109c4b680 chore(): update dependency typescript to v4.7.3 2022-06-04 12:59:54 +00:00
Jonathan Lipps 4cf2cc92d0 Publish
- appium@2.0.0-beta.40
 - @appium/base-driver@8.5.7
 - @appium/base-plugin@1.9.2
 - @appium/doctor@1.16.22
 - @appium/docutils@0.0.7
 - @appium/fake-plugin@2.0.3
 - @appium/support@2.59.2
 - @appium/test-support@1.3.22
@appium/base-driver@8.5.7 @appium/base-plugin@1.9.2 @appium/doctor@1.16.22 @appium/docutils@0.0.7 @appium/fake-plugin@2.0.3 @appium/support@2.59.2 @appium/test-support@1.3.22 appium@2.0.0-beta.40
2022-06-03 19:08:16 -07:00
Jonathan Lipps f3d31202e0 fix(support): other color deps are also prod deps 2022-06-03 19:02:54 -07:00
Jonathan Lipps 5dd2e35ac9 fix(support): log-symbols is a prod dep 2022-06-03 19:02:54 -07:00
Jonathan Lipps 87f4b7c52c Publish
- appium@2.0.0-beta.39
 - @appium/base-driver@8.5.6
@appium/base-driver@8.5.6 appium@2.0.0-beta.39
2022-06-03 13:03:38 -07:00
Jonathan Lipps eae3efd1d7 fix(base-driver): don't assign log to jwproxy from opts 2022-06-03 12:48:27 -07:00
Renovate Bot dfd6b94e14 chore(workflows): pin dependencies 2022-06-03 10:42:53 -07:00
Jonathan Lipps ed2002d90d Publish
- appium@2.0.0-beta.38
 - @appium/execute-driver-plugin@2.0.2
 - @appium/fake-plugin@2.0.2
 - @appium/images-plugin@1.3.2
 - @appium/relaxed-caps-plugin@1.0.0-beta.9
 - @appium/universal-xml-plugin@1.0.0-beta.11
@appium/execute-driver-plugin@2.0.2 @appium/fake-plugin@2.0.2 @appium/images-plugin@1.3.2 @appium/relaxed-caps-plugin@1.0.0-beta.9 @appium/universal-xml-plugin@1.0.0-beta.11 appium@2.0.0-beta.38
2022-06-01 10:27:21 -07:00
Jonathan Lipps 916fede05f test(appium): update e2e test timeout since some npm tests are slow 2022-06-01 10:19:16 -07:00
Jonathan Lipps df64612d98 fix(execute-driver-plugin,fake-plugin,images-plugin,relaxed-caps-plugin,universal-xml-plugin): ensure babel runtime is present 2022-06-01 10:19:16 -07:00
Renovate Bot 7b720dc6ab chore(): update dependency @types/node to v16.11.38 2022-06-01 14:04:21 +00:00
Renovate Bot 54d8b44012 chore(): update dependency lint-staged to v12.5.0 2022-06-01 10:55:34 +00:00
Jonathan Lipps 62b97417fc Publish
- appium@2.0.0-beta.37
 - @appium/base-driver@8.5.5
 - @appium/base-plugin@1.9.1
 - @appium/doctor@1.16.21
 - @appium/docutils@0.0.6
 - @appium/eslint-config-appium@6.0.2
 - @appium/execute-driver-plugin@2.0.1
 - @appium/fake-driver@4.0.1
 - @appium/fake-plugin@2.0.1
 - @appium/gulp-plugins@7.0.2
 - @appium/images-plugin@1.3.1
 - @appium/opencv@1.0.9
 - @appium/relaxed-caps-plugin@1.0.0-beta.8
 - @appium/schema@0.0.7
 - @appium/support@2.59.1
 - @appium/test-support@1.3.21
 - @appium/types@0.2.5
 - @appium/universal-xml-plugin@1.0.0-beta.10
@appium/base-driver@8.5.5 @appium/base-plugin@1.9.1 @appium/doctor@1.16.21 @appium/docutils@0.0.6 @appium/eslint-config-appium@6.0.2 @appium/execute-driver-plugin@2.0.1 @appium/fake-driver@4.0.1 @appium/fake-plugin@2.0.1 @appium/gulp-plugins@7.0.2 @appium/images-plugin@1.3.1 @appium/opencv@1.0.9 @appium/relaxed-caps-plugin@1.0.0-beta.8 @appium/schema@0.0.7 @appium/support@2.59.1 @appium/test-support@1.3.21 @appium/types@0.2.5 @appium/universal-xml-plugin@1.0.0-beta.10 appium@2.0.0-beta.37
2022-05-31 16:52:23 -07:00
Jonathan Lipps f6cbfd77eb chore: publish, also set an explicit version for images since it was way off 2022-05-31 16:51:36 -07:00
Jonathan Lipps 5c7af8ee73 Publish
- appium@2.0.0-beta.36
 - @appium/base-driver@8.5.4
 - @appium/base-plugin@1.9.0
 - @appium/doctor@1.16.20
 - @appium/docutils@0.0.5
 - @appium/eslint-config-appium@6.0.1
 - @appium/execute-driver-plugin@2.0.0
 - @appium/fake-driver@4.0.0
 - @appium/fake-plugin@2.0.0
 - @appium/gulp-plugins@7.0.1
 - @appium/images-plugin@1.2.0
 - @appium/opencv@1.0.8
 - @appium/relaxed-caps-plugin@1.0.0-beta.7
 - @appium/schema@0.0.6
 - @appium/support@2.59.0
 - @appium/test-support@1.3.20
 - @appium/types@0.2.4
 - @appium/universal-xml-plugin@1.0.0-beta.9
@appium/base-driver@8.5.4 @appium/base-plugin@1.9.0 @appium/doctor@1.16.20 @appium/docutils@0.0.5 @appium/eslint-config-appium@6.0.1 @appium/execute-driver-plugin@2.0.0 @appium/fake-driver@4.0.0 @appium/fake-plugin@2.0.0 @appium/gulp-plugins@7.0.1 @appium/images-plugin@1.2.0 @appium/opencv@1.0.8 @appium/relaxed-caps-plugin@1.0.0-beta.7 @appium/schema@0.0.6 @appium/support@2.59.0 @appium/test-support@1.3.20 @appium/types@0.2.4 @appium/universal-xml-plugin@1.0.0-beta.9 appium@2.0.0-beta.36
2022-05-31 16:44:51 -07:00
Christopher Hiller ac8e0e0451 chore(appium,base-driver,base-plugin,doctor,docutils,eslint-config-appium,execute-driver-plugin,fake-driver,fake-plugin,gulp-plugins,images-plugin,opencv,relaxed-caps-plugin,schema,support,test-support,types,universal-xml-plugin): fix engines field 😂 2022-05-31 16:26:43 -07:00
Renovate Bot f5a2b601ff chore(appium): update dependency yaml to v2.1.1 2022-05-31 15:42:56 +00:00
Renovate Bot 8feb8bb442 chore(): update dependency lint-staged to v12.4.3 2022-05-31 12:46:39 +00:00
Renovate Bot 8e3137c050 chore(gulp-plugins): update dependency replace-in-file to v6.3.5 2022-05-30 12:09:30 +00:00
Renovate Bot f03b404a9a chore(gulp-plugins): update dependency replace-in-file to v6.3.3 2022-05-27 14:43:04 +00:00
Renovate Bot 9f0b2364e4 chore(doctor): update dependency appium-adb to v9.6.1 2022-05-27 13:07:35 +00:00
Renovate Bot 81ff2a3082 chore(): update dependency ws to v8.7.0 2022-05-27 11:08:45 +00:00
Renovate Bot e5e8f9b874 chore(test-support): update dependency @babel/runtime to v7.18.3 2022-05-26 15:29:43 -07:00
Renovate Bot a33416dd52 chore(): update dependency typescript to v4.7.2 2022-05-26 15:29:12 -07:00
Christopher Hiller 681f54e847 chore(appium): better error handling during extension loading
Currently, failing to `require()` an extension and access its "main class" can result in a rather cryptic `TypeError`.

This adds two specific errors when:

- The path to the extension cannot be found.  This could happen if someone, say, deletes the extension using `rm -rf`, but leaves `extensions.yaml` intact.
- The extension can be found, but its main class cannot be found.  This would be due to an invalid extension and is generally not "user error"

Added some tests for it.
2022-05-26 15:21:41 -07:00
Christopher Hiller d09c915dad fix(relaxed-caps-plugin): export RelaxedCapsPlugin class
extensions _may_ use default exports, but they _must_ use named exports.

Closes #16981
2022-05-26 15:21:41 -07:00
Christopher Hiller 91962384c9 feat(universal-xml-plugin): use peer deps
BREAKING CHANGE:

`@appium/universal-xml-plugin` now expects to be installed alongside `appium`.

# Conflicts:
#	packages/universal-xml-plugin/lib/logger.js
#	packages/universal-xml-plugin/lib/plugin.js
#	packages/universal-xml-plugin/test/unit/plugin.spec.js

# Conflicts:
#	packages/universal-xml-plugin/test/unit/plugin.spec.js
2022-05-26 12:07:17 -07:00
Christopher Hiller d06ceb5472 feat(images-plugin): use peer deps 2022-05-26 12:07:17 -07:00
Christopher Hiller a98e0e8201 feat(relaxed-caps-plugin): use peer deps
BREAKING CHANGE:

`@appium/relaxed-caps-plugin` now expects to be installed alongside `appium`.
2022-05-26 12:07:17 -07:00
Christopher Hiller aabe804d7e feat(execute-driver-plugin): use peer deps
BREAKING CHANGE:

`@appium/execute-driver-plugin` now expects to be installed alongside `appium`.

# Conflicts:
#	packages/execute-driver-plugin/lib/execute-child.js
#	packages/execute-driver-plugin/lib/plugin.js
#	packages/execute-driver-plugin/test/e2e/plugin.e2e.spec.js

# Conflicts:
#	packages/execute-driver-plugin/test/e2e/plugin.e2e.spec.js
2022-05-26 12:07:17 -07:00
Christopher Hiller a0edfca8ef chore(appium,fake-driver,fake-plugin): hardcode peer dep version
Lerna won't manage this for us.  Further, `peerDependencies` should be as broad as possible.  We can narrow this range later, if necessary.  Narrowing the range will be a breaking change in the plugin.
2022-05-26 12:07:17 -07:00
Christopher Hiller eb460b915a feat(fake-plugin): use peer deps
BREAKING CHANGE:

This now requires a peer dependency on `appium`
2022-05-26 12:07:17 -07:00
Christopher Hiller 189e85fc0b feat(fake-driver): use peer deps
BREAKING CHANGE:

This now requires a peer dependency on `appium`
2022-05-26 12:07:17 -07:00
Christopher Hiller 6b224f545f feat(appium,support): extension check improvements
This PR changes a few things:

- Extension problems are now displayed correctly at `appium server` startup.  This was done by changing the default `npmlog` level, then reesetting it to `silent` when `winston` takes over (in `logsink.init()`)
- Extension problems are also displayed at install time.
- Improved performance of `appium <driver|plugin> install` in many cases by actually checking if the thing is installed _before_ installing it.
- `ExtensionCommand` uses a new console logging mechanism (`console` in `@appium/support`) tailored to CLI usage, since it is intended to be run via the CLI.  Using this, we handle the result of extension checks both at server runtime and during CLI tool usage in the appropriate manner.  The implementation is just a dumb wrapper around `console.log` and should eventually be removed when we revisit the logging architecture.
- Separated extension checks further into "errors" ("Problems") and "warnings".  As these demand distinct log levels, `ExtensionConfig` no longer accepts a `logFn` in its constructor (since this restricted to a single level ("error"))
- Generally improved specificity, helpfulness, and reduced extraneous verbosity (like this sentence) of warnings
- Removed `strip-colors`, as this functionality is present in `@colors/colors`.  The E2E test helper now automatically strips colors from child processes.
- More tests
- Change `e2e-helpers` to use `CliConsole` for command logging output during tests
- Change the "uninstall" command to use `npm uninstall`, since `rm -rf` will hose `node_modules` if the current project has a dependency on `appium` (in other words, if they are otherwise using a package manager to manage extensions).  This is slower but safer.
2022-05-26 12:07:17 -07:00
Renovate Bot 3316ba65ef chore(): update dependency type-fest to v2.13.0 2022-05-25 20:37:45 +00:00
Renovate Bot c5a51c24b2 chore(gulp-plugins): update dependency del to v6.1.1 2022-05-25 17:22:23 +00:00
Renovate Bot 4d6c114fe8 chore(gulp-plugins): update babel monorepo to v7.18.2 2022-05-25 14:28:48 +00:00
Renovate Bot cf7a133cc6 chore(): update dependency lint-staged to v12.4.2 2022-05-25 11:57:29 +00:00
Renovate Bot 75da9aa6a2 chore(doctor): update dependency appium-adb to v9.6.0 2022-05-22 12:48:01 +00:00
Renovate Bot 92b17d6c2e chore(gulp-plugins): update babel monorepo to v7.18.0 2022-05-20 14:59:10 -07:00