The repository uses PNPM for monorepo management.
$ npm i -g pnpm
git clone https://github.com/yume-chan/ya-webadb.git
cd ya-webadb
$ pnpm install
$ pnpm build
Tests are written using Node.js built-in test runner. Node.js v20.16.0 and later might have a bug reporting code coverage: nodejs/node#54240
$ pnpm test
$ pnpm lint
$ pnpm recursive update --latest --interactive
$ pnpm dedupe
Renovate is also enabled, but since it doesn't update package.json
files, it's recommended to run the above commands manually.
Run pnpm build
and pnpm test
to make sure everything works after updating dependencies.
When creating a pull request, use changeset
command to add a new changelog:
$ pnpm changeset
Then follow the instructions to select changed packages and write a summary of the changes.
NPM packages are released using GitHub Actions. Create a new tag and push it to the repository to trigger the release workflow.
pnpm changeset version
git add -A
git commit -m "chore: release new version"
git push
git tag vX.Y.Z
git push --tags
WebUSB and Service Worker (which is used for file downloading) requires Secure Context (HTTPS or localhost).
- If you have a domain name, add a free SSL certificate from Let's Encrypt.
- If you are using IP address or can't get a free SSL certificate, either
- Add a self-issued SSL certificate and trust it on every device accessing it.
- Add the hostname to
chrome://flags/#unsafely-treat-insecure-origin-as-secure
on every device accessing it.