Files
netris-nestri/CONTRIBUTING.md
2024-09-20 15:10:50 +03:00

120 lines
4.2 KiB
Markdown

# Contributing to Nestri
First off, thank you for considering contributing to Nestri! It's people like you that make Nestri such a great tool.
## Code of Conduct
By participating in this project, you are expected to uphold our [Code of Conduct](CODE_OF_CONDUCT.md).
## How Can I Contribute?
### Reporting Bugs
This section guides you through submitting a bug report for Nestri. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Provide specific examples to demonstrate the steps.
### Suggesting Enhancements
This section guides you through submitting an enhancement suggestion for Nestri, including completely new features and minor improvements to existing functionality.
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps.
### Pull Requests
- Fill in the required template
- Do not include issue numbers in the PR title
- Include screenshots and animated GIFs in your pull request whenever possible.
- Follow the JavaScript/TypeScript styleguides.
- End all files with a newline
## Styleguides
### Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
### JavaScript/Typescript Styleguide
All JavaScript and Typescript must adhere to the eslint and TS rules set in `.eslintrc` and `tsconfig` respectively. Your build will fail, otherwise.
## Additional Notes
### Issue and Pull Request Labels
This section lists the labels we use to help us track and manage issues and pull requests.
* `🐛 fix` - Issues that are bugs.
* `✨ feat` - Issues that are feature requests.
* `📝 docs` - Issues or pull requests related to documentation.
* `🔧 chore` - Pull requests that add or update configuration files
* `💄 style` - Issues or Pull requests related to the UI or style files
* `⚡ perf` - Issues or Pull Requests that are related to performance
* `♻ refactor` - Issues or Pull Requests related to code refactors
* `good first issue` - Good for newcomers.
## Project Structure
Nestri is organized as a monorepo using Turborepo. Here's an overview of the main directories and their purposes:
### Root Directory
- `apps/`: Contains the main applications
- `www/`: The main Nestri website built with Qwik
- `infra/`: Contains the relevant files to deploy the app using [SST](https://sst.dev)
- `packages/`: Shared packages and configurations
- `api/`: Core API for Nestri
- `eslint-config/`: Shared ESLint configurations
- `typescript-config/`: Shared TypeScript configurations
- `ui/`: Shared UI components and styles
### Key Files
- `package.json`: Root package file defining workspaces and shared dev dependencies
- `turbo.json`: Turborepo configuration
- `LICENSE`: GNU Affero General Public License v3.0
### Apps
#### www (Nestri Website)
This is the Nestri website hosted on Cloudflare Pages
### Packages
#### api (Nestri Core)
The core API for Nestri, built with Hono and deployed to Cloudflare Workers.
#### eslint-config
Shared ESLint configurations for maintaining consistent code style across the project.
#### typescript-config
Shared TypeScript configurations to ensure consistent TypeScript settings across the project.
#### ui
Shared UI components and styles used across the Nestri project.
### Infrastructure
- `infra/`: Contains infrastructure-as-code files
- `www.ts`: Defines the deployment configuration for the Nestri website
### Development
When working on Nestri, you'll primarily be dealing with the `apps/www` directory for the main website and the various packages in the `packages/` directory for shared functionality.
For more detailed information about each package or app, refer to their respective README files or package.json scripts.
Thank you for contributing to Nestri!