Skip to content

Latest commit

 

History

History
102 lines (63 loc) · 5.55 KB

File metadata and controls

102 lines (63 loc) · 5.55 KB

Contributing

Thank you for showing an interest in contributing 💜

The goal of this browser extension is to help developers of Podium applications test and debug their apps.

The extension targets WebExtension Manifest V3 for cross-browser support.

If you're new to extension development, a great place to start is Mozilla's WebExtension workshop. Some other documentation for extension authors that may be helpful:

Building

To build the extension:

npm install --legacy-peer-deps
npm run build

The packaged extension is built to dist/.

Testing

We use web-ext to get a quick and simple development environment in Chrome and Firefox.

  1. Run npm install
  2. Run npm start

Chrome will open automatically.

  • In the browser window, go to a test application (for instance start server/example) and open the devtools to reveal the Podium panel.
  • Right click inside the panel and Inspect to open the "devtools for the devtool".

To test in Firefox, run npm run start:firefox.

Manual testing

The process is similar across browsers. Also note that some changes may require a reinstall or a refresh inside the browser settings.

Firefox

  • Open about:debugging and click This Firefox
  • Click Load Temporary Add-on
  • Select build/manifest.json

You'll have to repeat the steps the next time you start Firefox, and hit the refresh button when you rebuild the extension.

NB: you may have to give the Podium extension permission to run. Look for a dot on the extension and consider allowing it to always run on the domain you're working on.

Chrome

The approach should be similar in Chromium-based browsers.

  • Open chrome://extensions/
    • Toggle Developer mode on in the top-right if it's not on already.
  • Click Load unpacked
  • Select the build/ directory

The extension should now be installed and ready for testing. You may have to hit the refresh button when you rebuild the extension.

🚚 Continuous deployment

This repo uses conventional commits to automate releases with Semantic Release.

Some example commits and their release type:

Commit message Release type
fix: update a non-development dependency Patch. Bugfix release, updates for runtime dependencies.
feat: added a new option Foo Minor. New feature release.
refactor: removed a deprecated option Bar

BREAKING CHANGE: The Bar option has been removed.
Major. Breaking release, like removing an option.
(Note that the BREAKING CHANGE: token must be in the footer of the commit)

Working with next releases

When making larger changes that needs thorough testing or modules widely used, you can create a next release. Here is how:

  1. Create a branch next if one does not exist
  2. Make changes (or push whatever changes you have on a different branch onto next)
  3. When you are done, commit your changes with semantic-release in mind
  4. The workflows will run and publish a new version on the format: major.minor.patch-next.<next version> Where next version` is incremented each time you push a feat, fix or patch to the branch.

GitHub Actions

GitHub Actions workflows:

You'll find the workflow logs and results in the Actions tab.