Composerでプロジェクトを公開しようとしました。プロジェクトはgithubにあり、packagist.orgを通じて公開されています。
しかし、composerでプロジェクトを作成しようとすると、次のエラーメッセージで失敗します。
「安定性が安定しているパッケージmadskullcreations/simplicityが見つかりませんでした。」
次のコマンドを使用します。
composer create-project madskullcreations/simplicity
Composer.jsonには以下が含まれます。
{
"name": "madskullcreations/simplicity",
"description": "Website made simple!",
"homepage": "https://madskullcreations.com",
"type": "project",
"license": "GPL-3.0-or-later",
"minimum-stability": "dev",
"require": {
"php": ">=5.6",
"cakephp/cakephp": "3.5.*"
}
}
私のリポジトリには、テスト用のファイルが1つだけ含まれています。なにが問題ですか?依存関係、「require」ブロック全体を削除しようとしましたが、実際の変更はありません...
私の初心者ですが、パッケージの「安定性」をどこに定義するかさえわからず、githubやpackagistで何も見つけることができません。
これを始めるのを手伝ってください!
実用的なソリューション:
私は最終的にフライングの助けを借りてそれを動作させました、彼の答えをさらに下に見てください。 composer up'n upを機能させるのは少し複雑だと思うので、ここで機能させるために行った手順をここに入れます。
テスト中にpackagist.orgの手順をスキップするには、次の手順に従います。 (私がしたように)機能していないソリューションをpackagist.orgで公開するのは良いスタイルではありません。必要なすべての手順を10回以上繰り返すのはまったく面白くありません。
どこかにローカルフォルダーを作成し、そこに新しいcomposer.jsonファイルを作成します。
その中に次のようなものを入れてください:
{
"require": {
"madskullcreations/simplicity":"dev-master@dev"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madskullcreations/simplicity"
}
]
}
新しいフォルダーで次のコマンドを実行します。
composer create-project
これでプロジェクトがダウンロードおよびインストールされます。
そして、composerによって提供されるエラーメッセージを読んで、それらを理解していることを確認してください。それらは有用です。私の頭痛の種は、PHP拡張機能(intl)の欠落であり、phpバージョン7.1を使用していると想定していました、それは実際にcomposer.jsonファイルで私の要件をリッスンし、v5.6を使用しました(iisにいくつかのphp-versionがインストールされていますが、私の頭がぼやけてそれを考慮していませんでした)。
パッケージの安定性要件は、外部パッケージのminimum-stability
ではなく、your projectのcomposer.json
の composer.json
設定に定義されています。
あなたの madskullcreations/simplicity パッケージには norelease が定義されていないので、そこにある唯一のブランチはdev-master
"release"(it Packagistの package page の右側にあります。この「リリース」には「開発」安定性レベルがあります。
上記のため、minimum-stability: dev
を設定せずに、またはパッケージの安定性要件を指定せずに、このパッケージをプロジェクトに必要とする場合
"require": {
"madskullcreations/simplicity":"dev-master@dev"
}
(バージョン要件への@dev
に注意してください)Composer)の正しい動作は、互換性のあるリリースの欠如について文句を言うことです。
また、Packagistのような公開レジストリにテストパッケージを公開することは、一般的に悪い習慣です。代わりに、説明されているようにcomposer.json
に直接リポジトリ指定を使用する必要があります ここ 。あなたの場合それは次のようになります:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/madskullcreations/simplicity"
}
]
直接リポジトリ参照を指定した後-オープンソースコミュニティと共有したくない場合を除いて、Packagistからテストパッケージを削除しても安全です。