# 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.