Get This Stuff Moving

In order to deploy through mco and not get timeouts, the deploy itself can’t be through svn, as the switch is too long.

So the projects could either be made into Debian archives? Or they could be moved to Git.

Moving to Git involves getting rid of SVN externals, because they’re a huge pain and can’t be used when some projects are in Git an some in SVN.

Composer, then. That’ll allow dependencies to be in SVN or Git, and dependents to refer to the relevant one.

Here is the composer.json for the dependent. This points to a Git repo and an SVN repo, and imports both archives into Vendor.

{
    "name": "linuxplicable/epistle-retriever",
    "description": "Webapp which gets notes synced to Dropbox by Epistle and performs actions on them",
    "license": "GPL",
    "authors": [
        {
            "name": "Richard Jones",
            "email": "bmcgavin@gmail.com"
        }
    ],
    "minimum-stability": "alpha",
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "linuxplicable/components",
                "version": "0.1.0",
                "source": {
                    "url": "file:///home/rich/Code/php/linuxplicable/components",
                    "type": "git",
                    "reference": "master"
                }
            }
        },
        {
            "type": "package",
            "package": {
                "name": "linuxplicable/svn-components",
                "version": "0.1.0",
                "source": {
                    "url": "file:///var/www/svn/components",
                    "type": "svn",
                    "reference": "trunk"
                }
            }
        }
    ],
    "require": {
        "benthedesigner/dropbox":"dev-master",
        "monolog/monolog":"dev-master",
        "linuxplicable/components":"*",
        "linuxplicable/svn-components":"*"
    }
}

And here’s the one for the dependencies:

{
    "name":"linuxplicable/components"
}

Not sure if the name matters really (as that’s the same for the SVN and the Git one), but it needs to be something. Should vendor be in the repo, or should composer update be run on postdeploy? If it’s in there then that’ll keep the speed up, but there’ll be some conflicts with the repo paths - Composer runs svn checkout / git clone, rather than export. If it’s not in there then it’ll be slower, and then maybe mco will timeout?

Only one way to find out, and that’s to install the mco-vagrant sandbox and try it out.

Then it needs to be puppeted and put in mco. Postdeploy scripts need to be written in order to pull in composer updates



Published

28 March 2013