Skip to content

Contributing to APPL

Thank you for considering contributing to APPL, A Prompt Programming Language that extends Python to provide a Natural, Intuitive, Convenient, and Efficient (NICE) way to utilize Large Language Models (LLMs) such as GPT in your program.

We welcome contributions of all kinds and we are grateful for your efforts! Here’s a guide to help you get started:

Code of Conduct

By contributing, you agree to uphold our Code of Conduct. Please read it thoroughly to understand our expectations for behavior.

How to Contribute

Reporting Issues

If you encounter any bugs, unexpected behaviors, or have suggestions for new features, please file an issue in our GitHub issue tracker. Be as detailed as possible, including the version of APPL you are using and steps to reproduce the issue.

Improving Documentation

You can help improve our documentation by fixing typos, adding new examples, or enhancing existing documentation. Check out our documentation files to get started, and feel free to submit a pull request with your changes.

Submitting Code Changes

  1. Fork the Repository: Start by forking the APPL repository.
  2. Create a Branch: Create a feature branch for your changes (git checkout -b my-feature).
  3. Make Changes: Write your code and test thoroughly.
  4. Add Tests: Ensure any new functionality is covered by tests, and that existing tests continue to pass.
  5. Run Code Formatters and Linters: Make sure your code is formatted using black and check for type errors using mypy before committing your code.
  6. Commit Changes: Commit your changes, including a descriptive commit message.
  7. Push to GitHub: Push your changes to your fork (git push origin my-feature).
  8. Create a Pull Request: Open a pull request from your fork to the main repository, describing your changes.

New Features

If you have a suggestion for a new feature:

  1. Motivation: Clearly explain the motivation for your proposed feature. Why is it beneficial to the project? What specific problem or limitation does it address?
  2. Intention: Describe the intended functionality of the new feature. What would it accomplish? How would users interact with it?
  3. Impact: Discuss any expected impact on the existing codebase. Would it require significant changes? Would it be backward compatible?

Feel free to share your ideas by opening a feature request in our GitHub issue tracker.

Pull Request Guidelines

  • Ensure your code follows our coding style and conventions.
  • Write meaningful commit messages and pull request descriptions.
  • Reference relevant issues in your pull request description (e.g., "Closes #123").
  • Run tests locally to ensure all tests pass before submitting the pull request.

Code Style Guidelines

  • Follow PEP 8 for Python code.
  • Write clear and concise docstrings using PEP 257.
  • Use type hints wherever applicable.
  • Maintain modularity and avoid hard-coded values.
  • Ensure your code is formatted using black and checked for type errors with mypy.

Code Review Process

After you submit your pull request, it will be reviewed by one or more maintainers. We may ask you to make adjustments before merging. Please be responsive to feedback, and feel free to ask questions!

Community

Feel free to reach out to the community in our Discussions. We encourage collaboration and will be happy to help guide you through the process.

Thank You

Thank you again for your interest in contributing to APPL. We appreciate your efforts in helping make APPL a great project for everyone!

The APPL Team