You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -55,7 +56,7 @@ There are several main areas of development on HTTPS Everywhere: the rulesets, t
55
56
56
57
The rulesets can be found in the [`rules`](rules) top-level path and include all the rules for redirecting individual sites to HTTPS. These are written in XML. If you want to get started contributing to HTTPS Everywhere, we recommend starting here.
57
58
58
-
The core codebase consists of the code that performs the redirects, the UI, logging code, and ruleset loading. This encompasses all code delivered with the extension itself that is *not* a ruleset. It is written in JavaScript, using the `WebExtensions` API (located in [`chromium`](chromium)) on all supported browsers. In Firefox, this extension is wrapped in a thin `XPCOM` layer for the purposes of migrating settings, located in [`src`](src), which will soon be deprecated.
59
+
The core codebase consists of the code that performs the redirects, the UI, logging code, and ruleset loading. This encompasses all code delivered with the extension itself that is *not* a ruleset. It is written in JavaScript, using the `WebExtensions` API (located in [`chromium`](chromium)).
59
60
60
61
The utilities ([`utils`](utils) top-level path) include scripts that build the extension, sanitize and perform normalization on rulesets, simplify rules, and help label GitHub issues. Historically, these utilities have been written in Python. Many of the newer utilities are written in JavaScript, and are meant to be run in node. Some of the wrappers for these utilities are in shell scripts.
61
62
@@ -103,7 +104,7 @@ Some `rulesets` have the attribute `platform="mixedcontent"`. These `rulesets`
103
104
104
105
## New Rulesets
105
106
106
-
If you want to create new `rulesets` to submit to us, we expect them to be in the `src/chrome/content/rules` directory. That directory also contains a useful script, `make-trivial-rule`, to create a simple `ruleset` for a specified domain. There is also a script called `utils/trivial-validate.py`, to check all the pending `rulesets` for several common errors and oversights. For example, if you wanted to make a `ruleset` for the `example.com` domain, you could run:
107
+
If you want to create new `rulesets` to submit to us, we expect them to be in the `src/chrome/content/rules` directory. That directory also contains a useful script, `make-trivial-rule`, to create a simple `ruleset` for a specified domain. There is also a script in `test/validations/special/run.py`, to check all the pending `rulesets` for several common errors and oversights. For example, if you wanted to make a `ruleset` for the `example.com` domain, you could run:
107
108
```
108
109
cd src/chrome/content/rules
109
110
bash ./make-trivial-rule example.com
@@ -148,7 +149,7 @@ Avoid using the left-wildcard (`<target host="*.example.com" />`) unless you int
148
149
149
150
Instead, prefer listing explicit target hosts and a single rewrite from `"^http:"` to `"^https:"`. This saves you time as a ruleset author because each explicit target host automatically creates an implicit test URL, reducing the need to add your own test URLs. These also make it easier for someone reading the ruleset to figure out which subdomains are covered.
150
151
151
-
If you know all subdomains of a given domain support HTTPS, go ahead and use a left-wildcard, along with a plain rewrite from `"^http:"` to `"^https:"`. Make sure to add a bunch of test URLs for the more important subdomains.
152
+
If you know all subdomains of a given domain support HTTPS, go ahead and use a left-wildcard, along with a plain rewrite from `"^http:"` to `"^https:"`. Make sure to add a bunch of test URLs for the more important subdomains.
152
153
153
154
#### Edge-Case: Right-Wildcards
154
155
@@ -334,7 +335,7 @@ In `utils` we have a tool called `hsts-prune` which removes `targets` from rules
334
335
Every new pull request automatically has the `hsts-prune` utility applied to it as part of the continual integration process. If a new PR introduces a `target` which is preloaded, it will fail the CI test suite. See:
335
336
336
337
-`.travis.yml`
337
-
-`test/travis.sh`
338
+
-`test/run_travis.sh`
338
339
339
340
* * *
340
341
@@ -356,6 +357,20 @@ Several of our utilities and our full test suite is written in Python. Eventual
356
357
357
358
* * *
358
359
360
+
# Contributing Documentation
361
+
362
+
Standalone documentation should be written in [Markdown](https://en.wikipedia.org/wiki/Markdown) that follows the [Google style guide](https://github.com/google/styleguide/blob/gh-pages/docguide/style.md). If you are updating existing documentation that does not follow the Google style guide, then you should follow the style of the file you are updating.
363
+
364
+
* * *
365
+
366
+
# Pull Requests from Deleted Accounts
367
+
368
+
Sometimes a contributor will [delete their GitHub account](https://help.github.com/articles/deleting-your-user-account/) after submitting a pull request, resulting in the pull request being associated with the [Ghost user (@ghost)](https://github.com/ghost). These @ghost pull requests can cause problems for HTTPS Everywhere maintainers, leaving questions unanswered and closing off the possibility of receiving maintainer feedback to solicit clarification or request changes.
369
+
370
+
We ask that if you want to delete your GitHub account, you either close your HTTPS Everywhere pull requests before you delete your account, or wait to delete your account until we merge your pull requests. Otherwise, maintainers are free to close @ghost pull requests without any comment.
371
+
372
+
* * *
373
+
359
374
# Contributing Translations
360
375
361
376
HTTPS Everywhere translations are handled through Transifex. The easiest way to help with translations is to [create a Transifex account](https://www.transifex.com/signup/) if you don't already have one. Then log into your account and click "Explore", then search for "Tor Project", and click on The Tor Project. Then choose the language you plan to translate into, click on the name of that language, and then click "Join team" and "Go" to accept joining the translation team for your language.
0 commit comments