問題タブ [satis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
composer-php - プライベート コンポーザ リポジトリ
次のレイアウトでローカルSVNリポジトリをセットアップしました
これはドキュメントに準拠しています。
私の satis 構成は次のようになります。
ライブラリごとに個別に svn リポジトリを作成する必要がないように、このセットアップを選択しました。
今、私は次のエラーが発生しています:
libraryA/trunk の composer.json が有効であることは確かですが (パスしますcomposer validate
)
php - Composer がライブラリのオートロードを生成しない
「init」と、init に必要なライブラリの 2 つのプロジェクトをセットアップしました。どちらも PSR-0 オートロードが設定されていますが、ライブラリからのオートロード値は init プロジェクトの vendor/composer/autoload_namespaces.php に追加されていません。
ライブラリのサンプル composer.json:
そのライブラリを必要とするプロジェクトの composer.json のサンプル:
ライブラリには、ファイル src/LXP/Library/Something.php にクラス LXP\Library\Something が含まれています。
ライブラリを必要とするプロジェクトには、ファイル src/LXP/Init/Now.php にクラス LXP\Init\Now が含まれています。
「init」プロジェクトで composer install を実行すると、ライブラリ プロジェクトがダウンロードされ、ベンダーに正しく配置されますが、 vendor/composer/autoload_namespaces.php にはライブラリの自動ロード情報が含まれておらず、現在のプロジェクトの情報のみが含まれています。
私は何を間違っていますか?ライブラリ プロジェクトで dump-autoload を実行すると、autoload_namespaces.php ファイルは正しく、クイック ブートストラップ スクリプトによって、実際にクラスが取得されていることが確認されます。
編集 - これは、satis によって生成された packages.json の問題です。それを修正するには、ライブラリの composer.json から、satis に提供する json ファイルに autoload 情報を追加する必要がありました。これは不要な重複のように思われるため、おそらく間違っています。satis ライブラリのオートロード情報を保存できる単一の場所はありますか? たとえば、satis は、スキャンするライブラリに存在する composer.json ファイルを読み取ることができますか?
編集 #2 - Satis は、「パッケージ」タイプとして指定されたリポジトリから composer.jsons を読み取りません。「パッケージ」は composer.json を持たないライブラリに使用され、それらの周りに composer のような依存関係管理をラップする方法であるため、これは後から考えると明らかです。
satis.json のリポジトリを 'vcs' タイプに変更すると、composer.json が読み取られ、情報 (autoload 仕様を含む) が解析され、packages.json に格納されました。
@Seldaek - 私の satis 設定が問題であることを示唆していただきありがとうございます。これにより、私の立場にある他の誰かの satis / composer の動作が明確になることを願っています。
svn - Composer: SVN リポジトリ内の複数のパッケージ
複数のモジュール (モジュール A やモジュール B など) を含むプロジェクト (アプリケーション A と呼びましょう) に取り組んでいます。これらのモジュールはこのプロジェクトで使用されますが、これらのモジュールを他のプロジェクトにも公開したいと考えています (たとえば、アプリケーション B がモジュール A を使用できるようにするため)。メイン プロジェクトであるアプリケーション A は、次の (簡略化された) ディレクトリ構造を持つ SVN リポジトリにあります。
依存関係を管理するために composer を使用しています。Satis を使用して、モジュール パッケージ (モジュール A、モジュール B など) を含むプライベート リポジトリを作成したいと考えています。SVN リポジトリをリポジトリとして Satis 構成ファイルに追加しました。
しかし、これは私が望むようなものを生成しませんpackages.json
。ファイル内の唯一のパッケージpackages.json
はアプリケーション A ですが、すべてのモジュール パッケージをこのファイルに入れたいので、Composer/Satis にすべての composer.json
ファイル (サブフォルダーも) をスキャンさせたいと考えています。
パッケージごとに特定のリポジトリを追加することはできますが、その場合、新しいモジュールごとに Satis 構成を編集する必要があるため、そうしたくありません。
trunk-path
Satis 構成ファイルで、branches-path
、tags-path
およびを設定するなど、多くのことを試しましたがpackage-path
、これを機能させることができます。
つまり、1 つの SVN リポジトリで Composer/Satis を複数のパッケージで動作させようとしています。これを達成する方法を知っている人はいますか?それとも、私の「問題」を解決するためのより良いアプローチがありますか?
前もって感謝します!
composer-php - Satis - リポジトリを認証できません
http://getcomposer.org/doc/articles/handling-private-packages-with-satis.mdの指示に従ってSatis をセットアップしました。
私は手に入れました
しかし、次のエラーが発生します。
これは、プライベートリポジトリであるためだと推測しています。これを回避する方法を知っている人はいますか?
私のsatis.json:
composer-php - cronjob による満足のいく更新
cron ジョブを使用してプライベート リポジトリを更新しようとしていますが、何も起こっていないようです。Satis を使用してプライベート パッケージのリポジトリを作成しています。
SSH経由でアカウントにログインして実行することで、これを手動で行うことができます:
これにより、パスフレーズを何百万回も入力する必要があることを除けば、すべてが正常に更新されます。を使用してSSH Agent
これを回避でき、これが私の問題かもしれないと思います...
足りないものはありますか?
アップデート
メールでこのエラーを受け取ったので、これは SSH 認証です (短縮版)
ベンダー/パッケージ (マスター) の composer.json の
読み取り git@bitbucket.org:vendor/package.git の更新に失敗しました。このリポジトリからのパッケージ情報は古い可能性があります (許可が拒否されました (公開鍵)。致命的: リモート エンドが予期せずハングアップしましたエラー: オリジンを取得できませんでした)
ドキュメントでは-n
、SSHキーを使用するために使用することについて述べていますが、私はそれを使用しています。
何か案は?
アップデート
私はsatisファイル構造を追加すると思った:
本当にこれに固執しています、ドキュメントはがらくたです!
php - Satis ビルドでエラーがスローされる - キャッシュ ディレクトリが空でない
現在、composer を使用して内部パッケージを管理するために satis をセットアップしようとしています。
config.json ファイルを作成しました
ビルドしようとすると
次のエラーが表示されます。
そのキャッシュ フォルダーを削除して、再度ビルドしようとしましたが、同じエラーが発生します。Web ディレクトリにも何も作成されていません。
この問題を解決して正常にビルドする方法についてのアイデアはありますか?
php - 最初から再構築できるように、satis の「キャッシュ」をクリアするにはどうすればよいですか?
私は satis を使用して、いくつかのホストされた Mercurial リポジトリをキュレートしています。リポジトリの 1 つに「stable」というブックマークがあり、これをスキャンして、packages.json にエントリを作成しました。ブランチを削除し、リモート リポジトリを削除して再プッシュしました。実行satis build ...
すると、もはや存在しない変更セットを指している安定版のエントリが作成されます。satis を再スキャンしたり、最初からビルドしたりするにはどうすればよいですか?
php - satis がすべてのバージョンに -dev を追加するのはなぜですか? また、この動作を構成するにはどうすればよいですか?
ブランチ名、ブックマーク、タグ、ブックマークやブランチへのsatis追加など、Mercurialリポジトリでバージョンにタグを付けるさまざまな方法を試しました-dev
。デフォルトのブランチを dev ではなく安定版と見なすように satis を設定できますか? 安定したバージョンごとに明示的なタグを作成する必要がありますか?
git - プロジェクトのブートストラップ: プライベート git リポジトリ、Composer、Satis
編集:ここで達成しようとしたことは、Yeomanプロジェクトで実行できます。
そこで、プライベート サーバーに git+composer+satis をセットアップしました。すべて正常に動作し、非常に熱心です。それらすべてを愛さなければなりません。
私はプロジェクトとプライベート パッケージに git を使用しているため、基本的なワークフローは次のようになります。
これにより、プロジェクト リポジトリが複製され、必要な依存関係がインストールされます。素晴らしい。
しかし、いくつかの「スケルトン リポジトリ」を使用して、それらの内容をプロジェクトにコピーし、依存関係情報を保持できるようにしたいと考えています。
次の例を見てください。
- test-project という名前の git リポジトリを作成し、それをローカルに複製します。
- Facebook アプリのスケルトンである fb-bootstrap と呼ばれる別の git リポジトリがあります。
- また、別のブートストラップ スケルトン git リポジトリもあります。これも含めたいと思います。たとえば、これは api/ フォルダーになります。それを呼びましょう: api-bootstrap
- だから私もそれらを複製したいのですが、同じディレクトリにすでにgitリポジトリがあるため、もちろんできません。
- 考えられる解決策: 次のコードを使用するため、ファイルのみを取得します。tar xf -'
これは問題ありませんが、問題があります。依存関係が異なります-composer.jsonファイルが異なります。- fb-bootstrap と api-bootstrap リポジトリの場合、それらすべてをインストールする方法を見つける必要があります。
アクセスがそのフォルダーに制限されているため、自動ロードされた php クラス以外は vendor/ フォルダーに何も配置できないため、これには composer を使用しないことに注意してください。
その制限を解除しても問題は解決しません。後で依存関係を追加して を呼び出すとcomposer update
、ブートストラップ フォルダーで行った変更が失われる可能性があるためです。
上記のサブモジュールとコピーファイルのみのハックは、上記の理由により、それを完全にカットしません。
概要:
必要な数のブートストラップ リポジトリを含めることができるソリューションが必要です。それが完了したら、すべての依存関係をインストールできる必要があります。
このような:
- git init プロジェクト リポジトリ、
- ローカルでプロジェクト リポジトリを git clone し、
- 必要なブートストラップ リポジトリのコンテンツをいくつか取得し、
- プロジェクト用に宣言した依存関係と、すべてのブートストラップ リポジトリの依存関係をインストールします。
これを行う方法はありますか?
また、私がこの問題に完全に間違った方法で取り組んでいると思われる場合は、遠慮なく教えてください。とにかく新しい技術に順応しています。変化を恐れません。:)
どんなコメントでも大歓迎です。