Skip to content

website: Document supported dependency and compiler versions - #188

Open
BobbyRBruce wants to merge 26 commits into
gem5:stablefrom
BobbyRBruce:python-and-ubuntu-ver-changes
Open

website: Document supported dependency and compiler versions#188
BobbyRBruce wants to merge 26 commits into
gem5:stablefrom
BobbyRBruce:python-and-ubuntu-ver-changes

Conversation

@BobbyRBruce

@BobbyRBruce BobbyRBruce commented Jul 4, 2026

Copy link
Copy Markdown
Member

This is the website companion to gem5 PRs #3281 and #3287.

It updates the build documentation to match gem5's current support policy:

  • Raises the minimum supported Python version to Python 3.10.
  • Documents Ubuntu 22.04, 24.04, and 26.04 as the current supported Ubuntu
    LTS releases.
  • Updates the supported compiler ranges to GCC 11-16 and Clang 14-22.
  • Documents the supported major/minor floors for SCons, protobuf, Boost, Git,
    zlib, GNU m4, pkg-config, libpng, elfutils/libelf, Capstone, HDF5,
    google-perftools, Doxygen, wget, pydot, mypy, pre-commit, and clang-format.
  • Documents CMake 3.25 as the requirement for the current optional DRAMSys
    integration.
  • Refreshes Ubuntu package names and tutorial installation instructions.

The source changes should merge first so the published documentation does not
precede the corresponding gem5 support changes.

Validation:

  • git diff --check
  • Manual inspection of the changed Markdown lists, commands, and links

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Updates gem5 website documentation to reflect the new minimum supported Python version (3.10) and to align build-environment guidance with currently supported Ubuntu versions (22.04/24.04).

Changes:

  • Update Learning gem5 Part 1 docs to reference Python 3.10 minimum.
  • Update general “Building gem5” docs to state Python 3.10+ support and refresh Ubuntu/Docker guidance accordingly.
  • Remove outdated Ubuntu 20.04 setup instructions from the general building guide.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
_pages/documentation/learning_gem5/part1/part1_3_more_complex_config.md Updates the documented minimum Python version for scripting guidance.
_pages/documentation/learning_gem5/part1/part1_1_building.md Updates build prerequisites to require Python 3.10+ development headers.
_pages/documentation/general_docs/building/index.md Updates supported Python version text and refreshes Ubuntu/Docker build environment guidance.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 775 to 779
instead of pyargparse since gem5's minimum Python version used to be
2.5. The minimum Python version is now 3.6, so Python's argparse is a better
2.5. The minimum Python version is now 3.10, so Python's argparse is a better
option when writing new scripts that don't need to interact with the
current gem5 scripts. To get started using :pyoptparse, you can consult
the online Python documentation.
Comment on lines +98 to 102
The following older images are intended for older gem5 releases whose tags
match the image tags.

Ubuntu 22.04 with all optional dependencies:
[ghcr.io/gem5/ubuntu-22.04_all-dependencies:v23-0](
Document support for GCC major versions 11 through 16 and Clang major versions 14 through 22 in the build instructions. This matches the compiler support range now tested in gem5 CI and keeps the website aligned with the Ubuntu LTS dependency policy.
Document SCons 4.0.1 as the minimum supported version. This matches the default package in Ubuntu 22.04, the oldest currently supported Ubuntu LTS release.
Document protobuf 3.12.4 as the minimum supported optional trace dependency. This follows the default package in Ubuntu 22.04, the oldest supported Ubuntu LTS release.
Document Boost 1.74 as the minimum supported optional SystemC dependency. This follows the default Boost package in Ubuntu 22.04, the oldest supported Ubuntu LTS release.
Document Git 2.34.1 as the minimum supported version. This follows the default Git package in Ubuntu 22.04, the oldest supported Ubuntu LTS release.
Ubuntu 22.04 ships zlib 1.2.11, while newer current Ubuntu LTS releases provide newer zlib versions. Document 1.2.11 as the minimum supported version so the build instructions match the oldest supported LTS default.
Ubuntu 22.04 ships GNU m4 1.4.18, while newer current Ubuntu LTS releases provide newer versions. Document 1.4.18 as the minimum supported version for the libelf source generation dependency.
Ubuntu 22.04 ships pkg-config 0.29.2, while newer current Ubuntu LTS releases provide newer pkgconf-compatible packages. Document 0.29.2 as the minimum supported version for optional package discovery.
Ubuntu 22.04 ships libpng 1.6.37, while newer current Ubuntu LTS releases provide newer versions. Document 1.6.37 as the minimum supported version for optional PNG framebuffer output.
Ubuntu 22.04 ships elfutils libelf 0.186, while newer current Ubuntu LTS releases provide newer versions. Document 0.186 as the minimum supported version for the libelf development package named in the build instructions.
Ubuntu 22.04 and 24.04 ship Capstone 4.0.2, while Ubuntu 26.04 ships Capstone 5.0.7. Document 4.0.2 as the minimum supported version for optional disassembly support.
Ubuntu 22.04 ships HDF5 1.10.7, while newer current Ubuntu LTS releases provide newer versions. Document 1.10.7 as the minimum supported version for optional HDF5 statistics output.

Also update the Ubuntu package name in the build instructions to libhdf5-dev, which is the development package available on current Ubuntu LTS releases.
Ubuntu 22.04 ships google-perftools 2.9.1, while newer current Ubuntu LTS releases provide newer versions. Document 2.9.1 as the minimum supported version for optional tcmalloc support.
Ubuntu 22.04 ships CMake 3.22.1, while newer current Ubuntu LTS releases provide newer versions. Document 3.22.1 as the minimum supported version for the optional DRAMSys integration.
Ubuntu 22.04 ships Doxygen 1.9.1, while newer current Ubuntu LTS releases provide newer versions. Document 1.9.1 as the minimum supported version for generating source documentation.
Ubuntu 22.04 ships wget 1.21.2, while newer current Ubuntu LTS releases provide newer versions. Document 1.21.2 as the minimum supported version for setup, Docker, and tutorial download flows.
Ubuntu 22.04 ships pydot 1.4.2, while newer current Ubuntu LTS releases provide compatible or newer versions. Document 1.4.2 as the minimum supported version for optional dot graph generation.
Ubuntu 22.04 ships mypy 0.942, while newer current Ubuntu LTS releases provide newer versions. Document 0.942 as the minimum supported version for Python type-checking and stub generation tooling.
Ubuntu 22.04 ships pre-commit 2.17.0, while newer current Ubuntu LTS releases provide newer versions. Document 2.17.0 as the minimum supported version for local style and commit hooks.
Ubuntu 22.04 ships clang-format 14, while newer current Ubuntu LTS releases provide newer versions. Document 14 as the minimum supported version for gem5's formatting hook.

Update the Ubuntu 22.04 setup instructions to use the distribution clang-format package instead of the stale clang-format-15 alternative setup.
The Ubuntu 22.04 setup command lagged behind the full set of dependencies documented in the build instructions. Update it to install the same dependency set as the newer Ubuntu instructions using Ubuntu 22.04's default package versions.
The learning gem5 build tutorial still used the legacy python-dev and python packages. Update the command to install python3-dev, matching the Python 3.10 minimum support policy.
Normalize dependency minimums to major.minor granularity instead of documenting patch-level package versions. This keeps the build documentation aligned with the supported-version policy without over-specifying distro patch releases.
BobbyRBruce added a commit to BobbyRBruce/gem5 that referenced this pull request Aug 30, 2026
Python 3.10 is the oldest major release of Python that is still
supported. It is also the default Python installation on Ubuntu 22.04,
the oldest Major Ubuntu release that's still supported.

Relevant updates to the gem5 website can be found here:
gem5/website#188
DRAMSys 5.6 requires CMake 3.25. Align the website requirement with
the source build used by the Ubuntu 22.04 dependency image.
@BobbyRBruce BobbyRBruce changed the title website: update Python and ubuntu minimum versions website: Document supported dependency and compiler versions Aug 30, 2026
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.

3 participants