blob: c3bf730d56ab53d987a607c4853ff214c1169dea [file] [log] [blame] [view]
avm99963bf0849a2020-08-08 16:16:04 +02001# TW Power Tools
avm9996303d54092020-01-18 21:33:16 +01002[![Available in the Chrome Web Store](https://developer.chrome.com/webstore/images/ChromeWebStore_Badge_v2_206x58.png)](https://chrome.google.com/webstore/detail/infinite-scroll-in-tw/hpgakoecmgibigdbnljgecablpipbajb)
3
avm99963b69eb3d2020-08-20 02:03:44 +02004An extension which brings several enhancements to the Google Forums and the
5Community Console.
avm99963bf0849a2020-08-08 16:16:04 +02006
avm99963666575f2020-08-08 15:40:39 +02007## Release cycle
avm99963b69eb3d2020-08-20 02:03:44 +02008When the code in the `master` branch is considered to be stable, a release can
9be made. This is the procedure:
avm99963666575f2020-08-08 15:40:39 +020010
avm99963b69eb3d2020-08-20 02:03:44 +0200111. Tag the last commit with a version number (in the format `vx`, where x is the
12extension's [version number](https://developer.chrome.com/extensions/manifest/version)
13for that release) by running `git tag -a vx -m "vx"`. Note that the tag should
14be an annotated tag and not a lightweight tag, and it must be pushed to Gerrit
15after being created.
162. Build the extension for both the stable and beta channels (this is explained
17in the next section). This will output a ZIP file for each release channel and
18each supported browser.
avm999636c357302020-08-09 19:54:08 +020019
avm99963b69eb3d2020-08-20 02:03:44 +020020Afterwards, the release/build files must be submitted to the Chrome Web Store
21and addons.mozilla.org.
avm999636c357302020-08-09 19:54:08 +020022
23### Submitting to the Chrome Web Store
avm99963b69eb3d2020-08-20 02:03:44 +0200241. [Upload both release files](https://developer.chrome.com/webstore/publish#upload-your-item)
25to the Chrome Web Store, one for each release channel.
262. [Submit both releases](https://developer.chrome.com/webstore/publish#submit-your-item-for-publishing)
27to be reviewed by the Chrome Web Store team, but in the case of the stable
28channel uncheck the "Publish automatically after it has passed review" option.
293. Upload the beta release file to the
30[GitHub releases page](https://github.com/avm99963/infinitegforums/releases)
31under the newly created tag. Mark that release as a pre-release at GitHub.
avm999636c357302020-08-09 19:54:08 +0200324. Wait until the beta release is reviewed and approved by Google.
avm99963b69eb3d2020-08-20 02:03:44 +0200335. Test again the extension by using the beta channel. Check if the options have
34been transfered correctly from version to version, and wait some days (for
35instance between 3 and 5 days) to see if other people report issues with the
36updated version.
376. If everything goes well, publish the update in the stable channel. The
38updated version should have already been reviewed by the Chrome Web Store team
39at this time.
407. Update the release file in the GitHub releases page by removing the beta
41release file and uploading the stable release file. Also, remove the pre-release
42label.
avm99963666575f2020-08-08 15:40:39 +020043
avm99963b69eb3d2020-08-20 02:03:44 +020044If during this process the release wasn't approved by Google or an issue was
45found during beta testing, a new release which fixes this should be created.
avm99963666575f2020-08-08 15:40:39 +020046
avm999636c357302020-08-09 19:54:08 +020047### Submitting to addons.mozilla.org
48The procedure is similar to the one with the Chrome Web Store.
49
avm99963b69eb3d2020-08-20 02:03:44 +020050@TODO: Add more details once the first version of the extension has been
51uploaded to addons.mozilla.org.
avm999636c357302020-08-09 19:54:08 +020052
avm99963666575f2020-08-08 15:40:39 +020053## Build the extension
avm99963b69eb3d2020-08-20 02:03:44 +020054A zip file with the contents of the extension, which can be uploaded to the
55Chrome Web Store and addons.mozilla.org, can be created with any of the
56following procedures:
avm9996303d54092020-01-18 21:33:16 +010057
avm999636c357302020-08-09 19:54:08 +020058### Using the release.bash script
avm99963b69eb3d2020-08-20 02:03:44 +020059Run `bash release.bash -h` in order to learn how to use this command. To
60summarize, the command accepts the `--channel` and `--browser` flags (or their
61short versions `-c` and `-b`).
avm99963666575f2020-08-08 15:40:39 +020062
avm99963b69eb3d2020-08-20 02:03:44 +020063As an example, if you wanted to create a ZIP file of the beta-branded extension
64targeted for Firefox, you would run `bash release.bash -c beta -b gecko`.
avm999636c357302020-08-09 19:54:08 +020065
66### Using make
avm99963b69eb3d2020-08-20 02:03:44 +020067You can also use _make_ to build the extension. This is just a wrapper for the
68`release.bash` command.
avm999636c357302020-08-09 19:54:08 +020069
avm99963b69eb3d2020-08-20 02:03:44 +020070Run `make all` to build the extension for all the available channels and
71browsers. You can also run `make {target}` where `{target}` is one of the
72following: `chromium-stable`, `chromium-beta`, `gecko-stable`, `gecko-beta`.
avm999636c357302020-08-09 19:54:08 +020073
avm99963b69eb3d2020-08-20 02:03:44 +020074Run `make clean` to clean all the release files (this removes the `out` folder,
75which is where the release files are saved).
avm9996303d54092020-01-18 21:33:16 +010076
Alex Ivanov4f3df182020-04-10 09:33:05 +030077## Testing notes
avm99963b69eb3d2020-08-20 02:03:44 +020078When testing the extension during development, you don't have to build the
79extension each time you want to import an updated version to Chrome/Firefox.
80Instead, run `bash generateManifest.bash {browser}` once, where `{browser}`
81is either `CHROMIUM` or `GECKO`, and this will generate a `manifest.json`
82file for the specified browser in the `src` directory. Now, you can load the
83`src` folder directly in the browser in order to import the extension, which
84removes the need to build it. When the `manifest.gjson` file is modified, you'll
85have to generate the manifest again.
avm999636c357302020-08-09 19:54:08 +020086
avm99963b69eb3d2020-08-20 02:03:44 +020087To test translations, you might want to set your browser's locale. This section
88tells you how to set the locale in
89[Windows](https://developer.chrome.com/extensions/i18n#testing-win),
90[Mac OS X](https://developer.chrome.com/extensions/i18n#testing-mac),
91[Linux](https://developer.chrome.com/extensions/i18n#testing-linux),
92and [Chrome OS](https://developer.chrome.com/extensions/i18n#testing-chromeos).
avm99963666575f2020-08-08 15:40:39 +020093
94## Beta channel
avm99963b69eb3d2020-08-20 02:03:44 +020095The beta channel for Chrome is available
96[here](https://chrome.google.com/webstore/detail/infinite-scroll-in-tw-bet/memmklnkkhifmflmidnflfcdepamljef).