Skip to content
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

Merge level and level-browserify #50

Closed
1 task
ralphtheninja opened this issue Aug 16, 2017 · 17 comments
Closed
1 task

Merge level and level-browserify #50

ralphtheninja opened this issue Aug 16, 2017 · 17 comments
Assignees

Comments

@ralphtheninja
Copy link
Member

ralphtheninja commented Aug 16, 2017

The only difference is that level-browserify has a browser.js which pulls in level.js. What do you think of merging them into one, e.g. deprecating level-browserify and adding level.js to level?

It would mean less to maintain and also simple to use level and it "just works".

Upcoming version of level will bundle levelup@2, together with encoding-down and have a promise layer as well, for people that prefer that.

cc @Level/owners

  • Release level-browserify@2 first so we can get some testing
@ralphtheninja ralphtheninja self-assigned this Aug 16, 2017
@mcollina
Copy link
Member

I'm 👍 on that. Can we add level.js to the org itself? It might need some maintenance as well.

@vweevers
Copy link
Member

+1 in principle and +1 on adding it to the org. But yeah, it might take some work to get it up to par with levelup@2. Don't underestimate that :)

@ralphtheninja
Copy link
Member Author

@vweevers Currently I'm full time on level so am willing to spend time on it! Also @juliangruber is helping out.

@ralphtheninja
Copy link
Member Author

After updating myself on the code, I've realized that it's actually level-packager that pulls in levelup and that should also pull in encoding-down. Just fyi.

@ralphtheninja ralphtheninja added this to the v2 milestone Sep 3, 2017
@ralphtheninja
Copy link
Member Author

I think we should release level 2.0.0 first. The work on level.js will take a lot of time and we can release that as a minor once the new major is out.

@huan
Copy link

huan commented Oct 2, 2017

+1

level should be the first choice for the user because its name is short and straight forward.

Make level better and let it replace level-browserify and level.js seems a good idea for me.

And I'd like to suggest to rewrite level module from JavaScript to TypeScript because it will be very easy to integrate with the typings from levelup and leveldown.

@vweevers
Copy link
Member

vweevers commented Oct 2, 2017

And I'd like to suggest to rewrite level module from JavaScript to TypeScript because it will be very easy to integrate with the typings from levelup and leveldown.

Big -1. The primary audience consists of JS users.

@huan
Copy link

huan commented Oct 2, 2017

@vweevers I agree that we must always make the JS users happy.

However, write in TypeScript will NOT change anything to the end JS users.

All JS users could still use the module by npm install and const level = require('level') without any problem.

The only difference is that we write in TypeScript. And we compile the module to JavaScript before we publish it to NPM.

So please don't worry about that, JS users will stay happy with JS. :)

@vweevers
Copy link
Member

vweevers commented Oct 2, 2017

The audience also includes the maintainers and contributors that write this code :)

Speaking for myself: I don't know TS, nor am I interested in it at the moment. I would very much like the core of the Level ecosystem to stick with JS as the primary language. This probably also goes for @ralphtheninja, @juliangruber and a whole bunch of other people here.

That's not to say we can't accommodate TS users. We are more than happy to include typings and I applaud the amazing work that @MeirionHughes and yourself have done so far and will do 👌

@huan
Copy link

huan commented Oct 2, 2017

@vweevers I fully understand your feelings.

TypeScript did not feel good at the first look, I even feel very bad when I saw Angular(Angular2) only provide the documents with TypeScript.

But after trying it a little bit, I start to know how it could make the developing job more easy and robust.

Here's a great introduction video of TypeScript by Anders Hejlsberg at https://channel9.msdn.com/Events/Build/2017/B8088/, would strongly recommend taking a look.

@MeirionHughes
Copy link
Member

MeirionHughes commented Oct 2, 2017

@zixia I think the maintainers here are die-hard js fans.

I don't see the harm in starting new repositories as typescript, but think moving this entire eco-system over is a huge undertaking and will be painful to ensure nothing breaks.

Right off the bat, you won't be able to do the commonjs + es2015 default export hack. ts will simply complain about it if you try to do both. We're getting away with it at the moment because its just the typings that have gone with only the es2015 module.

Currently, its all prototype based too and quite well supports the older systems. If you have typescript try to "down-compile" you'll get a considerable amount of code-bloat... or a dependency to tslib

@ralphtheninja ralphtheninja removed their assignment Oct 2, 2017
@ralphtheninja ralphtheninja removed the wip label Oct 2, 2017
@ralphtheninja ralphtheninja removed this from the v2 milestone Oct 11, 2017
@ralphtheninja ralphtheninja self-assigned this Jan 9, 2018
@ralphtheninja ralphtheninja changed the title Merge level and level-browserify? Merge level and level-browserify Feb 13, 2018
@ralphtheninja ralphtheninja removed their assignment Aug 10, 2018
@ralphtheninja
Copy link
Member Author

This would resolve problems like #34

@mcollina
Copy link
Member

+1!

@vweevers
Copy link
Member

After level@5 is out (Level/community#56), we can:

  1. Update level-js to use abstract-leveldown@6, semver-major
  2. Add a browser.js variant here, semver-minor
  3. Deprecate and archive level-browserify

@mcollina
Copy link
Member

+1!

@vweevers
Copy link
Member

Seeing as level-js is ready, we might as well do this now, and include it in the level prerelease.

@ralphtheninja WDYT?

@ralphtheninja
Copy link
Member Author

Sure :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants