Composer在单独的回购中提取最新提交

时间:2014-12-12 20:29:49

标签: git composer-php

我正在为我的Wordpress主题(基于roots构建)和我的主题插件使用单独的在线存储库。 我的每个插件都使用单独的在线存储库。根主题附带composer.json以便于部署。

我的插件位于主题的单独目录及其对应的composer.json

/web/app/plugins/respective_plugin

在我的插件上提交提交时,我不使用--tags。我想配置Composer,将这些单独存储库中的最新dev提交(以及最新master的选项)下载到各自的目录中,而不管--tags是什么。

我发现onetwo个帖子可能指向我正确的方向,但我无法弄清楚如何正确设置它们。

修改

有人能举例说明composer.json将多个在线回购中的最新开发提交拉到单独的目录中吗?我已经阅读了文档,但它不是新手友好的。为了方便起见,我抛弃了我的整个composer.json

{
  "name": "roots/bedrock",
  "type": "project",
  "license": "MIT",
  "description": "A modern WordPress stack",
  "homepage": "http://roots.io/wordpress-stack/",
  "authors": [
    {
      "name": "Scott Walkinshaw",
      "email": "scott.walkinshaw@gmail.com",
      "homepage": "https://github.com/swalkinshaw"
    },
    {
      "name": "Ben Word",
      "email": "ben@benword.com",
      "homepage": "https://github.com/retlehs"
    }
  ],
  "keywords": [
    "wordpress", "stack", "capistrano", "composer", "vagrant", "wp"
  ],
  "support": {
    "issues": "https://github.com/roots/bedrock/issues",
    "forum": "http://discourse.roots.io/category/bedrock"
  },
  "config": {
    "preferred-install": "dist",
    "generate-salts": true
  },
  "autoload": {
    "psr-0": {"Roots\\Bedrock\\Installer": "scripts"}
  },
  "scripts": {
    "post-root-package-install": ["Roots\\Bedrock\\Installer::addSalts"]
  },
  "repositories": [
    {
      "type": "composer",
      "url": "http://wpackagist.org"
    },
    {
      "type": "package",
      "package": {
        "name": "wordpress/wordpress",
        "version": "4.0.1",
        "type": "webroot",
        "dist": {
          "type": "zip",
          "url": "https://wordpress.org/wordpress-4.0.1.zip"
        },
        "require" : {
          "fancyguy/webroot-installer": "1.1.0"
        }
      }
    }
  ],
  "require": {
    "php": ">=5.3.2",
    "wordpress/wordpress": "4.0.1",
    "fancyguy/webroot-installer": "1.1.0",
    "composer/installers": "v1.0.12",
    "vlucas/phpdotenv": "~1.0.6",
  },
  "extra": {
    "installer-paths": {
      "web/app/mu-plugins/{$name}/": ["type:wordpress-muplugin"],
      "web/app/plugins/{$name}/": ["type:wordpress-plugin"],
      "web/app/themes/{$name}/": ["type:wordpress-theme"]
    },
    "webroot-dir": "web/wp",
    "webroot-package": "wordpress/wordpress"
  }
}

1 个答案:

答案 0 :(得分:2)

每次运行composer update时,Composer都会这样做。它将查看包含的最新提交,如下所示:"require": { "your/templatepackage":"dev-development"}(请注意,分支名称为“development”,并且“dev-”前缀由Composer放置在那里。)< / p>

Composer不会自动更新,因为这与其目的相矛盾:安装RELIABLE版本,在某些时候被认为有效。如果您不喜欢更新所有内容,则可以将程序包限制为更新,如下所示:composer update your/templatepackage。这只会安装此软件包的最新提交 - 如果您的其他版本依赖项允许它。如果最新提交依赖于比此软件包的已安装版本更新的另一个软件包的版本,并且被认为不兼容,则可能不会安装最新提交。最新提交取决于~1.2,但安装的版本为1.1.25,这与最低要求1.2.0不兼容。