tsugi / lib
The PHP Library to build interoperable learning tools
Installs: 1 944
Dependents: 3
Suggesters: 0
Security: 0
Stars: 8
Watchers: 3
Forks: 26
Open Issues: 11
pkg:composer/tsugi/lib
Requires
- php: >=8.4.0
- ezyang/htmlpurifier: v4.18.0
- firebase/php-jwt: v6.11.1
- laravel/lumen-framework: v11.2.0
- phpseclib/phpseclib: 3.0.43
Requires (Dev)
- phpunit/php-timer: v5.0.3
- phpunit/phpunit: 9.*
This package is auto-updated.
Last update: 2026-01-22 03:31:49 UTC
README
The Tsugi PHP library is developed only in the main tsugi monorepo.
The standalone tsugi-php repository is a read-only mirror used for
Packagist distribution.
Canonical Rule
All changes to the Tsugi PHP library must be committed and pushed to
tsugimasterbefore they are mirrored totsugi-php.
Changes flow one way:
tsugi (master, lib/) → tsugi-php (master) → Packagist
Direct commits or pull requests to tsugi-php are not accepted and may be
overwritten.
Step-by-Step Workflow
1. Work in the main Tsugi repository
Clone and work in the canonical repository:
git clone https://github.com/tsugiproject/tsugi.git
cd tsugi
Make all code changes only under the lib/ directory.
2. Commit and push to tsugi master
Before mirroring, changes must be committed and pushed to the canonical branch:
git status
git add lib/
git commit -m "Describe the change to the Tsugi PHP library"
git push origin master
Only committed changes are eligible to be mirrored.
3. Mirror lib/ to the tsugi-php repository
From the tsugi repository root, run the mirror script:
qa/mirror-tsugi-php.sh
This script:
- Extracts the
lib/directory history - Reconstructs it as a standalone repository
- Force-updates
tsugi-phpmasterusing--force-with-lease
The result is an exact mirror of tsugi/lib.
4. Verify (optional)
After mirroring, you may verify that the change appears in the standalone repo:
git ls-remote https://github.com/tsugiproject/tsugi-php.git
or by browsing the repository on GitHub.
Important Notes
- The history in
tsugi-phpis a projection of the monorepo history and may differ from earlier standalone commits. - Any commits made directly to
tsugi-phpmay be replaced during the next mirror operation. - All development discussion, issues, and pull requests belong in the main
tsugirepository.
Summary
If you remember only one thing:
Commit and push to
tsugimasterfirst.
tsugi-phpis generated from that state.