Skip to content

Campaigns 3.19 Tracking issue

Created by: mrnugget

Goal

Release the new spec-based campaigns workflow behind a feature flag for site-admins and non-site-admins.

After Quinn designed the new campaigns workflow in the past two iterations in #10921 we finished the API design and conceptual work in the last iteration and are now ready to implement the complete workflow. Since @eseliger and @mrnugget already started the implementation in 3.18, our goal for this iteration is to finish the implementation and release the new campaigns workflow to customers.

We are going to work on this single goal together as a team. @eseliger will be working on the frontend. After finishing GitLab support by implementing webhook support, @LawnGnome will first focus on the src-cli side and then join @mrnugget in implementing the missing pieces in the backend. We anticipate that the first half of the iteration will be spent working on well-defined tasks and the second half on polishing and bugfixing.

We also want to combine the release of the new workflow with the loosening of the campaigns feature-flag: instead of campaigns only being fully available to site-admins and in a read-only mode to users, we want to make keep the feature flag but, when enabled, make campaigns available to all users of a Sourcegraph instance.

Campaigns will still be marked as "beta", since we don't feel confident to go out of beta with the first release of the new workflow (that included major changes to large parts of our codebase). But the aim is that 3.19 will be the last release with campaigns as a beta feature and should be considered more of a "release candidate" than a beta.

Availability

Period is from July 20th to August 19th (23 working days). Please write the days you won't be working and the number of working days for the period.

NOTE: This iteration will also include Q3 planning and a new 360 review cycle.

  • @mrnugget: 19d (on vacation: 12.-17. August)
  • @eseliger: 23d
  • @LawnGnome: 22d (BC Day 3rd August)

Tracked issues

@LawnGnome: 7.00d

  • campaigns: GitLab integration tests (#12219) 2d 🧶

Completed: 7.00d

  • (🏁 63 days ago) Add GitLab to the list of supported hosts (#249) :shipit:
  • (🏁 57 days ago) schema: allow personal repos on Bitbucket Server (#12504) :shipit:🐛
  • (🏁 55 days ago) doc: make webhook configuration consistent (#12529) :shipit:
  • (🏁 50 days ago) campaigns: GitLab webhook support (#12171) 2d
  • (🏁 40 days ago) Write a migration that deletes all existing campaigns/changesets when upgrading to 3.19 (#12641)
  • (🏁 40 days ago) Allow customers to export their campaigns before upgrading to 3.19 (#12640)
  • (🏁 40 days ago) campaigns: migrate to allow changeset spec user IDs to be NULL (#13020) :shipit:🐛
  • (🏁 36 days ago) campaigns: patch changeset IDs when migrating (#13111) :shipit:
  • (🏁 35 days ago) src-cli: Implement new campaigns workflow (#12333; PRs: #258) 5d
  • (🏁 35 days ago) Add CLI option to update a campaign (#11350)

@Unassigned: 2.50d

Completed: 2.50d

  • (🏁 55 days ago) Implement API to return all involved unsers in a campaign (#12566) 1d
  • (🏁 55 days ago) Implement campaignForSpec query resolver (#12567) 1d
  • (🏁 48 days ago) Implement GraphQL API that allows to fetch campaigns by namespace (#12563) 0.5d
  • (🏁 48 days ago) Migrate existing campaigns' names to the new slug-like format (#12649)

@chrispine

Completed

  • (🏁 44 days ago) Remove Campaign.Branch field (#12735)

@eseliger: 8.50d

  • Design a GraphQL API that allows us to filter changesets via the textbox (#12471)

Completed: 8.50d

  • (🏁 56 days ago) Decompose and/or add more tests for CampaignDetails (#10896) 🧶
  • (🏁 55 days ago) Design a GraphQL API that allows us to make use of the cached diff stats on ChangesetSpecs and Changesets (#12464)
  • (🏁 55 days ago) Design a GraphQL API that allows us to list campaigns on user and organization pages (#12470)
  • (🏁 55 days ago) Design the GraphQL API needed to show all users involved in a campaign (#12465)
  • (🏁 51 days ago) Persist & accept changeset filter params in the URL (#12472)
  • (🏁 49 days ago) ChangesetConnectionResolver.PageInfo needs to respect repository permissions (#12764) 0.5d
  • (🏁 48 days ago) Design a GraphQL API that would allow us to show either the "Update campaign" or "Create campaign" button on the apply page (#12468)
  • (🏁 38 days ago) Frontend: New campaigns flow (#10986) 8d
  • (🏁 31 days ago) Replace "automation" feature flag with "campaigns" toggle and remove configuration flags (#10713; PRs: #11621, #11621) 1d 🛠️
  • (🏁 today) campaigns: cancelled GitLab pipelines don't take check state out of pending (#12667) 1d 🐛

@mrnugget: 13.00d

Completed: 13.00d

  • (🏁 66 days ago) Another set of small follow-ups after introducing ExternalChangesetState (#12330) :shipit:
  • (🏁 65 days ago) Check namespace perms in CreateCampaignSpec/MoveCampaign (#12362) :shipit:
  • (🏁 64 days ago) Drop old campaigns tables and add missing columns (#12388) :shipit:
  • (🏁 51 days ago) Implement ApplyCampaign and changeset reconciler (#12435) :shipit:
  • (🏁 51 days ago) Backend: New campaign flow (#10985; PRs: #11675) 12d
  • (🏁 51 days ago) Change testChangesetResponse in permissions_test.go to include publication status, error and reconciler state (#12647)
  • (🏁 50 days ago) Creating larger campaigns using src-cli fails with 413 (#9202) 0.5d 🐛
  • (🏁 49 days ago) Implement the changesetsConnectionStatsResolver (#12642; PRs: #12753)
  • (🏁 49 days ago) Implement missing methods in changesetResolver (#12646; PRs: #12753)
  • (🏁 49 days ago) Replace commented-out portion of TestCampaigns in resolvers/resolver_test.go with more extensive test that tests ApplyCampaign (#12648; PRs: #12753)
  • (🏁 49 days ago) Do not expire the PreviousChangesetSpec of a changeset (#12763)
  • (🏁 48 days ago) Implement the "processing?" checks in CloseCampaign/DeleteCampaign (#12643)
  • (🏁 45 days ago) Implement combined diff stat on changesetspec resolver (#12564) 0.5d
  • (🏁 45 days ago) Change campaign/campaignSpec URLs to include namespace and fit new schema (#12473)
  • (🏁 45 days ago) Implement the createCampaign mutation and necessary API fields (#12469)
  • (🏁 44 days ago) Record enough information on a campaign to return all involved users in a campaign (#12467)
  • (🏁 31 days ago) Replace "automation" feature flag with "campaigns" toggle and remove configuration flags (#10713; PRs: #11621, #11621) 1d 🛠️
  • (🏁 22 days ago) Allow retrying of errored changesets (#12700) 4d

Legend

  • 👩 Customer issue
  • 🐛 Bug
  • 🧶 Technical debt
  • 🛠️ Roadmap
  • 🕵️ Spike
  • 🔒 Security issue
  • :shipit: Pull Request