Comments (9)
So... this also happens with Bundler ironically. I haven't looked, but are they using the same Version
library? It might be a bug further down the stack.
from berkshelf.
@sethvargo no it is a problem with how we are building the graph. Right now we always favor what we "know" about before we go discover more. Since we always "know" about what we already have on our computer, we use that to resolve our dependencies.
You are right that this behavior is also present in Bundler. You run the update
command in Bundler to update a Gem.
The problem I see here is that somehow 0.9.3
is considered acceptable when ~> 0.9.4
was the constraint.
from berkshelf.
I believe I am also seeing this issue now. With a metadata.rb of:
depends "java", "~> 1.5.2"
depends "nginx", "~> 1.0.0"
depends "artifact", "~> 0.11.0"
depends "build-essential", "~> 1.3.2"
depends "yum", "2.0.6"
I get the wrong Yum cookbook
kallan-2:nexus kallan$ be berks install
Using nexus (0.17.0) at path: '/Users/kallan/src/nexus'
Using java (1.5.2)
Using nginx (1.0.0)
Using build-essential (1.3.2)
Using runit (0.15.0)
Using bluepill (1.0.6)
Using yum (0.6.2)
Using ohai (1.0.2)
Using artifact (0.11.5)
from berkshelf.
I think this is related to the issues with the lockfile expressed in other issues
from berkshelf.
Is this still an issue?
from berkshelf.
@sethvargo this is still an issue but should be 100% resolved by #397
from berkshelf.
@KAllan357 think you could wrap this up into a test case? I know I've experienced this before, but it might be fresher in your mind than mine.
from berkshelf.
@josephholsten here's a full cucumber test case:
Scenario: Doing something
Given a cookbook named "fake"
And I write to "Berksfile" with:
"""
site :opscode
cookbook 'fake', path: './fake'
"""
And the cookbook "fake" has the file "metadata.rb" with:
"""
name 'fake'
version '1.0.0'
depends 'berkshelf-cookbook-fixture', '~> 0.2.0'
"""
And I successfully run `berks install`
Then the cookbook store should have the cookbooks:
| berkshelf-cookbook-fixture | 0.2.0 |
When the cookbook "fake" has the file "metadata.rb" with:
"""
name 'fake'
version '1.0.0'
depends 'berkshelf-cookbook-fixture', '~> 1.0.0'
"""
When I successfully run `berks install`
Then the cookbook store should have the cookbooks:
| berkshelf-cookbook-fixture | 1.0.0 |
And the output should contain:
"""
Installing berkshelf-cookbook-fixture (1.0.0)
"""
And the exit status should be 0
from berkshelf.
What's interesting - changing the second install
to update
will make the spec pass
from berkshelf.
Related Issues (20)
- chef_server_connection rescue block refers to Ridley exception that is not available
- Dependabot can't parse your Gemfile
- berks install fails to fetch git repository dependencies that use git-lfs
- berks install failing to reslove transative git dependencies HOT 2
- berks verify path is broken HOT 1
- berks upload is not respecting --skip-syntax-check HOT 5
- Reference inspec profile like cookbook in berksfile
- berks install/update pulls wrong version of cookbook from private supermarket
- Berks package for windows
- Break ability of berkshelf to resolve circular cookbook dependencies HOT 1
- Cookbook upload does not work with ssh_agent_signing
- berks install not working as expected HOT 1
- Absolute paths in tarball package
- berks package creates unconventional directory structure HOT 2
- Include Gem dependency lock inside Berksfile.lock HOT 1
- `berks package` 7.2 adds the temporary file path to the resulting tar file on macOS HOT 3
- ssh_agent_signing support
- empty cookbook files after Docker update HOT 2
- Problem using :chef_server as source with Ruby 3.0
- Slow fetch when using :rel HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from berkshelf.