If you're reading this, you're awesome!
Thank you for helping us make this project great and being a part of the argos community. Here are a few guidelines that will help you along the way.
Have you found a bug or thought of a great new feature? Here's how to share it:
- Check for duplicates: Search existing issues and pull requests to see if your idea or bug has already been reported or resolved.
- Create a detailed issue:
- Describe the problem or feature request clearly.
- Include steps to reproduce the bug or context for your suggestion.
💡 Pro Tip: Each topic deserves its own issue. Avoid combining unrelated ideas into a single issue.
Argos is an open source project, so pull requests are always welcome! Here’s how to make sure your contribution gets the best chance of being merged.
- Discuss first: For larger changes, open an issue to get feedback from maintainers before coding.
- Keep it focused: One feature or bug fix per PR, please.
- Include tests: Please attempt to add or update tests to confirm your changes work as expected.
- Write clear PR descriptions: Explain what your PR does and why.
-
Fork the repository and clone it to your local machine:
git clone --depth 1 git@github.com:<your-username>/argos.git cd argos
-
Create a branch for your changes:
git checkout main git pull origin main git checkout -b my-feature-branch
-
Make your changes and ensure your code adheres to the linting rules:
pnpm run lint
-
Run the test suite to verify everything works:
pnpm run test
-
Push your branch to your fork and create a pull request:
git push --set-upstream origin my-feature-branch
-
Visit GitHub and open a PR!
Follow these steps to set up your development environment:
1. Install dependencies
This project uses pnpm, be sure to install it using corepack or another method.
pnpm install
2. Configure environment variables
Copy .env.example
as .env
file in the root of the project.
3. Update your hosts file
Add the following lines to your hosts file to work locally:
# Argos
127.0.0.1 app.argos-ci.dev
127.0.0.1 api.argos-ci.dev
4. Install SSL certificates
Install mkcert and generate certificates:
mkcert -install
mkcert "*.argos-ci.dev"
Two files with the extension ".pem" should be generated at the root of the project.
5. Set up the database
docker-compose up -d
pnpm run setup
pnpm run --filter @argos/backend db:seed
6. Start the development server
pnpm run dev
- All stable releases are tagged (view tags).
- The main branch represents the latest development version of the library.
When you add a new type linked to a model, don't forget to edit codegen.ts
to add mapper.
Example with Build:
const mappers = {
Build: "@argos/backend/models#Build",
};
You can populate the database with development data using:
pnpm run --filter @argos/backend db:truncate && pnpm run --filter @argos/backend db:seed
pnpm run --filter @argos/backend db:migrate:make my_migration
pnpm run --filter @argos/backend db:dump
pnpm run --filter @argos/backend db:migrate:latest
NODE_ENV=test pnpm run --filter @argos/backend db:reset
Ensure your code follows the project’s coding standards:
pnpm run lint
pnpm run test
- Install Playwright dependencies:
npx playwright install --with-deps
- Run E2E setup:
pnpm run e2e:setup
- Run E2E tests:
pnpm run e2e:start
# or in debug mode with
# pnpm run e2e:start -- --debug
Please follow the coding style of the current code base. Argos uses ESLint to maintain a consistent coding style. If possible, enable linting in your editor to get realtime feedback. Linting can be run manually with pnpm run lint
.
Continuous Integration will run linting on your PR, so it’s best to ensure your code is clean before submitting.
Want to contribute but don’t know where to start? Check out Argos' Roadmap and open issues for ideas. Every contribution helps!
By contributing to the argos-ci/argos GitHub repository, you agree to license your work under the MIT license.
We’re excited to see what you’ll build! If you have any questions, don’t hesitate to ask in your pull request or issue. Happy coding! 🎉