问题标签 [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 存储库
这符合文档。
我的满意配置如下所示:
我选择了这个设置来避免必须为每个库分别创建一个 svn 存储库。
现在我收到以下错误:
虽然我很确定 libraryA/trunk 中的 composer.json 是有效的(它通过了composer validate
)
php - Composer 不为库生成自动加载
我已经设置了两个项目,一个“init”和一个库,这是 init 所需的。它们都设置了 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 中,但 vendor/composer/autoload_namespaces.php 不包含库的自动加载信息,仅包含当前项目的信息。
我究竟做错了什么?如果我在库项目中运行 dump-autoload 则 autoload_namespaces.php 文件是正确的,并且快速引导脚本确认它确实选择了该类。
编辑 - 这是满意生成的 packages.json 的问题。为了修复它,我必须将库的 composer.json 中的自动加载信息添加到我提供给 satis 的 json 文件中,这似乎是不必要的重复,所以我可能做错了。是否有一个地方可以为满足库存储自动加载信息?例如,satis 可以读取它扫描的库中存在的 composer.json 文件吗?
编辑 #2 - Satis 不会从指定为“包”类型的存储库中读取 composer.jsons。事后看来,这是显而易见的,因为“包”用于没有 composer.json 的库,并且是一种将类似 composer 的依赖管理包装在它们周围的方法。
将 satis.json 的存储库更改为 'vcs' 类型意味着读取了 composer.json,并且信息(包括自动加载规范)被解析并存储在 packages.json 中。
@Seldaek - 感谢您提出我的 satis 配置是问题所在,我希望这可以澄清我所在职位的其他任何人的 satis / composer 行为。
svn - Composer:SVN 存储库中的多个包
我正在开发一个包含多个模块(如模块 A 和模块 B)的项目(我们称之为应用程序 A)。在这个项目中使用了这些模块,但我也希望将这些模块公开给其他项目(例如,应用程序 B 可以使用模块 A)。主项目 Application A 位于具有以下(简化)目录结构的 SVN 存储库中:
我正在使用作曲家来管理依赖项。我想使用 Satis 创建一个包含我的模块包(模块 A、模块 B 等)的私有存储库。我将我的 SVN 存储库作为存储库添加到我的 Satis 配置文件中:
但这不会产生packages.json
我想要的。文件中唯一的包packages.json
是应用程序 A,但我希望所有模块包都在这个文件中,所以我希望 Composer/Satis 扫描所有 composer.json
文件(也在子文件夹中)。
我可以为每个包添加一个特定的存储库,但我不希望这样,因为在这种情况下,我需要为每个新模块编辑我的 Satis 配置。
我在我的 Satis 配置文件中尝试了很多东西,比如设置、、trunk-path
和,但我可以让它工作。branches-path
tags-path
package-path
简而言之:我试图让 Composer/Satis 使用 1 个 SVN 存储库中的多个包。有谁知道如何实现这一目标?或者也许有更好的方法来解决我的“问题”?
提前致谢!
composer-php - Satis - 无法验证存储库
我已按照http://getcomposer.org/doc/articles/handling-private-packages-with-satis.md上的说明设置 Satis。
我得
但随后出现以下错误:
我猜这是因为它是一个私有存储库。有谁知道如何解决这个问题?
我的satis.json:
composer-php - Satis update via cronjob
I'm try to update my private repository via a cron job but nothing seems to be happening. I'm using Satis to create the repository for my private packages.
I can do this manually by logging into my account via SSH and running:
which updates everything fine apart from I have to enter my passphrase a million times. I can get round this by using SSH Agent
and think this may be my problem...
Is there anything I'm missing?
UPDATE
It is the SSH auth as I've received this error via email (shortened version)
Reading composer.json of vendor/package (master)
Failed to update git@bitbucket.org:vendor/package.git, package information from this repository may be outdated (Permission denied (publickey). fatal: The remote end hung up unexpectedly error: Could not fetch origin )
In the docs it says about using -n
to use the SSH Key but I am using it.
Any ideas?
UPDATE
Thought I would add my satis file structure:
really stuck on this one, the documentation is crap!
php - Satis 构建引发错误 - 缓存目录不为空
我目前正在尝试设置 satis 以使用 composer 管理我们的内部包。
我已经创建了我的 config.json 文件
当我尝试构建它时
我收到以下错误:
我已删除该缓存文件夹并尝试再次构建,但得到相同的错误。在我的 web 目录中也没有创建任何内容。
关于如何解决这个问题以便成功构建的任何想法?
php - 如何清除满足“缓存”,以便我可以从头开始重建?
我正在使用 satis 来管理几个托管的 Mercurial 存储库。其中一个存储库有一个书签“稳定”,可以满足扫描并在 packages.json 中创建一个条目。我剥离了分支,删除了远程仓库并重新推送。现在,当我运行satis build ...
它时,它仍然会创建一个 stable 条目,它指向一个不再存在的变更集。如何进行满意的重新扫描或从头开始构建?
php - 为什么 satis 将 -dev 添加到每个版本,我该如何配置此行为?
我在 Mercurial 存储库中尝试了几种不同的标记版本的方法,包括分支名称、书签和标签,以及-dev
对书签和分支的满意附加。我可以配置 satis 以将默认分支视为稳定而不是 dev 吗?我必须为每个稳定版本制作明确的标签吗?
ssh - Satis - ssh2.sftp 协议出错
我正在尝试使用 satis 托管私有作曲家存储库(http://getcomposer.org/doc/articles/handling-private-packages-with-satis.md)
它通过http协议工作正常。
我想按照安全部分(http://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#security)中所述使用 ssh 连接来保护它
但是使用 ssh2.sftp:// 协议连接时出错。
我已经生成了密钥对
我将 pub 密钥添加到了 satis 服务器上的 authorized_keys 文件中。
我可以在不输入密码的情况下通过 ssh 连接到 satis 服务器,因此密钥可以正常工作。
我错过了什么或做错了什么?
更新 我还安装了 ssh2 模块扩展。它出现在命令 php -m | 的输出中。grep ssh2
git - 引导项目:私有 git repos、Composer 和 Satis
编辑:我试图在这里实现的目标可以通过Yeoman项目来完成。
于是我在私服上设置了git+composer+satis,一切正常,我真的很热心。必须爱他们所有人。
我将 git 用于项目和私有包,所以现在基本的工作流程如下所示:
这将克隆项目 repo,并安装所需的依赖项。极好的。
但我也希望能够使用一些'skeleton-repos'并将它们的内容复制到我的项目中,保留依赖信息。
举个例子:
- 我创建了一个名为:test-project 的 git repo,然后在本地克隆它。
- 我有另一个 git repo,称为 fb-bootstrap,它是 facebook 应用程序的骨架。
- 我还有另一个引导框架 git repo,我也想包含它:例如,这将是一个 api/ 文件夹。我们称之为:api-bootstrap
- 所以我也想克隆它们,但我当然不能这样做,因为我已经在同一个目录中有一个 git repo。
- 一个可能的解决方案:我使用以下代码,所以我只获取文件:'git archive --format=tar --remote=git@myserver:the-bootstrap-repos HEAD | 焦油 xf -'
这很好,但它有一个问题:我有不同的依赖项 - 不同的 composer.json 文件。- 对于 fb-bootstrap 和 api-bootstrap 存储库,所以我需要找到一种方法来安装它们。
请注意,我不为此使用作曲家,因为除了自动加载的 php 类之外,我不能将任何内容放入 vendor/ 文件夹中,因为访问权限仅限于该文件夹。
解除该限制也不能解决问题,因为如果我稍后添加依赖项并调用composer update
,我可能会丢失在引导文件夹中所做的更改。
由于上述原因,上面的子模块和唯一副本文件的破解并没有完全消除它。
概括:
我需要一个解决方案,我可以在其中包含尽可能多的引导存储库,并且在我完成它之后,我必须能够安装所有依赖项。
像这样:
- git init 一个项目仓库,
- git 在本地克隆项目仓库,
- 获取我需要的几个引导存储库的内容,
- 安装我为项目声明的依赖项,以及所有引导存储库的依赖项。
有没有办法做到这一点?
另外:如果您认为我以完全错误的方式处理此问题,请随时告诉我。无论如何,我正在适应新技术,我并不害怕变化。:)
任何评论表示赞赏。