We love your input! We want to make contributing to OPSource as easy and transparent as possible.
- Fork the repo and create your branch from
main
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
The project is organized into several key components, each maintained as a separate repository:
-
Core AI Components (
anya-core/
):dash33/
: AI decision engine and analyticsenterprise/
: Enterprise integration and business logicmobile/
: Mobile interface and platform-specific codeweb5-rs/
: Web5 implementation in Rust
-
Enterprise Components (
enterprise/
):- Focused enterprise-specific implementations
- Direct integration with core components
- Custom business logic and workflows
When contributing to the project, follow these guidelines for working with submodules:
-
Initial Setup:
# Clone the repository with all submodules git clone --recursive [email protected]:botshelomokoka/OPSource.git # If already cloned, initialize and update submodules git submodule update --init --recursive
-
Making Changes:
- Work in the appropriate component directory
- Commit changes in the submodule first
- Update the parent repository to point to the new commit
-
Updating Submodules:
# Update all submodules to their latest versions git submodule update --remote # Update a specific submodule git submodule update --remote anya-core/[component]
-
Creating Pull Requests:
- Submit separate PRs for submodule and parent repository changes
- Reference related PRs in your commit messages
- Ensure CI passes in both repositories
-
Code Organization:
- Keep related code within its appropriate component
- Avoid duplicate implementations across components
- Use clear and consistent naming conventions
-
Dependencies:
- Minimize cross-component dependencies
- Document any new dependencies clearly
- Keep dependency versions in sync across components
-
Testing:
- Write tests for both component and integration levels
- Ensure all tests pass before submitting PRs
- Include documentation updates with code changes
- Update the README.md with details of changes to the interface
- Update the docs/ with any new information
- The PR will be merged once you have the sign-off of two other developers
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
Report bugs using Github's issue tracker
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
By contributing, you agree that your contributions will be licensed under its MIT License.