Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

deps: update to Go 1.21.5 and Compose 2.23.3 #69

Merged
merged 21 commits into from
Dec 8, 2023
Merged

Conversation

xenoscopic
Copy link
Member

@xenoscopic xenoscopic commented Jul 17, 2023

What does this pull request do and why is it needed?

This PR updates the underlying Compose version to 2.20.0, the Go version used for builds to 1.20.6, and the underlying Mutagen version to v0.17.2. It drops support for Go 1.19.x since Compose now requires Go 1.20+. It builds on the work from #64.

Any other notes for the review process?

This PR is still a draft. The following issues need to be resolved first:

  • Perform Go update
  • Perform Compose update
  • Perform Mutagen update (for symbol collision avoidance with forked fsevents package)
  • Set macOS deployment target to 10.13 now that we're enabling cgo
  • Evaluate API/implementation changes
  • Update license text for updated transitive dependencies
  • Handle --dry-run, --parallel, and --progress specifications
  • Test projects with the new release, specifically focusing on:
    • create
    • start
    • up
    • down
    • pull
    • run
    • watch (check for FSEvents issues)

nervo and others added 3 commits July 17, 2023 15:13
Signed-off-by: Florian Rey <nervo@nervo.net>
We should try to track the latest stable macOS release supported by
GitHub.

Signed-off-by: Jacob Howard <jacob@mutagen.io>
Since we've now enabled cgo for Mutagen Compose builds, we also need to
add in the minimum macOS version targeting required for portability.
Moreover, we need to disable cgo if trying to cross-compile from a
non-Darwin platform and warn if this is an issue.

Note that this change hides the FSEventStreamScheduleWithRunLoop
deprecation warning since that function isn't deprecated on the macOS
versions that we're targeting.

Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
@nervo
Copy link
Contributor

nervo commented Nov 23, 2023

@xenoscopic, i don't want to be rude, but do you have any news on this ? :)

@xenoscopic
Copy link
Member Author

@nervo No worries, not rude at all. I will get back to you with an ETA by Wednesday. I do have some time allocated for getting out new releases, but I need to reevaluate what's needed for new versions of Compose.

@xenoscopic
Copy link
Member Author

Hey @nervo, I've blocked out the next two days on my calendar to get these updates ready and plan to tag the new releases (v0.17.3 and v0.18.0-beta1) on Monday, December 4th in the afternoon (PST). I've had a look at the current Compose diff and it's quite substantial, so I'm going to have to play that one by ear, but I will update if I think that's going to slip. I'll re-use this PR so you can monitor here.

Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
@xenoscopic xenoscopic changed the title deps: update to Go 1.20.6 and Compose 2.20.0 deps: update to Go 1.21.4 and Compose 2.20.0 Dec 1, 2023
@xenoscopic
Copy link
Member Author

xenoscopic commented Dec 2, 2023

I've got the v0.17.3 release tagged, but that is going to stay on the Compose v2.15.1 for now because it would be too big of a change for a backport. I'll begin work on the upgrade to Compose v2.23.3 on Monday.

@xenoscopic
Copy link
Member Author

Still working on updating Compose (it's a big diff). Will push some updates to the PR tomorrow.

Signed-off-by: Jacob Howard <jacob@mutagen.io>
@xenoscopic xenoscopic changed the title deps: update to Go 1.21.4 and Compose 2.20.0 deps: update to Go 1.21.5 and Compose 2.23.3 Dec 5, 2023
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Cobra is already updated (due to our Compose update). The
github.com/klauspost/compress update will come transitively when we
update to Mutagen v0.18.0-beta1.

Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
@xenoscopic
Copy link
Member Author

Hey @nervo, this should be ready now. I have a few items to handle in Mutagen and then I can tag v0.18.0-beta1, update this PR to use that, and tag a release.

For now I've updated this PR to use Mutagen v0.17.4 (the current release). Would you mine giving it a test by building locally? I've done some basic testing but it sounds like you may have a project more suitable to testing these new features.

If all goes well I think we can merge/tag this tomorrow.

@xenoscopic xenoscopic marked this pull request as ready for review December 6, 2023 22:28
@nervo
Copy link
Contributor

nervo commented Dec 7, 2023

@xenoscopic building is ok on my darwin/arm64 machine, even in release mode:

$ go run scripts/build.go -m release
2023/12/07 08:29:13 Building for darwin/amd64
2023/12/07 08:29:22 Building for darwin/arm64
2023/12/07 08:29:30 Building for linux/386
2023/12/07 08:29:54 Building for linux/amd64
2023/12/07 08:29:59 Building for linux/arm
2023/12/07 08:30:02 Building for linux/arm64
2023/12/07 08:30:27 Building for linux/ppc64
2023/12/07 08:30:51 Building for linux/ppc64le
2023/12/07 08:31:15 Building for linux/mips
2023/12/07 08:31:38 Building for linux/mipsle
2023/12/07 08:32:01 Building for linux/mips64
2023/12/07 08:32:24 Building for linux/mips64le
2023/12/07 08:32:47 Building for linux/riscv64
2023/12/07 08:33:13 Building for linux/s390x
2023/12/07 08:33:36 Building for windows/386
2023/12/07 08:34:00 Building for windows/amd64
2023/12/07 08:34:03 Building for windows/arm
2023/12/07 08:34:27 Building for windows/arm64
2023/12/07 08:34:50 Building release bundles...
2023/12/07 08:34:50 Building release bundle for darwin/amd64
2023/12/07 08:34:56 Building release bundle for darwin/arm64
2023/12/07 08:35:01 Building release bundle for linux/386
2023/12/07 08:35:05 Building release bundle for linux/amd64
2023/12/07 08:35:11 Building release bundle for linux/arm
2023/12/07 08:35:14 Building release bundle for linux/arm64
2023/12/07 08:35:20 Building release bundle for linux/ppc64
2023/12/07 08:35:27 Building release bundle for linux/ppc64le
2023/12/07 08:35:32 Building release bundle for linux/mips
2023/12/07 08:35:38 Building release bundle for linux/mipsle
2023/12/07 08:35:42 Building release bundle for linux/mips64
2023/12/07 08:35:50 Building release bundle for linux/mips64le
2023/12/07 08:35:56 Building release bundle for linux/riscv64
2023/12/07 08:36:02 Building release bundle for linux/s390x
2023/12/07 08:36:09 Building release bundle for windows/386
2023/12/07 08:36:13 Building release bundle for windows/amd64
2023/12/07 08:36:19 Building release bundle for windows/arm
2023/12/07 08:36:24 Building release bundle for windows/arm64
2023/12/07 08:36:31 Copying binary for testing

local run is ok too:

$ build/mutagen-compose version  
Mutagen version 0.17.4
Compose version v2.23.3
Docker version v24.0.7

Testing new features in real conditions is a bit more complicated right now, but i'll try asap :)

@xenoscopic
Copy link
Member Author

No big rush. I'll be tagging this as v0.18.0-beta1, so not the main release. That'll provide some time to test. I'm 95% sure that there'll be a v0.18.0-beta2 for Mutagen (for some other small things I want to ship), so if you run into any issues with Mutagen Compose v0.18.0-beta1 then we can still fit in some patches later. Appreciate the help!

Signed-off-by: Jacob Howard <jacob@mutagen.io>
Signed-off-by: Jacob Howard <jacob@mutagen.io>
@xenoscopic xenoscopic merged commit ca93ad7 into main Dec 8, 2023
10 checks passed
@xenoscopic
Copy link
Member Author

This is now available in the v0.18.0-beta1 release (and the Homebrew beta channel). Thanks for your help and patience! Please let me know if there are any issues.

@nervo
Copy link
Contributor

nervo commented Dec 12, 2023

@xenoscopic i've just made my first (basic) tests with v0.18.0-beta1, and everything seems to be 👍

@nervo
Copy link
Contributor

nervo commented Dec 12, 2023

@xenoscopic i sometime get a panic when trying to to stop containers, dunno if it's related

^CGracefully stopping... (press Ctrl+C again to force)
Aborting on container exit...
panic: send on closed channel

goroutine 251 [running]:
github.com/docker/compose/v2/pkg/compose.(*printer).HandleEvent(0x1400098dda8?, {0x0, {0x140004a1741, 0x10}, {0x140005b5080, 0x40}, {0x14000637fc4, 0x9}, {0x140003dec00, 0x11}, ...})
	github.com/docker/compose/v2/pkg/compose/printer.go:68 +0x6c
github.com/docker/compose/v2/pkg/compose.(*composeService).attachContainer.func1({0x140003dec00?, 0x1400075046c?})
	github.com/docker/compose/v2/pkg/compose/attach.go:75 +0xb4
github.com/docker/compose/v2/pkg/utils.(*splitWriter).Close(0x140008b6b10)
	github.com/docker/compose/v2/pkg/utils/writer.go:60 +0x7c
github.com/docker/compose/v2/pkg/compose.(*composeService).attachContainerStreams.func5()
	github.com/docker/compose/v2/pkg/compose/attach.go:152 +0x174
created by github.com/docker/compose/v2/pkg/compose.(*composeService).attachContainerStreams in goroutine 1
	github.com/docker/compose/v2/pkg/compose/attach.go:144 +0x31c

@xenoscopic
Copy link
Member Author

Thanks for the testing. It looks like that might be an upstream Compose bug, but I'll dig into it before v0.18.0-beta2.

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.

None yet

2 participants