Skip to content

Installation

William Jacoby edited this page Oct 28, 2026 · 2 revisions

Installation

The scripts were written and tested on Linux. Clone the whole repository: the release scripts load lib/github-release.sh and lib/release-source.sh relative to their real location. Copying a single script elsewhere breaks that relationship.

git clone https://github.com/phpbbmodders/phpbb-release-tools.git
cd phpbb-release-tools
export PATH="$PWD:$PWD/phpbb-test-board:$PATH"

The PATH change applies to the current shell. Add the equivalent absolute paths to your shell configuration if desired, or symlink individual scripts into an existing PATH directory. Preserve the checkout and lib/ directory when using symlinks.

For example, if $HOME/.local/bin already exists and is on PATH, create a symlink from the tools checkout:

ln -s "$PWD/git-extensions.sh" "$HOME/.local/bin/git-extensions.sh"

Check whether that destination already exists before running this command. Repeat for the scripts you use; do not use a forced link to replace an existing command unintentionally.

Requirements by operation

  • git-extensions.sh: git, jq, zip
  • git-release-style.sh: git, zip
  • git-release-langpack.sh: git, curl, jq, unzip, zip. For --check also php, composer and sha256sum.
  • --remote and --release also need an authenticated GitHub CLI (gh), jq and timeout. Publication also uses GNU stat and needs write permission for releases, tags and assets.
  • phpbb-test-board/: see its README.
  • pr-wait.py: Python 3.7 or later and an authenticated GitHub CLI (gh).

The Bash scripts also use ordinary Linux utilities. No package installation is performed by the instructions above. Install missing prerequisites using your distribution's supported packages; PHP module package names depend on its PHP version.

For publication and PR monitoring, authenticate the GitHub CLI and check the active account:

gh auth login
gh auth status

The account must be able to read the target repository and, for publication, create releases, tags and assets. Do not put tokens in scripts or examples. Local extension/style packaging does not need GitHub authentication.

Check the installation

git-extensions.sh --help
git-release-style.sh --help
git-release-langpack.sh --help
pr-wait.py --help

These help commands do not publish releases. Python board tools can bootstrap a virtual environment even when requesting help; see test-board setup.

Update

From the tools checkout, inspect local modifications before updating:

git status --short
git pull --ff-only

A fast-forward failure requires resolving local history intentionally. Do not discard local changes to force an update. Existing symlinks keep pointing at the updated checkout.

The retired git-release-api.sh command is replaced by git-extensions.sh --release --remote. See the migration table before updating older aliases or automation.

Clone this wiki locally