First off, thank you for considering contributing to MarketPipe! It's people like you that make MarketPipe such a great tool.
All work on MarketPipe happens directly on GitHub. Both core team members and external contributors send pull requests which go through the same review process.
We will do our best to keep the main
branch in good shape, with tests passing at all times. If you're looking for a task to contribute to, check out the issues tagged with ready_for_development
.
If you encounter a problem with MarketPipe, you are welcome to open an issue. Before that, please make sure to check if an issue doesn't already exist.
Great Bug Reports need to have:
- A quick summary and/or background.
- Steps to reproduce.
- Be specific!
- Give sample code if you can.
- What you expected would happen.
- What actually happens.
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work).
Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Please provide as much detail and context as possible.
Working on your first Pull Request? You can learn on How to Contribute to an Open Source Project on GitHub
Here's a quick rundown of the process:
- Fork the repository and create your branch from
main
. - Always create a new branch for your work.
- If you've added code that should be tested, add tests.
- If you've changed functionality and use of marketpipe, update the documentation.
- Ensure the test suite passes (defined in
pre-commit
). - Make sure your code lints (defined in
pre-commit
). - Issue that pull request!
To ensure code quality and run unit tests and runs black linter before committing changes, MarketTrackPipe uses pre-commit hooks.
Additionally, these tests are also executed in a GitHub Actions workflow on every pull request to the repository.
Ready to start? Make sure to setup your environment:
-
Create a Virtual Environment (Recommended): A virtual environment helps manage dependencies and keeps your system tidy. Here's how you can set one up:
python3 -m venv marketpipe-env source marketpipe-env/bin/activate
-
Install Dependencies: MarketPipe comes with a
requirements.txt
file that lists all the Python packages needed for the project. Install them using:pip install -r requirements.txt
-
Install Docker: You can install Docker from here.
-
Install Pre-commit: Pre-commit is a tool to help you manage your git pre-commit hooks. You can install it using:
pre-commit install