summaryrefslogtreecommitdiff
path: root/docs/source/en.haml
blob: 6c3ddc8cdf5b46f293c10a5c35e0ef54aa9eea28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
- @title = "Source Code"
- @summary = "Submit a pull request today!"

%h1.first Contributing

%h3 Reading the code

%p This page should give an easy overview of the most important repositories. The authorative code is hosted at #{link 'leap.se/git' => 'https://leap.se/git/'}, but they are also mirrored to #{link 'github' => 'https://github.com/leapcode/'}.

%p In general, all LEAP code repositories will have <code>develop</code> and <code>master</code> branches. The <code>master</code> branch should be a stable, release version of the software. The <code>develop</code> branch is where all feature and bugfix branches are merged into.

%h3 Submitting a pull request

%p All development happens via pull requests. To add a new feature or fix a bug, the developer must create a new branch off <code>develop</code>, make their changes, and then issue a pull request for another developer to review before the changes get merged back into <code>develop</code>.

%p Here is an example, using github with username <code>rms</code> and repository <code>bitmask_client</code>. You don't need to use github, but it is a friendly way to get started.

%p
  %b Step 1 &mdash; Fork on github

%p Login to github.com as 'rms', browse to #{link 'https://github.com/leapcode/bitmask_client'}, and click the fork button.

%p Now you should have a fork of the code available at <code>https://github.com/rms/bitmask_client</code>.

%p
  %b Step 2 &mdash; Set up local clone

%p Clone the upstream repository:

%pre
  %code
    git clone https://leap.se/git/bitmask_client
    cd bitmask_client

%blockquote
  .p NOTE: Alternately, you can use the github mirror at <code>https://github.com/leapcode/bitmask_client</code>. It does not matter which one you choose.

%p
  %b Step 4 &mdash; Add a "remote" for your fork

%p Next, you need to add the fork you created on github as an alternate remote in your local repository:

%pre
  %code
    git remote add rms https://github.com/rms/bitmask_client.git

%p
  %b Step 5 &mdash; Create a new feature branch

%pre
  %code
    git fetch origin
    git checkout develop
    git checkout -b feature/my_new_feature

%p
  %b Step 6 &mdash; Hack away

%P Make all your changes in your <code>feature/my_new_feature</code> branch, with a separate <code>git commit</code> for each discrete modification you make.

%p
  %b Step 7 &mdash; Prepare for pull request

%p Once you are happy with your branch, prepare it for a pull request by rebasing on the latest upstream <code>develop</code> branch. This will also give you an opportunity to clean up your commit history by squashing and changing commit messages.

%pre
  %code
    git fetch origin                    # ensure the latest
    git checkout feature/my_new_feature # if not already checked out
    git rebase -i develop               # rebase and clean up commits

%p
  %b Step 8 &mdash; Submit pull request

%p Next, you will push your local feature branch to your fork on github, and then issue a pull request.

%pre
  %code
    git push rms feature/my_new_feature

%p Then browse to <code>https://github.com/rms/bitmask_client</code>, where you will see a handy button to issue a pull request. Make sure that the upstream branch is <code>leapcode/bitmask_client:develop</code> and you are requesting the merge of <code>rms/bitmask_client:feature/my_new_feature</code>.

Then you are done. Some other developer will get a notice of your pull request, review the changes, and merge into upstream <code>develop</code> branch. If they have questions or comments, you will get an email from github.

%h1 Source Code

%h3 Client code

%table.table.table-bordered
  %tr
    %td bitmask_client
    %td The Bitmask desktop client application, supporting encrypted internet proxy, secure email, and secure chat (coming soon). The client is written in Python, runs on Linux, Mac, and Windows, and is licensed under the GPLv3.
    %td
      =# link 'https://leap.se/git/bitmask_client'
      = link 'https://github.com/leapcode/bitmask_client'
  %tr
    %td bitmask_android
    %td Android version of the Bitmask client, supporting encrypted internet proxy. Future development will include support for secure email. Licensed under the GPLv3.
    %td
      = link 'https://github.com/leapcode/bitmask_android'

%h3 Service provider platform

%table.table.table-bordered
  %tr
    %td leap_platform
    %td Server automation recipes for running secure communication services via the LEAP Platform. Written mostly using puppet, and licensed under the GPLv3.
    %td
      = link 'https://leap.se/git/leap_platform'
      = link 'https://github.com/leapcode/leap_platform'

  %tr
    %td leap_cli
    %td Command line interface for managing a service provider running the LEAP platform. Written in Ruby and released under the GPLv3.
    %td
      = link 'https://leap.se/git/leap_cli'
      = link 'https://github.com/leapcode/leap_cli'

  %tr
    %td soledad
    %td Soledad (Synchronization of Locally Encrypted Data Among Devices) provides a synchronized, client-encrypted document database. Written in Python.
    %td
      = link 'https://github.com/leapcode/soledad'

  %tr
    %td nickserver
    %td Nickserver is a daemon supporting nicknym, a protocol to map user nicknames to public keys. Written in Ruby, released under the GPLv3.
    %td
      = link 'https://leap.se/git/nickserver'
      = link 'https://github.com/leapcode/nickserver'


%h3 Web applications and libraries

%table.table.table-bordered
  %tr
    %td leap_web
    %td Web application for the LEAP platform, providing user management, tickets, billing, and REST API.
    %td
      = link 'https://leap.se/git/leap_web'
      = link 'https://github.com/leapcode/leap_web'
  %tr
    %td leap_website
    %td This website
    %td
      = link 'https://leap.se/git/leap_website'
  %tr
    %td leap_doc
    %td LEAP Documentation (everything under leap.se/docs including this page)
    %td= link 'https://leap.se/git/leap_doc'
  %tr
    %td srp_js
    %td Secure Remote Password (SRP) library for Javascript.
    %td
      = link 'https://leap.se/git/srp_js'
      = link 'https://github.com/leapcode/srp_js'
  %tr
    %td ruby_srp
    %td Secure Remote Password (SRP) library for Ruby.
    %td
      = link 'https://github.com/leapcode/ruby_srp'