Skip to content

Commit

Permalink
developer-docs: add contributor guide (#406)
Browse files Browse the repository at this point in the history
* docs: add a developer guide
* contributing guide
* docs: updating contributing section
* fix url format

Co-authored-by: Stephanie Brink <brink2@llnl.gov>
  • Loading branch information
bhatele and slabasan authored Sep 16, 2021
1 parent 62176dc commit 22fcd0c
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 3 deletions.
76 changes: 76 additions & 0 deletions docs/developer_guide.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
.. Copyright 2021 University of Maryland and other Hatchet Project Developers.
See the top-level LICENSE file for details.
SPDX-License-Identifier: MIT
***************
Developer Guide
***************

Contributing to Hatchet
=======================

If you want to contribute a new data reader, feature, or bugfix to Hatchet,
please read below. This guide discusses the contributing workflow used in the
Hatchet project, and the granularity of pull requests (PRs).

Branches
--------
The main branch in Hatchet that has the latest contributions is named
``develop``. All pull requests should start from ``develop`` and target
``develop``.

There is a branch for each minor release series. Release branches originate
from ``develop`` and have tags for each revision release in the series.

Continuous Integration
----------------------

Hatchet uses `GitHub Actions <https://docs.github.com/en/actions>`_ for
Continuous Integration testing. This means that every time you submit a pull
request, a series of tests are run to make sure you didn’t accidentally
introduce any bugs into Hatchet. Your PR will not be accepted until it passes
all of these tests.

Currently, we perform 2 types of tests:

Unit tests
^^^^^^^^^^

Unit tests ensure that Hatchet's core API is working as expected. If you add a
new data reader or new functionality to the Hatchet API, you should add unit
tests that provide adequate coverage for your code. You should also check that
your changes pass all unit tests. You can do this by typing:

.. code-block:: console
$ pytest
Style tests
^^^^^^^^^^^

Hatchet uses `Flake8 <https://flake8.pycqa.org/en/latest>`_ to test for `PEP 8
<https://www.python.org/dev/peps/pep-0008>`_ compliance. You can check for
compliance using:

.. code-block:: console
$ flake8
Contributing Workflow
---------------------

Hatchet is being actively developed, so the ``develop`` branch in Hatchet has
new pull requests being merged often. The recommended way to contribute a pull
request is to fork the Hatchet repo in your own space (if you already have a
fork, make sure is it up-to-date), and then create a new branch off of
``develop``.

We prefer that commits pertaining to different components of Hatchet (specific
readers, the core graphframe API, query language, vis tools, etc.) prefix the
component name in the commit message (for example ``<component>: descriptive
message``.

GitHub provides a detailed `tutorial
<https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests>`_
on creating pull requests.
11 changes: 8 additions & 3 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ If you are new to hatchet and want to start using it, see :doc:`Getting Started
data_generation
analysis_examples

.. toctree::
:maxdepth: 2
:caption: Tutorials

basic_tutorial


If you encounter bugs while using hatchet, you can report them by opening an issue on `GitHub <http://github.com/hatchet/hatchet/issues>`_.

Expand All @@ -59,12 +65,11 @@ following `paper <http://www.cs.umd.edu/~bhatele/pubs/pdf/2019/sc2019.pdf>`_:
(SC '19). ACM, New York, NY, USA.
`DOI <https://doi.org/10.1145/3295500.3356219>`_


.. toctree::
:maxdepth: 2
:caption: Tutorials
:caption: Developer Docs

basic_tutorial
developer_guide

.. toctree::
:maxdepth: 2
Expand Down

0 comments on commit 22fcd0c

Please sign in to comment.