Skip to content

♻️ Release Automation #1813

Closed
Closed
@mtrezza

Description

@mtrezza

New Feature / Enhancement Checklist

Current Limitation

see parse-community/parse-server#7271

Feature / Enhancement Description

This PR adds release automation to Parse Dashboard.

Roadmap

Phase 1 (add release automation):

  • Add release automation for master branch
  • Only allow "squash & merge" for all branches
  • Add docker release job for automated release
  • Add docker release job for manual release
  • Remove changelog CI check from code and repo settings
  • Remove changelog TODO from PR template
  • Adapt GH issue labels

Phase 2 (change branch model):

  • Rename default branch to alpha
  • Add release, beta branches
  • Adapt release automation to new branch model
  • Adapt docker release jobs to get triggered on alpha / beta commits
  • Inform contributors that PRs needs to be opened against alpha branch
    • Add pinned issue
    • Add to Parse GitHub assistant --> only allows PRs against default branch
    • Add to contribution docs
  • Adapt synk to watch alpha and release branches (not beta branch) only for security fix PR, not for regular dependency upgrade PRs

Phase 3 (monitor workflows):

  • Execute one full alpha -> beta -> release merge workflow (contribution) to ensure it works
  • Execute one full release -> alpha -> beta merge workflow (hotfix) to ensure it works
  • Find and document a working mode for PRs opened by Snyk on alpha and release branches
  • Monitor contributor feedback
  • Monitor merge workflows

Phase 4 (long-term support):

  • Add LTS branch release-N where N is the major version based on release branch
  • Add LTS branch to snyk to monitor

Release Flow

alpha

  • release time: spontaneous
  • merge:
    • contributor pull request into alpha

beta

  • release time: monthly; this gives the beta release 1 month to mature
  • merge:
    • alpha into beta once at the beginning of a month
    • alpha into beta only fixes during the month (feature freeze)

release

  • release time: monthly; gives the beta release 1 month to mature
  • merge:
    • beta into release once at the beginning of a month
    • urgent security hotfixes into release during a month (have to be back-ported to alpha)
      A

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:ciCI related issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions