satis
satis copied to clipboard
Tagging release versions to allow fetching a known version of Satis
To allow deploying a particular version of Satis it would be very useful if git tags could be utilised for each new release of Satis. This would for instance allow a CI process running a Satis build to be able to pull down a known version of Satis to run (using composer create-project
).
This would be especially useful when breaking changes are made such as removing PHP 5.4 support as any CI servers with PHP 5.4 on them (CentOS/RHEL7) can still build from the last tag supporting 5.4 instead of always using master
+1
👍
This!
We could release a tagged version, sure. But there are still some PR's open and several feature requests. I don't really know which should be implemented before a 1.0 or not, nor am I really in a position to make that decision.
At the very least, all open bug issues should be resolved though. But we (the Composer team) have very limited time available. Satis depends almost entirely on contributions from its users.
At the very minimum, having a tag or even a branched copy of the version prior to PHP requirement upgrade should be implemented to give people who still run on >=5.3.3, <5.5.0 SOME option to continue to use this other than hard coded commit hashes. Checking out master currently fails on those, and as a result automated build systems that cannot use commit hashes no longer work.
edit: Not to flog the horse, but consider this, about 50% of PHP servers use a version of PHP < 5.5.0 (source: W3Techs PHP Stats dated 14 April)
You can --ignore-platform-reqs
, if you insist on running a php version that is considered end-of-life.
What about in the case where we want to run Satis to mirror Satis? My satis is configured to only only mirror stable package releases, but since Satis has no releases, it won't mirror it (or at least, I'm not aware of overriding the minimum-stability for one package)
You should be able to override the stability for a singe package explicitly by using the stability flags in the requirement (@dev|@alpha|@beta
) or by require'ing a dev-
branch.
E.g.
"require": { "composer/satis": "dev-master" }
// or
"require": { "composer/composer": "^1.0@dev" }
Ignoring platform requirements defeats the purpose of having platform requirements in the first place.
I appreciate developers tend to put arbitrary numbers for php version requirements, but what if one of the required packages really needs php5.5 because it actually started to use something like traits or any other things from http://php.net/manual/en/migration54.incompatible.php ?
In this case --ignore-platform-reqs
will allow to install latest version of satis, which will not work on the outdated system.
You're drifting off-topic though. This issue is about tagging a Satis release so people can lock in a "stable" version.
Beg you pardon, but it was "fetching a known version" originally. "stable" popped up 3 weeks later, and yes, to some degree is off-topic to the original issue.
I mean, this issue/thread is about tagging Satis (currently there is just a master branch). This has nothing to do with the requirements that Satis has in its own composer.json. So please, keep it on-topic, and open another issue if you have something else to discuss.