Skip to content

chore(devcontainer): update toolchain to project requirements#3563

Merged
PragmaTwice merged 3 commits into
apache:unstablefrom
maoyouaa:chore/devcontainer-toolchain
Jul 23, 2026
Merged

chore(devcontainer): update toolchain to project requirements#3563
PragmaTwice merged 3 commits into
apache:unstablefrom
maoyouaa:chore/devcontainer-toolchain

Conversation

@maoyouaa

@maoyouaa maoyouaa commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

What changed

  • switch the development container base image from Ubuntu Noble to Ubuntu Resolute
  • use Resolute's packaged Go toolchain
  • install Clang Format/Tidy 18 and expose their unversioned commands to match CI

Why

The existing development container no longer matches the repository requirements. Ubuntu Noble provides Go 1.22 while the Go test module requires Go 1.25, and the container pins Clang Format/Tidy 14 while x.py requires version 18 or newer.

Impact

Fresh development containers provide the required Go and LLVM tooling, and the default format and tidy commands work without additional path arguments.

Validation

  • full docker build of .devcontainer/Dockerfile
  • tool smoke check: Go 1.26.0, GCC 15.2.0, Clang Format/Tidy 18.1.8, and minica
  • ./x.py build build --unittest --ninja -j 12
  • ./x.py test cpp build (600 passed, 1 skipped)
  • ./x.py test go build -run TestPing
  • ./x.py format
  • ./x.py check format
  • ./x.py check tidy build -j 12
  • git diff --check

Prepared with assistance from OpenAI Codex and verified locally.

Comment thread .devcontainer/Dockerfile Outdated
Comment thread .devcontainer/Dockerfile Outdated
&& cd /opt/minica && git checkout 96a5c93723cf3d34b50b3e723a9f05cd3765bc67 && go build && cd $BUILD_DIR \
&& echo 'export PATH=/opt/minica:$PATH' >> $HOME/.bashrc

ENV LDFLAGS="-latomic"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is it really needed?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

You're right — it isn't needed for the default GCC build. It was added after testing an explicit Clang build, so I've removed the global LDFLAGS. A clean GCC 15 build and the tests pass without it.

@maoyouaa
maoyouaa marked this pull request as ready for review July 23, 2026 08:20
@PragmaTwice
PragmaTwice merged commit fcc54dc into apache:unstable Jul 23, 2026
38 checks passed
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