Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5681cfe

Browse filesBrowse files
committed
Creating a development page markdown
1 parent 5832f43 commit 5681cfe
Copy full SHA for 5681cfe

1 file changed

+82Lines changed: 82 additions & 0 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎docs/development.md‎

Copy file name to clipboard
+82Lines changed: 82 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
## HTTPS Everywhere Development
2+
3+
### Pointers for developers
4+
5+
- **License:** GPL version 3+ (although most of the code is GPL-2 compatible)
6+
- **Source code:** Available via Git with `git clone https://github.com/EFForg/https-everywhere.git`. You can fork and open pull requests using Github at [https://github.com/EFForg/https-everywhere](https://github.com/EFForg/https-everywhere).
7+
- **Translations:** If you would like to help translate HTTPS Everywhere into another language, you can do that [through Transifex](https://www.transifex.com/otf/torproject/).
8+
- **Bug tracker:** Use the [GitHub issue tracker](https://github.com/EFForg/https-everywhere/issues/) or the [Tor Project issue tracker](https://trac.torproject.org/projects/tor/report/19). For the Tor Project issue tracker, you can make an account or use the anonymous one — "cypherpunks"/"writecode". You won't see replies unless you put an email address in the CC field. Bugs that are caused by rulesets should be tagged "httpse-ruleset-bug", and can be viewed [in this report](https://trac.torproject.org/projects/tor/report/48).
9+
- **Mailing lists:** The [https-everywhere](https://lists.eff.org/mailman/listinfo/https-everywhere) list ([archives](https://lists.eff.org/pipermail/https-everywhere/)) is for discussing the project as a whole; the [https-everywhere-rules](https://lists.eff.org/mailman/listinfo/https-everywhere-rules) mailing list ([archives](https://lists.eff.org/pipermail/https-everywhere-rules)) is for discussing the [rulesets](https://www.eff.org/https-everywhere/rulesets) and their contents, including patches and git pull requests.
10+
- **IRC:** `#https-everywhere` on `irc.oftc.net`. If you ask a question, be sure to stay in the channel — someone may reply a few hours or a few days later.
11+
12+
### Testing and contributing changes to the source code
13+
14+
HTTPS Everywhere consists of a large number of rules for switching sites from HTTP to HTTPS. You can read more about how to write these rules [here](https://www.eff.org/https-everywhere/rulesets).
15+
16+
If you want to create new rules 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 rule for a specified domain. There is also a script called trivial-validate.py, to check all the pending rules for several common errors and oversights. For example, if you wanted to make a rule for the example.com domain, you could run
17+
18+
bash ./make-trivial-rule example.com
19+
20+
inside the rules directory. This would create Example.com.xml, which you could then take a look at and edit based on your knowledge of any specific URLs at example.com that do or don't work in HTTPS.
21+
22+
Before submitting your change, you should test it in Firefox and/or Chrome, as applicable. You can build the latest version of the extension and run it in a standalone Firefox profile using:
23+
24+
bash ./test.sh --justrun
25+
26+
Similarly, to build and run in a standalone Chromium profile, run:
27+
28+
bash ./run-chromium.sh
29+
30+
You should thoroughly test your changes on the target site: Navigate to as wide a variety of pages as you can find. Try to comment or log in if applicable. Make sure everything still works properly.
31+
32+
After running your manual tests, run the automated tests and the fetch tests:
33+
34+
bash ./test.sh
35+
36+
bash ./fetch-test.sh
37+
38+
This will catch some of the most common types of errors, but is not a guaranteed of correctness.
39+
40+
Once you've tested your changes, you can submit them for review via any of the following:
41+
42+
- Open a pull request at [https://github.com/EFForg/https-everywhere](https://github.com/EFForg/https-everywhere).
43+
- Email https-everywhere-rules@eff.org to tell us about your changes. You can use the following command to create a patch file: `git format-patch`
44+
45+
### A quick HOWTO on working with Git
46+
47+
You may want to also look at the [Git Reference](http://gitref.org/), [GitHub Help Site](https://help.github.com/) and the [Tor Project's Git documentation](https://gitweb.torproject.org/githax.git/tree/doc/Howto.txt) to fill in the gaps here, but the below should be enough to get the basics of the workflow down.
48+
49+
First, tell git your name:
50+
51+
git config --global user.name "Your Name" git config --global user.email "you@example.com"
52+
53+
Then, get a copy of the 'origin' repository:
54+
55+
git clone https://github.com/EFForg/https-everywhere.git
56+
cd https-everywhere
57+
58+
Alternatively, if you already have a Github account, you can create a "fork" of the repository on Github at [https://github.com/EFForg/https-everywhere](https://github.com/EFForg/https-everywhere). See [this page](https://help.github.com/articles/fork-a-repo) for a tutorial.
59+
60+
Once you have a local copy of the repository, create a new branch for your changes and check it out:
61+
62+
git checkout -b my-new-rules master
63+
64+
When you want to send us your work, you'll need to add any new files to the index with git add:
65+
66+
git add ./src/chrome/content/rules/MyRule1.xml
67+
git add ./src/chrome/content/rules/MyRule2.xml
68+
69+
You can now commit your changes to the local branch. To make things easier, you should commit each xml file individually:
70+
71+
git commit ./src/chrome/content/rules/MyRule1.xml
72+
git commit ./src/chrome/content/rules/MyRule2.xml
73+
74+
Now, you need a place to publish your changes. You can create a github account here: [https://github.com/join](https://help.github.com/). [https://help.github.com/](https://help.github.com/) describes the account creation process and some other github-specific things.
75+
76+
Once you have created your account and added your remote in your local checkout, you want to push your branch to your github remote:
77+
78+
git push github my-new-rules:my-new-rules
79+
80+
Periodically, you should re-fetch the master repository:
81+
82+
git pull master

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.