-
Notifications
You must be signed in to change notification settings - Fork 3
Maintenance Procedure
This type of milestone has a title that is a semantic version number with no prerelease or metadata tags (e.g., 7.0.0
). Once a Release has been made for the milestone, copy the Release notes into the description of the milestone; if there was no milestone due date, put the date that the Release was deployed as the due date. Finally, close the Milestone!
In the future, there may be other types of milestones 🤷♂️
All labels come with a description of how to use them. Related labels will start with a common prefix (e.g., diff:
)
- All code changes should be described in as much detail as needed by issues
- The issue should be assigned to either yourself or someone else
- The issue should be labeled for
feature
orbug
orenhancement
- The issue should be linked to a stable Version Number milestone
- All code changes which affect the package (excluding metadata such as README or ICON) should be merged into the default branch through pull requests
- The pull request should be assigned to either yourself or someone else
- The pull request should be labeled for
diff
- The pull request should be linked to a Stable Version Number milestone
- The pull request should be linked to any related issues by using Closing keywords in the description
Pull Requests are deployed to the beta environment which is hosted on MyGet.
Whenever a pull request is opened or receives new pushes, it will trigger the Publish to Beta workflow, which is what triggers the deployment.
To add this source to your project, run the following command:
dotnet nuget add source https://www.myget.org/F/entitydb-io-beta/api/v3/index.json -n 'EntityDb Beta'
Whenever code has been merged to the default branch, the Build workflow will be triggered. This workflow runs the tests that update coverage and quality scores, and the status of this workflow (as well as the status of coverage and quality) is displayed from the README.
My personal feeling is that commits should be Squashed into the default branch. The commit history is easier to follow because every commit links back to a Pull Request. If you need to see the original commits, they are available on the Pull Request, and if you want to do a binary search for a bug, you can do one pass to locate the pull request, then do another search on the branch for that pull request. (If the pull request's branch was deleted, GitHub provides a feature to restore the branch. The button is on the closed pull request's page, and it is labeled Restore branch
)
Once code has been squash-merged to the default branch, it's ready to be deployed to the stable environment, which is hosted on NuGet
In order to start the deployment procedure, you just need to Draft a new release.
-
Click on the
Choose a tag
drop-down. In the input with the placeholderFind or create a new tag
, enter a Stable Version Number (there should be a corresponding Milestone) -
Make sure the
Target
drop-down is the default branch -
You do not need to specify a
Release Title
, but feel free to. I've seen some repositories use what appear to be randomly generated code names. That might be fun! -
Directly above the top right corner of the
Description
input is a buttonGenerate release notes
. Click on that. It will list all of the pull requests for the release in the description. You are free to add any additional description you want. -
If you're not ready to release, click
Save draft
. It will be listed in the releases with a badge ofDraft
. Click on the pencil icon to get back to the editor page. -
Once you're ready to release the new packages, click on
Publish release
. This will start the Publish to Stable workflow. -
Stable deployments need to be approved by @the-avid-engineer