Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] Proposed Release Mgmt Workflows #71

Open
wwsean08 opened this issue Jul 11, 2021 · 4 comments
Open

[FEAT] Proposed Release Mgmt Workflows #71

wwsean08 opened this issue Jul 11, 2021 · 4 comments
Labels
enhancement New feature or request

Comments

@wwsean08
Copy link
Contributor

wwsean08 commented Jul 11, 2021

Is your feature request related to a problem? Please describe.
Per conversations on discord, this is something that we want to look into, so I am using this issue to propose a solution as well as open a PR against eventually.

Describe the solution you'd like

Pull Request Workflow:

  • Scan for vulnerabilities using something like snyk or another similar vulnerability scanning tool
  • Consider scanning via sonar cloud (or similar) product for code smell and potential vulnerability issues using.
    • Only recommending sonar cloud because it's free for open source and something I've used before (though not extensively)
  • Perform a license check to prevent unwanted/incompatible license types from being introduced into the project when new (or updated) dependencies are introduced
  • Run unit tests (once they exist) to validate no regressions/issues were introduced and generate code coverage
    • I have a couple unit tests that I plan to open a PR to introduce soon.

Development Build (push to main)

  • Run unit tests (once they exist) to validate no regressions/issues were introduced and generate code coverage
  • Consider scanning via sonar cloud (or similar) product for code smell and potential vulnerability issues using.
    • If sonar cloud is used, for code coverage data to look right it needs to be run on the default branch so that the pull requests will show deltas.

Release Workflow:
The workflow will get kicked off when a tag is created that matches a semver version (for example v0.0.1 or v1.0.0-rc1).

  • Create release in github releases
    • If the tag ends in -* the release will be marked as a pre-release.
    • Change log is put in the release notes, how this is done is still TBD, ideally it would be automatic, but it could also be done via a CHANGELOG.md file, then parse out the changes and put it in the release
  • The various scans outlined in the pull request workflow
  • Upload a docker container to the docker registry of choice (could be useful to simplify setup depending on how things go)
  • (perhaps nice to have) Automatically send a message to discord to notify users of a new TAU release with a link to it.

Nightly Workflow:

  • Take care of running scrape_helix_docs.py and opening a PR automatically if there is a change
  • Potentially other tasks that should or need to happen on a regular basis.
@wwsean08 wwsean08 added the enhancement New feature or request label Jul 11, 2021
@wwsean08
Copy link
Contributor Author

Also I realize the license checking may not be necessary, but it's something I like to do even for my open source projects, just in case.

@wwsean08
Copy link
Contributor Author

I would also like to propose adding a "Breaking" label to this repo for PRs that introduce any breaking changes for release note generation reasons. This is unlikely to be a problem in the short term, but could be useful down the line.

@FiniteSingularity
Copy link
Member

This all sounds fantastic. Looking at how django works, there are a few things that need to be checked, especially for any PR that introduces migrations:

  1. Does the PR work for a newly-created TAU instance that uses Postgres
  2. Does the PR work for an existing TAU instance that uses Postgres
  3. Does the PR work for a newly-created TAU instance that uses Sqlite3
  4. Does the PR work for an existing TAU instance that uses Sqlite3

@chadwithuhc
Copy link

I'd like to see version numbers displayed in the Dashboard somewhere. That way I can determine which version I am running when logged in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants