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

Major Update - LokiJS 2.x.x #525

Closed
Viatorus opened this issue Jan 8, 2017 · 12 comments
Closed

Major Update - LokiJS 2.x.x #525

Viatorus opened this issue Jan 8, 2017 · 12 comments

Comments

@Viatorus
Copy link
Collaborator

Viatorus commented Jan 8, 2017

Hey everyone,

I want to move forward with you to a new major release of LokiJS.
Let us discuss what our goal for 2.x.x should be and how we reach it.


Goals for LokiJS 2.x.x:

Procedure:

  • Finish last feature and close feature requests for v1.4
  • Make v1.4 "final" as is and just maintainance for bug fixes
  • Merge changes inside master to branches 2.0.0.
  • Create new repository for LokiJS2.
@Viatorus
Copy link
Collaborator Author

Viatorus commented Jan 8, 2017

Here are some thoughts from me:

  • @Cortys and some other of you have already integrate ES6 into the working branch 2.0.0. But currently the master is ~20 commits ahead. I am sure, keeping track of these changes between the branches is not to easy and also demotivating by not knowing the goal.

    To overcome this problem I would stop adding features to the current version (1.4.x) and only fix some bugs (according to expenditure and severity). All new and open feature request should be target for 2.x.x.

    • When should we start to stop featuer request for 1.4.x?
    • How long should we maintenance bugs 1.4.x?
  • I recommend to split LokiJSs main file into smaller ones if possible. There are currently ~5.5k lines of code. It would be easier to maintenance. But we should still build a non minified file for easy integration into a single html file (avoid many includes).

  • There are currently over 100 issues, some are out of date, solved or irrelevant. Almost all are not labeled.

    • We should tidy up all issues by labeling, removing or solving them. ;)
    • We should also use githubs project to better manage progress/issues/todos.

That is all from me, what do you think? =)

@Cortys
Copy link
Collaborator

Cortys commented Jan 8, 2017

@Viatorus Some time ago I began working on bringing the changes from master into the 2.0 branch but due to a lack of time I did not finish it.

  • Because the work required to merge master into 2.0 will only increase over time, locking 1.4 feature-wise seems like a good idea to me.
  • I agree that splitting the codebase should be of high priority. IMHO locking down the amount of changes allowed to 1.4 would be a necessity before this can be done though.

For now I think I'll try to finally complete the master -> 2.0 merge within the next few days. That should make it easier to move forwards with the 2.0 release.

@obeliskos
Copy link
Collaborator

Hey guys, this sounds in line with my objectives for winding 1.4x branch down to a maintenance support. Since the last merge I have overhauled the serialization subsystem but I would imagine the new LokiMemoryAdapter and LokiPartitioningAdapter would just need their interface to be 'promis-ified'. If this proves too much work, perhaps you can just temporarily disable the TravisCI (if needed) and I will attempt to update any issues based on work already done by @Cortys. I also updated a lot of unit tests to increase code coverage which can be commented out if they need refactoring.

I was made aware of another minor functional gap which I could see being a final (minor) addition to close out non-maintenance additions. We keep binary indices generated by sorting on a property but we don't allow simple sorted retrieval which can leverage that index. That should be simple and I hope to just add that tonight or tomorrow at latest.

Not sure sure the best way to 'support' 1.4 branch after we move to 2.0.0 active branch... perhaps we should elevate 2.0.0 to its own GitHub project and just duplicate crititcal fixes on that project.

@techfort
Copy link
Owner

techfort commented Jan 9, 2017 via email

@Viatorus
Copy link
Collaborator Author

Viatorus commented Jan 9, 2017

Thank you for your input.

To summarize:

  • @obeliskos merges the last feature for v1.4. After that, the feature section is closed. And v1.4 is just maintainance for bug fixes.
  • In the meantime @Cortys and maybe some others merging the changes from the current master to the branch 2.0.0.
  • LokiJS2 will be an own repository. Naming: techfort/LokiJS2 @techfort ?
  • The branch 2.0.0 will be used as the developer branch inside the new repo LokiJS2
  • After that, we redesign LokiJS2 in

    a radically different way ;)

What should we do different/better LokiJS2?

I updated the main post accordingly.

obeliskos added a commit that referenced this issue Jan 9, 2017
…nce method ( #525 #524 )

before this commit, coll.chain().simplesort('username').data() would not
use binary index to speed up results.... it will now (with no filters).

resultset (chain) now contains an 'instance' method which will create an
anonymous collection populated with objects in the current resultset...
those docs were stripped of $loki and meta properties so those will be
reassigned by new collection.  Can pass collection options object to
instance().  Terminates chain by returning anonymous collection (not
linked to database).

updated jsdoc and rebuilt minified
@obeliskos
Copy link
Collaborator

obeliskos commented Jan 10, 2017

Ok, I think that will do it for feature additions to 1.4.x branch. Suppose we could allow pull requests on 1.4 if end users wish to extend its lifespan but those don't need to be brought over to 2.x... and we can just duplicate bug fixes.

New 2.x repo sounds great. I will let you guys decide how radically you want to take LokiJS2... and how you wish to verify performance during architecture changes... perhaps our benchmarks should be upgraded as well.

@Cortys
Copy link
Collaborator

Cortys commented Jan 12, 2017

As discussed I just merged master #528.

@techfort
Copy link
Owner

techfort commented Jan 16, 2017

@Viatorus @Cortys @obeliskos @VladimirTechMan @alexandernst you're all invited to join LokiJS-Forge. I made LokiJS2 a repo under that organization, it seems fairer than for it to be under my personal account, given that my contribution to LokiJS is - and will be for the foreseeable future - quite limited (regrettably, time is really not on my side). We can start design and implementation discussion over at https://github.com/LokiJS-Forge/LokiJS2

PS. did i forget anybody?

@Viatorus
Copy link
Collaborator Author

Thank you. This is a good idea.
You have the honor for the initial commit. ;)

@Viatorus
Copy link
Collaborator Author

@techfort - maybe first make an initial commit to master with just a .gitignore and Readme.
We should push the V2.0.0 branch into a developer branch in the new repository.

@skbergam
Copy link

skbergam commented May 4, 2017

Hi there. Is LokiJS 2.0 available yet? Wondering if there is any good in-memory full-text search engine I can use for a production web site. I have less than 1,000 products to index so it's a pretty small DB.

@Viatorus
Copy link
Collaborator Author

Viatorus commented May 5, 2017

Hello, please have a look at:
https://github.com/LokiJS-Forge/LokiJS2/tree/feature/inverted_idnex
I am still working on it (last commit does not mean last working process).

But it is still in development.

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