diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 0000000..af80880 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,24 @@ +**Before submitting your pull request** + +- [ ] I agree to license my code under the [MPL 2.0 license](https://www.mozilla.org/en-US/MPL/2.0/). +- [ ] I rebased my work on top of the main branch. +- [ ] I ran `npm test` and all tests passed. +- [ ] I added test coverages if relevant. + +# Description + +*Please include a summary of the changes including relevant motivation and context.* + +## Type of change + +*Select all that apply.* + +- [ ] Bug fix +- [ ] New feature +- [ ] Major change (fix or feature that would cause existing functionality to work differently than in the current version) + +Tag issues related to this pull request: + +* +* +* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 49657ab..48af53c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,35 +1,38 @@ # Contributing -Everyone is welcome to contribute to containers. Reach out to team members if you have questions: +## Requirements -- Matrix chat: [#containers:mozilla.org](https://matrix.to/#/#containers:mozilla.org) -- Email: containers@mozilla.com +* Firefox 91.1.0+ +* Git 2.13+ +* Node 7+ -## Filing bugs +## Getting Started -If you find a bug with containers, please file a issue. +1. Follow the instructions on [How to fork a repository][fork] +2. Fetch the locales: -Check first if the bug might already exist: https://github.com/mozilla/multi-account-containers/issues + ``` + cd multi-account-containers + git submobule update --init + ``` +3. Install the project dependencies + ``` + npm install --legacy-peer-deps + ``` +4. Run `npm run dev`. -[Open an issue](https://github.com/mozilla/multi-account-containers/issues/new) +## Translations -1. Visit about:support -2. Click "Copy raw data to clipboard" and paste into the bug. Alternatively copy the following sections into the issue: - - Application Basics - - Nightly Features (if you are in nightly) - - Extensions - - Experimental Features -3. Include clear steps to reproduce the issue you have experienced. -4. Include screenshots if possible. +The translations are located in `src/_locales`. This directory is a git +repository like any other. Before editing files in this folder, you need to: -## Sending Pull Requests +1. `cd src/_locales/` +2. `git checkout -b message-updates-yyyymmdd` +3. `git push -u origin message-updates-yyyymmdd` -Patches should be submitted as pull requests. When submitting patches as PRs: +You can then [open a pull request][pr] on [the l10n repository][l10n]. -- You agree to license your code under the project's open source license (MPL 2.0). -- Base your branch off the current master (see below for an example workflow). -- Add both your code and new tests if relevant. -- Run npm test to make sure all tests still pass. -- Please do not include merge commits in pull requests; include only commits with the new relevant code. - -See the main [README](./README.md) for information on prerequisites, installing, running and testing. +[fork]: https://docs.github.com/en/get-started/quickstart/fork-a-repo +[l10n]: https://github.com/mozilla-l10n/multi-account-containers-l10n/ +[pr]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests +[web-ext]: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext diff --git a/LICENSE.txt b/LICENSE similarity index 100% rename from LICENSE.txt rename to LICENSE diff --git a/README.md b/README.md index 4e7b91c..3b97cca 100644 --- a/README.md +++ b/README.md @@ -2,110 +2,31 @@ [![Test](https://github.com/mozilla/multi-account-containers/actions/workflows/test.yaml/badge.svg)](https://github.com/mozilla/multi-account-containers/actions/workflows/test.yaml) -The Firefox Multi-Account Containers extension lets you carve out a separate box for each of your online lives – no more opening a different browser just to check your work email! [Learn More Here](https://blog.mozilla.org/firefox/introducing-firefox-multi-account-containers/) +The Firefox Multi-Account Containers extension lets you carve out a separate box for each of your online lives – no more opening a different browser just to check your work email! -[Available on addons.mozilla.org](https://addons.mozilla.org/firefox/addon/multi-account-containers/) +Learn more about Multi-Account Containers in +[our end-user documentation][enduser]. -For more info, see: +## Contributing -* [Test Pilot Product Hypothesis Document](https://docs.google.com/document/d/1WQdHTVXROk7dYkSFluc6_hS44tqZjIrG9I-uPyzevE8/edit#) -* [Shield Product Hypothesis Document](https://docs.google.com/document/d/1vMD-fH_5hGDDqNvpRZk12_RhCN2WAe4_yaBamaNdtik/edit#) +Everyone is welcome to contribute to Multi-Account Containers. To learn how +to contribute a patch to Multi-Account Container, please +[read our contributing guide][contributing]. +You can also chat with us on [our Matrix room][matrix] or [our forum][forum]. -## Requirements +This repository is governed by Mozilla's code of conduct and etiquette +guidelines. For more details, [please read the Mozilla Community Participation Guidelines][cpg]. -* node 7+ (for jpm) -* Firefox 91.1.0+ +### License +This Source Code Form is subject to the terms of the Mozilla Public +License, v. 2.0. If a copy of the MPL was not distributed with this +file, You can obtain one at https://mozilla.org/MPL/2.0/. -## Development - -### Running Locally - -#### Via WebExtensions API (web-ext) - -1. Fetch the locales updating the git-submodules: `git submodule init && git submodule update --remote --depth 1 src/_locales` -2. Install the [web-ext](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext) tool. -3. Run `web-ext run -s src/`. This launches Firefox and installs the extension automatically. - -This tool provides some additional development features, such as [automatic reloading](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Getting_started_with_web-ext#Automatic_extension_reloading). - -#### Via about:debugging in Firefox - -1. Fetch the locales updating the git-submodules: `git submodule init && git submodule update --remote --depth 1 src/_locales` -2. Open the `about:debugging` page in Firefox. -3. Click on `This Firefox`. -4. Click on [Load Temporary Add-on](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox). -5. Select `src/manifest.json`. - -Here is a [video](https://www.youtube.com/watch?v=cer9EUKegG4) that demonstrates how to do this. - -### Testing - -* Install dependencies: - - ``` - npm install --legacy-peer-deps - ``` - -* Run all tests: - - ``` - npm run test - ``` - -* Only run the linter: - - ``` - npm run lint - ``` - -There is a timeout test that sometimes fails on certain machines, so make sure to run the tests on your clone before you make any changes to see if you have this problem. - -#### Add/update messages for translation - -The `src/_locales` directory is a git repository like any other, so to make changes to the messages: - -1. Make whatever changes you need in `src/_locales/en` as you work. - -2. `cd src/_locales/en` - -3. `git branch message-updates-yyyymmdd` - -4. `git push -u origin message-updates-yyyymmdd` - -You can then open a pull request from the `message-updates-yyyymmdd` branch to - -[the l10n repo](https://github.com/mozilla-l10n/multi-account-containers-l10n/) `main` branch. - -### Distributing -#### Make the new version - -1. Bump the version number in `package.json` and `manifest.json` -2. Commit the version number bump -3. Create a git tag for the version: `git tag ` -4. Push the tag up to GitHub: `git push --tags` - -#### Publish to AMO - -1. `./bin/build-addon.sh` -2. [Upload the `.zip` to AMO](https://addons.mozilla.org/developers/addon/multi-account-containers/versions/submit/) - -#### Publish to GitHub - -Finally, we also publish the release to GitHub for those followers. - -1. Download the signed `.xpi` from [the addon versions page](https://addons.mozilla.org/developers/addon/multi-account-containers/versions) -2. [Make the new release on - GitHub](https://github.com/mozilla/multi-account-containers/releases/new) - * Use the version number for "Tag version" and "Release title" - * Release notes: copy the output of `git log --no-merges --pretty=format:"%h %s" ..` - * Attach binaries: select the signed `.xpi` file - -### Links - -Facebook & Twitter icons CC-Attrib https://fairheadcreative.com. - -- [License](./LICENSE.txt) -- [Contributing](./CONTRIBUTING.md) -- [Code Of Conduct](./CODE_OF_CONDUCT.md) + +[contributing]: CONTRIBUTING.md +[cpg]: https://www.mozilla.org/about/governance/policies/participation/ +[enduser]: https://support.mozilla.org/en-US/kb/containers +[forum]: https://discourse.mozilla.org/c/containers/223 +[matrix]: https://matrix.to/#/#containers:mozilla.org diff --git a/docs/acceptance.md b/docs/acceptance.md deleted file mode 100644 index aeeb533..0000000 --- a/docs/acceptance.md +++ /dev/null @@ -1,31 +0,0 @@ -# Acceptance Criteria - -## User Experience -- [ ] It should place a containers button on the user’s browser toolbar -- [ ] It should include all containers management UI inside a door hanger from this toolbar button -- [ ] It should provide a set of default container choices for users to pick from (work, home, travel etc.) - - [ ] Each container type should have a color, icon and name -- [ ] It should allow users to create new containers -- [ ] It should allow users to delete containers -- [ ] It should allow users to open container tabs - - [ ] each container tab should be clearly demarcated by color/icon etc. -- [ ] It should provide a control to show/hide all open tabs of one container type -- [ ] It should provide a control to sort tabs by container type -- [ ] It should provide a control to allow users to open containers in new tab or new window by default - -## User Experience Non-Requirements (out of scope) -- [ ] It should not show any UI in browser settings -- [ ] It should not effect the awesome bar -- [ ] It should not effect the Firefox Library -- [ ] It should not make any changes to sync functionality - -## Measurements -- [ ] It should measure container tab creations per session -- [ ] It should measure the type of container tab created -- [ ] It should measure container tab creations -- [ ] It should measure new container creations -- [ ] It should measure container deletes -- [ ] It should measure container sorts -- [ ] It should measure container hides -- [ ] It should report URIs accessed across multiple containers -- [ ] It should measure the % of tab-based vs windows-based containers diff --git a/docs/kpi-1.png b/docs/kpi-1.png deleted file mode 100644 index 8e613c5..0000000 Binary files a/docs/kpi-1.png and /dev/null differ diff --git a/docs/release.md b/docs/release.md new file mode 100644 index 0000000..1ac1c24 --- /dev/null +++ b/docs/release.md @@ -0,0 +1,31 @@ +# Release a new version + +## Make the new version + +1. Bump the version number in `package.json` and `manifest.json` +2. Commit the version number bump +3. Create a git tag for the version: `git tag ` +4. Push the tag up to GitHub: `git push --tags` + +## Publish to AMO + +1. Run `./bin/build-addon.sh` +2. [Upload the zip file to AMO][amo-upload] + +## Publish to GitHub + +Finally, we also publish the release to GitHub. + +1. Download the signed `.xpi` from [the addon versions page][addon-page] +2. [Create a new release on GitHub][gh-release] + * For *Tag version* and *Release title*, use the version number + * For *Release notes*, copy the output of: + ``` + git log --no-merges \ + --pretty=format:"%h %s" .. + ``` + * For the *Attach binaries*, select the signed `.xpi` file + +[addon-page]: https://addons.mozilla.org/developers/addon/multi-account-containers/versions +[amo-upload]: https://addons.mozilla.org/developers/addon/multi-account-containers/versions/submit/ +[gh-release]: https://github.com/mozilla/multi-account-containers/releases/new diff --git a/package.json b/package.json index b8d2269..e614c5b 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "url": "git+https://github.com/mozilla/multi-account-containers.git" }, "scripts": { - "webext": "web-ext run -s src/", + "dev": "web-ext run -s src/", "lint": "npm-run-all lint:*", "lint:addon": "./bin/addons-linter.sh", "lint:css": "stylelint src/css/*.css",