blob: d0d6ee20ce00e7850f4731aaa6cca45c3bd120fa [file] [log] [blame] [view]
avm99963bf0849a2020-08-08 16:16:04 +02001# TW Power Tools
avm99963a6eedcf2020-12-08 14:08:57 +01002[![Available in the Chrome Web Store](docs/resources/ChromeWebStore_Badge_v2_206x58.png)](https://chrome.google.com/webstore/detail/infinite-scroll-in-tw/hpgakoecmgibigdbnljgecablpipbajb)
avm9996303d54092020-01-18 21:33:16 +01003
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)
avm999634c584882020-08-23 16:08:50 +020013for that release) by running `bash tagRelease.bash --version vx`. Note that the
14tag must be pushed to Gerrit after being created.
avm99963b69eb3d2020-08-20 02:03:44 +0200152. Build the extension for both the stable and beta channels (this is explained
16in the next section). This will output a ZIP file for each release channel and
17each supported browser.
avm999636c357302020-08-09 19:54:08 +020018
avm99963b69eb3d2020-08-20 02:03:44 +020019Afterwards, the release/build files must be submitted to the Chrome Web Store
20and addons.mozilla.org.
avm999636c357302020-08-09 19:54:08 +020021
22### Submitting to the Chrome Web Store
avm99963b69eb3d2020-08-20 02:03:44 +0200231. [Upload both release files](https://developer.chrome.com/webstore/publish#upload-your-item)
24to the Chrome Web Store, one for each release channel.
252. [Submit both releases](https://developer.chrome.com/webstore/publish#submit-your-item-for-publishing)
26to be reviewed by the Chrome Web Store team, but in the case of the stable
27channel uncheck the "Publish automatically after it has passed review" option.
283. Upload the beta release file to the
29[GitHub releases page](https://github.com/avm99963/infinitegforums/releases)
30under the newly created tag. Mark that release as a pre-release at GitHub.
avm999636c357302020-08-09 19:54:08 +0200314. Wait until the beta release is reviewed and approved by Google.
avm99963b69eb3d2020-08-20 02:03:44 +0200325. Test again the extension by using the beta channel. Check if the options have
33been transfered correctly from version to version, and wait some days (for
34instance between 3 and 5 days) to see if other people report issues with the
35updated version.
366. If everything goes well, publish the update in the stable channel. The
37updated version should have already been reviewed by the Chrome Web Store team
38at this time.
397. Update the release file in the GitHub releases page by removing the beta
40release file and uploading the stable release file. Also, remove the pre-release
41label.
avm99963666575f2020-08-08 15:40:39 +020042
avm99963b69eb3d2020-08-20 02:03:44 +020043If during this process the release wasn't approved by Google or an issue was
44found during beta testing, a new release which fixes this should be created.
avm99963666575f2020-08-08 15:40:39 +020045
avm999636c357302020-08-09 19:54:08 +020046### Submitting to addons.mozilla.org
47The procedure is similar to the one with the Chrome Web Store.
48
avm99963b69eb3d2020-08-20 02:03:44 +020049@TODO: Add more details once the first version of the extension has been
50uploaded to addons.mozilla.org.
avm999636c357302020-08-09 19:54:08 +020051
avm99963666575f2020-08-08 15:40:39 +020052## Build the extension
avm99963b69eb3d2020-08-20 02:03:44 +020053A zip file with the contents of the extension, which can be uploaded to the
54Chrome Web Store and addons.mozilla.org, can be created with any of the
55following procedures:
avm9996303d54092020-01-18 21:33:16 +010056
avm999636c357302020-08-09 19:54:08 +020057### Using the release.bash script
avm99963b69eb3d2020-08-20 02:03:44 +020058Run `bash release.bash -h` in order to learn how to use this command. To
59summarize, the command accepts the `--channel` and `--browser` flags (or their
60short versions `-c` and `-b`).
avm99963666575f2020-08-08 15:40:39 +020061
avm99963b69eb3d2020-08-20 02:03:44 +020062As an example, if you wanted to create a ZIP file of the beta-branded extension
63targeted for Firefox, you would run `bash release.bash -c beta -b gecko`.
avm999636c357302020-08-09 19:54:08 +020064
65### Using make
avm99963b69eb3d2020-08-20 02:03:44 +020066You can also use _make_ to build the extension. This is just a wrapper for the
67`release.bash` command.
avm999636c357302020-08-09 19:54:08 +020068
avm99963b69eb3d2020-08-20 02:03:44 +020069Run `make all` to build the extension for all the available channels and
70browsers. You can also run `make {target}` where `{target}` is one of the
71following: `chromium-stable`, `chromium-beta`, `gecko-stable`, `gecko-beta`.
avm999636c357302020-08-09 19:54:08 +020072
avm99963b69eb3d2020-08-20 02:03:44 +020073Run `make clean` to clean all the release files (this removes the `out` folder,
74which is where the release files are saved).
avm9996303d54092020-01-18 21:33:16 +010075
Alex Ivanov4f3df182020-04-10 09:33:05 +030076## Testing notes
avm99963b69eb3d2020-08-20 02:03:44 +020077When testing the extension during development, you don't have to build the
78extension each time you want to import an updated version to Chrome/Firefox.
79Instead, run `bash generateManifest.bash {browser}` once, where `{browser}`
80is either `CHROMIUM` or `GECKO`, and this will generate a `manifest.json`
81file for the specified browser in the `src` directory. Now, you can load the
82`src` folder directly in the browser in order to import the extension, which
83removes the need to build it. When the `manifest.gjson` file is modified, you'll
84have to generate the manifest again.
avm999636c357302020-08-09 19:54:08 +020085
avm99963b69eb3d2020-08-20 02:03:44 +020086To test translations, you might want to set your browser's locale. This section
87tells you how to set the locale in
88[Windows](https://developer.chrome.com/extensions/i18n#testing-win),
89[Mac OS X](https://developer.chrome.com/extensions/i18n#testing-mac),
90[Linux](https://developer.chrome.com/extensions/i18n#testing-linux),
91and [Chrome OS](https://developer.chrome.com/extensions/i18n#testing-chromeos).
avm99963666575f2020-08-08 15:40:39 +020092
93## Beta channel
avm99963b69eb3d2020-08-20 02:03:44 +020094The beta channel for Chrome is available
95[here](https://chrome.google.com/webstore/detail/infinite-scroll-in-tw-bet/memmklnkkhifmflmidnflfcdepamljef).