Conversation
… add command-line utilities category
…lculation, and solver
…tions and examples
There was a problem hiding this comment.
Pull Request Overview
This PR transforms the cheq library into a dual-purpose package by adding a full-featured command-line interface alongside the existing library API. The CLI enables users to perform QEq charge equilibration calculations directly from the terminal with support for multiple input/output formats and configurable solver parameters. A GitHub Actions workflow automates the release process by building and packaging binaries for five different platforms (Linux x86_64/aarch64, macOS x86_64/aarch64, Windows x86_64).
Key Changes:
- Added a CLI binary with argument parsing (clap), progress indicators (indicatif), and multiple output formats (pretty tables, XYZ, CSV, JSON)
- Created comprehensive user documentation in
USAGE.mdcovering CLI usage, parameter files, and practical examples - Implemented a multi-platform GitHub Actions release workflow that builds, tests, and uploads binary artifacts for Linux, macOS, and Windows
Reviewed Changes
Copilot reviewed 4 out of 9 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| USAGE.md | New comprehensive CLI user manual documenting all command-line arguments, input formats, parameter files, and usage examples |
| README.md | Updated to document both CLI and library usage, including installation instructions for both use cases |
| Cargo.toml | Added CLI dependencies (clap, prettytable-rs, indicatif) as optional features, bumped version to 0.2.0, and added binary target configuration |
| .github/workflows/release.yml | New GitHub Actions workflow that builds CLI binaries for multiple platforms and uploads them as release assets |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@ghutchis Thank you so much for your suggestion, I have implemented it. |
Summary:
Introduces a full-featured Command-Line Interface (CLI) for the
cheqlibrary, transforming it into a standalone tool for end-users. The CLI, built usingclap, provides a robust and user-friendly way to perform QEq calculations directly from the terminal. It supports various input/output formats, custom parameters, and solver configurations. To support this new functionality, a multi-platform GitHub Actions release workflow has been implemented to automatically build and package binaries for Linux, macOS, and Windows upon the creation of a new release tag.Changes:
Implemented a Feature-Rich CLI:
[[bin]]) with a modular structure (app,cli,io,error).clapto build a powerful and self-documenting argument parser with clear help messages and option groups.stdin).--format), including a human-readable table (pretty), charged XYZ, CSV, and machine-readable JSON.tolerance,max-iterations).indicatifto provide a user-friendly progress spinner during calculations.Developed a Robust I/O Module:
pretty-table,csv, etc.).Established a Multi-Platform Release Workflow:
release.yml) that triggers on the "published" release event.LICENSEandREADME.mdinto a.tar.gzor.ziparchive and automatically uploads it as a release asset.Added CLI User Documentation:
USAGE.mdfile serving as a comprehensive user manual for the CLI, detailing all arguments, input formats, and practical examples.README.mdto highlight the new CLI functionality and provide installation instructions.