bahmutov / next-update Goto Github PK
View Code? Open in Web Editor NEWTests if module's dependencies can be updated to latest version
License: MIT License
Tests if module's dependencies can be updated to latest version
License: MIT License
Lately, npm registry returns a lot of modified
, etc words for versions, need to skip them
null 'could not clean version 0.4.0rc8 for grunt'
null 'could not clean version modified for allong.es'
null 'could not clean version created for allong.es'
Need to respect new lines
Trying next-update -m [email protected]
just tries latest for check-types, but not the specified version
Should skip probably
Seems to do with bad connections, but no error messages, just silently exits after a couple of seconds after "checking NPM registry" message is printed to the console
seems like a similar problem with other node modules that need to be converted using dos2unix
Maybe some kind of require proxy to make sure the loaded code was actually used?
Similar to issue #47 - do not install dependencies, there might be no updates available.
Check if dependency is public module before sending or asking for stats
For example when checking for 10 dependencies, if checking in sequence, display progress.
If there are multiple versions available for a given module, fetch update stats for each and list separately in the rows of the available table
First filter available updates, if there are any to be updated, then run initial test
To avoid breaking next-updater
Hi.
I'm using your wonderful lib to make sure we don't break anything in our build environment and to make sure we're not 1:1 dependent on registry.npm.org being up since we use CI, we have our own registry mirrored to registry.npm.org. Our mirror takes a while to update sometimes and since next-update
always uses npm.registry.org
to look up the dependencies, it fails when trying to install them (which is using the correct, local registry).
Would be great if next-update
used the registry defined in .npmrc
and defaults to registry.npm.org
instead. :)
If npm doesn't expose the registry easily, it could perhaps execute npm config get registry
which will output which registry that is defined in the .npmrc
file.
Thanks again for the useful project!
Too long to wait to test if the current state works only to figure out that there are no available updates
We put bower dependencies in a specific folder, using .bowerrc
. We installed Angular as a Bower dependency, and when I run next-update
I get:
next-update - Tests if module's dependencies can be updated to latest version
version: 0.5.1
author: {"name":"Gleb Bahmutov","email":"[email protected]"}
checking if the current state works
ERROR: cannot find folder /home/nchambrier/Projects/LMTM/ooz/bower_components/angular
ERROR testing next working updates
Error: Current installation is invalid, please run NPM install first
at /home/nchambrier/.nvm/v0.10.32/lib/node_modules/next-update/src/next-update.js:35:26
at node.js:906:3
From previous event:
at checkDependenciesInstalled (/home/nchambrier/.nvm/v0.10.32/lib/node_modules/next-update/src/next-update.js:29:19)
at Object.checkCurrentInstall (/home/nchambrier/.nvm/v0.10.32/lib/node_modules/next-update/src/next-update.js:43:12)
at Object.<anonymous> (/home/nchambrier/.nvm/v0.10.32/lib/node_modules/next-update/index.js:129:38)
Obviously, if it looks for Angular in ./bower_components
it won't be found as there is no such folder.
next-update
should either
.bowerrc
When using the --keep
flag, shouldn't it save the exact version to package.json using npm's --save-exact
flag rather than saving the potentially breaking ^
flag. Or maybe have a separate --keep-exact
option?
I think this error I'm getting is because next-update
only looks locally, not to the node path?
(develop) thomas:/vagrant $ env | grep NODE_PATH
NODE_PATH=/home/vagrant/.npm-packages/lib/node_modules:/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
(develop) thomas:/vagrant $ ls /home/vagrant/.npm-packages/lib/node_modules/redis/
benches changelog.md diff_multi_bench_output.js examples generate_commands.js index.js lib multi_bench.js package.json README.md test.js test-unref.js
(develop) thomas:/vagrant $ next-update
next-update - Tests if module's dependencies can be updated to latest version
version: 0.4.4
author: {"name":"Gleb Bahmutov","email":"[email protected]"}
checking if the current state works
cannot find file /vagrant/node_modules/redis/package.json
ERROR: cannot find module redis
ERROR testing next working updates
Error: Current installation is invalid, please run NPM install first
at /usr/lib/node_modules/next-update/src/next-update.js:35:26
at node.js:902:3
From previous event:
at checkDependenciesInstalled (/usr/lib/node_modules/next-update/src/next-update.js:29:19)
at Object.checkCurrentInstall (/usr/lib/node_modules/next-update/src/next-update.js:43:12)
at Object.<anonymous> (/usr/lib/node_modules/next-update/index.js:122:38)
(develop) thomas:/vagrant $
To make sure the testing is meaningful
--allow major | minor | patch
needed for bahmutov/next-updater
The documentation quite nicely describes the process of how modules are checked for updates. But this only targets public packages that are in the public registry.
If you use a GitHub dependency in your package.json
, next-update tells you:
TypeError: Invalid comparator: myorg/mymodule#x.y.z
IMHO you can deal with Git and GitHub dependencies in a quite similar way: Simply get the latest version, and afterwards rollback to the commit ID or tag that is given in package.json
.
When showing multiple available versions, shorten the string, for example by putting ... in the middle
instead of 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7
show 0.1.0, ..., 0.1.7
next-update
log pasted here: http://pastebin.com/PZJvEZD6
Everything was going fine until [email protected] failed.
npm ERR! System Linux 3.11.0-15-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "[email protected]"
npm ERR! cwd /vagrant
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code EPEERINVALID
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /vagrant/npm-debug.log
npm ERR! not ok code 0
After that, every single one failed (I presume not coincidentally).
Here's from my package.json:
"dependencies": {
"redis": "^0.10.3",
"express": "^4.4.4",
"express-session": "^1.5.1",
"body-parser": "^1.4.2",
"cookie-parser": "^1.3.1",
"method-override": "^2.0.0",
"morgan": "^1.1.0",
"serve-favicon": "^2.0.0",
"passport": "^0.2.0",
"passport-google-oauth": "^0.1.5",
"passport-facebook": "^1.0.3",
"passport-local": "^1.0.0",
"connect-redis": "^2.0.0",
"nano": "^5.9.1",
"batch": "~0.5.0",
"superagent": "~0.16.0",
"knex": "^0.5.8",
"bookshelf": "^0.6.6",
"newrelic": "^1.3.2",
"winston": "^0.7.2",
"winston-mail": "^0.2.7",
"convict": "^0.4.2",
"pg.js": "^2.11.1",
"request": "2.36.0",
"winston-logentries-simple": "0.0.2",
"cssmin": "^0.4.1",
"component-hooks": "~0.2.3"
},
"devDependencies": {
"grunt": "^0.4.5",
"time-grunt": "^0.3.1",
"load-grunt-tasks": "^0.4.0",
"load-grunt-config": "^0.9.2",
"grunt-concurrent": "^0.5.0",
"sane": "^0.5.1",
"gaze": "^0.6.4",
"forever-monitor": "^1.2.3",
"should": "~3.1.0",
"mocha": "~1.17.1",
"supertest": "~0.9.0",
"smash": "0.0.12",
"d3": "^3.4.4",
"coveralls": "^2.10.0",
"mocha-lcov-reporter": "0.0.1",
"istanbul": "^0.2.11"
}
This looks relevant: npm/npm#3289
Is this a deliberate error, or an accidental one?
next-update - Tests if module's dependencies can be updated to latest version
version: 0.4.5
author: {"name":"Gleb Bahmutov","email":"[email protected]"}
checking if the current state works
/usr/lib/node_modules/next-update/node_modules/deps-ok/src/utils.js:35
throw new Error('duplicate properties found: ' + common);
^
Error: duplicate properties found: jade
at /usr/lib/node_modules/next-update/node_modules/deps-ok/src/utils.js:35:13
at Array.forEach (native)
at Object.getAllDependencies (/usr/lib/node_modules/next-update/node_modules/deps-ok/src/utils.js:28:14)
at checkTopLevelNpmDependencies (/usr/lib/node_modules/next-update/node_modules/deps-ok/src/check-npm-package.js:13:20)
at checkDependenciesInFolder (/usr/lib/node_modules/next-update/node_modules/deps-ok/src/check-folder.js:12:10)
at /usr/lib/node_modules/next-update/src/next-update.js:31:13
at process._tickCallback (node.js:415:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
at node.js:902:3
i.e. do I have a double jade dependency I should be concerned about?
The data is missing, do not span user with console messages
To make sure the current installation is working
I think this error I'm getting is because next-update
only looks locally, not to the node path?
(develop) thomas:/vagrant $ env | grep NODE_PATH
NODE_PATH=/home/vagrant/.npm-packages/lib/node_modules:/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
(develop) thomas:/vagrant $ ls /home/vagrant/.npm-packages/lib/node_modules/redis/
benches changelog.md diff_multi_bench_output.js examples generate_commands.js index.js lib multi_bench.js package.json README.md test.js test-unref.js
(develop) thomas:/vagrant $ next-update
next-update - Tests if module's dependencies can be updated to latest version
version: 0.4.4
author: {"name":"Gleb Bahmutov","email":"[email protected]"}
checking if the current state works
cannot find file /vagrant/node_modules/redis/package.json
ERROR: cannot find module redis
ERROR testing next working updates
Error: Current installation is invalid, please run NPM install first
at /usr/lib/node_modules/next-update/src/next-update.js:35:26
at node.js:902:3
From previous event:
at checkDependenciesInstalled (/usr/lib/node_modules/next-update/src/next-update.js:29:19)
at Object.checkCurrentInstall (/usr/lib/node_modules/next-update/src/next-update.js:43:12)
at Object.<anonymous> (/usr/lib/node_modules/next-update/index.js:122:38)
(develop) thomas:/vagrant $
NPM output a lot to stderr by default, but most messages are not errors, need to detect just the errors.
Should be "current", not "available"
Allow filtering available updates for success rate > N%
Add option to leave the updated version if the tests pass. At the end should not even tell the install command, just print which modules were updated.
Is it rally 0.1.5 < 0.1.51 < 0.1.6
?
Hi @bahmutov. This tool is really awesome!
I just ran it on my marky-markdown project, and noticed that the recommended npm install
command doesn't take into account the fact that some deps are devDependencies
. There should probably be two install commands, one with --save-dev
.
next updates:
cheerio 0.18.0 -> 0.19.0
github-url-to-object 1.4.2 -> 1.5.0
html-frontmatter 1.3.2 -> 1.5.1
language-ini 1.7.0 -> 1.10.0
lodash 2.4.1 -> 3.6.0
markdown-it 3.0.4 -> 4.1.1
catjs 0.4.56 -> 0.4.84
cordova 4.2.0 -> 4.3.0
express 4.10.7 -> 4.12.3
glob 4.3.5 -> 5.0.5
johnny-five 0.8.37 -> 0.8.56
mocha 2.0.1 -> 2.2.4
payform 1.0.1 -> 1.1.0
wzrd 1.1.1 -> 1.2.1
Use the following command to install working versions
npm install --save --save-exact [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]
--help works, need to allow -h shortcut
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.