Skip to content

Template for Projects that use Github Actions and Hooks to enforce Semantic Versioning

License

Notifications You must be signed in to change notification settings

devlinjunker/template.github.semver

Repository files navigation

Version
1.8-SNAPSHOT

semver template logo

Template - Semantic Versioning with Github

GitHub License
GitHub release (latest SemVer) GitHub last commit
CII Best Practices Summary
GitHub issues GitHub priority issues

Intro

This is a template project that uses GitHub Actions and Git Hooks to enforce Semantic Versioning. It can be used as a jumping off point to start a programming project with:

  • Basic Documentation File Templates
  • Core Infrastructure Initiative Criteria Badge
  • Issue and Pull Request Templates
  • Git Hooks to enforce readable and meaningful commit messages
  • Automated merges and verification for develop and main branches
  • Semi-Automated Semantic Versioned releases based on commit messages using GitHub Actions
  • Semi-Automated Patch process using Github Actions
  • Standardized Labels and Automatic Labeling of Pull Requests

Dependencies/Frameworks

  • Git - to clone and trigger Git Hooks
  • Bash - to run scripts during Git Hooks (for process enforcement)
  • GitHub - this template uses Github Actions for process enforcement
  • Bulldozer - Github Application to Auto Squash and Merge feature PRs
  • Git-mkver - Small program to determine next tag/release number based on git tags

Quick Setup/Run

This is a template repository, it contains documentation on how to use the repo that should be reviewed first.

Review Documentation

Links

Steps For New Project

Once you have completed reviewing the docs above, follow the instructions below Clone and Use as Template

  • Clone or Fork to New Project
    • Delete Tags and Rename Git "remote" if Cloning
  • Enable Git Hooks with symbolic links
  • Enable Github Actions
    • Add a PAT to the forked repo
    • Point wiki sync action at new repo
      • Initialize Wiki to start Syncing README files
  • Create Labels with the manage-labels GitHub Action in your new repo
  • Enable Bulldozer
    • For Auto Squash and Merge PRs
  • Optional Steps
    • Setup Branch Protections
    • Enable Dependabot to keep Github Actions up to date

Update the Docs

  • Update README
    • Reset Version to 0.1-SNAPSHOT
    • Update/Remove Badges
      • Project URL
      • CII Project Rank
    • Update Intro/Purpose
    • Define Dependencies
    • Update Setup Instructions
    • Review/Remove Links
  • Review/Update License File
  • Update/Restart Security Policy
    • Provide private way of reporting vulnerabilities?
  • Remove/Replace Logo files in img/ directory
    • If replacing, change logo location in README
  • Review/Update Contributing Guide
  • Review/Update Code of Conduct

Before you Code

  • Create main branch off of develop
    • Update version in README to 0.0.0 in main branch
  • Create new feature/* Branch!
  • Add Project Build and Configuration Files
  • Add Code and Push!

Contributors