Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INFRA] Add GitHub templates and community files #30

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 86 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
**pablo.peitsch@gmail.com**.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
132 changes: 132 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# Contributing Guidelines

*Pull requests, bug reports, and all other forms of contribution are welcomed and highly encouraged!* :octocat:

### Contents

- [Our Standards](#balance_scale-our-standards)
- [Getting Help](#thinking-getting-help)
- [Reporting Issues](#lady_beetle-reporting-issues)
- [Feature Proposals](#sparkles-feature-proposals)
- [Issue Triage](#microscope-issue-triage)
- [Pull Requests](#rocket-pull-requests)
- [Commit Guidelines](#pencil2-commit-guidelines)
- [Review Process](#eyes-review-process)
- [Code Style & Standards](#art-code-style--standards)
- [Developer's Certificate](#scroll-developers-certificate)

> **This guide sets clear expectations for everyone involved with the project so that we can improve it together while creating a welcoming space for everyone to participate.**

## :balance_scale: Our Standards

Please review our [Code of Conduct](CODE_OF_CONDUCT.md). It is in effect at all times. We expect it to be honored by everyone who contributes to this project. Disrespectful behavior will not be tolerated.

## :thinking: Getting Help

Before opening an issue, check the [documentation](https://pkynetics.readthedocs.io/). GitHub issues are for bugs and feature requests, not questions or debugging help.

## :lady_beetle: Reporting Issues

Before [creating an issue](https://help.github.com/en/github/managing-your-work-on-github/creating-an-issue), check if you are using the latest version of the project.

### :shield: Security Issues

Review our [Security Policy](SECURITY.md). **Do not** file public issues for security vulnerabilities.

### :bug: Bug Reports

Send detailed issue reports when you encounter bugs. A well-written bug report helps us immensely. :v:

Since you are most likely a developer, **provide a ticket that you would like to receive**.

- **Check the documentation** first
- **Avoid duplicates!** Search existing issues
- **Use reactions** instead of "+1" comments
- **Complete the template** fully
- **Use [GitHub-flavored Markdown](https://help.github.com/en/github/writing-on-github/basic-writing-and-formatting-syntax)**

## :sparkles: Feature Proposals

Feature proposals are welcome! We'll consider all requests but cannot guarantee acceptance. We aim to avoid [feature creep](https://en.wikipedia.org/wiki/Feature_creep).

- **Search first** for similar proposals
- **Complete the template** thoroughly
- **Be specific** about implementation details

## :microscope: Issue Triage

Help us by reproducing bug reports and providing additional information on issues. Any assistance in resolving issues is appreciated!

## :rocket: Pull Requests

We **love** pull requests! Before submitting significant changes, open an issue to discuss your proposal.

For accepted PRs, you'll be invited to become a project collaborator with **push access**. :tada:
PPeitsch marked this conversation as resolved.
Show resolved Hide resolved

*All contributions are licensed under the project's license.*

- **Keep it small.** One change per PR
- **Discuss big changes** first
- **Write clear code** over clever code
- **Follow project style**
- **Add tests**
- **Update documentation**
- **Update CHANGELOG**
- **Target default branch**
- **Resolve conflicts**
- **Fix CI failures**

## :pencil2: Commit Guidelines

Follow these [commit message guidelines](https://chris.beams.io/posts/git-commit/):

```
[TAG] Concise change description in 50 chars or less

More detailed explanation if needed. Wrap at 72 characters. Focus
on WHY this change is being made rather than WHAT was changed.

The code itself shows what changed; use this space to explain
motivation and context.

- Bullet points welcome
- Use hyphens or asterisks

Resolves: #123
See also: #456
```

## :eyes: Review Process

- **Focus on the code**, not the person
- **Don't take it personally**
- **Aim for quality**

## :art: Code Style & Standards

For Python code:
- Follow PEP 8
- Use type hints
- Write clear docstrings following NumPy style
- Use `black` formatter with line length 100
- Use `isort` for import sorting
- Pass `mypy` checks with strict settings
- Add appropriate tests with `pytest`
PPeitsch marked this conversation as resolved.
Show resolved Hide resolved

## :scroll: Developer's Certificate

*Developer's Certificate of Origin 1.1*

By contributing, you certify that:

> 1. Your contribution is your original work and you have the right to submit it under the project's license
> 2. Your contribution is based on previous work under an appropriate open source license
> 3. The contribution was provided to you by someone who certified 1 or 2
> 4. You understand this contribution is public and will be maintained indefinitely

## The Contributor's Token :key:

If you've read these guidelines (thank you!), include the ⚡ lightning emoji at the start of your pull requests and issues. You're awesome! :100:

---
*These contributing guidelines are based on the excellent work by Jesse Squires ([@jessesquires](https://github.com/jessesquires)).*
109 changes: 109 additions & 0 deletions .github/ISSUE_TEMPLATE/bug.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Bug Report
description: Report an issue you encountered with Pkynetics
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
Please include the ⚡ emoji at the start of your title if you've read our contributing guidelines.
PPeitsch marked this conversation as resolved.
Show resolved Hide resolved
- type: checkboxes
id: terms
attributes:
label: Guidelines
description: By submitting this issue, you agree to follow our [Contributing Guidelines](https://github.com/PPeitsch/pkynetics/blob/main/.github/CONTRIBUTING.md)
options:
- label: I agree to follow this project's Contributing Guidelines
required: true
- label: I have searched for similar issues before creating this one
required: true

- type: input
id: version
attributes:
label: Pkynetics Version
description: What version of Pkynetics are you using?
placeholder: "0.2.3"
validations:
required: true

- type: input
id: python-version
attributes:
label: Python Version
description: Which Python version(s) have you tested with?
placeholder: "Python 3.9, 3.10, 3.11"
validations:
required: true

- type: input
id: os
attributes:
label: Operating System
description: Which OS are you using?
placeholder: "Ubuntu 22.04, Windows 11, macOS 13.0"
validations:
required: true

- type: textarea
id: description
attributes:
label: Bug Description
description: Clearly and concisely describe the bug
placeholder: Tell us what went wrong
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior
value: |
```python
# Include a minimal code example that demonstrates the issue
from pkynetics import model_fitting_methods

# Your code here
```

1.
2.
3.
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened?
validations:
required: true

- type: textarea
id: error
attributes:
label: Error Message & Stack Trace
description: If applicable, paste the full error message and stack trace
render: python
validations:
required: false

- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other relevant context about the problem
placeholder: "Dependency versions, environment details, related issues, etc."
validations:
required: false
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: 📚 Documentation
url: https://pkynetics.readthedocs.io/
about: Check our documentation before creating an issue
- name: 💬 Discussions
url: https://github.com/PPeitsch/pkynetics/discussions
about: Please ask and answer questions here
- name: 🔒 Security Issues
url: https://github.com/PPeitsch/pkynetics/security/policy
about: Please report security vulnerabilities directly to the maintainers
Loading