Contributing

Find out how to contribute to microgradpp and what areas need help.

Contributing#

We'd love your help making microgradpp even better! Whether you're fixing a bug, adding a feature, or improving docs — all contributions are welcome. šŸ™Œ

How to Contribute#

Fork the Repository

Head over to GitHub and fork the repo to your own account.

Create a Feature Branch

Bash
git checkout -b feature/AmazingFeature

Give your branch a descriptive name so others know what you're working on.

Make Your Changes

Write your code, add tests if applicable, and make sure everything builds cleanly.

Commit Your Changes

Bash
git commit -m 'Add some AmazingFeature'

Keep commit messages clear and descriptive.

Push and Open a Pull Request

Bash
git push origin feature/AmazingFeature

Then open a Pull Request on GitHub. Describe what you changed and why!

Areas Where You Can Help#

Here's what's on the roadmap:

TaskStatus
CMakeLists flag for building testsāœ… Done
Tensor Classāœ… Done
Activation Function Enum/Classāœ… Done
Abstract Base Class for Layer and Valueāœ… Done
CI/CD Pipeline with GitHub ActionsšŸ”„ Needed
More Examples & TutorialsšŸ”„ Needed
Python BindingsšŸ”„ Needed

Not sure where to start? The CI/CD pipeline and more examples are great first contributions — they don't require deep knowledge of the internals!

Citing microgradpp#

Using microgradpp in your research? Please cite it:

bibtex
@software{microgradpp,
  author = {Gautam Sharma},
  title = {microgradpp: A C++ Machine Learning Library},
  year = {2024},
  url = {https://github.com/ggsharma/microgradpp}
}

Acknowledgments#

A huge shoutout to Andrej Karpathy for the original micrograd that inspired this whole project, and to everyone in the C++ community who's given feedback and contributed.


microgradpp is licensed under the GNU GPL-3.0 License. Built with ā¤ļø by Gautam Sharma.