Skip to content

Add support for multiple product releases#1306

Open
ryanwhitney wants to merge 14 commits into
developfrom
mutliple-releases
Open

Add support for multiple product releases#1306
ryanwhitney wants to merge 14 commits into
developfrom
mutliple-releases

Conversation

@ryanwhitney
Copy link
Copy Markdown
Contributor

@ryanwhitney ryanwhitney commented Jun 1, 2026

Description

Fixes #1205.

  • Adds support for releases of multiple SecureDrop products, which editors can manage on their own
    • Adds new product snippet that release snippets FK to
      • release snippets are automatically associated to a product if there is an existing product with matching repo_full_name (i.e. freedomofpress/securedrop) when the webhook is fired
  • Adds a replay_release_webhook management command for testing webhooks locally
  • Frontend updates to show multiple releases
      • some template and sass cleanup along the way
  • Removes documentation links per request, as individual docs are to be combined into the main nav docs link

Includes both database and data migrations:

  • 0002: adds the new product model
  • 0003: creates a SecureDrop product snippet and backfills existing releases with it

After this PR, we'll need to:

  • Add new products
  • Add webhooks to the corresponding repos
  • Watch the next SD releases and ensure everything looks good
  • After there's multiple releases:
    • Update page.release_title on /news to be plural ("Current releases")

Type of change

  • Bug fix
  • New feature
  • Vulnerabilities update
  • Config changes
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires an admin update after deploy
  • Includes a database migration removing or renaming a field

Testing

I think the easiest way to test this is to use the new management command, which can be deleted afterwards if no longer needed:

docker compose exec django ./manage.py replay_release_webhook \
      --repo freedomofpress/securedrop-inbox \
      --tag 1.0.0 \
      --release-url https://github.com/freedomofpress/securedrop-inbox/releases/tag/1.0.0 \
      --published-at 2026-05-29T12:00:00Z

Testing:

  1. Ensure the original SecureDrop product is still showing after running the migrations
  2. Run a replay_release_webhook command with a new repo like freedomofpress/securedrop-inbox
  • Should run but no release should be created
  1. Add a new product snippet for freedomofpress/securedrop-inbox
  2. Run the command again
  • You should now see a new matching release snippet
  • The new product release should now be showing on the homepage and /news page
  1. Create blog posts for the new releases and ensure the release notes links show on the homepage and /news page

Post-deployment actions

In case this PR needs any admin changes or run a management command after deployment, mention it here:

Checklist

General checks

  • Linting and tests pass locally
  • The website and the changes are functional in Tor Browser
  • There is no conflicting migrations
  • Any CSP related changes required has been updated (check at least both firefox & chrome)
  • The changes are accessible using keyboard and screenreader

If you made changes to directory listing:

  • Verify directory filters (country/topic/language) work as expected
  • Verify directory search works as expected

If you made changes to contact form

  • Verify contact form submissions works as expected
  • Verify if any CSP changes required (test at least both firefox & chrome)

If you made changes to scanner

  • Verify that the directory scan result page in admin interface loads as expected
  • Verify that the API at /api/v1/directory returns directory entries and scan results as expected

If it's a major change

  • Do the changes need to be tested in a separate staging instance?

If you made any frontend change

If the PR involves some visual changes in the frontend, it is recommended to add a screenshot of the new visual.

@ryanwhitney ryanwhitney requested review from a team as code owners June 1, 2026 22:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Workstation version number to Latest Release

1 participant