File: CONTRIBUTING.md

package info (click to toggle)
browserpass 2.0.22-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 568 kB
  • sloc: sh: 128; makefile: 112
file content (91 lines) | stat: -rw-r--r-- 3,440 bytes parent folder | download
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
# CONTRIBUTING

You will need Docker or Node, [Yarn](https://yarnpkg.com/), Golang and [dep](https://github.com/golang/dep) installed.

## To build
- Run `make` to fetch all dependencies and compile both front-end and back-end code

OR

- Run `make deps` to download all dependencies (you don't need to run this very often)
- Run `make js` to compile only front-end code
    - Run `make prettier` to additionally auto-format the code (this helps keeping code style consistent)
- Run `make browserpass` to compile only back-end code

The commands above will generate unpacked extensions for both Firefox and Chrome and compile the Go binaries for all supported platforms.

## To load an unpacked extension
- Run `./install.sh` or `./install.ps1` to install the compiled Go binary
- For Chrome:
    - Go to `chrome://extensions`
    - Enable `Developer mode`
    - Click `Load unpacked extension`
    - Select `browserpass/chrome` directory
- For Firefox:
    - Go to `about:debugging#addons`
    - Click `Load temporary add-on`
    - Select `browserpass/firefox` directory

## Build using Docker

The [Dockerfile](Dockerfile) will set up a docker image suitable for running basic make targets such as building frontend and backend.

The `crx` target is not supported by now (therefore `release` target will not work).

To build the docker image run the following command in project root:
```shell
docker build -t browserpass-dev .
```

To build browserpass (frontend and backend) via docker, run the following from project root:
```shell
docker run --rm -v "$(pwd)":/browserpass browserpass-dev
```

If you only want to download dependencies, build front-end or backend code, run one of the following:
```shell
docker run --rm -v "$(pwd)":/browserpass browserpass-dev deps
docker run --rm -v "$(pwd)":/browserpass browserpass-dev js
docker run --rm -v "$(pwd)":/browserpass browserpass-dev browserpass
```

## Setting up a Vagrant build environment and building the Linux binary

Vagrant will set up a virtual machine with all dependencies installed for you. Your local working directory is shared into the VM.
These instructions will walk you through the process of setting up a build environment for browserpass using [Vagrant](https://www.vagrantup.com/) on Debian/Ubuntu. These instructions were valid for an Ubuntu 16.04 host. This only addresses building the Linux 64-bit binary - you'll need to faff around a bit to do other things, but this should provide you with a good starting point.

Install vagrant:
```shell
$ sudo apt-get install vagrant
```

Start the VM:
```shell
$ vagrant up
```

Jump into the VM and build the project:
```shell
$ vagrant ssh
vagrant@minimal-xenial:~$ cd go/src/github.com/dannyvankooten/browserpass
vagrant@minimal-xenial:~/go/src/github.com/dannyvankooten/browserpass$ make js
vagrant@minimal-xenial:~/go/src/github.com/dannyvankooten/browserpass$ make browserpass-linux64
```

Exit the build environment, clean up the vagrant image.
```shell
vagrant@minimal-xenial:~/go/src/github.com/dannyvankooten/browserpass$ exit
$ vagrant destroy
[ Vagrant tells you about stopping and removing the VM ]
```

## To contribute

1. Fork [the repo](https://github.com/dannyvankooten/browserpass)
2. Create your feature branch
   * `git checkout -b my-new-feature`
3. Commit your changes
   * `git commit -am 'Add some feature'`
4. Push to the branch
   * `git push origin my-new-feature`
5. Create new pull Request