buildkite / test-engine-client

Buildkite Test Engine Client (bktec) is an open source tool to orchestrate your test suites. It uses your Buildkite Test Engine suite data to intelligently partition and parallelise your tests.
MIT License
9 stars 1 forks source link

Rename TSC to bktec #178

Closed niceking closed 2 months ago

niceking commented 2 months ago

Description

Have renamed the following:

Outstanding tasks that will be done in a separate PR:

Testing

This is purely a rename, and shouldn't change any functionality of bktec. It also doesn't change any of the packaging and releasing.

Will test locally that a build of this still fetches a test plan, given the new env var names

niceking commented 2 months ago

I'm a little confused by how to do the go module rename, and the sequencing of all the rename and packaging and releasing actions.

I found this guide and based on that, I think what we want to do is:

  1. do all code changes in the bktec branch
  2. merge changes to main and tag with v1.0.0 and then do the GitHub Repository rename, which should then update the go mod refs? And it should also preserve history - so I assume previous releases will be available under old namespace
  3. update all build & release processes to reference the new bktec name, I think that's the goreleaser and the release pipeline

(this plan is a little different from what the guide recommends, cos they keep a v1 branch around when they release a v2 with a new name, but we've decided that we're releasing v1.0.0 with the new name. If previous versions have issues we will ask the customer to upgrade and not patch them)

I'm not 100% sure at which point we update the imports at the top of each file? Is that part of step 1?

Does this sound sane? cc @DrJosh9000 @nprizal / anyone

DrJosh9000 commented 2 months ago

I'm a little confused by how to do the go module rename, and the sequencing of all the rename and packaging and releasing actions. ... Does this sound sane? cc @DrJosh9000 @nprizal / anyone

Because the whole thing is a binary, nobody (Buildkite or otherwise) is importing packages from it - so a lot of the worries to do with locating Go modules across versions and ensuring they are published in a findable place aren't really a concern. I'm pretty sure you won't be breaking anybody's build (other than your own). So you could do this:

  1. Rename the repo (potentially breaking the build for a while)
  2. Fix all the names
  3. When happy, tag v1.0.0
nprizal commented 2 months ago

Changing the binary build name - does this just get done as part of the go mod rename?

We use goreleaser to build the binary, and by default it uses the project directory name. So, until we rename the git repository, we may need to explicitly set the binary name in the goreleaser config file.

Are there Pact changes needed as part of this?

We changed the consumer and provider name in this PR, therefore we need to change the Pact configuration (state) in the Buildkite repository.

aws ssm param namespace maybe should be changed? not super necessary tho

Yes, I've captured this as Linear tickets.

niceking commented 2 months ago

I can't approve this as I'm the original author, but LGTM once the tests are passing