-
Notifications
You must be signed in to change notification settings - Fork 0
feat: Alternative unix power tools #9
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
Conversation
Summary of ChangesHello @phuongfi91, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly upgrades the development environment by updating the base Docker image to Ubuntu 25.10 and integrating a collection of modern, high-performance command-line utilities. These new tools are designed to replace or enhance traditional Unix commands, offering improved functionality and speed. The changes are fully documented and include new tests to ensure proper installation and integration. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||
There was a problem hiding this 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 introduces a suite of modern Unix power tools to the development image, such as ripgrep, eza, and bat. The changes include adding the necessary packages in the Dockerfile, updating the README.md to document them, and adding comprehensive tests to verify their installation. The implementation is solid, with good testing and documentation. However, I have one major concern regarding the update of the base image to a non-LTS version of Ubuntu, which could impact stability and long-term support.
| @@ -1,5 +1,5 @@ | |||
| # syntax=docker/dockerfile:1 | |||
| FROM ubuntu:24.04 AS base | |||
| FROM ubuntu:25.10 AS base | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using Ubuntu 25.10, which is an interim release, for a base image is not recommended. Interim releases have a short 9-month support cycle and are less stable than Long-Term Support (LTS) releases. For a development image that should be stable and reliable, it's much safer to stick with an LTS version like ubuntu:24.04 (the latest LTS) or ubuntu:22.04. This ensures you get security updates and stability for a much longer period (5 years).
FROM ubuntu:24.04 AS base
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR enhances the Python development Docker image by adding modern alternative Unix power tools and upgrading the base Ubuntu image. The additions focus on improving developer productivity with faster, more feature-rich alternatives to traditional Unix utilities.
Key changes:
- Upgrades base image from Ubuntu 24.04 to 25.10
- Installs 9 modern Unix alternative tools (ripgrep, fd, btop, eza, dust, bat, fzf, tokei, hyperfine)
- Creates symlinks to replace traditional commands (
ls→eza) and handle Ubuntu package naming (batcat→bat,fdfind→fd)
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| Dockerfile | Upgrades Ubuntu version, installs alternative power tools packages, creates symlinks for command aliases and Ubuntu package naming compatibility |
| tests/specs.yaml | Adds comprehensive version check tests for all 9 new tools, including verification that ls is overridden by eza |
| README.md | Documents the new alternative Unix power tools section with descriptions of each tool and their traditional counterparts |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| && ln -s /usr/bin/eza /usr/local/bin/ls \ | ||
| && ln -s /usr/bin/batcat /usr/local/bin/bat \ |
Copilot
AI
Dec 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overriding the system ls command with a symlink to eza can cause compatibility issues with scripts or tools that depend on the standard ls behavior and flags. While eza is largely compatible with ls, there may be subtle differences in output format or flag handling that could break existing automation. Consider creating an alias instead (e.g., in a shell configuration file) or documenting this breaking change prominently, especially since this is a base image that other projects will use.
| && ln -s /usr/bin/eza /usr/local/bin/ls \ | |
| && ln -s /usr/bin/batcat /usr/local/bin/bat \ | |
| # Do NOT override ls with eza to avoid breaking scripts | |
| && ln -s /usr/bin/batcat /usr/local/bin/bat \ | |
| # Add alias for interactive shells | |
| && echo "alias ls='eza'" >> /etc/bash.bashrc \ | |
| && echo "alias ls='eza'" >> /etc/zsh/zshrc \ |
PR Type
Enhancement
Description
Add modern Unix power tools as alternatives to traditional commands
Install ripgrep, fd, btop, eza, dust, bat, fzf, tokei, hyperfine
Create symlinks to replace default ls, bat, fd commands
Add comprehensive tests for all new tools
Update Ubuntu base image from 24.04 to 25.10
Document all alternative tools in README
Diagram Walkthrough
File Walkthrough
Dockerfile
Add modern Unix tools and symlinksDockerfile
README.md
Document alternative Unix power toolsREADME.md
specs.yaml
Add tests for alternative Unix toolstests/specs.yaml
installation