-
Notifications
You must be signed in to change notification settings - Fork 140
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
Follow-up of GSoC: remove obsolete parts from main gem #405
Comments
Probably, the work should be done on some |
Since it's usually an understanding that
|
👍
👍
👍
👍
👍 Looks like we are on the same page currently :) |
So if we want to shift the whole plotting libraries to I will try to do this part of work. |
@zverok looks like a good plan. I would be glad to help on some pieces as time permits. Since this is toward v1.0, it may be worth reviewing Daru API for consistency. As 1.0 is a major version I would think it would be significantly more difficult to make any API adjustments post 1.0. Two examples that come to mind are the discussion on to/from-read/write on issue #280 and the inconsistency between A somewhat related question would be, does Daru have a deprecation policy and versioning guideline in place to help with breaking changes? This can help users with migration to newer versions of Daru and becomes important due to its growing adoption. |
Just too keep track of another API proposal discussed, issue #131 talks about changing #dv to #to_daru_vector. |
Nice to hear that!
Yes, it would definitely a huge review. As @v0dro officially made me the maintainer, I am planning a Big Autumn Cleanup for a huge part of our ancestry Hold your hats.
We have |
To be honest, current preferred by community (outside Rails one, ofc) Ruby style is "avoid monkey patches of core classes if only possible". I believe we'll follow this rule in 1.0 |
@baarkerlounger, since you're working on release cycles, will it possible for you to take inspiration from your previous work and other gems and frame a 'release policy' for daru which we will consistetly follow for every single new release in the future? I think it is very important given that this is becoming a popular project and more people have started contributing to it. Please share your thoughts on this issue: #411 |
Also, I think the next version (after the great cleanup) should be |
Well, you are the boss, but I believe with current usage, number of GitHub stars, and so on and so forth -- the new version with seriously updated docs, removed deprecations, new importers/exporters, ... well, I really believe it could be called The One-Point-Oh. As about #328 -- I am not sure that it should become the main implementation of Daru. Because Daru is useful also as a small, easy-to-install, almost-no-dependencies concept of DataFrame and Vector, and with daru-io and daru-view even more so (like "take those 300 rows from DB and export them to Excel"). I understand the goal to compete with pandas, yet, to be honest, I still believe all internal speedups with dependencies on side libraries and compiled codes should be only plugins, not the core of the library. Of course, you may have another opinion, and, like I've said, you are the boss. |
I guess the outcome of this version numbering should be part of the 'release policy' - personally I like have x.y.z with x number bumps being used only for breaking changes that will require user code to change, y being bumped for new features, z being used for bug fixes only. That way users can have consistent expectations about behaviour from the numbering. So I think 0.2.0 or 1.0.0 should depend on whether the great cleanup is backwards compatible or not. |
Hmmmm yes @baarkerlounger is right. @zverok I don't think there will be too many breaking changes due to the cleanup given that we're essentially only moving out the IO and view methods, right? About the data storage, I think it will probably be a plugin which will over-ride all core daru functionality once required. |
I also think there should be another release when the currently open PRs are merged. |
Based on autumn cleanup review @zverok mentoned in an earlier note, if we have API consistency being handled in this release, labeling it 1.0 might make sense. In case it's only internal cleanup I suppose we could call it 0.2.
Just to cast my vote here, this approach makes sense IMHO. It makes it very easy to get started with Daru. Having a huge install by default can sometimes be painful. I had issues earlier when I tried the full install of SciRuby (IIRC it was some compilation issues with gsl) and nearly ended up going with Pandas. Fortunately, a Daru only install worked smoothly and I could happily use Ruby/Daru. |
Well, my idea of the cleanup (described in original issue) is:
So, I've meant that splitting out daru-io is a BIG move, and it could be a reason for dropping the outdated things, and doing a New Big Shiny release. |
Yes I agree. @zverok do you plan to work on this? |
Right now sitting and looking into the large file with a plan :) Will publish today or tomorrow's morning! |
I've created branch As for myself, I am planning currently to work on updating specs (and making a list of methods to deprecate/redesign), and if evrybody is OK with it I'll work just in the branch, without PRs. |
@zverok why no PRs? Will end up with a potentially huge branch to review? |
@baarkerlounger because I am planning mostly to do "maintenance" tasks (change minimal Ruby version, facelift code style here and there and so on), and also gradually update specs between that, it would be work-in-progress of preparation of Big Release. It would be iterations like "look at Index, fix specs, discuss possible deprecations, fix a bit more specs, cleanup some method" and so on. (And one huge PR "fix all specs" would be almost un-reviewable anyways.) |
I've submitted PR #430 to port IO modules away from daru, please review. (I'll resolve the merge conflict along with review changes) 😄 |
JFYI: not sleeping. Started to refactor specs & docs, which somehow leaded to HUGE lib review, current results (WIP, not passing specs at the moment) in https://github.com/SciRuby/daru/tree/awfully-big-refactoring branch. Current plan is to finish it there, then merge into |
daru-io
there should be a period of cleaning updaru
of duplicating things (importers and exporters), and related outdated stuff, like mentioned here: Please do not show the Install optional dependencies message everytime on runtime #404daru-io
should be hard dependency fordaru
(likerspec
installsrspec-core
,rspec-expectations
and so on) -- maybe in future with extraction ofdaru-dataframe
-only gem, maybe not. But the point is, if somebody just install daru and wants his DF from CSV, they don't need to think aboutdaru-io
explicitly.daru
that can be removed due todaru-views
existance, subject to investigate.I am ready to lead the work (and do the most complicated parts myself), and propose the following (really hi-level) timeline:
@v0dro @lokeshh @athityakumar @Shekharrajak @parthm @rainchen please feel free to share your thoughts, and notify if you are willing to take some part of the work.
The text was updated successfully, but these errors were encountered: