candy-chat / candy

JavaScript-based multi-user chat client for XMPP.
http://candy-chat.github.io/candy
MIT License
1.32k stars 370 forks source link

Future of the candy project #400

Closed mweibel closed 8 years ago

mweibel commented 9 years ago

Hi all

As you might have seen, i released a new candy version today. Candy as well as candy-plugins have been merged into master. Tbh i didn't test much and that's why i'm opening this discussion. Neither me nor @pstadler have contributed significant changes in the past year or so. We have been busy with work and free time and aren't using XMPP that much anymore to maintain an awesome software project as candy is.

I propose to give the lead of the project to anyone who's willing to step in. I'd remove the dev branch and just commit to master / make prs to master.

I'd propose to give the lead to @benlangfeld, @melissanoelle and @bklang.

What's your opinion?

pstadler commented 9 years ago

I'm in favor of that. It's also a good time to decide over project goals.

kripton commented 9 years ago

I completely agree with not needing a dev-Branch. About leader/maintainership I cannot comment since I'm too new to this project.

benlangfeld commented 9 years ago

I would be happy to take on maintainership of Candy; it fits with the suite of other projects which I maintain. I doubt @bklang will want to be directly involved at this level. I am not sure if @melissanoelle is still using Candy or XMPP in any capacity.

In fact, the Adhearsion Foundation would be happy to accept Candy as a member project in order to ensure its long-term sustainability if this is something that interests you.

As for versioning, it does seem pragmatic to cease assigning version numbers to Candy and to avoid promises of backward compatibility until such point as we are more firmly decided on a resting point for the API and the direction of the project overall, which I think should be discussed formally.

mweibel commented 9 years ago

Ok. Adhearsion Foundation sounds good to me, what would be the steps involved to move it there? :)

pstadler commented 9 years ago

@benlangfeld sounds good!

@mweibel how about the demo? Currently http://www.swissjabber.ch/ is hosting a public XMPP room on their server while the client is hosted on your domain, is this correct?

In the past we had the issue that the demo stopped working every now and then and we had to ask our contact at nine.ch for bringing it back up. We should inform them about the changes as soon as a decision is made whether we'd like to continue to use their server or not and make an short introduction probably.

I suggest to move the client to another place as well.

malakada commented 9 years ago

I am not currently using Candy or XMPP. I'm not sure that I'm interested in maintaining anything on Candy Core at the moment, to be honest. In a perfect world where time is more plentiful, I'd be interested in changing over the Candy front-end to React or some such and maybe looking at detangling Candy Core from a front-end Candy client (or at least simplifying it), but it's likely not going to happen given my current priorities.

I am not sure that given my current goals and time commitments that it even makes sense for me to be included on this team because I don't plan on actively developing on Candy right now.

Moving this project to the Adhearsion Foundation probably makes a lot of sense for this project, as they're both concerned with communication and this project could be a good complement to that. Also, all of the members of AF are pretty vocal/active in their respective communities and it would help get this project some face time.

And I would also fully support @benlangfeld taking ownership of this project.

terraboops commented 9 years ago

Great to see it moving to a Foundation, I just selected Candy for a project and would hate to see it languish.

+1 on improvements to front-end, moving towards something closer to a Web Component. I'd be interested in assisting with this if there were other people interested...

mweibel commented 9 years ago

I'd be interested in changing over the Candy front-end to React or some such and maybe looking at detangling Candy Core from a front-end Candy client (or at least simplifying it), but it's likely not going to happen given my current priorities.

absolutely, this is in my opinion also the way to go.

@tylermauthe welcome ;) and please feel free to get involved in contributing!

benlangfeld commented 9 years ago

@tylermauthe I'd love to hear your thoughts on the technical future of Candy. I will post my own at the weekend.

@pstadler What is nine.ch used for? If swissjabber.ch is happy to continue hosting the XMPP server, and the demo client is hosted on Github Sites, then I think were good.

@mweibel In order for Candy to become a member project of the Adhearsion Foundation, it would simply require that control of the project (ownership of the Github organisation, in this case) be provided to a member of the board of the foundation (me is fine) and that all past (significant, defined as a number of LoC greater than 5% of the total) contributors sign a copyright assignment, assigning their copyright in contributions to the project to the Foundation such that the Foundation may assert copyright over the whole codebase. I will organise this assuming you and @pstadler agree in principle. Optionally, the candidate member project may move its repositories to the Adhearsion organisation on Github but that is by no means necessary.

➭ git fame
Blame:         100% |ooooooooooooooooooooooooooooooooooooooooo| Time:   0:00:02

Total number of files: 137
Total number of lines: 12,677
Total number of commits: 496
+---------------------+-------+---------+-------+--------------------+
| name                | loc   | commits | files | distribution       |
+---------------------+-------+---------+-------+--------------------+
| Ben Langfeld        | 7,115 | 91      | 46    | 56.1 / 18.3 / 33.6 |
| Patrick Stadler     | 2,637 | 81      | 20    | 20.8 / 16.3 / 14.6 |
| Michael Weibel      | 2,331 | 224     | 32    | 18.4 / 45.2 / 23.4 |
| Ben Klang           | 151   | 17      | 12    | 1.2 / 3.4 / 8.8    |
| Melissa Noelle      | 114   | 21      | 11    | 0.9 / 4.2 / 8.0    |
| Radim Novotny       | 69    | 2       | 1     | 0.5 / 0.4 / 0.7    |
| Serge Victor        | 68    | 1       | 1     | 0.5 / 0.2 / 0.7    |
| Strix technica      | 61    | 9       | 4     | 0.5 / 1.8 / 2.9    |
| Sudrien             | 50    | 20      | 9     | 0.4 / 4.0 / 6.6    |
| Santiago Piccinini  | 19    | 1       | 1     | 0.1 / 0.2 / 0.7    |
| Emmanuel Gil Peyrot | 14    | 1       | 1     | 0.1 / 0.2 / 0.7    |
| Cyril Glapa         | 11    | 1       | 1     | 0.1 / 0.2 / 0.7    |
| Paul Donohue        | 7     | 2       | 1     | 0.1 / 0.4 / 0.7    |
| MOZGIII             | 7     | 1       | 1     | 0.1 / 0.2 / 0.7    |
| Rafael Macedo       | 6     | 4       | 2     | 0.0 / 0.8 / 1.5    |
| Vitaly Takmazov     | 5     | 2       | 1     | 0.0 / 0.4 / 0.7    |
| Jannis Achstetter   | 4     | 1       | 1     | 0.0 / 0.2 / 0.7    |
| Antonin Kral        | 2     | 2       | 1     | 0.0 / 0.4 / 0.7    |
| Joshua Heiks        | 1     | 2       | 1     | 0.0 / 0.4 / 0.7    |
| William Hughes      | 1     | 1       | 1     | 0.0 / 0.2 / 0.7    |
| Aaditya Bhatia      | 1     | 1       | 1     | 0.0 / 0.2 / 0.7    |
| David van der Tuijn | 1     | 2       | 1     | 0.0 / 0.4 / 0.7    |
| Javier Caruso       | 1     | 2       | 1     | 0.0 / 0.4 / 0.7    |
| Dan Flettre         | 1     | 2       | 1     | 0.0 / 0.4 / 0.7    |
| Alexey Zakhlestin   | 0     | 1       | 0     | 0.0 / 0.2 / 0.0    |
| Eugene Luzgin       | 0     | 1       | 0     | 0.0 / 0.2 / 0.0    |
| Leho Kraav          | 0     | 1       | 0     | 0.0 / 0.2 / 0.0    |
| Steven Merrill      | 0     | 1       | 0     | 0.0 / 0.2 / 0.0    |
| jfefe               | 0     | 1       | 0     | 0.0 / 0.2 / 0.0    |
+---------------------+-------+---------+-------+--------------------+
29 rows in set

Given these statistics, it is only necessary for myself, @mweibel and @pstadler to explicitly assign copyright for the Foundation to then assert copyright over the full work. Of course, as a courtesy, we would solicit assignments from all contributors.

pstadler commented 9 years ago

@benlangfeld swissjabber is a service provided by nine.ch. The demo client probably can't be hosted on GitHub because of the missing ability to proxy requests.

Regarding copyrights / ownership: as long as Candy is released under MIT or a similar permissive license this is not a problem. I'd like to keep the repositories in the current organization and stay a public member if this is possible.

Glad that everybody seems to be on the same page :+1:

benlangfeld commented 9 years ago

@pstadler Where is the demo currently hosted? If it would be more convenient, @MojoLingo would be happy to sponsor the demo entirely without dependence on swissjabber/nine.ch.

The Adhearsion Foundation is committed to permissive licensing. Most (if not all) of its other projects are licensed MIT (indeed it was created partly for the purpose of smoothly relicensing Adhearsion itself from LGPL to MIT) and this pattern would of course apply to Candy.

As for retaining the current organisation and all current committers retaining commit access, this is absolutely not a problem.

mweibel commented 9 years ago

@benlangfeld Demo is currently hosted on my own server (iframe pointing to http://dev.openflex.net/candy/). You're welcome to move this to MojoLingo. AFAIR the BOSH endpoint is whitelisted by IP address, so once you move the demo, the BOSH endpoint won't be working anymore (not sure though, could be that they changed that in the meantime).

regarding copyright assignment: For me it's no problem to assign copyright to the foundation (wouldn't mind an honorable mention though :P) but as we initially developed Candy within the Amiado Group AG, we agreed to keep their copyright statement for the year mentioned in the statement. I suppose this needs to stay (no one I know is working there anymore so I don't think we could get out of that).

benlangfeld commented 9 years ago

That's no problem, the statement of their copyright in 2011 and then yours onwards is a valid assignment and we'll do the same this time.

Lets deal with copyright and admin on the candy org first, then I'll get a new demo server setup if you'd prefer to shut yours down.

benlangfeld commented 9 years ago

Tagging @candy-chat/candy-plugins-contributors and @Sudrien, @bklang, @strix-technica, @macedo, @Flet, @davidvandertuijn, @bobek, @PaulSD, @vitalyster, @jdcaruso, @naro, @joshuah, @melissanoelle, @lkraav, @kripton, @linkmauve, @indeyets, @insertjokehere, @ser, @jfefe, @kyriog, @smerrill, @MOZGIII, @eluzgin, @aadityabhatia who have variously contributed to Candy in the past.

This serves as notice that Adhearsion Foundation Inc, a Florida 501(c)(3) Not For Profit Corporation intends to assert copyright over the Candy project and its various contributions starting Aug 1st 2015 for the purpose of ensuring the long-term vitality of the project and defending the project from third-party copyright claims.

Other than myself, @mweibel and @pstadler whose contributions each individually represent more than 5% of the LoC of the Candy project, you do not need to take any action if you agree with this assignment of copyright in your contributions. If you have objections or concerns, please contact me either on this thread or directly (blangfeld@adhearsion.com) and I will be happy to clear those up. In the case that we cannot agree to an assignment in copyright, an alternative contribution will be made to remove any disputed contribution from the project and therefore the assignment.

@mweibel and @pstadler If you could complete and send me the attached assignment doc, that completes the first step of moving the project to the foundation.

CandyCopyrightAssignment.pdf

MOZGIII commented 9 years ago

Good stuff :+1:

maennchen commented 9 years ago

@benlangfeld: Does this issue also apply to the candy-plugin repository? If yes, you also got my :+1:

macedo commented 9 years ago

Good!! you got my :+1:

benlangfeld commented 9 years ago

Yes it does, @maennchen, though copyright in plugins will be assigned individually. Any plugins where the author does not respond or objects will be proposed for removal from candy-plugins.

Sudrien commented 9 years ago

No objections - would it be preferred if I include an MIT-style license with my plugins, or is it safe to assume those would fall under the main license?

insertjokehere commented 9 years ago

No objections here

troymccabe commented 9 years ago

:+1:

benlangfeld commented 9 years ago

They will fall under the main MIT license of the candy-plugins repo.

bobek commented 9 years ago

:+1:

malakada commented 9 years ago

:+1:

bklang commented 9 years ago

:+1:

mweibel commented 9 years ago

Awesome to see everyone chiming in :)

@benlangfeld you should now be owner of the Candy organization on Github, as well as I sent you my signed Copyright assignment.

maennchen commented 9 years ago

@benlangfeld: Do I need to sign a Copyright assignment too for the plugins?

ddevlin commented 9 years ago

:+1:

ddevlin commented 9 years ago

The timeago plugin I contributed contains an (outdated) inline copy of @rmm5t's jquery-timeago. jquery-timeago is MIT licensed and I preserved the original copyright notice: https://github.com/candy-chat/candy-plugins/blob/master/timeago/candy.js#L46

In those pre-Bower days this seemed like the easier option (rather than getting users to download jquery-timeago separately). @benlangfeld I'd be happy to refactor if you have a preferred way of handling that dependency.

benlangfeld commented 9 years ago

@mweibel: Thank you. I did receive your assignment. I'm now only waiting for @pstadler's and we're good.

@maennchen: Taking a look again at candy-plugins, you are indeed correct that I need assignments from you, @melissanoelle and @troymccabe. Would you guys please send me a completed assignment?

➭ git fame
Blame:         100% |ooooooooooooooooooooooooooooooooooooooooo| Time:   0:00:01

Total number of files: 119
Total number of lines: 6,478
Total number of commits: 263
+---------------------+-------+---------+-------+--------------------+
| name                | loc   | commits | files | distribution       |
+---------------------+-------+---------+-------+--------------------+
| Melissa Noelle      | 2,185 | 32      | 22    | 33.7 / 12.2 / 18.5 |
| Michael Weibel      | 1,832 | 69      | 32    | 28.3 / 26.2 / 26.9 |
| Jonatan Männchen    | 353   | 23      | 10    | 5.4 / 8.7 / 8.4    |
| troymccabe          | 333   | 17      | 14    | 5.1 / 6.5 / 11.8   |
| Patrick Stadler     | 304   | 36      | 13    | 4.7 / 13.7 / 10.9  |
| Troy McCabe         | 301   | 7       | 8     | 4.6 / 2.7 / 6.7    |
| Ben Klang           | 298   | 14      | 4     | 4.6 / 5.3 / 3.4    |
| David Devlin        | 194   | 1       | 3     | 3.0 / 0.4 / 2.5    |
| Patrick Forget      | 155   | 4       | 3     | 2.4 / 1.5 / 2.5    |
| David van der Tuijn | 125   | 2       | 2     | 1.9 / 0.8 / 1.7    |
| Sudrien             | 114   | 3       | 3     | 1.8 / 1.1 / 2.5    |
| Ben Langfeld        | 110   | 3       | 4     | 1.7 / 1.1 / 3.4    |
| warcode             | 46    | 9       | 3     | 0.7 / 3.4 / 2.5    |
| Drew Harry          | 40    | 15      | 6     | 0.6 / 5.7 / 5.0    |
| Manuel Alabor       | 29    | 1       | 3     | 0.4 / 0.4 / 2.5    |
| Jonatan Männchen    | 18    | 7       | 2     | 0.3 / 2.7 / 1.7    |
| Leho Kraav          | 16    | 4       | 2     | 0.2 / 1.5 / 1.7    |
| Paul Donohue        | 8     | 1       | 2     | 0.1 / 0.4 / 1.7    |
| Not Committed Yet   | 7     | 0       | 0     | 0.1 / 0.0 / 0.0    |
| Iain J. Watson      | 4     | 3       | 1     | 0.1 / 1.1 / 0.8    |
| Johan Oudinet       | 3     | 1       | 1     | 0.0 / 0.4 / 0.8    |
| alexandre melard    | 1     | 1       | 1     | 0.0 / 0.4 / 0.8    |
| Eren Türkay         | 1     | 1       | 1     | 0.0 / 0.4 / 0.8    |
| Joshua Heiks        | 1     | 1       | 1     | 0.0 / 0.4 / 0.8    |
| Alexey Zakhlestin   | 0     | 1       | 0     | 0.0 / 0.4 / 0.0    |
| Eugene Luzgin       | 0     | 3       | 0     | 0.0 / 1.1 / 0.0    |
| Mel Adamei          | 0     | 2       | 0     | 0.0 / 0.8 / 0.0    |
| hep                 | 0     | 2       | 0     | 0.0 / 0.8 / 0.0    |
+---------------------+-------+---------+-------+--------------------+
28 rows in set

@ddevlin: Initially I will just leave that as it is and it will not cause a problem. If you wanted to move it to being a Bower dependency then that would be great!

maennchen commented 9 years ago

@benlangfeld: I sent you the assignment.

benlangfeld commented 9 years ago

@maennchen I don't think I actually received that. Which email address did you send it to?

I've now received assignments from @mweibel and @pstadler so we'll be announcing the transition to the Adhearsion Foundation later this week.

maennchen commented 9 years ago

@benlangfeld I sent it to ben@langfeld.me.

Do you still use your PGP Key with the Fingerprint "181D 7230 C198 2F01 D975 1710 F0C0 7D7B 2AC4 F268"?

benlangfeld commented 9 years ago

Do you still use your PGP Key with the Fingerprint "181D 7230 C198 2F01 D975 1710 F0C0 7D7B 2AC4 F268"?

I do.

I found your email; it had been sent to spam by gmail.

maennchen commented 9 years ago

Gmail doesn't like PGP at all. It throws even internal emails in the Google Apps into the Spam if they're encrypted -.-

mweibel commented 9 years ago

@benlangfeld will transfer ownership of the google group as well as the google analytics account as well now ;)

PaulSD commented 9 years ago

:+1: