blob: 5a72585425416a71a58e714f10991de9963aca8b (
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
|
: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.
Gitlab-runner
~~~~~~~~~~~~~
For debugging issues related to how tests are run by the gitlab CI, you need to install:
* docker_ce from docker's repositories.
* gitlab-runner from `gitlab's repositories`_
You probably want to add `sleep 9000` to allow debuggin on the docker container. For convenience, you can execute the packaging step by doing::
make package_in_docker
Look at the ``Makefile`` to see the command that it's actually used.
If you want to run an specific test, you can do it like this::
gitlab-runner exec docker --docker-privileged --env BITMASK_INVITE_CODE=xxx e2e_test_vpn
If you have a bad uplink, you might want to add ``--docker-pull-policy=if-not-present`` to that invocation.
.. _`gitlab's repositories`: https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh
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.
Submitting a Bug
----------------
You can read more about how to submit a bug in the section on
`Testing and QA <../testing/index>`_.
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
|