2.6 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			2.6 KiB
		
	
	
	
	
	
	
	
Mongo2Go - Knowledge for Maintainers
Creating a Release
Mongo2Go uses 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
- 
Push Your Changes
- Commit and push your changes to the main branch. This will trigger a CI build to validate the changes.
git commit -m "Your commit message" git push 
 - Commit and push your changes to the main branch. This will trigger a CI build to validate the changes.
 - 
Wait for the CI Build
- Ensure that the GitHub Actions workflow completes successfully. This confirms your changes are valid.
 
 - 
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 (
-aflag):git tag -a v4.0.0 - Push the tag to trigger the deployment workflow:
git push --tags 
 - 
Draft Release Created
- The workflow will:
- Create a multi-target NuGet package.
 - Publish the package to nuget.org.
 - Create a draft release on GitHub with a placeholder note.
 
 
 - The workflow will:
 - 
Review and Finalize the Release
- Visit the Releases page.
 - 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:
- The first push (commit) triggers a CI build to validate the changes.
 - The second push (tag) triggers the deployment workflow.
 
 - 
Triggers:
- Commits are validated for all branches.
 - Tags starting with 
vtrigger 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 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.