nirvana-msu / yii2-infinite-scroll

Yii2 extension for infinite-scroll jQuery plugin
MIT License
32 stars 19 forks source link

Extension does not work with version 3 of jquery-infinite-scroll. #14

Open dmitry-kulikov opened 7 years ago

dmitry-kulikov commented 7 years ago

Recently was released version 3 of https://github.com/metafizzy/infinite-scroll, but this extension is incompatible with it. For reference https://github.com/metafizzy/infinite-scroll/releases/tag/v3.0.0 https://infinite-scroll.com/extras.html#upgrading-from-v2 So now after installing through composer extension will not work. I suggest

As result there will be yii2-infinite-scroll version 1 for legacy projects and yii2-infinite-scroll version 2 for future.

dmitry-kulikov commented 7 years ago

For second part

update code of yii2-infinite-scroll to work with version 3 of infinite-scroll and release version 2 of yii2-infinite-scroll

I haven't time right now.

nirvana-msu commented 7 years ago

Thanks! Don't have any plans so far to update the extension for v3, but will be happy to review and merge pull request if anyone's up for it.

Going to keep the version as it is for now, might do a release at some point later on.

thyseus commented 7 years ago

Unfortunately i got problems with composer while updating:

The "extra.asset-installer-paths" option is deprecated, use the "config.fxp-asset.installer-paths" option
Loading composer repositoriYour requirements could not be resolved to an installable set of packages.                               
  Problem 1
    - nirvana-msu/yii2-infinite-scroll dev-master requires bower-asset/jquery-infinite-scroll 2.* -> no matching package found.
    - nirvana-msu/yii2-infinite-scroll dev-master requires bower-asset/jquery-infinite-scroll 2.* -> no matching package found.
    - Installation request for nirvana-msu/yii2-infinite-scroll dev-master -> satisfiable by nirvana-msu/yii2-infinite-scroll[dev-master].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

I must admit, my project is rather big and uses all this dependencies:

 "require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": "~2.0.11",
    "yiisoft/yii2-authclient": "*",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-imagine": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "yii2tech/ar-softdelete": "*",
    "dektrium/yii2-user": "dev-hb",
    "dektrium/yii2-rbac": "dev-master",
    "thyseus/yii2-audit": "dev-hb",
    "thyseus/yii2-message": "dev-master",
    "thyseus/yii2-sitecontent": "dev-master",
    "thyseus/yii2-files": "dev-master",
    "thyseus/yii2-favorites": "dev-master",
    "thyseus/yii2-banner": "dev-master",
    "thyseus/yii2-word-validator": "0.1.0",
    "kartik-v/yii2-grid": "*",
    "kartik-v/yii2-editable": "*",
    "kartik-v/yii2-datecontrol": "dev-master",
    "kartik-v/yii2-widget-select2": "^2.0",
    "kartik-v/yii2-widgets": "*",
    "kartik-v/yii2-export": "*",
    "cornernote/yii2-linkall": "^1.0",
    "nickcv/yii2-encrypter": "*",
    "nirvana-msu/yii2-infinite-scroll": "1.0.*@dev",
    "marqu3s/yii2-summernote": "^1.0",
    "karakum/yii2-grid": "^1.0",
    "yiidoc/yii2-timeago": "dev-master",
    "kartik-v/yii2-widget-rating": "*",
    "himiklab/yii2-recaptcha-widget" : "*",
    "rmrevin/yii2-minify-view": "~1.14",
    "kartik-v/yii2-checkbox-x": "*",
    "rmrevin/yii2-fontawesome": "~2.17",
    "alexandernst/yii2-device-detect": "^0.0.11",
    "bizley/migration": "*",
    "bower-asset/sweetalert": "1.1.*",
    "bower-asset/jquery.are-you-sure": "^1.9@dev",
    "bower-asset/punycode": "1.3.0",
    "brussens/yii2-maintenance-mode": "*",
    "nterms/yii2-mailqueue": "dev-master",
    "sjaakp/yii2-alphapager": "*",
    "codemix/yii2-localeurls": "^1.4",
    "kmergen/yii2-language-switcher": "*"
  },
  "require-dev": {
    "yiisoft/yii2-debug": "dev-master",
    "yiisoft/yii2-gii": "dev-master",
    "yiisoft/yii2-faker": "dev-master",
    "yiisoft/yii2-shell": "dev-master",
    "codeception/codeception": "~2.2.5",
    "codeception/verify": "dev-master",
    "codeception/specify": "dev-master",
    "iripvanwinkle/codeception-migration": "dev-master"
  },

any idea why this conflict is occuring? Could you upload a version with the old composer.json on packagist.org so i can fix my issue?

thanks a lot !!!

thyseus commented 7 years ago

One more: I think we should hardcode this version string:

https://github.com/metafizzy/infinite-scroll/blob/2.1.0/package.json#L3

?

dmitry-kulikov commented 7 years ago

@thyseus, if we will return old version with "bower-asset/jquery-infinite-scroll": "*" then composer will install latest available version 3, which is not compatible with this extension (at least for now). I had problem similar to which you described but I hoped that it is just me. I fixed issue for me using the following set of commands:

composer clear-cache
rm -rf vendor/
rm composer.lock
composer update

Result (tested it right now):

composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 9 installs, 0 updates, 0 removals           
  - Installing yiisoft/yii2-composer (2.0.5): Downloading (100%)         
  - Installing bower-asset/jquery (2.2.4): Downloading (100%)         
  - Installing bower-asset/yii2-pjax (v2.0.6): Downloading (100%)         
  - Installing bower-asset/punycode (v1.3.2): Downloading (100%)         
  - Installing bower-asset/jquery.inputmask (3.3.7): Downloading (100%)         
  - Installing cebe/markdown (1.1.2): Downloading (100%)         
  - Installing ezyang/htmlpurifier (v4.9.3): Downloading (100%)         
  - Installing yiisoft/yii2 (2.0.12): Downloading (100%)         
  - Installing bower-asset/jquery-infinite-scroll (2.1.0): Downloading (100%)         
Writing lock file
Generating autoload files

It is not needed to always run all commands listed above, once is enough. I don't see sense in hardcoding of exact 2.1.0, however you can try, if it will simplify installation then it makes sense.

nirvana-msu commented 7 years ago

@thyseus, there's no point hardcoding version to 2.1.0 in this extension. The extension should be as flexible as possible, allowing the user to pin a specific version if he desires so. In this case extension works with any 2.* version of the plugin, so that's what should be in composer.json. You may pin it more precisely in your composer.json if you require it for some reason.

Let me know if you still have issues after following @dmitry-kulikov's adivce.

thyseus commented 7 years ago

@nirvana-msu the solution of @dmitry-kulikov works fine ! Thanks a lot to both of you !!