At the start of each session, run git pull in /usr/local/webpros-claude-skills/ to
ensure you have the latest skills and agents. That directory contains project-wide
skills (under skills/) and agents (under agents/) that provide commit message
standards, workflow conventions, and other shared guidance used across WebPros projects.
This is the cPanel ELevate project — a Perl-based tool that performs in-place OS
upgrades for cPanel installations (e.g. CentOS 7 → AlmaLinux 8, Ubuntu 20 → 22, etc.).
It wraps the Leapp Project for RHEL-based
systems and do-release-upgrade for Ubuntu-based systems.
- Written in Perl, packed into a single fat-packed script (
elevate-cpanel). - Uses cPanel's bundled Perl at
/usr/local/cpanel/3rdparty/perl/536/bin/perl. - Library modules live under
lib/Elevate/. - The entry point is
script/elevate-cpanel.PL, which is packed viamaint/perlpkg.static.
- Build:
make build— produces the fat-packedelevate-cpanelscript. - Test:
make test— runssanity(syntax check all.pmfiles) then the test suite viayath(with 8 parallel jobs). - Full:
make— runs build, test, and coverage. - Tests live in
t/and use standard Perl testing conventions (Test::More, etc.). - Always run
make testafter making code changes to verify nothing is broken.
lib/Elevate/— Perl modules (components, blockers, OS detection, stages, etc.)script/elevate-cpanel.PL— main script sourcet/— test filesmaint/— build tooling.github/workflows/— CI workflows (OpenStack integration tests per OS target)docs-website-src/— Hugo-based public documentation website sourcedocs/— built website output (do not edit manually; generated by CI)
The public docs site at https://cpanel.github.io/elevate is built with
Hugo from source in docs-website-src/.
- Content lives in
docs-website-src/content/as Markdown files. - The site is built and deployed automatically via the
.github/workflows/website.ymlCD workflow on every push tomain. Hugo compiles the site intodocs/, which is then force-pushed to thedocsbranch by the workflow. - Never manually edit files in
docs/— they are regenerated on every deploy. - To update documentation, edit the Markdown files under
docs-website-src/content/. - To preview locally: run
hugo -Dfrom thedocs-website-src/directory (requires Hugo v0.91.2).
Commits follow the cPanel/WHM convention:
- Subject line: Short summary (imperative mood, ≤50 chars), no case number.
- Blank line
- Body: Detailed description; must begin with
Case PROJECT-XXXXX:if a ticket/case exists (use the branch name as the case number when on a case branch). - Trailers (in this order):
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Changelog:— leave empty for internal-only changes; describe user-visible changes otherwise.
Changelog: must always be the last line of the commit message.