semverPreReleaseIdentifier() : '', $build && mt_rand(0, 1) ? '+' . $this->semverBuildIdentifier() : '', ); } /** * Common pre-release identifier */ private function semverPreReleaseIdentifier(): string { $ident = Helper::randomElement($this->semverCommonPreReleaseIdentifiers); if (!mt_rand(0, 1)) { return $ident; } return $ident . '.' . mt_rand(1, 99); } /** * Common random build identifier */ private function semverBuildIdentifier(): string { if (mt_rand(0, 1)) { // short git revision syntax: https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection return substr(sha1(Helper::lexify('??????')), 0, 7); } // date syntax return DateTime::date('YmdHis'); } }