summaryrefslogtreecommitdiff
path: root/docs/client/testers-howto.md
blob: 10a436deb4488c511de8ff5407179f4696d90a1a (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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
@nav_title = "Testing"
@title = "Howto for Testers"

Howto for Testers
=================

This document covers a how-to guide to:

1.  Where and how report bugs for Bitmask \<reporting\_bugs\>, and
2.  Quickly fetching latest development code \<fetchinglatest\>.

Let's go!

Reporting bugs
--------------

Report all the bugs you can find to us! If something is not quite
working yet, we really want to know. Reporting a bug to us is the best
way to get it fixed quickly, and get our unconditional gratitude.

It is quick, easy, and probably the best way to contribute to Bitmask
development, other than submitting patches.

> **Reporting better bugs**
>
> New to bug reporting? Here you have a [great document about this noble
> art](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html).

### Where to report bugs

We use the [Bitmask Bug
Tracker](https://leap.se/code/projects/eip-client), although you can
also use [Github
issues](https://github.com/leapcode/bitmask_client/issues). But we
reaaaally prefer if you sign up in the former to send your bugs our way.

### What to include in your bug report

-   The symptoms of the bug itself: what went wrong? What items appear
    broken, or do not work as expected? Maybe an UI element that appears
    to freeze?
-   The Bitmask version you are running. You can get it by doing bitmask
    --version, or you can go to Help -\> About Bitmask menu.
-   The installation method you used: bundle? from source code? debian
    package?
-   Your platform version and other details: Ubuntu 12.04? Debian
    unstable? Windows 8? OSX 10.8.4? If relevant, your desktop system
    also (gnome, kde...)
-   When does the bug appear? What actions trigger it? Does it always
    happen, or is it sporadic?
-   The exact error message, if any.
-   Attachments of the log files, if possible (see section below).

Also, try not to mix several issues in your bug report. If you are
finding several problems, it's better to issue a separate bug report for
each one of them.

### Attaching log files

If you can spend a little time getting them, please add some logs to the
bug report. They are **really** useful when it comes to debug a problem.
To do it:

Launch Bitmask in debug mode. Logs are way more verbose that way:

    bitmask --debug

Get your hand on the logs. You can achieve that either by clicking on
the "Show log" button, and saving to file, or directly by specifying the
path to the logfile in the command line invocation:

    bitmask --debug --logfile /tmp/bitmask.log

Attach the logfile to your bug report.

### Need human interaction?

You can also find us in the `#leap-dev` channel on the [freenode
network](https://freenode.net). If you do not have a IRC client at hand,
you can [enter the channel via
web](http://webchat.freenode.net/?nick=leaper....&channels=%23leap-dev&uio=d4).

Fetching latest development code
--------------------------------

Normally, testing the latest client bundles \<standalone-bundle\> should
be enough. We are engaged in a two-week release cycle with minor
releases that are as stable as possible.

However, if you want to test that some issue has *really* been fixed
before the next release is out (if you are testing a new provider, for
instance), you are encouraged to try out the latest in the development
branch. If you do not know how to do that, or you prefer an automated
script, keep reading for a way to painlessly fetch the latest
development code.

We have put together a script to allow rapid testing in different
platforms for the brave souls like you. It more or less does all the
steps covered in the Setting up a Work Enviroment \<environment\>
section, only that in a more compact way suitable (ahem) also for non
developers.

> **note**
>
> At some point in the near future, we will be using standalone bundles
> \<standalone-bundle\> with the ability to self-update.

### Install dependencies

First, install all the base dependencies plus git, virtualenv and
development files needed to compile several extensions:

    apt-get install openvpn git-core python-dev python-pyside python-setuptools python-virtualenv

### Bootstrap script

> **note**
>
> This will fetch the *develop* branch. If you want to test another
> branch, just change it in the line starting with *pip install...*.
> Alternatively, bug kali so she add an option branch to an improved
> script.

> **note**
>
> This script could make use of the after\_install hook. Read
> <http://pypi.python.org/pypi/virtualenv/>

Download and source the following script in the parent folder where you
want your testing build to be downloaded. For instance, to \`/tmp/:

.. code-block:: bash

   cd /tmp
   wget https://raw.github.com/leapcode/bitmask\_client/develop/pkg/scripts/bitmask\_bootstrap.sh
   source bitmask\_bootstrap.sh

Tada! If everything went well, you should be able to run bitmask by typing::

    bitmask --debug

Noticed that your prompt changed? That was \*virtualenv\*. Keep reading...

Activating the virtualenv
\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^\^
The above bootstrap script has fetched latest code inside a virtualenv, which is
an isolated, \*virtual\* python local environment that avoids messing with your
global paths. You will notice you are \*inside\* a virtualenv because you will see
a modified prompt reminding it to you (\*bitmask-testbuild\* in this case).  

Thus, if you forget to \*activate your virtualenv\*, bitmask will not run from the
local path, and it will be looking for something else in your global path. So,
\*\*you have to remember to activate your virtualenv\*\* each time that you open a
new shell and want to execute the code you are testing. You can do this by
typing::

    \$ source bin/activate

from the directory where you \*sourced\* the bootstrap script.

Refer to :ref:Working with virtualenv \<virtualenv\>\` to learn more
about virtualenv.

### Copying config files

If you have never installed `bitmask` globally, **you need to copy some
files to its proper path before running it for the first time** (you
only need to do this once). This, unless the virtualenv-based
operations, will need root permissions. See
copy script files \<copyscriptfiles\> and
running openvpn without root privileges \<policykit\> sections for more
info on this. In short:

    $ sudo cp pkg/linux/polkit/net.openvpn.gui.leap.policy /usr/share/polkit-1/actions/
    $ sudo mkdir -p /etc/leap
    $ sudo cp pkg/linux/resolv-update /etc/leap

### Local config files

If you want to start fresh without config files, just move them. In
linux:

    mv ~/.config/leap ~/.config/leap.old

### Pulling latest changes

You should be able to cd into the downloaded repo and pull latest
changes:

    (bitmask-testbuild)$ cd src/bitmask
    (bitmask-testbuild)$ git pull origin develop

However, you are encouraged to run the whole bootstrapping process from
time to time to help us catching install and versioning bugs too.

### Testing the packages

When we have a release candidate for the supported platforms, we will
announce also the URI where you can download the rc for testing in your
system. Stay tuned!

Testing the status of translations
----------------------------------

We need translators! You can go to
[transifex](https://www.transifex.com/projects/p/bitmask/), get an
account and start contributing.

If you want to check the current status of bitmask localization in a
language other than the one set in your machine, you can do it with a
simple trick (under linux). For instance, do:

    $ lang=es_ES bitmask

for running Bitmask with the spanish locales.