| # Collaboration Guidelines and Codebase Quality Standards | |
| To ensure smooth collaboration and maintain the high quality of our codebase, please adhere to the following guidelines: | |
| ## Branching Strategy | |
| * **`premain`**: | |
| * Always push your changes to the `premain` branch initially. | |
| * This safeguards the `main` branch from unintentional disruptions. | |
| * All tests will be performed on the `premain` branch. | |
| * Changes will only be merged into `main` after several hours or days of rigorous testing. | |
| * **`experimental`**: | |
| * For large or potentially disruptive changes, use the `experimental` branch. | |
| * This allows for thorough discussion and review before considering a merge into `main`. | |
| ## Pre-Pull Request Checklist | |
| Before creating a Pull Request (PR), ensure you have completed the following tests: | |
| ### Functionality | |
| * **Realtime Faceswap**: | |
| * Test with face enhancer **enabled** and **disabled**. | |
| * **Map Faces**: | |
| * Test with both options (**enabled** and **disabled**). | |
| * **Camera Listing**: | |
| * Verify that all cameras are listed accurately. | |
| ### Stability | |
| * **Realtime FPS**: | |
| * Confirm that there is no drop in real-time frames per second (FPS). | |
| * **Boot Time**: | |
| * Changes should not negatively impact the boot time of either the application or the real-time faceswap feature. | |
| * **GPU Overloading**: | |
| * Test for a minimum of 15 minutes to guarantee no GPU overloading, which could lead to crashes. | |
| * **App Performance**: | |
| * The application should remain responsive and not exhibit any lag. | |