Thank you for your interest in contributing to the Pippin Framework! 🎉 Your contributions help make this project better for everyone.
By submitting a pull request, you affirm that you have the right to license your contributions under the MIT License and agree to the following:
- Ownership: You retain ownership of any intellectual property rights you hold in your contributions.
- License Grant: You grant Pippin and its users a perpetual, worldwide, non-exclusive, royalty-free license to use, modify, and distribute your contributions under the terms of the MIT License.
- No Restrictions: Your contributions do not infringe upon any third-party rights and are free from any restrictions that would prevent them from being licensed under the MIT License.
- Code of Conduct
- Governance
- How to Contribute
- Style Guide
- Issue and Pull Request Tagging
- Keeping Pippin Simple
- Using Composio
- Enhancing Framework Usability
- External Integrations
- Expanding Pippin with Skills and Activities (Planned)
- Inspired Projects & Forks (We don't have this yet)
- Additional Tips
- Using Issue and Pull Request Templates
We are committed to providing a welcoming and inclusive environment for all contributors. Please read our Code of Conduct before participating.
Our project follows a community-oriented governance model, outlined in the Governance Document. This document details how decisions are made, roles and responsibilities, and how contributors can engage in the project's evolution.
- Search Existing Issues: Ensure your issue hasn't been reported already.
- Open a New Issue: Provide a clear title and detailed description, including steps to reproduce, expected vs. actual behavior, and any relevant screenshots or logs.
- Select Appropriate Labels: Use labels like
bug
,feature-request
, ordocumentation
to categorize your issue.
- Open an Issue: Label it as
feature-request
. - Describe the Feature: Explain the problem it solves and its benefits.
- Provide Use Cases: Share examples or scenarios where the feature would be useful.
- Fork the Repository: Create your own fork of the Pippin repository.
- Create a Branch: Use a descriptive name, e.g.,
feature/add-authentication
. - Make Your Changes: Follow the existing code style and project goals.
- Write Tests: Include tests to maintain code quality.
- Run Tests: Ensure all tests pass.
- Submit the PR: Provide a clear description, reference related issues, and follow the PR template.
- Code Style: Follow the existing style of code.
- Documentation: Write clear and concise docs for new features or changes.
- Commit Messages: Use meaningful messages, preferably following Conventional Commits.
Issue Tags:
bug
: Unexpected behavior or error.feature-request
: Suggestion for a new feature.documentation
: Improvements or additions to docs.enhancement
: Improvements to existing features.question
: Inquiries about using the framework.discussion
: Topics requiring community input.good first issue
: Suitable for first-time contributors.help wanted
: Contributions needed.priority: high
,priority: medium
,priority: low
: Indicate issue priority.needs-triage
: New issues awaiting review.
Pull Request Tags:
bugfix
: Resolves a bug.feature
: Introduces new features.documentation
: Updates or adds documentation.enhancement
: Improves existing features.refactor
: Code restructuring without changing functionality.tests
: Adds or modifies tests.chore
: Routine tasks and maintenance.WIP
: Work in progress.
- Consistent Usage: Apply tags consistently for clarity.
- Descriptive Labels: Use labels that accurately describe the issue or PR.
- Avoid Redundancy: Select the most appropriate single tag.
- Automate When Possible: Use GitHub Actions to assign
needs-triage
to new issues.
- Initial Triage: Maintainers review
needs-triage
issues, assign appropriate labels, and set priority (high
,medium
,low
). - Community Voting: Encourage reactions (e.g., 👍) to indicate interest.
- Maintainer Decisions: Prioritize based on impact, alignment with goals, and available resources.
- Milestone Assignment: Assign issues to upcoming releases based on priority.
- Regular Review: Periodically reassess open issues to adjust priorities as needed.
- Minimal Integrations: Avoid unnecessary integrations. Focus on core functionalities.
- Modular Design: Encourage modularity to allow users to extend functionality without bloating the framework.
- Leverage Composio: Use Composio for configurations and integrations to maintain consistency.
- Documentation: Document any changes involving Composio clearly.
- Improved Documentation: Cover more use cases and provide clearer instructions.
- Better Error Messages: Make error messages descriptive to aid troubleshooting.
- User Experience: Streamline workflows and reduce complexity for end-users.
- Prefer External APIs: Integrate external APIs outside the core framework. Composio is a good option, but it would be great to look into setting up a Pippin Skills/Activities repository we can pull from.
To enhance Pippin Framework without compromising its simplicity, we plan to introduce Skills and Activities—modular components that extend functionality by leveraging existing functions and integrations from other frameworks.
- Repository Name:
pippin-skills
- Purpose: Centralized location for community-contributed skills and activities.
- Contribution: Guidelines for contributing skills and activities will be provided once the repository is established.
- Modularity: Easily integrate or remove functionalities without affecting the core.
- Community-Driven: Leverage the community's expertise to expand Pippin's capabilities.
- Maintain Simplicity: Keep the core framework lightweight by offloading extensions.
Stay tuned for updates on the Skills and Activities Repository. In the meantime, feel free to discuss ideas or express interest in contributing skills through our discussion forums.
- Dedicated Document: Maintain a list of inspired projects, forks, and iterations.
- Submit Your Project: Add your project by opening a pull request with details.
- Describe Your Adaptation: Include a brief description of how your project extends Pippin.
- Stay Updated: Regularly sync your fork with the main repository.
- Ask for Feedback: Seek feedback on your ideas or implementations.
- Be Respectful: Engage respectfully with all contributors.
- Test Thoroughly: Ensure your contributions are well-tested to maintain reliability.
To streamline the contribution process, we have set up standardized templates for issues and pull requests. These templates help maintain consistency and ensure that all necessary information is provided.
We have separate templates for different types of issues:
- Bug Report: Use this template to report bugs or unexpected behavior.
- Feature Request: Use this template to suggest new features or enhancements.
- Documentation Improvement: Use this template to propose changes or additions to the documentation.
When you open a new issue, select the appropriate template from the "New issue" dropdown.
Our pull request template ensures that all PRs include essential information for a smooth review process.
When you open a new pull request, the template will automatically populate the description. Please fill out all sections to provide context and details about your changes.