puppet module dependency both met and unmet - puppet

I'm getting a warning from puppet about an unmet dependency, and yet it appears the dependency is met. I'm more than a bit confused about this error message. Can anyone offer any tips or pointers?
ubuntu#seine2:/vagrant$ sudo puppet module list
Warning: Missing dependency 'puppet-yum':
'puppet-collectd' (v5.2.0) requires 'puppet-yum' (>= 0.9.15)
Warning: Missing dependency 'puppetlabs-apt':
'puppet-collectd' (v5.2.0) requires 'puppetlabs-apt' (>= 2.2.0)
/etc/puppet/modules
├── golja-gnupg (v1.2.3)
├── jfryman-nginx (v999.999.999)
├── maestrodev-rvm (v1.13.1)
├── puppet-collectd (v5.2.0)
├── puppet-staging (v2.0.1)
├── puppet-yum (v0.9.15)
├── puppetlabs-apt (v2.3.0)
├── puppetlabs-concat (v2.2.0)
├── puppetlabs-firewall (v1.8.1)
├── puppetlabs-mysql (v3.10.0)
├── puppetlabs-stdlib (v4.14.0)
├── puppetlabs-vcsrepo (v1.5.0)
├── saz-locales (v2.2.2)
└── saz-memcached (v2.8.1)
/usr/share/puppet/modules (no modules installed)
ubuntu#seine2:/vagrant$
Note that puppet-yum is already at the required 0.9.15 and puppetlabs-apt is at 2.3.0 which is greater than the 2.2.0 required.

Ah, this is a bug.
It is reported at #17251 and as is also discussed here.
It has been fixed in puppet 4.0.0, but I am using (ubuntu 16.04 LTS) 3.8.5.
I am still somewhat unclear if the warnings matter (besides being quite ugly). I think the answer is that they don't, simply because I haven't had anything fail yet.

Related

How to find out which package version has the required nested version?

I need to install jsdom#19 because it has a bugfix that I need, and I don't have it installed directly in package.json, it's a nested dependency.
To find out which dependency is installing it I ran npm list jsdom and got this:
#my-package#1.0.0 /Volumes/workplace/my-package
└─┬ react-scripts#3.4.4
├─┬ jest#24.9.0
│ └─┬ jest-cli#24.9.0
│ └─┬ jest-config#24.9.0
│ └─┬ jest-environment-jsdom#24.9.0
│ └── jsdom#11.12.0
└─┬ jest-environment-jsdom-fourteen#1.0.1
└── jsdom#14.1.0
I'm not sure which jsdom is actually responsible for running my tests, I don't have any runner set in the jest config file.
how do I know what is the minimum upgrade that I need to do in order to get to jsdom#19?
I tried looking at npm versions but there's no clear way to see the nested dependencies for each version.
I thought there might be a magic npm command that I don't know about that does exactly this?
I don't want to update the package to the latest because that would hugely increase the scope of my change.

Determine npm package dependency chain

I run npm install on a project and get a deprecation error for an underlying dependency.
It is not a direct dependency, it's in node_modules. How can I easily figure out which of my dependencies eventually depends on the problematic library?
A first-pass solution is to use grep, but 2 issues:
This will help me locate the package.json containing the problematic dependency, but there could be 2, 3, 4...n packages between that and my own project's package.json
grep is a bit slow
What's wrong with using npm ls? Here's sample output for a module:
➜ node-address-rfc2821 git:(master) npm ls
address-rfc2821#2.0.0 /Users/matt/git/node-address-rfc2821
├─┬ nearley#2.20.1
│ ├── commander#2.20.3
│ ├── moo#0.5.1
│ ├── railroad-diagrams#1.0.0
│ └─┬ randexp#0.4.6
│ ├── discontinuous-range#1.0.0
│ └── ret#0.1.15
└── punycode#2.1.1
The command npm ls has been around since at least 2011

Update npm module, but showing different older version in my console window

I wanted to install the latest version of socket.io, and the latest ver seems to be 1.45.socket.io download
To do this, I just type the following command.
npm install socket.io
However, when I checked installed modules in my laptop, socket.io's version did not change as can be seen below.
YANAGISAWAYUMA-no-MacBook-Pro:~ yanagisawa_yuma$ npm list --depth=0
yanagisawa_yuma#0.0.0 /Users/yanagisawa_yuma
├── ar-drone#0.3.3 extraneous (git://github.com/felixge/node-ar-drone.git#228bd4573e765bed3861f259ce7e66fcace15f43)
├── express#4.9.0
├── gulp#3.9.0
├── node#0.0.0
├── node-osc#1.1.0 extraneous
├── node-static#0.7.3
├── socket.io#1.1.0
└── static#2.0.0
What am I missing?
Instead of simply npm install socket.io,
try npm install socket.io#version

What are "to" and "update" in the context of npm/node.js?

I am working with node.js/npm.
My current configuration looks like this: npm list -g --depth=0
├── bower#1.7.7
├── cordova#6.0.0
├── grunt-cli#0.1.13
├── grunt-sass#1.1.0
├── ionic#1.7.14
├── ios-deploy#1.8.5
├── ios-sim#5.0.6
├── n#2.1.0
├── to#0.2.9
└── update#0.4.2
As I am newbie in developing mobile apps using Cordova, Ionic, etc. --> what do "to" and "update" stand for?
You're listing top level dependencies for the relative node.js project. to and update are node.js packages that are likely defined in your package.json file and exist in the top level directory of ./node_modules.
To better understand what those two specific packages are, read about them here:
The to package: https://www.npmjs.com/package/to
The update package: https://www.npmjs.com/package/update

NPM Installs Not Working as Intended

Sometimes then I run npm commands in the ubuntu console, e.g.
npm install forever -g
I get such feedback from the console and it is unclear to me is it installed? Is this a list of dependencies? Is this an issue? How should I proceed fixing this?
forever#0.14.1 /usr/local/lib/node_modules/forever
├── colors#0.6.2
├── timespan#2.3.0
├── optimist#0.6.1 (wordwrap#0.0.3, minimist#0.0.10)
├── nssocket#0.5.3 (eventemitter2#0.4.14, lazy#1.0.11)
├── cliff#0.1.10 (eyes#0.1.8, colors#1.0.3)
├── winston#0.8.3 (cycle#1.0.3, stack-trace#0.0.9, eyes#0.1.8, isstream#0.1.2, async#0.2.10, pkginfo#0.3.0)
├── nconf#0.6.9 (ini#1.3.4, async#0.2.9, optimist#0.6.0)
├── utile#0.2.1 (deep-equal#1.0.0, ncp#0.4.2, async#0.2.10, i#0.3.3, mkdirp#0.5.1, rimraf#2.4.0)
├── flatiron#0.4.3 (optimist#0.6.0, director#1.2.7, prompt#0.2.14, broadway#0.3.6)
└── forever-monitor#1.5.2 (watch#0.13.0, minimatch#1.0.0, ps-tree#0.0.3, broadway#0.3.6)
This is not an error message, everything installed just fine.
Output such as this shows you the other packages that were installed as dependencies for the package you have installed.

Resources