update version. tweak the test (install cython 3.0 for non-x64)
[MACS.git] / CONTRIBUTING.md
blob3b7500a462c48e905a0a08f8e19abdf482805501
1 # Contributing to MACS project
3 First of all, thanks for taking the time to contribute! :tada:
5 The following is a set of guidelines for contributing to MACS, which is hosted in the [MACS project](https://github.com/macs3-project) on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
7 #### Table Of Contents
9 [Code of Conduct](#code-of-conduct)
11 [What should I know before I get started?](#what-should-i-know-before-i-get-started)
12   * [MACS documentations](#macs-documentations)
13   * [MACS Slack Community](#macs-slack-community)
15 [How Can I Contribute?](#how-can-i-contribute)
16   * [Reporting Bugs](#reporting-bugs)
17   * [Suggesting Enhancements](#suggesting-enhancements)
18   * [Your First Code Contribution](#your-first-code-contribution)
19   * [Pull Requests](#pull-requests)
21 [Styleguides](#styleguides)
22   * [Git Commit Messages](#git-commit-messages)
23   * [Python Styleguide](#python-styleguide)
24   * [Documentation Styleguide](#documentation-styleguide)
26 [Additional Notes](#additional-notes)
27   * [Issue and Pull Request Labels](#issue-and-pull-request-labels)
29 ## Code of Conduct
31 This project and everyone participating in it is governed by the [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [macs3-project@google.com](mailto:macs3-project@google.com).
33 ## What Should I Know Before I Get Started
35 :see_no_evil: **Note:** We do not prohibit issues regarding general questions (e.g. usage of MACS or suggestions on data analysis). However, please label such issues with the tag  [General Question][search-macs-label-general-question]. But, before you do so, you'll get faster results by using the resources below.
37 ### MACS Documentations
39 We have an official tutorial and a detailed FAQ compiled from the community. 
41 * [MACS documentations](https://macs3.github.io)
42   * [MACS tutorial](https://macs3.github.io)
43   * [MACS FAQ](https://macs3.github.io)
44   * [MACS API](https://macs3.github.io)
46 ### MACS Slack Community
48 If chat is more your speed, you can join the [MACS3 Slack community](https://macs3.slack.com/):
49 * Even though Slack is a chat service, sometimes it takes several hours for community members to respond — please be patient!
50 * Use the `#general` channel for general questions or discussion about MACS3
51 * Use the `#data-analysis` channel for detailed questions about data-analysis. For example, how to analyze your own data using MACS.
52 * Use the `#feature-request` channel for suggestions on new features.
53 * Use the `#bug-reports` channel for reporting and discussing bugs you find.
54 * There are many other channels available, check the channel list
56 ## How Can I Contribute?
58 ### Reporting Bugs
60 This section guides you through submitting a bug report for MACS. Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:.
62 Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one. When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](https://github.com/macs3-project/macs/.github/blob/master/.github/ISSUE_TEMPLATE/bug_report.md), the information it asks for helps us resolve issues faster.
64 **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
66 #### Before Submitting A Bug Report
68 ...
70 #### How Do I Submit A (Good) Bug Report?
72 Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). 
74 Explain the problem and include additional details to help maintainers reproduce the problem:
76 ...
78 Provide more context by answering these questions:
80 ...
82 Provide details about your configuration and environment:
84 ...
86 ### Suggesting Enhancements
88 ...
90 #### Before Submitting An Enhancement Suggestion
92 ...
94 #### How Do I Submit A (Good) Enhancement Suggestion?
96 Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). 
97 ...
99 ### Your First Code Contribution
101 #### Local development
103 MACS can be developed locally. 
105 * [Setting up local testing environment through Docker](./docs/testing_in_docker.md)
107 ### Pull Requests
109 The process described here has several goals:
111 - Maintain MACS quality
112 - Fix problems that are important to users
113 - Engage the community in working toward the best possible MACS
114 - Enable a sustainable system for MACS maintainers to review contributions
116 Please follow these steps to have your contribution considered by the maintainers:
118 1. Follow all instructions in [the template](PULL_REQUEST_TEMPLATE.md)
119 2. Follow the [styleguides](#styleguides)
120 3. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing <details><summary>What if the status checks are failing?</summary>If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.</details>
122 While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
124 ## Styleguides
126 ### Python Styleguide
128 All Python/Cython codes must adhere to PEP.
131 ### Documentation Styleguide
133 * Use [Markdown](https://daringfireball.net/projects/markdown).
135 ## Additional Notes
137 ### Issue and Pull Request Labels
139 This section lists the labels we use to help us track and manage issues and pull requests. 
141 [GitHub search](https://help.github.com/articles/searching-issues/) makes it easy to use labels for finding groups of issues or pull requests you're interested in. We  encourage you to read about [other search filters](https://help.github.com/articles/searching-issues/) which will help you write more focused queries.
143 The labels are loosely grouped by their purpose, but it's not required that every issue have a label from every group or that an issue can't have more than one label from the same group.
145 Please open an issue on `macs3-project/MACS` if you have suggestions for new labels, and if you notice some labels are missing on some repositories, then please open an issue on that repository.
147 #### Type of Issue and Issue State
149 #### Topic Categories
152 #### Pull Request Labels