jfrog / bower-art-resolver

Apache License 2.0
15 stars 17 forks source link

Resolver always uses cached version even when newer version exists #24

Closed scotts-navinet closed 7 years ago

scotts-navinet commented 7 years ago

In Artifactory you have bower package named 'component' with versions '1.0.0' and '1.0.1'

Say your bower.json contains a dependency to component@1.0.0 (an exact version).

You perform bower install, and how have component@1.0.0 in the bower cache.

You now change the dependency to component@^1.0.0 (a caret range).

Delete bower_components and perform another bower install. This should have downloaded component@1.0.1, but instead if simply uses the cached version @1.0.0. This is not the same behavior with the standard Git resolver.

There seems to be a bug in the resolver, where it never verifies that the version in the cache is the requested version.

The following line in fetch (index.js): if (cached.version) return; should be: if (cached.version === endpoint.target) return;

Without this the only workaround is the perform bower cache clean, which is not optimal.

eyalbe4 commented 7 years ago

Thanks for reporting this and identifying the code line that needs to be fixed @scotts-navinet. We'll soon commit this fix.

eyalbe4 commented 7 years ago

@scotts-navinet, we committed the fix. Before we release it, can you please install bower-art-resolver with the fix from this github repo, and confirm that it resolves the issue for you?

scotts-navinet commented 7 years ago

This fix resolves the problem. Thanks

scotts-navinet commented 7 years ago

When could we expect an official release including this fix? Thanks

eyalbe4 commented 7 years ago

@scotts-navinet, we will publish a new release in a few days (before the end of the week).

eyalbe4 commented 7 years ago

@scotts-navinet, bower-art-resolver 2.0.7 has been released.

ghost commented 7 years ago

@eyalbe4, Thanks for the fix. I've been having crazy build failures over the past few months because of this. I ended up making every build clear the cache before running. This patch fixed the problem for me.