-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dependencies for a Node v6 age #246
Comments
2.1.0 is fine for this change. This change bumps bunyan across one major version and restify across two major versions. That's fine, but it would be good to review the breaking changes in those APIs to make sure we won't be broken by this. This overlaps with #245, where I raised the same issue. |
Yeah, the version bump for restify makes me nervous. I did some quick testing using more recent 2.8.X and 3.x.x versions, but none of those seemed to resolve the dtrace-provider issue. |
We should upgrade to latest if we can -- it's just that we should look at what the breaking changes are and make sure they won't affect us (or that we fix the code). |
For reference, here are the respective change logs we care about: https://github.com/trentm/node-bunyan/blob/master/CHANGES.md https://github.com/restify/node-restify/blob/master/CHANGES.md |
For bunyan, the notable breaking changes are in 1.0.0:
|
Here is my diff that gets these and also updates tar and showdown to avoid the "deprecated" warnings from npm: diff --git a/lib/jobshare.js b/lib/jobshare.js
index 840bb11..56b7278 100644
--- a/lib/jobshare.js
+++ b/lib/jobshare.js
@@ -258,7 +258,7 @@ function jStageRender(j, cb)
params['manta_url'] = process.env['MANTA_URL'];
- converter = new showdown.converter();
+ converter = new showdown.Converter();
if (j.j_data.hasOwnProperty('readme'))
params['readme'] = converter.makeHtml(j.j_data['readme']['contents']);
diff --git a/package.json b/package.json
index 4fd5889..cdaa95b 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"dependencies": {
"assert-plus": "0.1.5",
"backoff": "2.3.0",
- "bunyan": "0.22.1",
+ "bunyan": "1.6.0",
"clone": "0.1.11",
"cmdln": "1.3.1",
"dashdash": "1.3.2",
@@ -31,13 +31,13 @@
"path-platform": "0.0.1",
"progbar": "1.0.0",
"readable-stream": "1.1.9",
- "restify": "2.8.1",
- "showdown": "0.3.1",
+ "restify": "4.0.4",
+ "showdown": "1.3.0",
"smartdc-auth": "2.3.1",
- "tar": "0.1.18",
+ "tar": "2.2.1",
"vasync": "1.4.0",
"verror": "1.3.6",
- "watershed": "0.3.0"
+ "watershed": "0.3.1"
},
"devDependencies": {
"nodeunit": "0.9.0" However I get one test failure:
which I haven't dug into. |
More details on that test failure when running with restify 4.0.4 and node 5. From the trace log there is this:
The error is unexpected. When running with restify 4.0.4 and node 0.10.42 I get:
So this is a diff in what the node HTTP client sends between node 0.10 and node 5? |
Would be interesting to see what the Manta server sees for those req_ids. |
The InvalidUpdateError appears to be a result of nodejs/node#1062, which explains why we saw it only after Node 0.12. We'll probably need a server-side change for this. This is tracked by internal ticket MANTA-2846. |
Got the same installing 2.0.7 on Node 5.8.0. Seems to work fine. Pretty disconcerting for a new user to see this kind of install output. |
bump |
The patch: diff --git a/lib/jobshare.js b/lib/jobshare.js
index 840bb11..56b7278 100644
--- a/lib/jobshare.js
+++ b/lib/jobshare.js
@@ -258,7 +258,7 @@ function jStageRender(j, cb)
params['manta_url'] = process.env['MANTA_URL'];
- converter = new showdown.converter();
+ converter = new showdown.Converter();
if (j.j_data.hasOwnProperty('readme'))
params['readme'] = converter.makeHtml(j.j_data['readme']['contents']);
diff --git a/package.json b/package.json
index 23b44d0..fc21a5d 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"dependencies": {
"assert-plus": "0.1.5",
"backoff": "2.3.0",
- "bunyan": "0.22.1",
+ "bunyan": "1.6.0",
"clone": "0.1.11",
"cmdln": "1.3.1",
"dashdash": "1.3.2",
@@ -32,12 +32,12 @@
"progbar": "1.0.0",
"readable-stream": "1.1.9",
"restify": "2.8.1",
- "showdown": "0.3.1",
+ "showdown": "1.3.0",
"ssh-agent": "0.2.2",
- "tar": "0.1.18",
+ "tar": "2.2.1",
"vasync": "1.4.0",
"verror": "1.3.6",
- "watershed": "0.3.0"
+ "watershed": "0.3.1"
},
"devDependencies": {
"nodeunit": "0.8.1" The tests
|
Okay, so there are three different sets of updates here:
Presumably we're going to want to stick with Trent's patch because we want to update restify to latest, too? Or maybe we should change that to use the newer restify-clients package. It would be great if we could also update graceful-fs, but that could be a follow-on change. As I understand it, these are the remaining open blockers:
Obviously, the biggest thing is verifying the major version bumps. This isn't as simple as just running the tests, because major version bumps can involve arbitrary semantic changes. Someone just needs to go through the changelogs for those repos, understand what was broken, and then see if any node-manta code is affected. |
I've filed https://smartos.org/bugview/MANTA-2929 for the server-side issue related to InvalidUpdateError. |
On the restify update:
tl;dr: I suspect we'll be fine jumping to restify-clients 1.x. I'll get a PR restify 2 -> 3: restify/node-restify#753
This is server-only so won't affect node-manta usage. restify-clients was split out to 1.0.0 with this timeline:
That's basically when the restify 4.x release happened:
It isn't clear to me what in the following triggers a 4.x for restify (server):
Notes:
|
The "InvalidUpdateError" issue has been moved to this ticket: MANTA-2929 (https://smartos.org/bugview/MANTA-2929). |
MANTA-2929: InvalidUpdateError on mchmod from clients after Node 0.12 - 'make testall' to somewhat easily test against all supported node versions - Convert to using restify-clients instead of restify. This drops having the "bin/m*" tools set "serializers" in they logger because that gets added via "log.child" in "createBinClient". - Add "license" field to package.json to avoid 'npm install' warning. - Added "node-manta-test-" prefix to the dir created in Manta when running the test suite. This helps for manual cleaning up after failed test runs. - Fix two places where 'make test' would hang while a Manta client had an open connection (the "agent:false" additions in client.test.js). - MANTA-2929: ensure no implicit content-length by forcing chunked transfer-encoding for PutMetadata requests.
Doing work for this in the "nouveau" branch. Some notes on top-level deps that I won't be updating in this go round:
|
Just my $0.02, but as long as it installs clean, I'll be happy. |
@BobDickinson Yup, hoping to have a commit for all this by tomorrow. Working on improving some testing of the various node versions as well. |
On the node-tar major update:
https://github.com/npm/node-tar 1 -> 2 commit is because of this one I believe:
0 -> 1 commit is because of this one I believe:
fstream 0 -> 1: Sigh. The only thing between fstream@0.1.30 and fstream@1.0.0
I don't anticipate compat issues from this one. Mike is adding some muntar test cases to help shore up sanity testing there. |
On showdown update:
commit eae5f0e01fd086cfee87de5a547fcd057f59a460 (Major code refactoring) |
All, some sanity usage of the nouveau branch would be helpful. You can install it globally via: |
testing 'mjob share' (user of showdown, etc.): Hard to look at specific issues the update may have caused, but FWIW, 'mjob share ...' "worked" for a ~100 of my jobs that I tried. That doesn't mean a lot tho. |
If I'm testing nouveau, should I also be using node 6? I'm currently mostly on 4.x. |
Any node version >=0.10. The idea is that it works with all those versions. Node 4 is helpful testing. --Trent
|
We admittedly do not push Manta super hard, but it installed clean and ran clean in our tests on Node versions 4.3.2, 5.8.0, and 6.0.0. |
MANTA-2937: mchmod client-side workaround for MANTA-2929 InvalidUpdateError Also: - 'make testall' to somewhat easily test against all supported node versions - "tools/test-in-smartos-container.sh" to use the `triton` CLI to create a test smartos container and run the test suite in a number of node versions. - Convert to using restify-clients instead of restify. This drops having the "bin/m*" tools set "serializers" in they logger because that gets added via "log.child" in "createBinClient". - Add "license" field to package.json to avoid 'npm install' warning. - Added "node-manta-test-" prefix to the dir created in Manta when running the test suite. This helps for manual cleaning up after failed test runs. - Fix two places where 'make test' would hang while a Manta client had an open connection (the "agent:false" additions in client.test.js). Reviewed by: Dave Pacheco <dap@joyent.com> Parts reviewed by: Joshua M. Clulow <jmc@joyent.com>
manta@3.0.0 published now. |
When installing manta under Node.js v5.3.0 and 3.3.12, there are several errors (non-fatal I think) when installing dtrace-provider.
For example:
Updating bunyan, restify and watershed to the latest versions in package.json seems to resolve this:
Full package.json:
Not sure what the version should be bumped too. 2.1.0?
The text was updated successfully, but these errors were encountered: