Thanks for checking out Git-Sim and for your interest in contributing! I hope that we can work together to build an incredible tool for developers to visualize Git commands.
To report a bug you found, please open a GitHub issue and describe the error or problem in detail. Please check existing issues to make sure it hasn't already been reported.
When submitting a new issue, it helps to include:
- The steps you took that lead to the issue
- Any error message(s) that you received
- A description of any unexpected behavior
- The version of Git-Sim you're running
- The version of Python you're running and whether it's system-level or in a virtual environment
- The operating system and version you're running
If you've got a cool idea for a feature that you'd like to see implemented in Git-Sim, we'd love to hear about it!
To suggest an enhancement or new feature, please open a GitHub issue and describe your proposed idea in detail. Please include why you think this idea would be beneficial to the Git-Sim user base.
Note: Git-Sim is a new project so these steps are not fully optimized yet, but they should get you going.
To start contributing code to Git-Sim, you'll need to perform the following steps:
- Install manim and manim dependencies for your OS
- Fork the Git-Sim codebase so that you have a copy on GitHub that you can clone and work with
- Clone the codebase down to your local machine
- Checkout and commit new work to the
dev
branch - If you previously installed Git-Sim normally using pip, uninstall it first using:
$ pip uninstall git-sim
- To run the code locally from source, install the development package by running:
$ cd path/to/git-sim
$ python -m pip install -e .[dev]
Explanation:
python -m pip
uses thepip
module of the currently active python interpreter.
install -e .[dev]
is the command thatpip
executes, where
-e
means to make it an editable install,the dot
.
refers to the current directory,and
[dev]
tells pip to install the "dev
" Extras (which are defined in theproject.optional-dependencies
section ofpyproject.toml
).
This will install sources from your cloned repo such that you can edit the source and the changes are reflected instantly.
If you already have the dependencies, you can ignore those using the --no-deps
flag:
$ python -m pip install --no-deps -e .
- You can run your local Git-Sim commands from within other local repos like this:
$ git-sim [global options] <subcommand> [subcommand options]
For example, you can simulate the git add
command locally like this:
$ cd path/to/any/local/git/repo
$ git-sim --animate add newfile.txt
- After pushing your code changes up to your fork, submit a pull request to the
dev
branch for me to review your code, provide feedback, and merge it into the codebase!
Since Git-Sim is a new project, we don't have an official code style set in stone. For now just try and make your new code fit in with the existing style you find in the codebase, and we'll update this section later if that changes.
This project uses the black
code formatter to keep all code in a constistent format.
Please install it in your development environment and run black path/to/changed/files
before committing any changes.
We have a few simple rules for Git-Sim commit messages:
- Write commit messages in the imperative mood
- Add a signoff trailer to your commits by using the
-s
flag when you make your commits, like this:
$ git commit -sm "Fixed xyz..."
If you have any additional questions about contributing to Git-Sim, feel free to send me an email at jacob@initialcommit.io.