Tyhp 805.0.0-alpha.1 is a public alpha. This page describes versioning, what “alpha” means, and how later releases are expected to work.
805 = highest supported PHP is 8.5)tyhp/php ecosystem) is not in this alpha.A prerelease suffix (-alpha.N, -beta.N, -rc.N) is allowed before stable 805.0.0. Alpha may still break source compatibility. See VERSIONING.md in the compiler repository.
Tyhp uses semantic versioning (MAJOR.MINOR.PATCH). The compiler MAJOR encodes the highest PHP version the release explicitly supports, written as the PHP major digit followed by the two-digit PHP minor. For example, compiler version 805.0.0 means "PHP 8.5 and below" — the compiler still emits for 8.2–8.4 when output.phpVersion is set.
Published runtime packages (tyhp/core and friends) version independently of the compiler. Each has its own X.Y; Packagist MAJOR is the PHP target (804.1.4 means PHP 8.4 + core 1.4). A PHP 8.3 app requires 803.{X.Y} for that package; a library that supports 8.3+ can require 803.X.* || 804.X.* || 805.X.* using that package's X. See the Composer Runtime Packages page.
This encoding means a Tyhp MAJOR bump only happens alongside a PHP minor version change (e.g., PHP 8.3 to 8.4). Tyhp syntax deprecation and removal happen on MINOR, even when they are not caused by a new PHP version. When PHP 9.0 is targeted, the corresponding Tyhp MAJOR would be 900.
After alpha, releases are expected to follow:
Within a stable major version, Tyhp aims to maintain backward compatibility for compiled output. Alpha and beta do not make that promise. When breaking changes to Tyhp syntax are necessary after stable, they follow a deprecation cycle:
Because Tyhp is a superset of PHP, new PHP versions may occasionally introduce syntax that conflicts with Tyhp-specific syntax. When this occurs, Tyhp works through the steps in VERSIONING.md in order: first integrate-and-detect (keep both syntaxes if they can be distinguished at compile time); then deprecate Tyhp’s form with compile-time options; then remove the old syntax in a later MINOR. Do not wait for the next PHP ceiling / MAJOR.