mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-11 08:15:38 +02:00
120 lines
4.2 KiB
Markdown
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! |