blob: 007e87f934e4666c3a4a29606858f718cb0b56b8 (
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
|
:LastChangedDate: $LastChangedDate$
:LastChangedRevision: $LastChangedRevision$
:LastChangedBy: $LastChangedBy$
Hacking
========================================
So you want to hack on Bitmask? Thanks, and welcome!
This document assumes a ``Linux`` environment.
There are also ongoing documents with notes for setting up an :ref:`OSX
<osx-dev>` and a :ref:`Windows <win-dev>` working environments too,
contribution is very much welcome on those docs!
Running tests
-------------
Tox is all you need::
tox
Test when changes are made to common/soledad
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are developing against a non-published branch of ``leap.common`` or
``leap.soledad``, run instead::
tox -e py27-dev
This expects ``leap_common`` and ``soledad`` repos to be checked out in the
parent folder.
Architecture
------------
There is a small :ref:`explanation of the bitmask components <architecture>`
that might be helpful to get you started
with the different moving parts of the Bitmask codebase.
User Interface
--------------
The :ref:`Javascript User Interface <uidev>` has its own guide for developers.
Setup
-----
Read how to :ref:`setup your python development environment <devenv>` to start coding in no time.
Debug
-----
A must-read for debugging the Bitmask Core daemon is the :ref:`manhole HowTo <manhole>`.
Privileges
----------
Bitmask VPN needs administrative privileges. For developing, you
need to be sure that you have :ref:`installed the privileged helpers
<privileges>` and that you keep them udpated.
Contributing
------------
There are some :ref:`guidelines for contributing code <contributing>` that you
might want to check if you are insterested in developing with Bitmask.
Release
-------
We keep a :ref:`checklist <release-checklist>` for the release process.
Ideas
-----
Want to help, but you don't know where to start? Come talk to us on irc or the
mailing list!
Some areas in which we always need contribution are:
* Localization of the client (talk to elijah).
* Multiplatform gitlab runners
* Windows and OSX packaging (talk to kali)
* Windows Firewall integration for VPN
* Migrating components to py3 (look for vshyba or kali).
* Minimal C++ Qt client (see `kali's bitmaskqt5 repo`_)
.. _`kali's bitmaskqt5 repo`: https://github.com/kalikaneko/bitmaskqt5
|