-
Notifications
You must be signed in to change notification settings - Fork 207
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
Support for Solr 4 #27
Comments
Hello @nilskassube , You're right, now this client doesn't support Solr 4. If I run lbdremy@lbdremy-Latitude-E6500:~/workspace/nodejs/solr-client$ npm test
> solr-client@0.2.1 test /home/lbdremy/workspace/nodejs/solr-client
> vows --spec test/test-*
♢ Solr Date
Date submitted by the user being based on Local time.
✓ should return a Date following this pattern 1995-12-31T23:59:59.999Z and based on UTC time
♢ Solr Client API Core
The creation of a Solr Client with no options
✓ should return a Client
The creation of a Solr Client with custom options
✓ should return a Client
The creation of a Solr Client with custom host
✓ should return a Client
The creation of a Solr Client with custom host, post, core and path
✓ should return a Client
Adding one document to the Solr DB
✗ should be possible.
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Adding a list of documents
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Adding one document using unknown fields
✓ should return an SolrError
Committing automatically
✓ should be possible
Committing manually
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Deleting documents matching a query
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Deleting a document where a field matchs a value
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Deleting a document by ID
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Deleting a range of documents
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Optimizing the Solr Database
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Updating the Solr Database with any object
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Rolling back all documents added or deleted to the index since the last commit
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Ping the Solr server
✓ should be possible
Make a query that will be handle by DefaultRequestHandler
✓ should be possible
Make a query that will be handle by the RequestHandler given in parameter
✓ should be possible
Make a query that will be handle by DisMaxParserPlugin
✓ should be possible
Make a query that return only a set of fields specified
✓ should be possible
Make a query that return a result within an expected timeout
✓ should be possible
Make a query that autoconvert JS Date Object into a properly date format expected by Solr
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":9,"params":{"start":"0","q":"laptop","qf":"title^2 description^3","wt":"json","fq":"(last_update:[2012-05-05T21:50:08.783Z TO 2012-05-06T21:50:08.783Z] AND price:[10 TO 100])","defType":"dismax","rows":"10"}},"error":{"msg":"undefined field: \\"last_update\\"","code":400}}\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:513:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":9,"params":{"start":"0","q":"laptop","qf":"title^2 description^3","wt":"json","fq":"(last_update:[2012-05-05T21:50:08.783Z TO 2012-05-06T21:50:08.783Z] AND price:[10 TO 100])","defType":"dismax","rows":"10"}},"error":{"msg":"undefined field: \\"last_update\\"","code":400}}' } // solr.js:513
Make a query using unknown fields
✓ should return an SolrError
Make a query that return a result where one or more fields match a particular value
✓ should be possible
Make a query that use custom parameter in the query thanks to the set method
✓ should be possible
Make a query that return a result where one or more fields are on a range of values
✓ should be possible
Make a query that return a sorted result in ascending or descending order
✓ should be possible
♢ Solr Client API: deleteByRange command
Add 20 documents with fields last_update_dt and title_t
✗ should works
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Delete documents between yesterday and today
✗ should works
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Commit change to see effect of the deleteByRange command
✗ should works
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
Query all documents where title_t === test
✗ should find 10 documents
» expected 10,
got 0 (==) // test-deleteByRange.js:97
♢ Solr Client API: facet
Create a facet with the following options: field, prefix, query, limit, offset, sort, limit, mincount, missing, method
✓ should return a correct response without error
♢ Solr Client API: group command
Grouping Result with all availables options: field, limit,offset,sort,format,main,ngroups,truncate,cache
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":7,"params":{"group.format":"grouped","group.ngroups":"true","group.limit":"20","group.main":"false","group.cache.percent":"0","wt":"json","q":"description:laptop","group.truncate":"false","group.field":"title","group":"true","group.sort":"score asc","group.offset":"0"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:513:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":7,"params":{"group.format":"grouped","group.ngroups":"true","group.limit":"20","group.main":"false","group.cache.percent":"0","wt":"json","q":"description:laptop","group.truncate":"false","group.field":"title","group":"true","group.sort":"score asc","group.offset":"0"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}' } // solr.js:513
Grouping Result with a field
✗ should be possible
» expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":5,"params":{"group.field":"title","group":"true","wt":"json","q":"description:laptop"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}\n at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:513:19)\n at IncomingMessage.EventEmitter.emit (events.js:115:20)\n at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n at IncomingMessage._emitEnd (http.js:366:10)\n at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n at Socket.socketOnData [as ondata] (http.js:1366:20)\n at TCP.onread (net.js:402:27)', message: 'HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":5,"params":{"group.field":"title","group":"true","wt":"json","q":"description:laptop"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}' } // solr.js:513
♢ Solr Client API: More like this
Create a mlt with the following options: fl, mindf, mintf, minwl, maxwl, maxqt, maxntp, boost, count
✓ should return a correct response without error
✗ Broken » 20 honored ∙ 17 broken (0.257s) Updating ✗ Broken » 29 honored ∙ 8 broken (1.833s) Could you point to me all changes they made on the API between >=3.6 and 4 in order to make it works or send a pull request to support Solr 4, I will merge it if everything is still working for Solr >=3.6. Thanks it will be great to support Solr 4, even it is still in BETA. :) |
Any word on Solr 4 support now that it's been released? |
What schema should the tests pass against when not running mocked? |
Hi, I started to work on the branch v0.3.x days ago, but I haven't had time to finish the work, my christmas holiday is coming, which mean I will have time to finish the work, until then I'm sorry the support for Solr 4 in the current release is not great. The version v0.3.0 will have full support for all features of Solr 4, also in this release the tests will not running against a mock or against a solr with a custom schema, which will guarantee tests to pass on any solr 4 instance with a default schema and the default configuration. You're absolutely right some of the tests will not pass because special fields are expected by the tests to be able to pass, that's a mistake, that's the reason why it won't be the same in the next release v0.3.0. Hopefully I will release it before 2013! :) Between feel free to make the tests in the master branch more flexible and schema independant, if you feel it. |
Thanks for the reply @lbdremy! Can you give me some idea what in the current release isn't great for Solr 4? Is there a specific failing or set of features that don't work? It's hard to tell as a new user of the lib until the tests are easier to run. Again, thank you for the work you've put into this lib and for replying. Cheers. |
I've been able to get all but two tests passing with solr4. I had to update the schema to have the last_update field, and to remove a multi-value attribute from the title field. I had to adjust the test-core.js to remove a waitFlush option that's not valid in solr4. I also had to adjust some query quoting in that same file. What I'm left with are two odd cases.
Both cases seem to be having that "Error opening new searcher" error when I look in the solr logs. If I run either of these two files alone they pass. If I run them together they pass. It fails when I run them with the full suite like "npm test" does. Any thoughts? |
Interesting, could you push your changes somewhere where I could pull your changes and have a look. The problem seems to be that there are too many commits within a small amount of time (http://wiki.apache.org/solr/FAQ#What_does_.22exceeded_limit_of_maxWarmingSearchers.3DX.22_mean.3F). Thanks @jwarchol :) |
I've put my code into a pull req #47 |
hi! solr 4 has some significant features for my project, is it possible to get an update on this issue? thanks! |
hi @vid , sorry I'm not really active on this module, I started working on a new version of solr-client with a better support for Solr 4 on the branch |
oh, how'd I miss that?! I've slotted it in, and it seems to function ok. I'm wondering if you have a 'suggested' solrconfig.xml to use with this client? I notice with Solr 4 I had to explicitly add: <requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler"/> But my updates are not showing up. It would be great if you could post one as part of the documentation. I'm trying to use autocommit (to use solr 4.1 as a nosql search database) so mine looks like the following. Thanks! <?xml version="1.0" encoding="UTF-8" ?> <dataDir>${solr.core0.data.dir:}</dataDir> <updateHandler class="solr.DirectUpdateHandler2">
</updateHandler> <!-- realtime get handler, guaranteed to return the latest stored fields <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" /> <requestDispatcher handleSelect="true" > <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" /> <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" /> <requestHandler name="/admin/ping" class="solr.PingRequestHandler"> <!-- config for the admin interface --> </config><?xml version="1.0" encoding="UTF-8" ?> <dataDir>${solr.core0.data.dir:}</dataDir> <updateHandler class="solr.DirectUpdateHandler2">
</updateHandler> <!-- realtime get handler, guaranteed to return the latest stored fields <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" /> <requestDispatcher handleSelect="true" > <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" /> <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" /> <requestHandler name="/admin/ping" class="solr.PingRequestHandler"> <!-- config for the admin interface --> </config> |
The test suite in the branch |
Hi, Is 0.3 going to be committed any time soon? if it is running aginst solr 4 then surely this warrants even a 0.2.8 release of something? |
Hi @merrittholmes, sorry for the delay. I need a 3 or 4 days of work on this module to support new stuff and fix few things in v0.3.x before I can released it, you can expect a release before the end of the month. |
Thanks for the update. I look forward to the new realease. Thanks for all your hard work and hopefully we can start to contribute too Mike On Wed, Jun 12, 2013 at 10:21 AM, Remy Loubradou
Mike Merritt-Holmes NOTICE AND DISCLAIMER This email (including attachments) is confidential. If you are not the Business Address: 16-24 Underwood Street, London N1 7JQ |
Hi! Just wanted to say I like your library but also eagerly waits 0.3.X since I now have a need for updates and optimize. I have solved my problem by hooking in to the client.update method "fixing" the query before it is sent. Thanks for your hard work! |
Thanks man! When I saw the age of this issue I cried, quite shameful ... but I still intend to do it. |
This issue seems still to be unresolved? Is there any interest in patches for this? |
Hi @marc-portier, Yes, you're right it is unresolved, there is some changes in the branch v0.3.x that fix some of the issues with Solr 4 but the branch is not yet ready to be merged. Would you like to work on it? |
Yep. Will need some guidance though. I need thuis module in a project. And i rather include a broad known release then my own fork. So what prevents merge? Which tasks do you want tot delegatie? |
Great, I will look through the issues again this evening and come up with something. What is missing or not working now for your project that you need? |
Don't think I'll be having very fancy requirements, I'm a simple bloke :) Seriously: But as I said: the comfort of a nicely numbered release is worth something too, so I'm open to some extra mileage to help us achieve that. |
Ok sounds good to me! I have organized a bit the issues, so in order to land v0.3.0 in npm we need to close those https://github.com/lbdremy/solr-node-client/issues?direction=desc&labels=v0.3.x&page=1&sort=created&state=open, we may need to add some more as we find issues along or missing features. But mainly the first step is to reach 100% test coverage (I have added a section in the README to explain how to get the report on the actual test coverage), as we write the tests we need to make sure we have an example per feature in the folder When we're done with that we can add missing feature of Solr 4. P.S: I just fixed some issues and made some changes on the branch v0.3.x, so you may want to pull before getting started :) |
Cool. 2014-07-16 2:09 GMT+02:00 Remy Loubradou notifications@github.com:
|
Great, |
thxs for that. 2014-07-16 12:20 GMT+02:00 Remy Loubradou notifications@github.com:
|
Landed on npm version 0.3.0 |
E.g. the path for update is now update/ and not update/json.
The text was updated successfully, but these errors were encountered: