Contribution Workflow for Stride Projects
This guide outlines the fundamental workflow for contributing to various Stride projects, including the Stride engine, Stride website, and Stride documentation. Whether you're a seasoned contributor or new to the project, this workflow ensures your contributions are effectively integrated.
Overview
The contribution process involves several key steps, from forking the repository to having your changes merged into the main project. This workflow is applicable to contributions to the Stride engine, Stride website, and Stride documentation.
%% Define styles
%% Main Graph
graph TB
%% Nodes
Start[Start]
A[Fork the Repository]
B[Create Branch 'X']
C[Make Updates on Branch 'X']
D{Has the Upstream Changed?}
E[Sync/Merge Upstream with Forked Main Branch]
F[Sync/Merge Forked Main Branch with Branch 'X']
G[Test Your Updates]
H["Create a Pull Request (PR)"]
I[Maintainers Review]
J[Address PR Feedback]
K[Revise and Update PR as Necessary]
L[Wait for PR to be Merged by Maintainers]
M[Sync/Merge Upstream with Your Forked Main Branch]
N[Update or Add relevant Documentation]
O{Additional Contributions?}
Z[End]
%% Edges
Start --> A --> B --> C --> D
D -->|Yes| E
D -->|No| G
E --> F --> G
G --> H --> I --> J --> K --> L --> M --> N --> O
O -->|Yes| B
O -->|No| Z
Detailed Steps
- Fork the Repository: Begin by forking the repository of the project you're interested in contributing to. This creates a personal copy for you to work on.
- Create a Branch 'X': Create a new branch in your forked repository, naming it appropriately for the changes you plan to implement.
- Make Updates on Branch 'X': Implement your changes within this new branch. Ensure your modifications align with the project's standards and guidelines.
- Has the Upstream Changed?: Regularly check if the original repository has been updated. Keeping your fork in sync with the upstream ensures compatibility and reduces conflicts.
- Sync/Merge Upstream with Forked Main Branch: If the upstream has changed, update your forked repository's main branch to reflect the latest changes from the original project.
- Sync/Merge Forked Main Branch with Branch 'X': Ensure your working branch 'X' is also updated with any new changes from the main branch of your fork.
- Test Your Updates: Thoroughly test your updates to confirm they work as expected and do not introduce new issues.
- Create a Pull Request (PR): Once satisfied with your changes and testing, submit a pull request to the original repository for review.
- Maintainers Review: The project maintainers will review your PR. This process ensures that contributions are beneficial and fit the project's goals.
- Address PR Feedback: If maintainers or other contributors have feedback, make the necessary adjustments to your PR. This collaborative effort enhances the project's quality.
- Revise and Update PR as Necessary: Continue to refine and update your PR based on ongoing feedback until it meets the project's standards for merging.
- Wait for PR to be Merged by Maintainers: After approval, maintainers will merge your PR into the project. This step integrates your contribution with the main codebase.
- Sync/Merge Upstream with Your Forked Main Branch: Post-merge, ensure your forked repository's main branch is updated to include your newly merged changes.
- Update or Add Relevant Documentation: Contribute to the project's documentation to reflect your changes, helping future users and contributors understand the new functionalities or fixes.
- Additional Contributions?: Consider whether you want to make further contributions. If so, start the process again by creating a new branch.
- End: Conclude your current contribution cycle. Whether you decide to contribute more or take a break, your efforts have now been integrated into the project.
Best Practices
- Ensure your updates align with the project goals and guidelines
- Keep your fork synchronized with the main repository to avoid conflicts
- Engage with the Stride community for support and collaboration
For more specific guidelines related to each project, refer to their respective contribution documentation.