Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composer dependencies issues #41

Open
johanvanhelden opened this issue Sep 4, 2018 · 6 comments
Open

Composer dependencies issues #41

johanvanhelden opened this issue Sep 4, 2018 · 6 comments

Comments

@johanvanhelden
Copy link

johanvanhelden commented Sep 4, 2018

I spoke to @mpociot after his talk at LaraconEU and told him that I had some issues with the composer dependencies. After manually messing with them, I did get the driver to work perfectly. But not a very clean out-of-the-box experience, but perfect if you like dependency puzzles :-)

What I ended up with is this working combination:

        "botman/botman": "^2.4",
        "botman/driver-slack": "^2.1.3",
        "evenement/evenement": "~3.0",
        "mpociot/phpws": "^2.0",
        "react/event-loop": "^0.4.3",
        "react/stream": "^0.7.5",

Maybe you could look into updated everything, so manually downgrading would not be needed anymore.

@sajunafernando
Copy link

Having the exact same issue

@mpociot
Copy link
Member

mpociot commented Oct 4, 2018

Looking into this, can you tell me how to reproduce this?

I don't have a problem when doing:

botman new chatbot
cd chatbot
composer require botman/driver-slack

@johanvanhelden
Copy link
Author

johanvanhelden commented Oct 4, 2018

Sure thing @mpociot !

laravel new botman-test
cd botman-test
composer require botman/botman
composer require botman/driver-slack

screenshot from 2018-10-04 20-19-27

The require section of the composer.json before the slack driver looks like this:

    "require": {
        "php": "^7.1.3",
        "botman/botman": "^2.4",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.7.*",
        "laravel/tinker": "^1.0"
    },

And applying my "duct tape" solution from the main post like so:

    "require": {
        "php": "^7.1.3",
        "botman/botman": "^2.4",
        "botman/driver-slack": "^2.1.3",
        "evenement/evenement": "~3.0",
        "mpociot/phpws": "^2.0",
        "react/event-loop": "^0.4.3",
        "react/stream": "^0.7.5",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.7.*",
        "laravel/tinker": "^1.0"
    },

At least makes everything install properly, but it's horribly outdated.

@danielfaulknor
Copy link

I'm also having this issue. The above "fixes" don't work.

composer global require "botman/installer"

Using version ^1.0 for botman/installer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 10 installs, 0 updates, 0 removals
  - Installing symfony/process (v4.1.7): Loading from cache
  - Installing symfony/polyfill-ctype (v1.10.0): Loading from cache
  - Installing symfony/filesystem (v4.1.7): Downloading (100%)
  - Installing symfony/polyfill-mbstring (v1.10.0): Loading from cache
  - Installing symfony/console (v4.1.7): Loading from cache
  - Installing guzzlehttp/promises (v1.3.1): Loading from cache
  - Installing psr/http-message (1.0.1): Loading from cache
  - Installing guzzlehttp/psr7 (1.4.2): Loading from cache
  - Installing guzzlehttp/guzzle (6.3.3): Loading from cache
  - Installing botman/installer (1.0.4): Downloading (100%)
symfony/console suggests installing psr/log-implementation (For using the console logger)
symfony/console suggests installing symfony/event-dispatcher
symfony/console suggests installing symfony/lock
guzzlehttp/guzzle suggests installing psr/log (Required for using the Log middleware)
Writing lock file
Generating autoload files

botman new slackbot

uilding your next great chatbot...
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 95 installs, 0 updates, 0 removals
  - Installing thecodingmachine/discovery (v1.2.1): Loading from cache
  - Installing symfony/polyfill-php72 (v1.9.0): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.9.0): Loading from cache
  - Installing symfony/var-dumper (v4.1.4): Loading from cache
  - Installing tightenco/collect (v5.7.2): Loading from cache
  - Installing symfony/http-foundation (v4.1.4): Loading from cache
  - Installing spatie/macroable (1.0.0): Loading from cache
  - Installing react/event-loop (v1.0.0): Loading from cache
  - Installing evenement/evenement (v3.0.1): Loading from cache
  - Installing react/stream (v1.0.0): Loading from cache
  - Installing react/promise (v2.7.0): Loading from cache
  - Installing react/promise-timer (v1.5.0): Loading from cache
  - Installing react/cache (v0.5.0): Loading from cache
  - Installing react/dns (v0.4.15): Loading from cache
  - Installing react/socket (v0.8.12): Loading from cache
  - Installing psr/container (1.0.0): Loading from cache
  - Installing opis/closure (3.0.12): Loading from cache
  - Installing mpociot/pipeline (1.0.2): Loading from cache
  - Installing botman/botman (2.4.1): Loading from cache
  - Installing botman/driver-web (1.5.1): Loading from cache
  - Installing vlucas/phpdotenv (v2.5.1): Loading from cache
  - Installing symfony/css-selector (v4.1.4): Loading from cache
  - Installing tijsverkoyen/css-to-inline-styles (2.2.1): Loading from cache
  - Installing symfony/routing (v4.1.4): Loading from cache
  - Installing symfony/process (v4.1.4): Loading from cache
  - Installing symfony/polyfill-ctype (v1.9.0): Loading from cache
  - Installing symfony/event-dispatcher (v4.1.4): Loading from cache
  - Installing psr/log (1.0.2): Loading from cache
  - Installing symfony/debug (v4.1.4): Loading from cache
  - Installing symfony/http-kernel (v4.1.4): Loading from cache
  - Installing symfony/finder (v4.1.4): Loading from cache
  - Installing symfony/console (v4.1.4): Loading from cache
  - Installing doctrine/lexer (v1.0.1): Loading from cache
  - Installing egulias/email-validator (2.1.5): Loading from cache
  - Installing swiftmailer/swiftmailer (v6.1.3): Loading from cache
  - Installing paragonie/random_compat (v9.99.99): Loading from cache
  - Installing ramsey/uuid (3.8.0): Loading from cache
  - Installing psr/simple-cache (1.0.1): Loading from cache
  - Installing symfony/translation (v4.1.4): Loading from cache
  - Installing nesbot/carbon (1.33.0): Loading from cache
  - Installing monolog/monolog (1.23.0): Loading from cache
  - Installing league/flysystem (1.0.46): Loading from cache
  - Installing erusev/parsedown (1.7.1): Loading from cache
  - Installing dragonmantank/cron-expression (v2.2.0): Loading from cache
  - Installing doctrine/inflector (v1.3.0): Loading from cache
  - Installing laravel/framework (v5.7.3): Loading from cache
  - Installing psr/http-message (1.0.1): Loading from cache
  - Installing guzzlehttp/psr7 (1.4.2): Loading from cache
  - Installing guzzlehttp/promises (v1.3.1): Loading from cache
  - Installing guzzlehttp/guzzle (6.3.3): Loading from cache
  - Installing botman/studio-addons (1.3.0): Loading from cache
  - Installing clue/utf8-react (v1.1.0): Loading from cache
  - Installing clue/term-react (v1.2.0): Loading from cache
  - Installing clue/stdio-react (v2.2.0): Loading from cache
  - Installing botman/tinker (1.0.3): Loading from cache
  - Installing fideloper/proxy (4.0.0): Loading from cache
  - Installing jakub-onderka/php-console-color (0.1): Loading from cache
  - Installing nikic/php-parser (v4.0.3): Loading from cache
  - Installing jakub-onderka/php-console-highlighter (v0.3.2): Loading from cache
  - Installing dnoegel/php-xdg-base-dir (0.1): Loading from cache
  - Installing psy/psysh (v0.9.8): Loading from cache
  - Installing laravel/tinker (v1.0.7): Loading from cache
  - Installing beyondcode/laravel-dump-server (1.2.1): Loading from cache
  - Installing fzaninotto/faker (v1.8.0): Loading from cache
  - Installing hamcrest/hamcrest-php (v2.0.0): Loading from cache
  - Installing mockery/mockery (1.1.0): Loading from cache
  - Installing filp/whoops (2.2.1): Loading from cache
  - Installing nunomaduro/collision (v2.0.3): Loading from cache
  - Installing webmozart/assert (1.3.0): Loading from cache
  - Installing phpdocumentor/reflection-common (1.0.1): Loading from cache
  - Installing phpdocumentor/type-resolver (0.4.0): Loading from cache
  - Installing phpdocumentor/reflection-docblock (4.3.0): Loading from cache
  - Installing phpunit/php-token-stream (3.0.0): Loading from cache
  - Installing sebastian/version (2.0.1): Loading from cache
  - Installing sebastian/resource-operations (1.0.0): Loading from cache
  - Installing sebastian/recursion-context (3.0.0): Loading from cache
  - Installing sebastian/object-reflector (1.1.1): Loading from cache
  - Installing sebastian/object-enumerator (3.0.3): Loading from cache
  - Installing sebastian/global-state (2.0.0): Loading from cache
  - Installing sebastian/exporter (3.1.0): Loading from cache
  - Installing sebastian/environment (3.1.0): Loading from cache
  - Installing sebastian/diff (3.0.1): Loading from cache
  - Installing sebastian/comparator (3.0.2): Loading from cache
  - Installing phpunit/php-timer (2.0.0): Loading from cache
  - Installing phpunit/php-text-template (1.2.1): Loading from cache
  - Installing phpunit/php-file-iterator (2.0.1): Loading from cache
  - Installing theseer/tokenizer (1.1.0): Loading from cache
  - Installing sebastian/code-unit-reverse-lookup (1.0.1): Loading from cache
  - Installing phpunit/php-code-coverage (6.0.7): Loading from cache
  - Installing doctrine/instantiator (1.1.0): Loading from cache
  - Installing phpspec/prophecy (1.8.0): Loading from cache
  - Installing phar-io/version (2.0.1): Loading from cache
  - Installing phar-io/manifest (1.0.3): Loading from cache
  - Installing myclabs/deep-copy (1.8.1): Loading from cache
  - Installing phpunit/phpunit (7.3.5): Loading from cache
react/event-loop suggests installing ext-event (~1.0 for ExtEventLoop)
botman/botman suggests installing doctrine/cache (Use any Doctrine cache driver for cache)
botman/botman suggests installing symfony/cache (Use any Symfony cache driver for cache)
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/dependency-injection (For loading routes from a service)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/routing suggests installing symfony/yaml (For using the YAML loader)
symfony/event-dispatcher suggests installing symfony/dependency-injection
symfony/http-kernel suggests installing symfony/browser-kit
symfony/http-kernel suggests installing symfony/config
symfony/http-kernel suggests installing symfony/dependency-injection
symfony/console suggests installing symfony/lock
swiftmailer/swiftmailer suggests installing true/punycode (Needed to support internationalized email addresses, if ext-intl is not installed)
paragonie/random_compat suggests installing ext-libsodium (Provides a modern crypto API that can be used to generate random bytes.)
ramsey/uuid suggests installing ext-libsodium (Provides the PECL libsodium extension for use with the SodiumRandomGenerator)
ramsey/uuid suggests installing ext-uuid (Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator)
ramsey/uuid suggests installing ircmaxell/random-lib (Provides RandomLib for use with the RandomLibAdapter)
ramsey/uuid suggests installing moontoast/math (Provides support for converting UUID to 128-bit integer (in string form).)
ramsey/uuid suggests installing ramsey/uuid-console (A console application for generating UUIDs with ramsey/uuid)
ramsey/uuid suggests installing ramsey/uuid-doctrine (Allows the use of Ramsey\Uuid\Uuid as Doctrine field type.)
symfony/translation suggests installing symfony/config
symfony/translation suggests installing symfony/yaml
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
league/flysystem suggests installing league/flysystem-aws-s3-v2 (Allows you to use S3 storage with AWS SDK v2)
league/flysystem suggests installing league/flysystem-aws-s3-v3 (Allows you to use S3 storage with AWS SDK v3)
league/flysystem suggests installing league/flysystem-azure (Allows you to use Windows Azure Blob storage)
league/flysystem suggests installing league/flysystem-cached-adapter (Flysystem adapter decorator for metadata caching)
league/flysystem suggests installing league/flysystem-eventable-filesystem (Allows you to use EventableFilesystem)
league/flysystem suggests installing league/flysystem-rackspace (Allows you to use Rackspace Cloud Files)
league/flysystem suggests installing league/flysystem-sftp (Allows you to use SFTP server storage via phpseclib)
league/flysystem suggests installing league/flysystem-webdav (Allows you to use WebDAV storage)
league/flysystem suggests installing league/flysystem-ziparchive (Allows you to use ZipArchive adapter)
league/flysystem suggests installing spatie/flysystem-dropbox (Allows you to use Dropbox storage)
league/flysystem suggests installing srmklive/flysystem-dropbox-v2 (Allows you to use Dropbox storage for PHP 5 applications)
laravel/framework suggests installing aws/aws-sdk-php (Required to use the SQS queue driver and SES mail driver (^3.0).)
laravel/framework suggests installing doctrine/dbal (Required to rename columns and drop SQLite columns (^2.6).)
laravel/framework suggests installing league/flysystem-aws-s3-v3 (Required to use the Flysystem S3 driver (^1.0).)
laravel/framework suggests installing league/flysystem-cached-adapter (Required to use the Flysystem cache (^1.0).)
laravel/framework suggests installing league/flysystem-rackspace (Required to use the Flysystem Rackspace driver (^1.0).)
laravel/framework suggests installing league/flysystem-sftp (Required to use the Flysystem SFTP driver (^1.0).)
laravel/framework suggests installing moontoast/math (Required to use ordered UUIDs (^1.1).)
laravel/framework suggests installing nexmo/client (Required to use the Nexmo transport (^1.0).)
laravel/framework suggests installing pda/pheanstalk (Required to use the beanstalk queue driver (^3.0).)
laravel/framework suggests installing predis/predis (Required to use the redis cache and queue drivers (^1.0).)
laravel/framework suggests installing pusher/pusher-php-server (Required to use the Pusher broadcast driver (^3.0).)
laravel/framework suggests installing symfony/dom-crawler (Required to use most of the crawler integration testing tools (^4.1).)
laravel/framework suggests installing symfony/psr-http-message-bridge (Required to psr7 bridging features (^1.0).)
psy/psysh suggests installing ext-pdo-sqlite (The doc command requires SQLite to work.)
psy/psysh suggests installing hoa/console (A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit.)
filp/whoops suggests installing whoops/soap (Formats errors as SOAP responses)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/php-code-coverage suggests installing ext-xdebug (^2.6.0)
phpunit/phpunit suggests installing ext-xdebug (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^2.0)
Generating optimized autoload files
> php -r "file_exists('.env') || copy('.env.example', '.env');"
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: botman/botman
Discovered Package: botman/driver-web
Discovered Package: botman/studio-addons
Discovered Package: botman/tinker
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
> Illuminate\Foundation\ComposerScripts::postInstall
> BotMan\Studio\Providers\DriverServiceProvider::publishDriverConfigurations
> php artisan key:generate
Application key [base64:sssssssssssssssssssssssssssssssssssssssssss] set successfully.
BotMan Studio ready! Build an amazing chatbot!
cd slackbot
forge@intweb02:~/slackbot$ php artisan botman:install-driver slack
Installing driver "Slack"
Using version ^2.1 for botman/driver-slack


./composer.json has been updated


Loading composer repositories with package information


Updating dependencies (including require-dev)


Your requirements could not be resolved to an installable set of packages.



  Problem 1
    - Conclusion: don't install botman/driver-slack 2.1.3
    - Conclusion: don't install botman/driver-slack 2.1.2
    - Conclusion: don't install botman/driver-slack 2.1.1
    - Conclusion: don't install mpociot/slack-client 1.0
    - Conclusion: don't install react/stream v1.0.0|install mpociot/slack-client 1.0
    - Conclusion: don't install botman/driver-slack 2.1.3|remove react/stream v1.0.0|install mpociot/slack-client 1.0
    - Conclusion: don't install botman/driver-slack 2.1.3|don't install react/stream v1.0.0|install mpociot/slack-client 1.0
    - Conclusion: don't install botman/driver-slack 2.1.2|remove react/stream v1.0.0|install mpociot/slack-client 1.0
    - Conclusion: don't install botman/driver-slack 2.1.2|don't install react/stream v1.0.0|install mpociot/slack-client 1.0
    - Conclusion: don't install botman/driver-slack 2.1.1|remove react/stream v1.0.0|install mpociot/slack-client 1.0
    - Conclusion: don't install botman/driver-slack 2.1.1|don't install react/stream v1.0.0|install mpociot/slack-client 1.0
    - Installation request for botman/driver-slack ^2.1 -> satisfiable by botman/driver-slack[2.1.0, 2.1.1, 2.1.2, 2.1.3].
    - Conclusion: remove react/stream v1.0.0|install mpociot/slack-client 1.0
    - botman/driver-slack 2.1.0 requires mpociot/slack-client ~1.0 -> satisfiable by mpociot/slack-client[1.0, 1.1, 1.2.0].
    - mpociot/slack-client 1.1 requires mpociot/phpws ^2.0 -> satisfiable by mpociot/phpws[2.0, 2.0.1].
    - mpociot/slack-client 1.2.0 requires mpociot/phpws ^2.0 -> satisfiable by mpociot/phpws[2.0, 2.0.1].
    - mpociot/phpws 2.0 requires react/stream ^0.7.5 -> satisfiable by react/stream[v0.7.5, v0.7.6, v0.7.7].
    - mpociot/phpws 2.0.1 requires react/stream ^0.7.5 -> satisfiable by react/stream[v0.7.5, v0.7.6, v0.7.7].
    - Can only install one of: react/stream[v0.7.5, v1.0.0].
    - Can only install one of: react/stream[v0.7.6, v1.0.0].
    - Can only install one of: react/stream[v0.7.7, v1.0.0].
    - Installation request for react/stream (locked at v1.0.0) -> satisfiable by react/stream[v1.0.0].




Installation failed, reverting ./composer.json to its original content.


Error installing driver "Slack"

@jonathan-dejong
Copy link

jonathan-dejong commented Nov 28, 2018

I'm seeing the exact same thing as @danielfaulknor :/
Just did a completely clean, first time install of botman studio etc.

Related thread: botman/botman#909

@jonathan-dejong
Copy link

This looks like it's working for me as a required list for composer.json

"php": "^7.1.3",
"botman/botman": "^2.0",
"botman/driver-slack": "^2.1",
"botman/driver-web": "~1.0",
"botman/studio-addons": "~1.3",
"evenement/evenement": "~3.0",
"fideloper/proxy": "^4.0",
"laravel/framework": "5.7.*",
"laravel/tinker": "^1.0",
"mpociot/phpws": "^2.0",
"react/event-loop": "^0.4.3",
"react/stream": "^0.7.5"

I can at least run the laravel server without errors.. havent gotten as far as actually setting up the driver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants