Skip to content

Latest commit

 

History

History
68 lines (51 loc) · 3.23 KB

File metadata and controls

68 lines (51 loc) · 3.23 KB

Claude Code Instructions

Skills and Agents

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.

Project Overview

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.

Language and Runtime

  • 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 via maint/perlpkg.static.

Building and Testing

  • Build: make build — produces the fat-packed elevate-cpanel script.
  • Test: make test — runs sanity (syntax check all .pm files) then the test suite via yath (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 test after making code changes to verify nothing is broken.

Repository Structure

  • lib/Elevate/ — Perl modules (components, blockers, OS detection, stages, etc.)
  • script/elevate-cpanel.PL — main script source
  • t/ — test files
  • maint/ — build tooling
  • .github/workflows/ — CI workflows (OpenStack integration tests per OS target)
  • docs-website-src/ — Hugo-based public documentation website source
  • docs/ — built website output (do not edit manually; generated by CI)

Public Documentation Website

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.yml CD workflow on every push to main. Hugo compiles the site into docs/, which is then force-pushed to the docs branch 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 -D from the docs-website-src/ directory (requires Hugo v0.91.2).

Commit Message Format

Commits follow the cPanel/WHM convention:

  1. Subject line: Short summary (imperative mood, ≤50 chars), no case number.
  2. Blank line
  3. 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).
  4. 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.