aboutsummaryrefslogtreecommitdiffhomepage
path: root/CONTRIBUTING.rst
blob: 5dc7bf7e9393796054aab208ba7cc467def75b4a (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
Contribution Guide
==================

Thanks for your interest in contributing to nncli(1). This guide
attempts to document everything you need to know to participate in the
development community. As with everything else in this repository,
suggestions are welcome.

Community Guidelines
--------------------

Given that the nncli(1) community is still in the early stages of
formation, community guidelines have yet to be rigidly codified. For
the time being, the following general expectations should be
considered normative:

- Participants should do their part to make this a welcoming
  community, free from harassment and discrimination, where everyone
  feels safe to contribute. Any behavior that threatens this will not
  be tolerated, and repeated violations will result in expulsion from
  the community. Anyone who egregiously violates this principle, for
  instance by doxxing another community member, whether in official
  community channels or elsewhere, will be immediately and permanently
  banned.

- The goal in providing official community channels (e.g., the mailing
  list), is to provide a public space for the development of nncli(1)
  with high signal-to-noise ratio. Persuant to this, community members
  should understand that disagreements naturally arise from time to
  time. If they don't pertain to nncli(1), then they should be
  discussed outside official community channels. This is not a
  judgment about the importance of any given topic, merely a
  recognition that this community cannot sustain discussion about
  anything and everything.

- Maintainers shall be selected from the community as-needed based on
  their ability to productively contribute to nncli(1). Productivity
  in this context is measured *both* in terms of code contributions
  *and* ability to forge consensus in community discussions.

- Decisions regarding the development of nncli(1) fall to the
  maintainers collectively. When the maintainers are not able to form
  a consensus on the best path forward, the lead maintainer shall be
  the final authority on decisions.

Getting Started
---------------

To get started with the code, you will need to clone it and install
development dependencies. We recommend the isolating your development
environment with ``venv`` Python module. We also recommend using
``pip-tools`` to manage dependencies. Its use is expected when
updating requirements files.

::

   $ git clone https://git.danielmoch.com/nncli.git
   $ cd nncli
   $ python3 -m venv .venv
   $ source .venv/bin/activate
   (.venv)$ pip install pip-tools
   (.venv)$ pip-sync requirements-dev.txt

Discussion and Requests
-----------------------

All discussion takes place on the public `mailing list`_. The list's
archive can be found at https://lists.danielmoch.com/nncli-dev. Emails
can be sent to the following addresses to manage your subscription to
the mailing list.

- nncli-dev+subscribe@
- nncli-dev+unsubscribe@
- nncli-dev+help@

Patches and pull requests are welcome, preferably via emailed output
of `git-request-pull(1)`_ sent to the mailing list. Bug reports should
also be directed to the mailing list.

If you aren't hosting a fork anywhere online, you can also send patches
using `git-format-patch(1)`_.

Releases
--------

Releases are published to PyPI_. Signed source tarballs are maintained
at https://dl.danielmoch.com/nncli. Instructions for verifying
tarballs are in the README file at the previous link.

.. _PyPI: https://pypi.org/project/nncli/
.. _mailing list: nncli-dev@danielmoch.com
.. _git-format-patch(1): https://www.git-scm.com/docs/git-format-patch
.. _git-request-pull(1): https://www.git-scm.com/docs/git-request-pull