Skip to content

Upgrade Go version to 1.26.5 and update dependencies#1804

Open
NewEraCracker wants to merge 2 commits into
ooni:masterfrom
NewEraCracker:issue-1803-psiphon
Open

Upgrade Go version to 1.26.5 and update dependencies#1804
NewEraCracker wants to merge 2 commits into
ooni:masterfrom
NewEraCracker:issue-1803-psiphon

Conversation

@NewEraCracker

Copy link
Copy Markdown

Checklist

Description

  • Update Go version requirement from 1.25.3 to 1.26.5 in GOVERSION and go.mod
  • Update toolchain specification to go1.26.5 in go.mod
  • Update Psiphon library dependencies to their latest versions:
    • github.com/Psiphon-Labs/bolt to v0.0.0-20260624144735-04fba30caf38
    • github.com/Psiphon-Labs/psiphon-tls to v0.0.0-20260612202619-4944f00a8304
    • github.com/Psiphon-Labs/utls to v1.1.1-0.20260602140907-e3b959a8340b
  • Simplify build constraints in psiphon feature flags by removing go1.25 checks, as minimum Go version is now 1.26

- Update Go version requirement from 1.25.3 to 1.26.5 in GOVERSION and go.mod
- Update toolchain specification to go1.26.5 in go.mod
- Update Psiphon library dependencies to their latest versions:
  - github.com/Psiphon-Labs/bolt to v0.0.0-20260624144735-04fba30caf38
  - github.com/Psiphon-Labs/psiphon-tls to v0.0.0-20260612202619-4944f00a8304
  - github.com/Psiphon-Labs/utls to v1.1.1-0.20260602140907-e3b959a8340b
- Simplify build constraints in psiphon feature flags by removing go1.25 checks,
  as minimum Go version is now 1.26
@NewEraCracker

NewEraCracker commented Jul 25, 2026

Copy link
Copy Markdown
Author

It's my first PR here, in fact it is my first shot at Go.

I copied some stuff from:
https://github.com/Psiphon-Labs/psiphon-tunnel-core/blob/master/go.mod
https://github.com/Psiphon-Labs/psiphon-tunnel-core/blob/master/go.sum

As I have no idea how to generate these automatically.

I leave the userauth bug to those who may know how to solve it. the PR focus solely on fixing psiphon compatibility issues.

Edit: If desired, the developer team should have to look into upgrading the userauth static lib to Go 1.26. The issue is local as well.

My two cents. Thank you.

@DecFox

DecFox commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Hello @NewEraCracker, thanks for your PR. We do not aim to support go1.26 at the moment. As for psiphon: we sunset psiphon support in v3.29.0 after a few discussions with the psiphon team (diff here: #1762). I wanted to highlight this so it's clear that building psiphon does not mean the engine ships with psiphon support. I am still going to merge this, but I would suggest we keep only the psiphon changes here.

@NewEraCracker

Copy link
Copy Markdown
Author

Hi,

It is imperative to apply Go 1.26 as these new psiphon dependencies depend on it. Otherwise close this without merging.


we sunset psiphon support in v3.29.0 after a few discussions with the psiphon team

I am not so sure, the CLI of v3.29.0 and v3.29.1 still have psiphon supported out of the box for the circumvention test.

My two cents. Thank you.

@NewEraCracker

Copy link
Copy Markdown
Author

When you'd really like to stick with go1.25 then ignore this PR, otherwise if you build with go1.25 nuking the protections, then the OONI Probe CLI will explode, even on basic commands.

@DecFox

DecFox commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

I am not so sure, the CLI of v3.29.0 and v3.29.1 still have psiphon supported out of the box for the circumvention test.

Sorry, I see what you mean. It seems psiphon skipped go1.25 altogether which makes things a little tough for us. it's not our immediate intent to support go1.26 at the moment. However, let us reflect on this. With go1.27 planned for next month, we were aiming to switch to go1.26 in the next release anyway. Let me evaluate the effort it might require before the release. If need be, we will make switch to go1.26 in this release itself. As part of this PR, could you also update the GOVERSION file to 1.26.5: https://github.com/ooni/probe-cli/blob/master/GOVERSION. That should build the toolchain for the CI tests to run successfully.

@DecFox DecFox left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to ensure this builds well when go1.27 releases.

Comment thread internal/feature/psiphonfeat/psiphon_enabled.go Outdated
Comment thread internal/feature/psiphonfeat/psiphon_otherwise.go Outdated
@NewEraCracker
NewEraCracker requested a review from DecFox July 25, 2026 21:57
@DecFox

DecFox commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Hey @NewEraCracker, I have gone through the changes required for us to support go1.26 and decided that we can proceed with supporting it in this release itself. However, we do require some changes in this PR for it to be release ready.

If you want to refer to what it takes to upgrade the go version, we have some documentation on the release process we follow here: https://github.com/ooni/probe-cli/blob/master/docs/releasing.md.

One other thing: this is a bit time-sensitive since we're hoping to get a release out soon. If you think you might not have time to get to these changes in the near term, I'm happy to take this PR over and push it across the finish line. I don't want to step on your work though, so only if that would be helpful.

@NewEraCracker

Copy link
Copy Markdown
Author

Hello,

Indeed, I may not have time to get to these changes in the near term. I'd appreciate if you could take over this PR and take it to the finish line.

Thank you very much.

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.

2 participants