# Protocol Maintenance SOP :: App and SDK Maintenance # Overview This guide will outline the processes for: 1. Bug/Feature/Issue Triage 2. Pull Request Review and Testing 3. App and NPM Package Deployment ## Resources Contribution Guidelines and local development set up can be found on [this page](https://docs.daohaus.club/contributing) All App and SDK code can be found in the [Monorepo](https://github.com/HausDAO/monorepo) [Issue board](https://github.com/HausDAO/monorepo/issues) ## Procedures Issue Triage PR Review and Testing Deployment and Release Management ## Issue Triage **WHO:** Any contributor can monitor and file bug reports. Ultimately the Protocol Maintenance steward is responsible for ensuring the issue triage process is flowing. **HOW OFTEN:** As Needed. The #bug Channel should be checked weekly. ### How To **1. Monitor the DAOhaus Discord for bug reports** The most common place for bug reports are: - [Protocol Section - #Bugs Channel](https://discord.com/channels/709210493549674598/908738422666063892) - [Protocol Section - #Protocol Chat Channel](https://discord.com/channels/709210493549674598/1082764707141795960) - [Public Square Section - #Support Channel](https://discord.com/channels/709210493549674598/1082758136093478932) **2. Create an Issue** If a new bug is reported, gather as much info as possible and create an issue in the [Monorepo Issue board](https://github.com/HausDAO/monorepo/issues) [New issue form is here](https://github.com/HausDAO/monorepo/issues/new/choose) The form will walk you through to provide information that will help contributors efficiently fix the issues. ![Screenshot from 2024-06-11 13-44-22](https://hackmd.io/_uploads/rkzdKmUr0.png) ![Screenshot from 2024-06-11 13-44-31](https://hackmd.io/_uploads/S1sDFXLBR.png) Some of the actions you might need to take to gather good info include asking the bug reporter for details, testing the issue your self, providing step-by-step instrucitons for replicating the issue and taking screenshots to illustrate the problem. Here is an example of a [good bug report](https://github.com/HausDAO/monorepo/issues/360) **3. Don't forget to pdate the user that made the bug report after the fix has been deployed.** ## Pull Request Management **WHO:** Any contributor can monitor and test PRs. Ultimately the Protocol Maintenance steward is responsible for ensuring the PR testing and merging process is flowing. **HOW OFTEN:** Open PRs should be reviewed every other week at minimum. ### How To **1. Review Open Pull Requests** Pull Requests can be found in the [monorepo](https://github.com/HausDAO/monorepo/pulls) All pull requests require approval from an existing contributor. Reach out in [#Protocol Chat](https://discord.com/channels/709210493549674598/1082764707141795960) if you've been contributing for a while and would like to be granted approval permissions. **2. Pull the branch down locally and test** Ensure the bug is fixed or feature added works as expected. Smoke test the rest of the app or SDK to ensure this hasn't introduced other issues. 3. Provide feedback or merge PR Merging to the `develop` branch will build the apps to the testing deployments at for further testing: https://admin.daohaus.fun/ https://summon.daohaus.fun/ ## Deployment The app deployments are managed with github actions, built to Cloudflare instnaces and the domains are managed by core contributors: - PRs merged from your feature branch to `develop` will build to the .fun testing deployments - PRs merged from `develop` to `main` will build to the .club production deployments The subgraph deployment process can be found here XXXXXXXXXXXXXX The SDK npm packages are managed with github actions and deployed when package versions are updated ### Releasing package versions Unless there is something that needs to go out immediately, it's most convenient to group SDK updates into NPM package releases. a Monthly cadence seems depending on the number of updates. 1. Open a branch off `develop` with this naming convention `release/<year><month<day>` ie.) `release/20240329` 2. Bump the npm package version found in each affected package in the [libs folder](https://github.com/HausDAO/monorepo/tree/develop/libs) Use standard semver versioning to identify patch, minor and major version updates. NOTE: These packages are pretty tightly coupled, sowWe've been bumping all package version in most cases keeping the version numbers in sync across packages. ![Screenshot from 2024-06-11 14-21-08](https://hackmd.io/_uploads/SyNTZ4LS0.png) 3. Create a Release page [All Release](https://github.com/HausDAO/monorepo/releases) [Example](https://github.com/HausDAO/monorepo/releases/tag/v0.4.1) Include: - Full commit log - Bullet of important changes - Note any breaking changes and upgrade instructions - Contributor list 4. Open a PRs from - First from your release branch into `develop` - Then from `develop` into `main` - PRs will require contibutor approval. Post the link to the PR in [#Protocol Chat](https://discord.com/channels/709210493549674598/1082764707141795960) to get help with that. 5. Monitor the gihub actions to ensure the build works [Action Logs](https://github.com/HausDAO/monorepo/actions) 6. When deployed post a link to the release page in [#Protocol Chat](https://discord.com/channels/709210493549674598/1082764707141795960) ## Monthly Rewards **WHO:** Protocol Maintenance steward **HOW OFTEN:** Monthly - Review all contributions - Some activities likely considered for rewards - Issue triage - PR testing and management - Release management and deployment - Issue Development - Distribute accordingly from the safe wearing the steward hat