-
-
Notifications
You must be signed in to change notification settings - Fork 267
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
0.9 WIP #129
Conversation
and, if I can actually find the time, I'd really like to fix #114 / Level/leveldown#32 too, it's a bit of a mess and I keep seeing people get tripped up by trying to call |
I'd like some feedback & help with 0efdc4c, it's the big shift away from LevelDOWN as a strict dependency. It's not There is a message in the I've also renamed the instance variable The real problem I have here is the lack of version pinning. Since we don't have an @maxogden you can use (btw, there was a reorg in |
also, never emit "end" after "close".
See latest commit, 67ecfa5, for a semver test on leveldown. If LevelDOWN is required (i.e. a
At this stage the LevelDOWN API is unstable enough that I think that it's important to be careful about version matching. Thoughts? |
Oh, and I've added the |
looks good to me |
We should pull browserify and the shim from leveldown when this lands then |
I've merged in @juliangruber chained batch work from #137 that exposes LevelDOWN's direct implementation of LevelDB's AbstractLevelDOWN now has a matching implementation that works; MemDOWN uses the latest now and it works nicely with chained batch operations. LevelDOWN is up to date too with a new @0.3.1 release (I discovered after I released @0.3.0 that if you submit an empty batch it can segfault so I added simple protections for this case and released a patch version). LevelDOWN also has @mcollina's change to iterator errors; I think the only thing left to do is for anyone that's interested to review this new work and then we can release 0.9. I'm still hesitant because of the userland breakage that's going to happen when LevelDOWN is suddenly not bundled with LevelUP, but a note at the top of the README will hopefully help (still needs doing). |
if (leveldown) | ||
return leveldown | ||
|
||
var requiredVersion = require('../package').devDependencies.leveldown |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Browserify chokes here -- it doesn't seem to auto-find the ".json" suffix. I had to add a .json to make it happy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
50% performance increase in ReadStream by removing one bind.
I'm wavering again on the new Does the inclusion of this new syntax make it significantly more difficult to extend LevelUP? @dominictarr have you looked at it at all and thought about how this might impact on hooks and sublevel? In its current form, it'll likely require intercepting the creation of the |
@rvagg I'm in support of this api. It is actually quite close to how I'm extending batch already, for example, in level-hooks calling the hook for each op (rather than the batch as a whole). |
I've added checks to disallow any operations on an existing I think we're probably ready to push a release here, I'm satisfied that the identified memory leaks in LevelDOWN are now taken care of, I'll wait for @kylegetson to give some feedback on Level/leveldown#44 though. I also need to find time to do a blog post on the major change we're making for this release (removing the LevelDOWN dependency) and explain the wins that come from this. So y'all have a bit of time to review the changes in this branch before it gets published. |
Post is up: http://r.va.gg/2013/05/levelup-v0.9-some-major-changes.html I might try and publish 0.9 tomorrow some time unless something else comes up. |
About to release this but I should say here that I've deprecated direct access to some LevelDB-specific stuff:
They are still in the code and tests but the documentation talks about using LevelDOWN directly for these. It's unreasonable to expect non-LevelDB back-ends to implement these very specific functions and it's not hard to use LevelDOWN directly now. This may also apply to snapshots when they make it in, but we can discuss that in another issue. |
Contains #128 by Dominic, a .jshintrc update and some README updates. Will probably also include #127 by @mcollina.
I'm also considering removing leveldown from the deps list for this release too, it's a big step though, but I haven't heard any negative feedback from #119 as long as we keep the _level_ package up to date and available for people wanting a fully bundled option. There's more activity now implementing LevelDOWN compatible interfaces, particularly by @maxogden and @No9, so it's making more sense to do this now.