Skip to content

refactor:remove stale packages from dependency list#9871

Open
alokkumardalei-wq wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
alokkumardalei-wq:cleanup/remove-stale-dependencies
Open

refactor:remove stale packages from dependency list#9871
alokkumardalei-wq wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
alokkumardalei-wq:cleanup/remove-stale-dependencies

Conversation

@alokkumardalei-wq
Copy link
Contributor

What does this PR do?

Fixes #9868.
This PR cleans up the dependency installer scripts by removing a few outdated packages that OpenROAD doesn't actually use anymore, exactly as reported in #9868.

Specifically, it removes:

  • python3-click
  • qimgv
  • default-jdk
  • lsb-release
    Before removing them, I ran a full search across the entire OpenROAD codebase and verified that there is zero source code or scripts currently relying on these packages.

Potential Impact

Removing these will help speed up the Docker builds and save local developers from downloading hundreds of megabytes of unnecessary software (especially the Java Development Kit!).

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request removes several unused packages from the dependency installation scripts, which is a welcome cleanup. My review found an opportunity to further improve the maintainability of these scripts by sorting the package lists, making them easier to read and manage in the future.

Comment on lines 985 to 987
apt-transport-https ca-certificates curl gnupg python3 \
python3-pip python3-pandas jq parallel \
software-properties-common time unzip zip
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Since this PR is already focused on cleaning up dependencies, it would be a great opportunity to also sort these package lists alphabetically. This improves readability and makes it easier to manage dependencies in the future. This suggestion could be applied to the other package lists in this file as well.

Suggested change
apt-transport-https ca-certificates curl gnupg python3 \
python3-pip python3-pandas jq parallel \
software-properties-common time unzip zip
apt-transport-https ca-certificates curl gnupg jq parallel \
python3 python3-pandas python3-pip software-properties-common \
time unzip zip

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Removes `python3-click`, `qimgv`, `default-jdk`, and `lsb-release` from the
dependency scripts as requested in The-OpenROAD-Project#9868.

Signed-off-by: alokkumardalei-wq <alokkumardalei2@gmail.com>
@alokkumardalei-wq alokkumardalei-wq force-pushed the cleanup/remove-stale-dependencies branch from 1f7ecbd to 97a2575 Compare March 21, 2026 17:51
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@luarss luarss requested a review from sombraSoft March 22, 2026 03:29
Copy link
Contributor

@sombraSoft sombraSoft left a comment

Choose a reason for hiding this comment

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

LTGM!
Unless @vvbandeira knows about some utility for any of these packages, I think it's a go.

@sombraSoft
Copy link
Contributor

Actually the only reason I think we would need default-jdk is for the -ci option in which it installs bazelisk which needs the sdk.
@alokkumardalei-wq, if you rather move the default-jdk package install to the _install_ci_packages function that would make more sense.

@maliberty
Copy link
Member

Why does bazelisk need a jdk?

@sombraSoft
Copy link
Contributor

not actually bazelisk but bazel does! if the goal of this script is to setup bazel too we need jdk, no?

@maliberty
Copy link
Member

Why does bazel need a jdk?

@alokkumardalei-wq
Copy link
Contributor Author

alokkumardalei-wq commented Mar 25, 2026

Hello @sombraSoft thank you for the feedback but I think @maliberty asked the right question since I think (I might be wrong here) modern versions of Bazel actually bundle their own internal hermetic JRE inside the binary for execution. Since OpenROAD is a C++/TCL codebase and doesn't compile Java targets, we do not need to install the heavy default-jdk system package at all, not even for CI I think. It can be safely completely removed as a stale dependency.

Please let me know if I missed something here.
Thank you!

@sombraSoft
Copy link
Contributor

Well, I guess I couldn't expect less from Bazel 😅
Of course they would self contain their own runtime dependencies - apparently bazel builds itself.
Good find!

_execute "Updating package lists..." apt-get -y update
_execute "Installing CI packages..." apt-get -y install --no-install-recommends \
apt-transport-https ca-certificates curl default-jdk gnupg python3 \
python3-pip python3-pandas jq lsb-release parallel \
Copy link
Member

Choose a reason for hiding this comment

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

Please keep python3-pip lsb-release they are required for some CI tools

@maliberty
Copy link
Member

The request to keep lsb-release needs to be addressed.

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.

Check potential unused deps

4 participants