Welcome to Magemaker Contributing Guide

We’re excited that you’re interested in contributing to Magemaker! This document will guide you through the process of contributing to the project.

Ways to Contribute

Report Bugs

Create issues for bugs you encounter while using Magemaker

Feature Requests

Suggest new features or improvements

Documentation

Help improve our documentation

Code

Submit pull requests with bug fixes or new features

Development Setup

1

Fork and Clone

git clone https://github.com/YOUR_USERNAME/magemaker.git
cd magemaker
2

Install Dependencies

pip install -e ".[dev]"
3

Create Branch

git checkout -b feature/your-feature-name

Development Guidelines

Code Style

We use the following tools to maintain code quality:

  • Black for Python code formatting
  • isort for import sorting
  • flake8 for style guide enforcement

Run the following before committing:

black .
isort .
flake8

Testing

All new features should include tests. We use pytest for our test suite.

Run tests locally:

pytest tests/

Documentation

When adding new features, please update the relevant documentation:

  1. Update the README.md if needed
  2. Add/update docstrings for new functions/classes
  3. Create/update relevant .mdx files in the docs directory

Pull Request Process

1

Create Branch

Create a new branch for your changes:

git checkout -b feature/your-feature
2

Make Changes

Make your changes and commit them with clear commit messages:

git add .
git commit -m "feat: add new deployment option"
3

Push Changes

Push your changes to your fork:

git push origin feature/your-feature
4

Create PR

Open a Pull Request against the main repository

Pull Request Guidelines

Clear Description

Provide a clear description of your changes

Tests

Include relevant tests for new features

Documentation

Update documentation as needed

Clean History

Keep commits focused and clean

Commit Message Convention

We follow the Conventional Commits specification:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes
  • refactor: Code refactoring
  • test: Adding missing tests
  • chore: Maintenance tasks

Example:

feat(deployment): add support for custom docker images

Getting Help

If you need help with your contribution:

Discord Community

Join our Discord server for real-time discussions

GitHub Discussions

Start a discussion in our GitHub repository

Email Support

Contact us at support@slashml.com

Code of Conduct

We are committed to providing a welcoming and inclusive experience for everyone. Please read our Code of Conduct before participating.

License

By contributing to Magemaker, you agree that your contributions will be licensed under the Apache 2.0 License.