bendis 0.5.8

A patch tool for Bender to work better in HERIS project
bendis-0.5.8 is not a library.

Bendis

Crates.io Crates.io Downloads GitHub GitLab

A patch tool for Bender to work better in the HERIS project.

Author: Albert L. ZHANG, IHEP

Email: albert.cheung@cern.ch


Links


Features

  • URL Conversion: Automatically converts GitHub URLs to IHEP internal Git URLs
  • Seamless Integration: Works as a drop-in replacement for Bender
  • Fast: Written in Rust for optimal performance

Installation

cargo install bendis

Usage

Initialize a project

bendis init

Creates a bendis_workspace/ directory with blank Bender.yml and .bender.yml.

Update dependencies

When using Bendis, only edit the configuration files inside bendis_workspace/. The copies in the project root will be overwritten.

Update dependencies with:

bendis update

With Bendis 0.5.8 or later, prepare dependencies for RTL hardening and activate the resulting local RTL by placing the aegisrtl repository next to the project root and running:

bendis update --hard

Hard mode requires a Bender version with script template-json support. If ../aegisrtl/scripts/harden.sh is missing, Bendis reports that hardening was skipped and activates the local RTL without hardening. Bendis reuses existing Bender caches and only retries checkout with remote access when local dependencies are incomplete. Project-local Path entries are normalized before the AegisRTL workspace is prepared.

Other commands

All other commands are passed through to Bender transparently.


File Structure

(***): You may interest in and can be edited. (-): Nobody, or generated automatically. Don't edit them if you don't understand Bendis.

pulpissimo/
├── bendis_workspace/       # Bendis working directory
│   ├── .bender/            # (-)Bender cache folder (optional on Bendis config)
│   ├── Bender.yml          # (***)The config you need to edit
│   ├── .bender.yml         # (***)The overrides config you may need to edit
│   ├── Bender.lock         # (-)Generated by bendis automatically
│   ├── hw/                 # (***)Some dependencies of pulpissimo
│   └── target/             # (***)Some dependencies of pulpissimo
├── Bender.yml              # (-)Converted config
├── .bender.yml             # (-)Converted overrides (IHEP URLs)
├── Bender.lock             # (-)Final lock file generated automatically
├── .bender/                # (-)Dependencies directory generated automatically
├── hw/                     # (-)Some dependencies automaticaly updated from `bendis_workspace/`
├── target/                 # (-)Some dependencies automaticaly updated from `bendis_workspace/`
└── ...