c3js / c3

:bar_chart: A D3-based reusable chart library
http://c3js.org
MIT License
9.34k stars 1.39k forks source link

Is this project still being actively maintained? #1540

Closed jpruetting closed 8 years ago

jpruetting commented 8 years ago

Is this project still being actively maintained?

It looks like the release cadence has slowed down considerably, the author's public activity on Github has ceased, and issues are piling up.

Last release: March 17th, 2015 0.4.10 Author's last activity: October 21, 2015 masayuki0812 Issues: 463 open issues

countzen2000 commented 8 years ago

I wish I could use this library but it seems.. a bit dead. Gotta move on to something else. :(

say8425 commented 8 years ago

I think so. But I can't find something else better.

miguelpaz commented 8 years ago

If its open source it means it can be supported by the community or not? El ene 21, 2016 12:10 AM, "Cheon Park" notifications@github.com escribió:

I think so. But I can't find something else better.

— Reply to this email directly or view it on GitHub https://github.com/masayuki0812/c3/issues/1540#issuecomment-173454439.

tom-christie commented 8 years ago

@miguelpaz Someone could fork the project and maintain it themselves. Any volunteers?

@say8425 I just came across TauCharts (https://github.com/TargetProcess/tauCharts) which looks very similar in terms of usability. Not sure about feature parity or implementation.

aendra-rininsland commented 8 years ago

Howdy folks, So, here are the issues we're facing.

  1. Only @masayuki0812 and myself have write access, and I've always been more of a documentation person. The impression I've gotten from him is that he's massively busy with work (as I also am). Although he's recently been more amenable to the idea of me merging commits, I've frankly just been way too busy to do anything significant (the fact I myself am still pretty unfamiliar with and, tbth, a bit daunted by C3's internal API doesn't help either).
  2. I've been utterly useless in triaging issues the last six months, which I'm very sorry for. Despite my requesting help on the Google Group previously, nobody's really offered to help manage the issue queue (though there are definitely members of the community who are helping out here and there, mainly on the Gitter channel for immediate support).
  3. The list of people with write access really hasn't grown organically to accommodate a project of this size. In all honesty, we should have 4-8 people with write access by this point, comprised of something like a "core development" subteam of 4-6 people and 2-3 documentation/issue triage people.

re: forking the project — that's certainly an option, and one I've considered myself several times at this point. I'm about 50% of the way through rewriting everything so it uses CommonJS modules and Webpack instead of concatenation and grunt, which I see as a necessarily first step towards making everything more modular and testable. I may then later rewrite everything as ES2016, using ES6 modules and language features. I've also considered doing that but instead using TypeScript, though am not sure that would make the project any easier to contribute to (regardless, I lurrrrves me some TypeScript and will probably write a c3.d.ts at some point).

That all said, I'm still pretty hesitant because I simply don't have the time to fix all of C3's problems myself and have no desire to be the primary maintainer of a fork. I still think there's a ton of life left in the project (for instance, I do a lot of stepped explanatory graphics in my work, and I haven't found anything as easy to use as C3 for when I want to do things like programmatically select data points and whatnot), but I feel everyone would probably benefit if I took a step back and let somebody else lead development on a fork, if that's what everyone in the community eventually decides to do.

My two.

(If you want to help manage the project in any way — whether that's issue triage, docs or whatever, please don't hesitate to get in touch. I think, even though C3's having a bit of a downturn at the moment, ultimately discussions like these are critical for the continued maintenance of the library.)

jpruetting commented 8 years ago

This is a very common problem with open source libraries and I don't think anyone should be declaring the project 'dead' just yet. Moving things to a dedicated Github org (c3/c3) would be a good step forward, as well as recruiting additional maintainers with commit access.

gitawego commented 8 years ago

i think @jpruetting 's suggestion is pretty good.

aendra-rininsland commented 8 years ago

@jpruetting @gitawego I'm 100% on board with moving everything to a dedicated org, have mentioned it previously in #1440. Alas, I don't have admin capabilities on the repo so we'd have to get agreement from @masayuki0812 for it to happen.

tom-christie commented 8 years ago

@aendrew Are you in touch with @masayuki0812?

On a related note, I noticed that http://c3js.org/ is not loading.

aendra-rininsland commented 8 years ago

@tom-christie Last I heard from him was via email in October; we had talked about organising the community more after a thread similar to this one was sent around to the Google Group. If there's some sense of consensus that the biggest thing holding back the library is it not being in its own org, I'll email him to ask about whether he'd mind doing that (I generally try to keep all project-related correspondence to GitHub as it keeps it more transparent that way and I personally find it really annoying when people email me directly about open source stuff, but at the moment email seems like the one medium he's responding to).

re: the site, is working fine for me. It's hosted on GitHub Pages so if there's a connection issue, it's more GitHub's problem than anything we can solve.

basilesimon commented 8 years ago

@aendrew I'm very sad to hear that you're left on your own while the issues accumulate. I've been a heavy user of c3 myself, but the performances issues have never been addressed, and I'm afraid I'm going to have to move on. I hope @masayuki0812 will find the time to engage with the issues or approve a new way of working that would engage more people with this nice work - the dedicated org sounds like a solid plan.

rosorrentino commented 8 years ago

I think this project is great and it's amazing how far it gone with so few maintainers (just read aendrew comment) You should add a donation button in project page, I think if all users give a little, developers would have something more to dedicate to this project.

aendra-rininsland commented 8 years ago

@rosorrentino That's not the worst idea; maybe something like Gratipay for bug bounties?

mcarey1590 commented 8 years ago

I actively use c3 and believe it to be one of the best open source charting solutions out and would be willing to help with development and issues given c3 was moved to a dedicated org as mentioned.

samedii commented 8 years ago

@aendrew Haven't heard anything yet? Also, gratipay is a good idea

xmehaut commented 8 years ago

Sad to hear that the project could be down. I've had for my own purpose created a React/Typescript C3 version based upon the C3 code. Maybe could it be a new start?

Example of code :

    <Chart key="c1">
        <XAxis name="x" data={[30, 50, 100, 230, 300, 310]} label="dummy"/>
        <Group>
            <Line name="data1" data={[300, 350, 300, 0, 0, 120]} />
            <Spline name="data2" data={[130, 100, 140, 200, 150, 50]} />
        </Group>
    </Chart>
    <Chart key="c2">
        <Line name="data1" data={[200, 150, 200, 66, 88]}>
            <XAxis name="x1" data={[30, 70, 100, 240, 300]} />
            <YAxis name="y"  min={-400} max={400} label="data1"/>
        </Line>
        <Line name="data2" data={[130, 100, 140, 200, 150, 50]}>
            <XAxis name="x2" data={[30, 50, 120, 240, 300]} />
            <YAxis name="y2"  format={d3.format("$,") } min={-400} max={400} label="data2"/>
        </Line>
    </Chart>

    <Chart key="c3">
        <XCategoryAxis name="x" data={["cat1", "cat2", "cat3", "cat4", "cat5"]} />
        <Line name="data1" data={[200, 150, 200, 66, 88]}>
        </Line>
    </Chart>

    <Chart key="c4">
        <XTimeSeriesAxis name="x" format='%Y-%m-%d' data={['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06']} />
        <Line name="data1" data={[200, 150, 200, 66, 88]}>
        </Line>
    </Chart>

    <Chart key="c5">
        <Area name="Data1" data={[200, 150, 100, 66, 188]} />
        <Step name="data2" data={[250, 150, 200, 33, 288]} />
        <AreaStep name="data3" data={[100, 150, 300, 66, 8]} />
        <AreaSpline name="data4" data={[70, 250, 100, 33, 388]} />
        <Bar name="data5" data={[70, 150, 55, 66, 56]} />
        <Scatter name="Serge" data={[30, 350, 56, 33, 87]} />
    </Chart>

    <Chart key="c6">
        <Pie name="Pie" data={[200]} />
        <Pie name="Pie2" data={[100]} />
    </Chart>

    <Chart key="c6.2">
        <Pie name="setosa" data={[0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2]} />
        <Pie name="versicolor" data={[1.4, 1.5, 1.5, 1.3, 1.5, 1.3, 1.6, 1.0, 1.3, 1.4, 1.0, 1.5, 1.0, 1.4, 1.3, 1.4, 1.5, 1.0, 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7, 1.5, 1.0, 1.1, 1.0, 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2, 1.4, 1.2, 1.0, 1.3, 1.2, 1.3, 1.3, 1.1, 1.3]} />
        <Pie name="virginica" data={[2.5, 1.9, 2.1, 1.8, 2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2.0, 1.9, 2.1, 2.0, 2.4, 2.3, 1.8, 2.2, 2.3, 1.5, 2.3, 2.0, 2.0, 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6, 1.9, 2.0, 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1, 2.4, 2.3, 1.9, 2.3, 2.5, 2.3, 1.9, 2.0, 2.3, 1.8]} />
    </Chart>

    <Chart key="c7">
        <Donut name="Donut1" data={[100]} />
        <Donut name="Donut2" data={[200]} />
    </Chart>

    <Chart key="c7.2">
        <Donut name="setosa" data={[0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.3, 0.2, 0.2, 0.1, 0.2, 0.2, 0.1, 0.1, 0.2, 0.4, 0.4, 0.3, 0.3, 0.3, 0.2, 0.4, 0.2, 0.5, 0.2, 0.2, 0.4, 0.2, 0.2, 0.2, 0.2, 0.4, 0.1, 0.2, 0.2, 0.2, 0.2, 0.1, 0.2, 0.2, 0.3, 0.3, 0.2, 0.6, 0.4, 0.3, 0.2, 0.2, 0.2, 0.2]} />
        <Donut name="versicolor" data={[1.4, 1.5, 1.5, 1.3, 1.5, 1.3, 1.6, 1.0, 1.3, 1.4, 1.0, 1.5, 1.0, 1.4, 1.3, 1.4, 1.5, 1.0, 1.5, 1.1, 1.8, 1.3, 1.5, 1.2, 1.3, 1.4, 1.4, 1.7, 1.5, 1.0, 1.1, 1.0, 1.2, 1.6, 1.5, 1.6, 1.5, 1.3, 1.3, 1.3, 1.2, 1.4, 1.2, 1.0, 1.3, 1.2, 1.3, 1.3, 1.1, 1.3]} />
        <Donut name="virginica" data={[2.5, 1.9, 2.1, 1.8, 2.2, 2.1, 1.7, 1.8, 1.8, 2.5, 2.0, 1.9, 2.1, 2.0, 2.4, 2.3, 1.8, 2.2, 2.3, 1.5, 2.3, 2.0, 2.0, 1.8, 2.1, 1.8, 1.8, 1.8, 2.1, 1.6, 1.9, 2.0, 2.2, 1.5, 1.4, 2.3, 2.4, 1.8, 1.8, 2.1, 2.4, 2.3, 1.9, 2.3, 2.5, 2.3, 1.9, 2.0, 2.3, 1.8]} />
    </Chart>

    <Chart key="c8">
        <Gauge name="Gauge1" data={[30]} />
    </Chart>

regards

aendra-rininsland commented 8 years ago

@xmehaut That looks awesome, but I don't know how compatible it is with the current direction of C3. How'd you use TypeScript with it? I've been personally considering writing a TypeScript fork, or a TypeScript definition, or something generally TypeScript-y, and would be great to not duplicate anything you've done.

Everyone — I'm going to take another stab at getting through the open PRs, which I'm merging to the dev branch at present (once @masayuki0812 is okay with how the code looks in that, I'll . Expect that branch to be the most modern but also the least stable.

xmehaut commented 8 years ago

Hi Andrew,

you can find samples in the online and ongoing (personal) doc : http://semantix-ui.appspot.com/

See the Charts/C3 section at the bottom of the sidebar

regards xavier

2016-02-18 14:10 GMT+01:00 Ændrew Rininsland notifications@github.com:

@xmehaut https://github.com/xmehaut That looks awesome, but I don't know how compatible it is with the current direction of C3. How'd you use TypeScript with it? I've been personally considering writing a TypeScript fork, or a TypeScript definition, or something generally TypeScript-y, and would be great to not duplicate anything you've done.

Everyone — I'm going to take another stab at getting through the open PRs, which I'm merging to the dev branch at present (once @masayuki0812 https://github.com/masayuki0812 is okay with how the code looks in that, I'll . Expect that branch to be the most modern but also the least stable.

— Reply to this email directly or view it on GitHub https://github.com/masayuki0812/c3/issues/1540#issuecomment-185711730.

Tropicalista commented 8 years ago

Probably the best solution is to go with a module/plugin architecture to handle the library.

aendra-rininsland commented 8 years ago

Hey all — I've re-written a bunch of the lib to load modularly in CommonJS format; see aendrew/c3#webpackify. It seems to work, even though 49/54 unit tests are currently failing (Edit: All but 1 tests now pass). Any feedback would be great.

bjlbernal commented 8 years ago

Looking forward to contributing Timeline gantt charts (https://github.com/masayuki0812/c3/issues/514) when you adre ready. I've never used CommonJS or AMD, is the build process the same as grunt? If you can point me in the right direction I can start refactoring my Timeline gantt code for a PR to the webpack version.

UPDATE: Assuming I inferred correctly and the install is from http://webpack.github.io/docs/tutorials/getting-started/ I am just running into a few issues. A couple I resolved easily enough. The following files didn't clone into my directory, so I had to copy them from git and create them manually. ./webpack.config.js ./src/index.js

I like having my libraries separate so I had to change the requires for 'd3' to require('../../d3/d3'). I noticed one of them had a comment of // Controversial!. I will assume it is for the same reason. Is it possible and how do we set a constant for it dependencies like this?

Last issue after running webpack --progress --colors:

ERROR in ./src/index.js
Module not found: Error: Cannot resolve module 'lodash' in /opt/dwportal/app/webroot/js/c3Mod/src
 @ ./src/index.js 2:8-25

Is it this https://lodash.com/? Is this a necessity going forward? If so shouldn't it be included in the repo? I wasn't able to find it. (UPDATE: Ran the command npm i --save lodash and it got resolved. The should also be included as part of the README prerequisites when that gets updated. Currently seeing the 0.4.11 README).

Tried using the c3.js that I built with webpack --progress --colors in our project today and still having issues with axis.s 1) The inherit() is undefined in axis.js. 2) Once I copied it into axis.js and rebuilt, var API is undefined when inherit is called. 3) Any attempt I've made to include missing functions, require a file containing an undefined object, or just avoid using the undefined function resulted in another conflict. Last one being c3_chart_internal_fn is not defined.

I'm going to back off until you have sometime to response. to issues already presented.

jpruetting commented 8 years ago

It looks like @masayuki0812 has started responding to issues again.

@masayuki0812: Would you be willing to move this project over to the c3js org you created and add some additional maintainers?

aendra-rininsland commented 8 years ago

Everyone! I am happy to announce this project is now on the c3js GitHub organisation! Many thanks to @masayuki0812 for moving it there!

To that end, I'm going to start organising issue triage. If you want to help churn through the ~500 open issues, tagging good issues and closing irrelevant ones, please let me know!

tamzinblake commented 8 years ago

Probably this issue should be closed then?