2021-04-18 01:56:23 +02:00
# 💡 Contributing
2023-05-30 21:51:27 +02:00
Thanks a lot for your interest in contributing to **theoludwig.fr** ! 🎉
2021-04-18 01:56:23 +02:00
2023-05-13 19:09:54 +02:00
## Code of Conduct
2023-05-30 21:51:27 +02:00
**theoludwig.fr** adopted the [Contributor Covenant ](https://www.contributor-covenant.org/ ) as its Code of Conduct, and we expect project participants to adhere to it. Please read [the full text ](./CODE_OF_CONDUCT.md ) so that you can understand what actions will and will not be tolerated.
2023-05-13 19:09:54 +02:00
2021-04-18 01:56:23 +02:00
## Types of contributions
- Reporting a bug.
- Suggest a new feature idea.
- Correct spelling errors, improvements or additions to documentation files (README, CONTRIBUTING...).
- Improve structure/format/performance/refactor/tests of the code.
## Pull Requests
2023-05-31 20:09:08 +02:00
- **Please first discuss** the change you wish to make via [issue ](https://github.com/theoludwig/theoludwig/issues ) before making a change. It might avoid a waste of your time.
2021-04-18 01:56:23 +02:00
2021-12-04 15:52:51 +01:00
- Ensure your code respect linting.
2021-04-18 01:56:23 +02:00
- Make sure your **code passes the tests** .
2023-05-30 21:51:27 +02:00
If you're adding new features to **theoludwig.fr** , please include tests.
2021-04-18 01:56:23 +02:00
## Commits
2023-05-13 19:09:54 +02:00
The commit message guidelines adheres to [Conventional Commits ](https://www.conventionalcommits.org/ ) and [Semantic Versioning ](https://semver.org/ ) for releases.
2021-04-18 02:11:33 +02:00
## Getting Started
2021-06-13 01:53:13 +02:00
### Prerequisites
2024-07-30 23:59:06 +02:00
- [Node.js ](https://nodejs.org/ ) >= 22.0.0
2024-12-06 09:30:44 +01:00
- [pnpm ](https://pnpm.io/ ) >= 9.14.4 [(`corepack enable`) ](https://nodejs.org/docs/latest-v22.x/api/corepack.html )
2024-10-12 23:51:58 +02:00
- [Docker ](https://www.docker.com/ )
2021-06-13 01:53:13 +02:00
2021-04-18 02:11:33 +02:00
### Installation
```sh
# Clone the repository
2023-06-16 22:56:53 +02:00
git clone git@github.com:theoludwig/theoludwig.git
2021-04-18 02:11:33 +02:00
2024-09-11 23:53:26 +02:00
# Go to the project root
cd theoludwig
2021-04-18 02:11:33 +02:00
# Configure environment variables
cp .env.example .env
2024-07-30 23:59:06 +02:00
cp apps/website/.env.example apps/website/.env
# Install dependencies
pnpm install --frozen-lockfile
2021-06-13 01:53:13 +02:00
2024-07-30 23:59:06 +02:00
# Install Playwright browser binaries and their dependencies (tests)
pnpm exec playwright install --with-deps
2021-06-13 01:53:13 +02:00
```
2024-07-30 23:59:06 +02:00
### Development
2021-06-13 01:53:13 +02:00
```sh
2024-07-30 23:59:06 +02:00
# Start the development server
node --run dev
# Lint
node --run lint:editorconfig
node --run lint:markdown
node --run lint:typescript
2024-10-12 23:51:58 +02:00
node --run lint:eslint
node --run lint:prettier
2024-07-30 23:59:06 +02:00
# Tests
node --run test
# Build
node --run build
2024-10-12 23:51:58 +02:00
# To execute a command in a specific package (e.g: packages/utils)
cd packages/utils
node --run test
2021-04-18 02:11:33 +02:00
```
2021-06-13 01:53:13 +02:00
### Production environment with [Docker](https://www.docker.com/)
2021-04-18 02:11:33 +02:00
```sh
# Setup and run all the services for you
2022-05-03 10:05:11 +02:00
docker compose up --build
2021-04-18 02:11:33 +02:00
```
2024-07-30 23:59:06 +02:00
#### Services started
2021-04-18 02:11:33 +02:00
2024-07-30 23:59:06 +02:00
`theoludwig` : < http: // 127 . 0 . 0 . 1:3000 >