Developer Tools
Ambari development uses standard Git, Maven, Java, Python, and Node.js tooling. Select tools that can reproduce the repository’s configured versions and preserve the project’s checks.
Source Control
Use one branch for one coherent change, keep commits focused, and rebase from the intended upstream branch before review. Inspect status and the complete diff before committing so unrelated worktree changes are not included.
Useful aliases may be configured in .gitconfig:
[alias]
st = status
ci = commit
br = branch
co = checkout
lg = log --graph --decorate --oneline --all
Use the repository’s required JIRA key in branch, commit, and review metadata. Prefer non-interactive Git commands in scripts and automation.
Java and Maven
Use JDK 17 and the Maven wrapper or Maven version selected by the project. The root POM manages dependency and plugin versions. IDEs should import the Maven project rather than maintaining a separate dependency model.
Run a focused module or test while iterating, then run the appropriate broad verification before review. Keep generated targets and downloaded dependencies outside commits.
React Development
The primary UI in ambari-web/latest uses TypeScript, React 19, Vite, and Vitest. Use the package scripts for local development, production type/build checks, linting, and tests:
npm run dev
npm run build
npm run lint
npm run test
The Admin React application under ambari-admin/src/main/resources/ui/ambari-admin has its own package scripts and build lifecycle. Do not assume that a successful primary UI build verifies the Admin application.
Python Development
Agent Python dependencies and packaging are defined by the module pyproject.toml and lock files. Use the repository’s selected Python interpreter and locked dependencies; do not install ad hoc packages into the system interpreter or reintroduce removed vendored implementations.
Review Checks
Before review, run applicable Java, Python, React, and documentation checks; inspect licenses and dependency changes; and verify that credentials, private keys, cookies, and generated artifacts are absent. Record exact commands, skipped checks, and environment-dependent results in the review description.