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:
- MDN - Build a cross-browser extension
- Chrome - Your first extension
- MDN - Your first extension
- Chrome - Extend DevTools
To build the extension:
npm install --legacy-peer-deps
npm run build
The packaged extension is built to dist/.
We use web-ext to get a quick and simple development environment in Chrome and Firefox.
- Run
npm install - 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.
The process is similar across browsers. Also note that some changes may require a reinstall or a refresh inside the browser settings.
- 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.
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.
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 BarBREAKING 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) |
When making larger changes that needs thorough testing or modules widely used, you can create a next release. Here is how:
- Create a branch
nextif one does not exist - Make changes (or push whatever changes you have on a different branch onto
next) - When you are done, commit your changes with semantic-release in mind
- The workflows will run and publish a new version on the format:
major.minor.patch-next.<next version> Wherenext version` is incremented each time you push a feat, fix or patch to the branch.
GitHub Actions workflows:
You'll find the workflow logs and results in the Actions tab.