Resolve Concelier/Excititor merge conflicts
This commit is contained in:
		
							
								
								
									
										66
									
								
								Mongo2Go-4.1.0/README_INTERNAL.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								Mongo2Go-4.1.0/README_INTERNAL.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | ||||
| # Mongo2Go - Knowledge for Maintainers | ||||
|  | ||||
| ## Creating a Release | ||||
|  | ||||
| Mongo2Go uses [MinVer](https://github.com/adamralph/minver) for versioning. | ||||
| Releases are fully automated via GitHub Actions and triggered by tagging a commit with the desired semantic version number. | ||||
| This process involves two steps to ensure reliable deployments. | ||||
|  | ||||
| ### Steps to Create a Release | ||||
|  | ||||
| 1. **Push Your Changes** | ||||
|    - Commit and push your changes to the main branch. This will trigger a CI build to validate the changes. | ||||
|      ```bash | ||||
|      git commit -m "Your commit message" | ||||
|      git push | ||||
|      ``` | ||||
|  | ||||
| 2. **Wait for the CI Build** | ||||
|    - Ensure that the GitHub Actions workflow completes successfully. This confirms your changes are valid. | ||||
|  | ||||
| 3. **Tag the Commit** | ||||
|    - Once the CI build passes, create a lightweight tag with the desired version number | ||||
|    - Use an **annotated tag** to ensure the release is properly versioned and auditable (`-a` flag): | ||||
|      ```bash | ||||
|      git tag -a v4.0.0 | ||||
|      ``` | ||||
|    - Push the tag to trigger the deployment workflow: | ||||
|      ```bash | ||||
|      git push --tags | ||||
|      ``` | ||||
|  | ||||
| 4. **Draft Release Created** | ||||
|    - The workflow will: | ||||
|      1. Create a multi-target NuGet package. | ||||
|      2. Publish the package to nuget.org. | ||||
|      3. Create a **draft release** on GitHub with a placeholder note. | ||||
|  | ||||
| 5. **Review and Finalize the Release** | ||||
|    - Visit the [Releases page](https://github.com/Mongo2Go/Mongo2Go/releases). | ||||
|    - Open the draft release, update the release notes with details about the changes (e.g., changelog, features, fixes), and publish the release manually. | ||||
|  | ||||
|  | ||||
| ## Workflow Details | ||||
|  | ||||
| - **Two-Step Process**: | ||||
|   1. The first push (commit) triggers a CI build to validate the changes. | ||||
|   2. The second push (tag) triggers the deployment workflow. | ||||
|  | ||||
| - **Triggers**: | ||||
|   - Commits are validated for all branches. | ||||
|   - Tags starting with `v` trigger deployment. | ||||
|  | ||||
| - **Draft Releases**: | ||||
|   - Releases are created as drafts, allowing maintainers to review and add release notes before publishing. | ||||
|  | ||||
| - **Automation**: | ||||
|   - The workflow automates building, testing, publishing to nuget.org, and creating a draft GitHub release. | ||||
|  | ||||
|  | ||||
| ## Best Practices for Maintainers | ||||
|  | ||||
| - **Semantic Versioning**: Ensure that tags follow the [semantic versioning](https://semver.org/) format (`vMAJOR.MINOR.PATCH`). | ||||
| - **Pre-Releases**: Use pre-release tags for non-final versions (e.g., `v4.0.0-rc.1`). | ||||
| - **Detailed Release Notes**: Always add detailed information to the GitHub release, highlighting major changes, fixes, and improvements. | ||||
| - **Final Review**: Review the draft release to ensure all details are correct before publishing. | ||||
|  | ||||
		Reference in New Issue
	
	Block a user