I asked for help optimizing my Julia code, now it's someone's package?

I feel with you.
There is a view on the issue from a lawyers viewpoint, which is, as @zgornel describes it, it wasn’t restricted, there was no warning of the OP, it was some kind of collective effort => so don’t complain, all is fine.
But on the other side, there is something we call a community and this behaviour is not what one should expect from a community or better from community members. It is just bad manners and should be named like this. The one who acts like this should stand up, apologize and give credit to OP and the other contributors.
To be on the legal side in respect to licences and open source is no excuse for being rude.
There is more to a community and to social beings to be a good and healthy society than just doing what is not forbidden by law.


Don’t let it get you down. Keep doing your thing. Anyone who serially takes code from public domain and does not attribute authorship will eventually gain a reputation in that public. lve seen it happen in other communities.


Where did you get that understanding?
I can’t find anything like that written down anywhere.

AFAIK (and IANAL) all code posted here remains entirely yours.
You have copyright on it. No license is automatically granted.
And if someone posts a improved version, then they have copyright on their changes.


For me it’s even less about the legal license and stuff like but more about the standards within the community.

I would have loved to jump on a Julia project with someone more experienced since I barely know my way around Julia (and programming) plus it’s not like K-means is my algorithm.

It’s just how it went from 0 to 100 without my involvement is what shocked me.

1 Like

Don’t let it disturb you too much. It was bad manners yet positive as the code might have gotten lost. You can still get credit. Next time, make a repository and dump all code there (with a license of your choice). In this way, you’re covered. I stopped caring about personal credit long time ago as I usually benefit from code of way better quality than my own :slight_smile:
Generally the free software world is pretty competitive and one has to ‘zen’ it’s way through it but it’s worth the effort once one reconciles gains and losses.


Actually, user contributions are licensed under a CC-BY-NC-SA license under the terms of service. This is compatible with but much more restrictive than the terms of an MIT license, and is not free/open-source. (However, snippets of code ≲ 15 lines are typically considered not copyrightable; see also the discussion here.)

That being said, I think that this is less a question of legality than one of basic courtesy. I completely agree that it would have been more respectful to check with you when creating a package (or a pull request to an existing package) based on the responses to your query.

I would encourage you to try contacting the person amicably in case this was an oversight and see if you can resolve the situation in a more satisfactory way. If you have trouble making things right and want a neutral third party to talk with both of you, feel free to contact the Julia Stewards.


Sorry, I didn’t remember correctly. Here is the post I got the wrong impression: Copyright issues for code excerpts

1 Like

It was resolved as soon as it came up. This was me trying to understand how the community handles such things more than anything.


I appreciate your understanding and willingness to let bygones be bygones.

That said, I’d urge folks to adhere to common standards of courtesy, and next time to discuss such moves with the major participants before publishing the code. It takes very little time, shows due respect for their work, and provides a learning opportunity for people at different stages of their development as open-source contributors.


I would be interested in learning which package did this, so a link to the relevant commit/PR would be appreciated.


Repo was taken down immediately after I said I wasn’t cool with it.


Thanks. Even though this was an unpleasant situation, I am glad it was resolved, and appreciate that you handled it in a friendly and dispassionate manner.

I don’t think this kind of behavior is characteristic of the Julia community, and I hope it does not tarnish your experience with the language.


Not even the slightest! The speed of Julia is worth it :laughing:


I’m a bit confused…

This sounds like they notified you without notifying you?

I also don’t really understand this. Your learning experience was your own, helped by the community. You can (and still should!) write up the experience. You can even say “Julia is so great, look how easy it is to go from idea to a package: someone was able to take the code I optimized and make it available for everyone!” You still get credit - the original thread is publicly accessible and time stamped.

I’m clearly in the minority here, and several people whose opinions I respect (like Tamas and Tim) have chimed in here with opinions that are different than mine, so I want to understand.

It sounds to me like:

  1. You posted a question about a well-known algorithm asking for help with optimization
  2. A bunch of people chimed in, and managed to speed up your implementation a bunch
  3. You learned a bunch, everyone was friendly and helpful
  4. Someone threw the final code into a package and let you know they’d done that

This all seems great to me, and I’m struggling to see the problem. Sure, perhaps the optimal thing would have been too tell you before hand, but the fact that the person reached out to you in the first place, and immediately took it down when you raised an objection demonstrates that it was all done in good faith.

The fact that the code is no longer readily accessible in a package seems like a loss to me. Given the response to the objection, I’m certain the person would have been willing to give you ample credit - do you need your name on the commit tree?

(I’m not trying to be a pain in the ass here, I’m just genuinely perplexed by the responses and want to be educated)


Frankly I missed the part about the notification.

I think that the proper way to do this is ask permission before, but given that the code was a collaborative effort this is best done topic where it was developed. After posting, at least an announcement there would have been nice (was there one?).

In any case, it would be interesting to hear from the person who posted the code in the repo. They may have acted in good faith.

For cases that end well, there is a trade-off between just moving on or using them as a concrete example to develop community norms. Here I feel I lack verifiable information about what happened since the repo was deleted (so I don’t know how much of this was copy-paste, was there any value added like tests and documentation, etc), so I would suggest just moving on.

1 Like

looking at the thread you mentioned, I noticed that your code only has several lines, how could someone create a package with so few lines of code?

K-means is not really a complex algorithm to implement. You don’t need 1000 lines of code to do that?

That was the issue. Common courtesy requires prior notice to even know the original intent. What if there was already a plan to package it later (there wasn’t)?

Most communities operate in that way to even avoid duplication of ideas and/or projects.

They was no foul play intended on both sides.

While taking you serious I I too have some sympathy for the easily identified person, who first helped to get your code up to speed, and then packaged it for your and our convenience, whos fault is mostly a bit suboptimal communication about plans. That person is now having the community holding public court over their “behaviour” and with some of our “big shots” chiming in, all while not following audiatur et altera pars. Maybe we can call it a day by now.


There’s no bad blood between anyone. Still collaborating with said person (without any grudges) on the code. This post wasn’t meant to be some attack on anyone. If anything, it was meant to know how the community handles collaborative work.

1 Like