aboutsummaryrefslogtreecommitdiff
path: root/doc/modules/ROOT/pages/contributing.adoc
blob: 8b445d192b6e5029621185e49a439f9471e11d3f (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
= Contributing

== Issues

Report issues and suggest features and improvements on the
https://github.com/bbatsov/projectile/issues[GitHub issue tracker]. Don't ask
questions on the issue tracker - use the xref:support.adoc[support channels] instead.

If you want to file a bug, please provide all the necessary info listed in
our issue reporting template (it's loaded automatically when you create a
new GitHub issue).

It's usually a good idea to try to reproduce (obscure) bugs in isolation. You
can do this by cloning Projectile's GitHub repo and running `make run-projectile` inside
it.  This will bring up Emacs with only the latest version of Projectile loaded. By
starting fresh, with the latest code, we can ensure that the problem at hand
isn't already fixed or caused by interactions with other packages.

== Patches

Patches in any form are always welcome! GitHub pull requests are even better! :-)

Before submitting a patch or a pull request make sure all tests are
passing and that your patch is in line with the https://github.com/bbatsov/projectile/blob/master/CONTRIBUTING.md[contribution
guidelines].

== Documentation

Good documentation is just as important as good code.

Consider improving and extending this manual and the
https://github.com/bbatsov/projectile/wiki[community wiki].

=== Working on the Docs

The manual is generated from the AsciiDoc files in the https://github.com/bbatsov/projectile/tree/master/doc[doc] folder of Projectile's GitHub repo and is published to https://docs.projectile.mx.
https://antora.org[Antora] is used to convert the manual into HTML.
The filesystem layout is described at https://docs.antora.org/antora/2.0/component-structure/.

To make changes to the manual you simply have to change the files under `doc`.
The manual will be regenerated manually periodically.

==== Installing Antora

NOTE: The instructions here assume you already have (the right version of) node.js installed.

Installing the Antora is super simple:

[source]
----
$ npm i -g @antora/cli@2.0 @antora/site-generator-default@2.0
----

Check out https://docs.antora.org/antora/2.0/install/install-antora/[the detailed installation instructions]
if you run into any problems.

==== Building the Site

You can build the documentation locally from the https://github.com/bbatsov/docs.projectile.mx[docs.projectile.mx] repo.

[source]
----
$ cd docs.projectile.mx
$ antora --pull antora-playbook.yml
----

After you're done with the initial setup you can use the `deploy` script to push changes to the site:

[source]
----
./deploy
----

NOTE: You'll need commit access to the repository for this to work.

To check the generated site you can simply open `docs/index.html` in your favourite browser.

If you want to make changes to the manual's page structure you'll have to edit
https://github.com/bbatsov/projectile/blob/master/doc/modules/ROOT/nav.adoc[nav.adoc].

== Donations

You can support the development of Projectile via
https://www.paypal.me/bbatsov[PayPal],
https://www.patreon.com/bbatsov[Patreon] and
https://github.com/sponsors/bbatsov[GitHub Sponsors].

== Running the tests in batch mode

[source,sh]
----
$ cd /path/to/projectile
$ make update
$ make compile
$ make test
----

Run all tests with:

[source,sh]
----
$ make test
----

Tests should run fine in `shell-mode` or `term-mode`. It's also possible to use kbd:[M-x] `compile` (or `helm-make`).