Commit Graph

10167 Commits

Author SHA1 Message Date
Christopher Hiller 44283b4c4e chore(appium,docutils,ci): remove doc gen from CI
What used to be the `generate-docs` script no longer works, since the `commands-yml` directory no longer exists.

Unclear to me what should be done here at this point, but it makes the "build command documentation" job pointless.
2022-12-06 11:21:05 -08:00
Christopher Hiller 4dfe1610b5 fix(fake-driver): copy screen.png on build 2022-12-06 11:21:05 -08:00
Christopher Hiller 7247708050 chore(ci): remove old script from CI 2022-12-06 11:21:05 -08:00
Christopher Hiller 28adee66a4 chore: increase default test timeout in CI 2022-12-06 11:21:05 -08:00
Christopher Hiller 3c32112c20 chore: use tsc for compilation across the board
- `@appium/gulp-plugins` does not use `tsc` and continues to use...whatever it uses.
- `@appium/doctor` now has generated declarations, though I didn't bother to do anything with the types
- rewrote swaths of build scripts:
  - removed the `fix` and `lint` scripts from each workspace (package) since I don't think they get used and they are of limited value
  - for tests and autoinstallation of extensions, added `ts-node` for on-the-fly compilation
  - workspaces _can_ define their own `build` and `clean` scripts (both should be required if either is used).  these do not currently get run when running `npm run dev`, but they do occur on a bare `npm install` from the monorepo root or a `npm run reinstall`.
  - `npm run rebuild` does a fresh rebuild, but does not clean any `node_modules` dirs nor does it reinstall anything.
  - removed `prepublishOnly` since `preversion` does the same thing
  - `npm test` now runs `build`/`lint` in parallel
- postinstall script of `appium` ("autoinstall") script now must call `npm run build` if in a fresh dev environment. this is because a) lifecycle scripts of packages run before lifecycle scripts in the monorepo root, and b) `postinstall` runs before `prepare`. so there's really no way around it; even using `ts-node` fails because other modules depend on `@appium/support/index.js` which expects the pkg to be built.

Closes #17746
Closes #17807
2022-12-06 11:21:05 -08:00
Christopher Hiller faa92e2bb1 chore: use foreground-scripts=true in .npmrc
this will give more visibility into what is happening during install
2022-12-06 11:21:05 -08:00
Christopher Hiller a7f5f1ec33 fix(build): set target to ES2020
As per https://kangax.github.io/compat-table/es2016plus/ our soon-to-be-target lowest platform (Node.js v14.17.0) supports ES2020 in full.  Except tail call optimization, because reasons
2022-12-06 11:21:05 -08:00
Christopher Hiller 3955f5a156 chore(appium): experimental build via tsc 2022-12-06 11:21:05 -08:00
renovate[bot] 07d6ef6b8c fix(support): update dependency axios to v1.2.1 2022-12-06 14:04:30 +00:00
renovate[bot] 223c784439 chore(deps): update dependency @types/node to v18.11.11 2022-12-06 10:50:35 +00:00
Christopher Hiller 406acc185e chore: do not format .ts.map files 2022-12-05 15:31:24 -08:00
renovate[bot] 062090ed91 fix(support): update dependency @types/uuid to v9 2022-12-05 11:48:44 -08:00
renovate[bot] af8560b625 chore(deps): update dependency sync-monorepo-packages to v1 2022-12-05 11:48:33 -08:00
Christopher Hiller 88defdf0fe chore: improve package-lock.json merging
So what this does is treats `package-lock.json` as a text file _except_ when attempting to merge. The result will be that if `package-lock.json` is in a conflicted state, it will not contain conflict markers within the file itself like a regular text file would; it will only have the "conflicted" flag set by git.  This means that to resolve a conflict in `package-lock.json` going forward, all one needs to do is run `npm install && git add -A package-lock.json`, as `npm` will fix `package-lock.json` itself.  In theory.
2022-12-05 11:48:04 -08:00
renovate[bot] 3e99ae185b chore(deps): update dependency lint-staged to v13.1.0 2022-12-05 11:03:10 +00:00
renovate[bot] 91f881410c fix(typedoc-plugin-appium): update dependency typedoc-plugin-markdown to v3.14.0 2022-12-04 16:05:20 +00:00
renovate[bot] 3bf9358291 fix(typedoc-plugin-appium): update dependency type-fest to v3.3.0 2022-12-04 13:37:36 +00:00
renovate[bot] cf34e4c17a fix(gulp-plugins): update dependency eslint to v8.29.0 2022-12-04 11:52:28 +00:00
renovate[bot] 2f53e9a34a chore(docutils): update dependency mkdocs-material-extensions to v1.1.1 2022-12-04 09:55:19 +00:00
renovate[bot] 91e60fdbbd chore(docutils): update dependency mkdocs-material to v8.5.11 2022-12-03 17:29:23 +00:00
renovate[bot] 8a285cdece fix(doctor): update dependency appium-adb to v9.10.18 2022-12-03 14:38:39 +00:00
renovate[bot] d888093057 chore(docutils): update dependency mkdocs-material to v8.2.16 2022-12-03 13:02:23 +00:00
renovate[bot] f6aad9cd9b chore(docutils): update dependency mkdocs to v1.4.2 2022-12-03 10:29:02 +00:00
Christopher Hiller 78a4b3488e chore(ci): add commitlint workflow 2022-12-02 15:05:32 -08:00
Christopher Hiller 9d857e429a chore: use commitlint
This adds [commitlint](https://npm.im/@commitlint/cli) to the project which validates commit messages against the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec via a preset.

Removed the [pre-commit](https://npm.im/pre-commit) package as it has not been updated in six (6) years; replaced with [husky](https://typicode.github.io/husky/) which is widely-used and full-featured.

Customized commitlint so that it will allow commit messages lines of arbitrary length; this is set to 100 by default, but is not in the specification.  If someone has a good reason that we _shouldn't_ disable that rule, please say something!

Closes #17844
2022-12-02 15:05:32 -08:00
renovate[bot] b297bb8891 fix(support): update dependency klaw to v4 2022-12-02 14:03:02 -08:00
renovate[bot] 68778ca5c5 fix(support): update dependency npmlog to v7 2022-12-02 14:02:53 -08:00
Christopher Hiller f3f63f52ab chore(typedoc-plugin-appium): remove jsx cruft from tsconfig 2022-12-02 12:44:31 -08:00
Christopher Hiller 10673f95dd chore(typedoc-plugin-appium): eliminate loop 2022-12-02 12:44:31 -08:00
Christopher Hiller 73299a0026 fix(typedoc-plugin-appium): fix external driver conversion
also rename template
2022-12-02 12:44:31 -08:00
Christopher Hiller 8f8e23af45 chore(typedoc-plugin-appium): rename "Routes" to "Commands" in template 2022-12-02 12:44:31 -08:00
Christopher Hiller 5333318e59 docs(docutils): add stub section about use in extensions
Co-authored-by: Jonathan Lipps <jlipps@gmail.com>
2022-12-02 12:44:31 -08:00
Christopher Hiller bd7cee18f8 docs(docutils): update subheading
Co-authored-by: Jonathan Lipps <jlipps@gmail.com>
2022-12-02 12:44:31 -08:00
Christopher Hiller 89e694481a docs(appium): rename nav item "Reference"
Co-authored-by: Jonathan Lipps <jlipps@gmail.com>
2022-12-02 12:44:31 -08:00
Christopher Hiller 215c3977ef chore(typedoc-plugin-appium): fix intra-module links; eliminate a loop in builder 2022-12-02 12:44:31 -08:00
Christopher Hiller 3245ede564 chore(typedoc-plugin-appium): a load of cleanup 2022-12-02 12:44:31 -08:00
Christopher Hiller d9f7a33664 chore(typedoc-plugin-appium): fix smoke test 2022-12-02 12:44:31 -08:00
Christopher Hiller 3bfb4671a9 chore(typedoc-plugin-appium): refactors for peer review 2022-12-02 12:44:31 -08:00
Christopher Hiller 346556557c chore(appium,docutils): proof-of-concept for use with mkdocs 2022-12-02 12:44:31 -08:00
Christopher Hiller 072dc9cdd8 chore(typedoc): mostly comments
also made some control flow nicer
2022-12-02 12:44:31 -08:00
Christopher Hiller a9085927ae chore(typedoc): hide breadcrumbs
- sort/format `typedoc.json`
- run `typedoc` with verbose logs
2022-12-02 12:44:31 -08:00
Christopher Hiller d958115029 chore(types): tweak/organize imports 2022-12-02 12:44:31 -08:00
Christopher Hiller f1773a8a8b chore(typedoc-plugin-appium): try to make a few things more clear
response to PR review

- "ref" is not used as a suffix in any vars. if it's a reflection its usually ending in "refl", or if it's just data, it ends in "data"
- short-circuited deep loop(s)
- many more types and type guards to attempt to simplify the crawling of reflections for data
2022-12-02 12:44:31 -08:00
Christopher Hiller be7a479b4b feat(typedoc-plugin-appium): create appium typedoc plugin
This is a typedoc plugin based on `typedoc-plugin-markdown`.

It outputs everything that plugin outputs _plus_ it outputs information about commands (API endpoints) as defined in drivers, plugins, and the builtins in `@appium/base-driver`

It's written in TS because that was the easiest way, because a) there was some sort of disagreement between Babel and TS re: exports, and b) everything it's built on is written in TS.
2022-12-02 12:44:31 -08:00
Christopher Hiller 8886b8ef23 chore(renovate): fix typo 2022-12-02 11:16:13 -08:00
renovate[bot] 2a42ccd110 fix(support): update dependency which to v3 2022-12-01 16:41:24 -08:00
Christopher Hiller 3eba685e25 chore(deps): upgrade sync-monorepo-packages to v1.0.0
This also means we can remove `packages` from `lerna.json`
2022-12-01 16:38:18 -08:00
Christopher Hiller 0db4b2e75d docs(intro): update requirements doc 2022-12-01 16:38:18 -08:00
Christopher Hiller a1dbe6c43e chore!: set engines to minimum Node.js v14.17.0
BREAKING CHANGE: Appium now supports version range `^14.17.0 || ^16.13.0 || >=18.0.0`
2022-12-01 16:38:18 -08:00
Christopher Hiller 19b0684d76 chore(renovate): update semantic commit behavior
The current intended behavior (to use the "parent dir") as the scope is often or always broken.  An empty scope within parens is actually an invalid conventional commit message.  So instead of `chore():` it will be `chore:`.

We could instead pick a scope (like `deps` or something) but figured it was not important enough to do.
2022-12-01 16:38:10 -08:00