diff --git a/contributing.md b/contributing.md new file mode 100644 index 000000000..5c9ee66c8 --- /dev/null +++ b/contributing.md @@ -0,0 +1,54 @@ +# Contributing + +Welcome to the Pelican project! We are excited to have you contribute to our open-source project. This guide will help you get started with setting up your development environment, understanding our coding standards, and making your first or next contribution. + +## Getting started + +To start contributing to Pelican Panel, you need to have a basic understanding of the following: + +* [PHP](https://php.net) & [Laravel](https://laravel.com) +* [Livewire](https://laravel-livewire.com) & [Filament](https://filamentphp.com) +* [Git](https://git-scm.com) & [Github](https://github.com) + +## Dev Environment Setup + +1. Fork the Repository +2. Clone your Fork +3. Install Dependencies (PHP modules & composer, and run `composer install`) +4. Configure your Environment (via `php artisan p:environment:setup`) +5. Set up your Database (via `php artisan p:environment:database`) and run Migrations (via `php artisan migrate --seed --force`) +6. Create your first Admin User (via `php artisan p:user:make`) +7. Start your Webserver (e.g. Nginx or Apache) + +As IDE we recommend [Visual Studio](https://visualstudio.microsoft.com)/ [Visual Studio Code](https://code.visualstudio.com) (free) or [PhpStorm](https://www.jetbrains.com/phpstorm) (paid). + +To easily install PHP and the Webserver we recommend Laravel Herd. ([Windows](https://herd.laravel.com/windows) & [macOS](https://herd.laravel.com)) +The (paid) Pro version of Laravel Herd also offers easy MySQL and Redis hosting, but it is not needed. + +## Coding Standards + +We use PHPStan/ [Larastan](https://github.com/larastan/larastan) and PHP-CS-Fixer/ [Pint](https://laravel.com/docs/11.x/pint) to enforce certain code styles and standards. +You can run PHPStan via `\vendor\bin\phpstan analyse` and Pint via `\vendor\bin\pint`. + +## Making Contributions + +From your forked repository, make your own changes on your own branch. (do not make changes directly to `main`!) +When you are ready, you can submit a pull request to the Pelican repository. If you still work on your pull request or need help with something make sure to mark it as Draft. + +Also, please make sure that your pull requests are as targeted and simple as possible and don't do a hundred things at a time. If you want to add/ change/ fix 5 different things you should make 5 different pull requests. + +*Note: For now we only accept pull requests that handle existing issues!* + +## Code Review Process + +Your pull request will then be reviewed by the maintainers. +Once you have an approval from a maintainer, another will merge it once it’s confirmed. + +Depending on the pull request size this process can take multiple days. + +## Community and Support + +* Help: [Discord](https://discord.gg/pelican-panel) +* Bugs: [GitHub Issues](https://github.com/pelican-dev/panel/issues) +* Features: [GitHub Discussions](https://github.com/pelican-dev/panel/discussions) +* Security vulnerabilities: See our [security policy](./security.md).