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

Add contribution docs, bug report, and feature improvement issue template #63

Merged
merged 4 commits into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Bug Report
description: Report a bug to help us enhance the code quality
title: '[Bug]: '
labels: ['bug']

body:
- type: markdown
attributes:
value: |
Please ensure that the bug is not already being tracked.
- type: textarea
attributes:
label: Bug Description
description: Provide a clear and concise description of the bug, specifying the affected contracts.
arcantheon marked this conversation as resolved.
Show resolved Hide resolved
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Describe the expected behavior after the bug is fixed.
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: If you have written tests showcasing the bug, provide instructions to reproduce the issue.
placeholder: 'git checkout <branchname> / forge test --match-test <testName>'
- type: textarea
attributes:
label: Additional Context
description: Include any additional context such as dependencies or related contracts that are affected.
47 changes: 47 additions & 0 deletions .github/ISSUE_TEMPLATE/FEATURE_IMPROVEMENT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Feature Improvement
description: Propose an enhancement to USDs-v2.
labels: ['triage']

body:
- type: markdown
attributes:
value: |
Please verify that the proposed feature has not already been requested.
# - type: dropdown
# attributes:
# label: Component
# description: Identify the area of code your idea improves.
# multiple: true
# options:
# - Hooks
# - Singleton
# - Lock and Call
# - Delta accounting
# - 1155 Balances
# - Pool Actions (swap, modifyPosition, donate, take, settle, mint)
# - Gas Optimization
# - General design optimization (improving efficiency, cleanliness, or developer experience)
# - Documentation
TechnoGeek01 marked this conversation as resolved.
Show resolved Hide resolved
- type: textarea
attributes:
label: Feature Description
description: Provide a clear and concise description of the suggested feature and the problems it addresses.
validations:
required: true
- type: textarea
attributes:
label: Implementation Proposal
description: If possible, suggest a high-level architecture change or implementation details.
- type: textarea
attributes:
label: Alternative Approaches
description: Describe any alternative solutions considered or the current functionality's sub-optimal aspects.
- type: textarea
attributes:
label: Additional Context
description: List any additional dependencies or related contracts that may be affected by the proposed feature.
arcantheon marked this conversation as resolved.
Show resolved Hide resolved
- type: textarea
attributes:
label: External References
description: |
Share links or code references to other external implementations where this feature is already implemented.
84 changes: 84 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Contribution Guidelines

Thank you for considering contributing to the USDs Protocol! Your involvement is highly appreciated. This guide outlines how you can participate and contribute effectively. Before you start, please familiarize yourself with these guidelines to ensure a smooth collaboration.

## Table of Contents

- [Getting Started](#getting-started)
- [Code of Conduct](#code-of-conduct)
- [Types of Contributions](#types-of-contributions)
- [Opening an Issue](#opening-an-issue)
- [Opening a Pull Request](#opening-a-pull-request)
- [Standards](#standards)
- [Community](#community)
- [License](#license)

## Getting Started

Before you contribute, make sure you have:

- A GitHub account. If you don't have one, you can [sign up here](https://github.com/join).
- Familiarity with USDs Protocol. Learn more on our [website](https://app.sperax.io/) or explore our [documentation](https://docs.sperax.io/).
- Foundry installed. Follow the steps [here](https://book.getfoundry.sh/getting-started/installation) to install Foundry.

## Code of Conduct

As contributors, we commit to respecting everyone participating in this project. Project maintainers reserve the right to remove content that violates the Code of Conduct.

## Types of Contributions

Various ways to contribute include:

1. **Opening an issue:** Check for [existing issues](https://github.com/Sperax/USDs-v2/issues) before opening a new one. Provide details within an open issue rather than duplicating it. We welcome feedback and suggestions on the development process.

2. **Resolving an issue:** Address an issue by either disproving it or fixing it with code changes. Any pull request fixing an issue should reference that issue.

3. **Reviewing open PRs:** Provide comments, guidance on standards, naming suggestions, gas optimizations, or alternative design ideas on any open pull request.

To contact maintainers or seek clarification, message in the `#engineering-dev` room on our official [Discord](https://discord.com/invite/cFdcvj9jMm).

## Opening an Issue

When [opening an issue](https://github.com/Sperax/USDs-v2/issues/new/choose), choose a template: Bug Report or Feature Improvement. For bug reports, demonstrate the bug through tests or proof of concept implementations. For feature improvements, title it concisely and ensure a similar request is not already open or in progress. Follow up on any questions or comments from others regarding the issue.

Feel free to tag the issue as a “good first issue” for cleanup-related tasks or small-scoped changes to encourage pull requests from first-time contributors!

## Opening a Pull Request

Open all pull requests against the `main` branch. Reference the issue you are addressing in the pull request.

Community members can review pull requests, but maintainers' approval is needed for merging. Understand it may take time for a response, but maintainers will aim to comment as soon as possible.

**For significant code changes, open an issue to discuss changes with maintainers before development.**

Before opening a pull request:

- Ensure code style follows the [standards](#standards).
- Run tests and check coverage.
- Add extensive code documentation following Solidity [standards](https://docs.soliditylang.org/en/latest/natspec-format.html).
- Include tests. For smaller contributions, use unit tests and fuzz tests. For larger contributions, include integration tests and invariant tests where possible.

## Standards

All contributions must adhere to the following standards. PRs not following these standards will be closed by maintainers.

1. Format contracts with the default Forge `fmt` config. Run `forge fmt`.
2. Follow the [Solidity style guide](https://docs.soliditylang.org/en/v0.8.17/style-guide.html) with the exception of using the _prependUnderscore style naming for internal contract functions, internal top-level parameters, and function parameters with naming collisions.
3. Picking up stale issues by other authors is acceptable; communicate with them beforehand and include co-authors in commits.
4. Squash commits when possible for clean and efficient reviews. Merged PRs will be squashed into 1 commit.

## Community

Stay updated and engage with other contributors and users:

- [Website](https://www.sperax.io/)
- [Telegram](https://t.me/SperaxUSD)
- [Discord](https://discord.com/invite/cFdcvj9jMm)
- [Twitter](https://twitter.com/SperaxUSD)
- [Medium](https://medium.com/sperax)

## License

By contributing to our protocol, you agree that your contributions will be licensed under the [MIT LICENSE](https://opensource.org/license/mit/) associated with the project.

Thank you for your interest in the USDs Protocol. We look forward to your contributions and appreciate your support in making our project even better!
Loading