Skip to content
PROCTOR Form 0.5.0
Menu

Install#

Requirements#

  • PHP ^8.3. composer.json pins the platform to 8.3.0, so the package resolves against 8.3 and runs on anything newer.
  • No PHP extensions. composer.json declares no ext-* requirement; the runtime libraries (symfony/console, symfony/yaml, composer/semver, nikic/php-parser) arrive as Composer packages.
  • Composer, for the main install path below. The single-file PHAR route needs only a PHP CLI and a download from the GitLab Release.

Where the code lives: the canonical repository is on nougat, enterprise-apps/proctor. git.wayne.edu and GitHub (waynestate/proctor) are read-only mirrors of it. Open issues and merge requests on nougat, not on the mirrors. Your proctor keeps one answer sheet, and this is it; the mirrors hold photocopies.

Single-file PHAR#

The single-file PHAR is how Preflight and apps without Composer access run PROCTOR as one file, and from the next release it is attached to each GitLab Release with its proctor.phar.sha256 checksum file. Both files come from the release-phar job in .gitlab-ci.yml; the lead tags, and no tag means no release. The composer require install below stays the current method; the phar is the one-file alternative.

Download both files for the tag you want, verify the checksum, then run it. Replace <release> with the base URL of the release's asset links (the release page lists both files).

Linux / macOS (sh), one line:

curl -fsSL -o proctor.phar "<release>/proctor.phar" -o proctor.phar.sha256 "<release>/proctor.phar.sha256" && sha256sum -c proctor.phar.sha256 && php proctor.phar --version

Windows (PowerShell), one line, no bash needed:

Invoke-WebRequest "<release>/proctor.phar" -OutFile proctor.phar; Invoke-WebRequest "<release>/proctor.phar.sha256" -OutFile proctor.phar.sha256; if ((Get-FileHash proctor.phar -Algorithm SHA256).Hash -ne (Get-Content proctor.phar.sha256 -TotalCount 1).Trim().Split(' ')[0]) { throw "sha256 mismatch" }; php proctor.phar --version

Until the first tagged release that runs the job, build it from a checkout with the script for your OS (both need Docker, and no PHP or Composer on the host): .\scripts\build-phar.ps1 on Windows, scripts/build-phar.sh on Linux / macOS. Each script writes build/proctor.phar and verifies it by printing PROCTOR's version.

Install#

composer require waynestate/proctor --dev

The command is then vendor/bin/proctor.

Verify#

Run the check against the app:

vendor/bin/proctor check

Expected: the text report. A header line with the tool and the versions of the external tools used (composer), a line naming the policy in use (origin, path, refresh date), one line per finding, one line per override, then a RESULT line. Exit codes: 0 for pass (warnings allowed), 1 for one or more failures, 2 for a tool error. A proctor that prints a mark sheet is a proctor that is on duty.

Next steps#