Prow Source Code Migration on April 9th

91 views
Skip to first unread message

Cole Wagner

unread,
Mar 28, 2024, 6:08:07 PMMar 28
to kubernetes-sig-testing

If you do not develop Prow or GHProxy in the kubernetes/test-infra repo and you do not depend on any of their Go packages, you can stop reading now.

We are finally ready to move the Prow (and GHProxy) source code out of kubernetes/test-infra and into the kubernetes-sigs/prow repo! The source code has already been copied there (with commit history) and all ProwJobs have been created and tested except for the container image publishing postsubmit. On April 9th we will make the official switch and kubernetes-sigs/prow will become the source of truth for Prow and GHProxy development and container images will be published from there. From this point on I’ll just refer to "Prow", but this all applies to GHProxy as well.

How this impacts you and what to do:

  • If you just use Prow or maintain a Prow instance there is nothing you need to do. Container images will still be available (and continue to be released) at gcr.io/k8s-prow/.

  • If you don't develop Prow itself, but you do rely on its Go packages (via importing the k8s.io/test-infra Go module), after April 9th you'll need to update import statements to be prefixed with 'sigs.k8s.io/prow' rather than 'k8s.io/test-infra'. Because the repo relative paths will remain the same, you can use a sed command like this one to fix any references:
    sed -i 's,k8s.io/test-infra/prow,sigs.k8s.io/prow/prow,g;s,k8s.io/test-infra/ghproxy,sigs.k8s.io/prow/ghproxy,g'
    Don't forget to run `go mod tidy` afterwards.

  • If you do develop Prow you'll need to start targeting PRs against the kubernetes-sigs/prow repo instead of kubernetes/test-infra. You would have to manually transfer any open PRs to the new repo by using the `git format-patch` and `git am` commands. You'll also need to update package references as described in the previous bullet point.


Plans for the switch over date (April 9th):

The actual plan for the switch over is as follows:

  1. Delete the Prow container image publishing postsubmit from kubernetes/test-infra and uncomment the config for the corresponding job in kubernetes-sigs/prow.

  2. Make a no-op change to kubernetes-sigs/prow to trigger the container image build and ensure that it succeeds. If there is a problem, we will revert the previous step. If there is no problem we have successfully made the switch and the source of truth for Prow development is now kubernetes-sigs/prow.

The following steps (also for April 9th) will clean up kubernetes/test-infra:

  1. Delete the prow/ and ghproxy/ directories in kubernetes/test-infra to prevent further development.

  2. Delete any other tooling that was only needed for Prow. At this time, the only thing I know of is 'hack/ts-rollup'.

  3. Simplify some 'run_if_changed' expressions that no longer need to reference Prow.

If you have any questions or concerns please speak up on this GitHub issue: https://github.com/kubernetes/test-infra/issues/31728 

Thanks!

- Cole Wagner (@cjwagner)


Cole Wagner

unread,
Apr 9, 2024, 1:02:03 PMApr 9
to kubernetes-sig-testing
As a reminder, this is happening today. I'll follow up with an update later today, please avoid merging any Prow related PRs in the meantime.

Cole Wagner

unread,
Apr 9, 2024, 8:39:14 PMApr 9
to kubernetes-sig-testing
This was completed successfully!  The Prow source code has been deleted from kubernetes/test-infra and it is now safe to resume Prow contributions in the kubernetes-sigs/prow repository. Thank you all for your patience.

As an additional tip for updating any references to the prow code, if you see any errors like the following, try explicitly adding `require sigs.k8s.io/prow v0.0.0-20240409200154-0bca2f1416a9` to your go.mod file.
go: k8s.io/test-infra/experiment/bumpmonitoring imports
    sigs.k8s.io/prow/prow/cmd/generic-autobumper/bumper: sigs.k8s.io/prow/pr...@v0.0.0-20240126235638-55d887c88e11: parsing go.mod:
    module declares its path as: sigs.k8s.io/prow
            but was required as: sigs.k8s.io/prow/prow

If you have any questions please reach out on the github issue or in Slack.
Thanks again!
- Cole Wagner (@cjwagner)

Mahamed Ali

unread,
Apr 17, 2024, 8:48:14 AMApr 17
to kubernetes-sig-testing
Hello Everyone

We merged a change today in the prow repository that eliminates prow being repeated twice in the import path.

The code that lived in sigs.k8s.io/prow/prow and sigs.k8s.io/prow/ghproxy have now been moved to the following locations:
 https://pkg.go.dev/sigs.k8s.io/pr...@v0.0.0-20240417114837-db89760fea40 This is the commit and version of the package where this change has been applied to.

Thank you

Mahamed

Reply all
Reply to author
Forward
0 new messages