I am attempting to convert my ImageBundle PR to an extension or plugin for Sculpin. However, I am encountering dependency hell when it comes to testing it in a real-world scenario.
Before I delve into the description of what led me to where I am, here's what the current error message from sculpin install or sculpin update looks like:
$ sculpin install
Loading composer repositories with package information
Reading composer.json of sculpin/image-plugin (master)
Installing dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for sculpin/sculpin dev-master -> satisfiable by sculpin/sculpin[dev-master].
- Conclusion: remove michelf/php-markdown 1.5.0
- sculpin/sculpin dev-master requires michelf/php-markdown 1.4.* -> satisfiable by michelf/php-markdown[1.4.0, 1.4.1].
- Can only install one of: michelf/php-markdown[1.5.0, 1.4.0].
- Can only install one of: michelf/php-markdown[1.5.0, 1.4.1].
- Installation request for michelf/php-markdown 1.5.0 -> satisfiable by michelf/php-markdown[1.5.0].
Missing Sculpin Bundles:
* Sculpin\ImagePlugin\SculpinImageBundle
So. Let's start by describing my attempted plugin. I created a folder called "sculpin-image-plugin" and dropped my code in there. I created a composer.json to go with it. After a bunch of experimenting with different possible solutions, here's the current state:
{
"name": "sculpin/image-plugin",
"description": "Sculpin Image Plugin",
"homepage": "https://sculpin.io",
"keywords": ["images", "thumbnails", "sculpin", "sculpin-plugin"],
"license": "MIT",
"authors": [
{
"name": "Dragonfly Development Inc.",
"email": "info@dflydev.com",
"homepage": "http://dflydev.com"
},
{
"name": "Beau Simensen",
"email": "beau@dflydev.com",
"homepage": "http://beausimensen.com"
}
],
"require": {
"imanee/imanee": "*"
},
"autoload": {
"psr-0": { "Sculpin\\ImagePlugin": "" }
},
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"target-dir": "Sculpin/ImagePlugin"
}
I've taken out the dev dependencies I had originally put in it, so the only new dependency is Imanee. Imanee's only dependencies are PHP >= 5.4.0 and ext-imagick. After throwing everything in git, I moved to the next step.
I went to one of my recent sculpin projects, and I created a sculpin.json to pull in this dependency from my local Git repository (for development purposes, to make sure I got all the dependencies worked out)
{
"name": "beryllium/beautifulphp",
"description": "they should have sent a poet",
"license": "MIT",
"authors": [
{
"name": "Kevin Boyd",
"email": "kevin.boyd@gmail.com",
"homepage": "http://whateverthing.com"
}
],
"require": {
"components/bootstrap": "~3.3.2",
"components/jquery": "~2.1.3",
"components/highlightjs": "~8.4.0",
"robloach/component-installer": "*",
"sculpin/image-plugin": "1.0.x-dev"
},
"config": {
"component-dir": "source/components"
},
"repositories": [
{
"type": "vcs",
"url": "file:///Users/kboyd/Projects/sculpin-image-plugin"
}
]
}
You can see that there are various "components" dependencies, followed by the component-installer itself. All of these are red herrings, however, because removing them results in the exact same error message.
I don't know if this is because I'm using a local repo or because of some quirk in the phar stuff or some dependency weirdness in the sculpin version I'm running. However, it's got me completely stalled. Help would be appreciated.
$ sculpin --version
Sculpin version 2.0.x-dev (v2.0.0-20-g710f564) - app/dev/debug