Development Lifecycle - KevinDHeath/NuGetPackages GitHub Wiki

The software development lifecycle (SDLC) is the cost-effective and time-efficient process that development teams use to design and build high-quality software.

Implement and Maintain

  1. When an issue is created assign it to a contributor.
    Creating an issue
  2. The contributor should create a local branch to make the changes in and give it a meaningful name.
    When working in the branch just use commit to allow squashing before pushing the branch to origin\
# Create a branch
git branch                       # show local branches
git branch -c main [branch-name] # create branch based on main
git switch [branch-name]         # switch to new branch

git branch -b [new-name]         # change current branch name
git branch --delete [name]       # change branch name

Pull requests
  1. Create a pull request listing the modifications and the issues they relate to.
    Linking a pull request to an issue, Manually linking a pull request or branch to an issue
  2. Review and merge the pull request. A workflow is automatically triggered on merge to perform a release build.
    Merging a pull request
  3. Once the triggered workflow has completed successfully the branch associated with the pull request can be deleted in origin and local.
  4. Close as completed any related issues if not associated with the pull request.
# Pull merged changes
git status         # show the working tree status
git switch main    # switch to main
git pull --ff-only # pull the changes from origin

Publish release
  1. Prepare the documentation and publish to GitHub pages.
  2. Update the Change Log README files for any changed packages, then commit and push the changes.
    a. Follow the steps in Pull requests
    b. Create a new tag on the main branch for the last commit and push all tags to origin
    c. Create a draft release using the new tag and generate the release notes.
  3. When the release is published a workflow is automatically triggered to upload any new package versions to NuGet.
# Create a tag
git switch main        # switch to main
git tag                # show existing tags
git tag -a vYYYY.M.*   # create tag (opens editor)
git push --follow-tags # push annotated tags to origin

# Delete a tag
git tag -d [tag-name]

⚠️ **GitHub.com Fallback** ⚠️