symfony-cmf / menu-bundle

Extends the KnpMenuBundle to work with PHPCR ODM
https://cmf.symfony.com
32 stars 48 forks source link

composer issue #86

Closed gondo closed 11 years ago

gondo commented 11 years ago
"require": {
    "symfony-cmf/menu-bundle": "1.0.*"
}

gives this error: The requested package symfony-cmf/menu-bundle could not be found in any version, there may be a typo in the package name.

dbu commented 11 years ago

do you have minimum-stability set to beta? (or alpha / dev). if not you can put it as 1.0.*@beta - there is no stable release yet

gondo commented 11 years ago

hi, minimum-stability is set to 'stable' and i dont want to change it just because of 1 package, its more important that the other ones are stable. by using 1.0.*@beta im getting another error:

    - Installation request for symfony-cmf/menu-bundle 1.0.*@beta -> satisfiable by symfony-cmf/menu-bundle[1.0.0-beta1].
    - symfony-cmf/menu-bundle 1.0.0-beta1 requires doctrine/phpcr-bundle 1.0.* -> no matching package found.
uwej711 commented 11 years ago

Hi,

since all those bundles are not stable, you need to add the following line to your composer.json replacing the bundle name as needed:

"doctrine/phpcr-bundle": "@dev"

which allows dev or beta (in that case @beta) stability for this bundle.

See also the post composer mentions when showing the error above.

Cheers Uwe

2013/7/10 gondo notifications@github.com

hi, minimum-stability is set to 'stable' and i dont want to change it just because of 1 package, its more important that the other ones are stable. by using 1.0.*@beta im getting another error:

- Installation request for symfony-cmf/menu-bundle 1.0.*@beta -> satisfiable by symfony-cmf/menu-bundle[1.0.0-beta1].
- symfony-cmf/menu-bundle 1.0.0-beta1 requires doctrine/phpcr-bundle 1.0.* -> no matching package found.

— Reply to this email directly or view it on GitHubhttps://github.com/symfony-cmf/MenuBundle/issues/86#issuecomment-20724875 .

dbu commented 11 years ago

we hope to have a stable release by the end of july and then things should get easier. but for now indead either you change the default stability or manually adjust stability for each component you are using.

gondo commented 11 years ago

if i can ask, why did you close this issue? its not sorted. i understand that its not stable but changing "minimum-stability": "beta" or adding "doctrine/phpcr-bundle": "@dev" dose not solve the problem. the problem with versions is much deeper. now im getting:

Problem 1
    - doctrine/phpcr-odm 1.0.0-beta1 requires doctrine/common >=2.4,<2.5 -> no matching package found.
    - symfony-cmf/menu-bundle 1.0.0-beta1 requires doctrine/phpcr-odm 1.0.* -> satisfiable by doctrine/phpcr-odm[1.0.0-beta1].
    - Installation request for symfony-cmf/menu-bundle 1.0.*@beta -> satisfiable by symfony-cmf/menu-bundle[1.0.0-beta1].

i've specifically included "doctrine/common": "2.4.*@RC", into composer.json and i can confirm that its installed by running composer show -i but im still getting the error above. i assume that its because doctrine/common 2.4.0-RC is < than 2.4 but 2.4.0-RC IS the latest version!

so basically the doctrine/phpcr-odm 1.0.0-beta1 requires doctrine/common >=2.4,<2.5 can not be fulfilled as such version of doctrine/common simply doesnt exist yet!

am i missing something? how is actually anyone using this?

dbu commented 11 years ago

hm, now i am really confused. https://packagist.org/packages/doctrine/common says there is no 2.4.0 @beberlei, is there no stable doctrine commons 2.4.0 yet?

beberlei commented 11 years ago

@dbu no

dbu commented 11 years ago

thanks for the clarification beberlei.

@gondo i just tried to install phpcr-odm from scratch, and that works. so at least when having minimum-stability: dev the commons RC is found. could this be a composer bug then? are you using the latest version of composer?

beberlei commented 11 years ago

@dbu its no bug, he is not using minimum-stability: dev, as suggested by the composer peoples this should not be done.

dbu commented 11 years ago

i saw that, but he said he added the dependency on doctrine commons with @RC and that should make composer see commons and install it, not say there is no such version.

uwej711 commented 11 years ago

Adding "doctrine/common": "@dev" to composer.json helps too.

2013/7/10 David Buchmann notifications@github.com

thanks for the clarification beberlei.

@gondo https://github.com/gondo i just tried to install phpcr-odm from scratch, and that works. so at least when having minimum-stability: dev the commons RC is found. could this be a composer bug then? are you using the latest version of composer?

— Reply to this email directly or view it on GitHubhttps://github.com/symfony-cmf/MenuBundle/issues/86#issuecomment-20730454 .

gondo commented 11 years ago

i ll try manually add every package what shows in error message to my composer.json with additional @dev flag. i've tried to change the global minimum-stability to dev, that seems to work, but that also upgraded other symfony bundles to dev version and this is not desirable. i want to use this in production at the end, so i want to keep number of @dev bundles to minimum. i will post the update once i try this

btw i've also tried to use KnpLabs/KnpMenuBundle but the latest version installed kpnmenu without Matcher\Voter\VoterInterface ?!?

right now im just very confused about the whole kpnmenu integration with symfony2 as there doesnt seems to be proper, documented and working way of using this together. any tutorial (step by step guid) to make this work with symfony 2.3. would be very helpful.

gondo commented 11 years ago

@dbu: i was using Composer version d498e73363f8dae5b9984bf84ff2a2ca27240925 from 13.6.13. so i've updated it to latest 6a1262e675b5c1c2c7b1cc58a14028f67885b880 without a change in progress.

gondo commented 11 years ago

ok this is getting ridiculous. currently i have to add this into composer.json:

        "symfony-cmf/menu-bundle": "1.0.*@beta",
        "doctrine/phpcr-bundle": "1.0.*@beta",
        "phpcr/phpcr": "2.1.*@beta",
        "phpcr/phpcr-utils": "1.0.*@beta",
        "phpcr/phpcr-implementation": "2.1.*@beta",
        "doctrine/phpcr-odm": "1.0.*@beta",
        "doctrine/common": "2.4.*@dev",
        "symfony-cmf/core-bundle": "1.0.*@beta"

while keeping my "minimum-stability": "stable", but im stucked on this error:

Problem 1
    - midgard/phpcr 1.4 requires ext-midgard2 >=10.05.6 -> the requested PHP extension midgard2 is missing from your system.
    - midgard/phpcr 1.3 requires ext-midgard2 >=10.05.5 -> the requested PHP extension midgard2 is missing from your system.
    - Installation request for phpcr/phpcr-implementation 2.1.*@beta -> satisfiable by midgard/phpcr[1.3, 1.4].

the strange thing is, that there is no phpcr/phpcr-implementation on girhub, and even more strange thing is, that if i change my "minimum-stability": to "dev", i dont get this error. so there sees to be something else than this php extension used on dev branch, i just dont know what it is and how to find it out.

dbu commented 11 years ago

you need a phpcr implementation. this is a composer provides clause. not sure if you can search for provides on packagist. currently there are 3 implementations of phpcr: jackalope-jackrabbit, jackalope-doctrine-dbal and midgard. aparently midgard has released a stable version, but it needs the midgard server and a php extension to be installed. if you want a jackalope, you need to list jackalope/jackalope and jackalope/jackalope-jackrabbit resp jackalope/jackalope-doctrine-dbal with the @beta notation as well. it will get a lot less painful once we tagged stable versions. but we can't do that before things /are/ stable unfortunately.

gondo commented 11 years ago

thanks. this seems to be the final "magic" combination of requirements to make this bundle work via composer:

        "symfony-cmf/menu-bundle": "1.0.*@beta",
        "doctrine/phpcr-bundle": "1.0.*@beta",
        "phpcr/phpcr": "2.1.*@beta",
        "phpcr/phpcr-utils": "1.0.*@beta",
        "phpcr/phpcr-implementation": "2.1.*@beta",
        "doctrine/phpcr-odm": "1.0.*@beta",
        "doctrine/common": "2.4.*@dev",
        "symfony-cmf/core-bundle": "1.0.*@beta",
        "jackalope/jackalope-doctrine-dbal": "1.0.*@beta"

maybe it should be added to the homepage documentation? i understand that you are waiting for making this stable, honestly with so many beta dependencies i can't see this happening anytime soon.

also this is quite massive compare to knplabs/knp-menu-bundle what requires only 2 packages:

        "knplabs/knp-menu-bundle": "2.0.*@dev",
        "knplabs/knp-menu": "2.0.*@dev"

probably not the right place to ask, but can you tell me (or point me somewhere) whats the difference between symfony-cmf/MenuBundle and knplabs/knp-menu-bundle ?

dbu commented 11 years ago

glad it worked out for you.

the reason for the amount of beta is that they build on each other and we don't want to declare something stable to early and then not keep our promises when we need to refactor things while changing something in another component.

@lsmith77 is doing another round of beta releases today for the phpcr stack. i hope that the next round will be RC - there is not much missing anymore.

about the cmf menu: this bundle builds on knp menu and brings it into the cmf, see http://symfony.com/doc/master/cmf/getting_started/menu.html for more

gondo commented 11 years ago

@dbu thanks for that link, i've seen that but it does not explain the difference between those two. why do you feel the need to extend knplabs/knp-menu-bundle ? this is not explained anywhere on the internet

dbu commented 11 years ago

yeah the doc needs some work too, no doubt. to get the details, have a look at the code of the CmfMenuBundle, but in general the bundle is about loading menu information from a database and making it editable in sonata admin. and linking it with content like CmfContentBundle provides. knp menu just allows to programmatically define a menu tree.

gondo commented 11 years ago

hm that's not entirely true as SonataAdminBundle uses "knplabs/knp-menu-bundle". i've checked the code briefly and there doesn't seems to be much difference, thats why im asking here, as you as an author most likely know the reasons to build this bundle. i can understand the need of this for CmfContentBundle but im not planning to use that as its overkill for a simple menu integration. would be helpful to mention the real purpose of this bundle somewhere, as for now, especially because of the link on the official symfony documentation, it looks like this bundle is the official and preferred way of integrating kpnmenu in symfony.

dbu commented 11 years ago

SonataAdminBundle uses knp menu to build its menu - programmatically. what we do is allow you to edit a menu that is stored in the database. the knp menu or knp menu bundle do not provide that feature.

if you have a proposition how to formulate the documentation better, we are glad for pull requests on the symfony-cmf-docs repository.