|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +## Project purpose |
| 4 | + |
| 5 | +GNU Bash 4.1 fork patched with Vyatta CLI semantics. Provides `vbash` (the Vyatta/VyOS configuration shell) — the user-facing shell that drives `set`/`commit`/`show` flow on VyOS. Massive C codebase inherited from GNU Bash; VyOS changes are layered on top. Ships as the `vyatta-bash` Debian package. |
| 6 | + |
| 7 | +## Tech stack |
| 8 | + |
| 9 | +- C (GNU Bash 4.1 baseline). |
| 10 | +- GNU autotools (`Makefile.in`, `aclocal.m4`, `configure`). |
| 11 | +- Debian packaging in `debian/`. |
| 12 | +- License: GPL-3.0 (per `COPYING`/`LICENSE`). |
| 13 | + |
| 14 | +## Build / test / run |
| 15 | + |
| 16 | +```sh |
| 17 | +./configure |
| 18 | +make |
| 19 | +dpkg-buildpackage -us -uc |
| 20 | +``` |
| 21 | + |
| 22 | +There is no in-tree test runner specific to VyOS; the upstream Bash test suite under `tests/` exists but is not routinely run by CI. |
| 23 | + |
| 24 | +## Repository layout |
| 25 | + |
| 26 | +- C source files at root (`alias.c`, `array.c`, `arrayfunc.c`,...) — the upstream Bash 4.1 source tree. |
| 27 | +- `debian/` — VyOS-specific Debian packaging (`vyatta-bash` source + binary package name). |
| 28 | +- `CODEOWNERS`, `README` (upstream Bash README), `MANIFEST`, etc. |
| 29 | + |
| 30 | +## Cross-repo context |
| 31 | + |
| 32 | +Pre-dep of the legacy Vyatta config layer (`vyatta-cfg`, `vyatta-cfg-system` and the various `vyatta-op*`, `vyatta-config-*` Perl glue repos in `the private side`). Listed in an internal repository. Pulled into the ISO via `vyos/vyos-build`. New CLI work generally lives in `vyos-1x` Python rather than this shell. |
| 33 | + |
| 34 | +## Conventions |
| 35 | + |
| 36 | +- Default branch `current`. LTS branches when needed. |
| 37 | +- Commit / PR title format: `component: T12345: description` (Phorge task ID at https://vyos.dev). |
| 38 | +- Active workflows: `add-pr-labels.yml`, `auto-author-assign.yml`, `chceck-pr-message.yml` *(typo preserved)*, `check-pr-conflicts.yml`, `check-stale.yml`, `cla-check.yml`, `codeql.yml`, `pr-mirror-repo-sync.yml`, `sonarcloud.yml`, `trigger-rebuild-repo-package.yml`. Mirror pipeline IS wired up. |
| 39 | +- Treat as upstream-vendored Bash; minimise diffs against the GNU Bash 4.1 baseline. |
| 40 | + |
| 41 | +## Notes for future contributors |
| 42 | + |
| 43 | +- Filename `chceck-pr-message.yml` is a known typo; left in place to avoid breaking the workflow ref. Leave as-is unless coordinated. |
| 44 | +- Vyatta-specific behaviour patches are scattered across multiple `.c` files (no single "vyatta" subdir). Use `git log -- <file>` to see VyOS-era changes vs upstream. |
| 45 | +- This is GPL-3.0 (Bash); the surrounding VyOS code mostly is GPL-2.0 — ABI/binary linkage is fine, source mixing is not. |
0 commit comments