Tyhp 805.1.0-beta.1 is a public beta. This page describes versioning, what “beta” means, and how later releases are expected to work.
805 = highest supported PHP is 8.5)tyhp language_server, generate_tyhpdef, and tyhpdef/php / tyhpdef/php-ext-* are also in this beta. Remaining Tier 2+ work includes the web playground, optimizer, and later language features.A prerelease suffix (-alpha.N, -beta.N, -rc.N) is allowed before stable 805.N.N. Beta 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 version independently of the compiler. Compiled tyhp/* helpers (core, async, decimal, lambda) each have their 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 helper; a library that supports 8.3+ can require 803.X.* || 804.X.* || 805.X.* using that package's X. tyhpdef/* packages publish the version in that package’s composer.json (not 80N.X.Y). 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.