-
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
Creative Commons License Violations on Examples #415
Comments
I am seeing a similar issue with the Reference. I do not see a way to trace that writing back to its authors. For the sake of open source contributors in general, I hope that the MIT License does require attribution for the authors (via copyright notice I expect). Even if not, however, I would strongly advocate for attribution regardless. STF project workers like me were compensated and will be acknowledged in a planned social media post on site launch, but my understanding is that much of the work we were building off of was uncompensated with no plan to acknowledge those authors for the new site. |
We initially planned using the same MIT license as the legacy website repo. I have been doing research on this and will get back on this issue after I gather more suggestions from previous contributors. |
Hi @outofambit @stalgiag, just to double check, are there anything we need to aware about licensing from Bocoup's perspective (the main developer team of the new website)? Thanks. |
Thank you for the update, @Qianqianye! In the meantime, I opened #425 to add attribution links to each example's description. This replaces the placeholders I opened in #412. I briefly described my process in the PR. You could follow a similar process for the reference. It would be a bit more complicated, since it would involve matching up the JSdoc from the p5 library. It took me longer than I expected to get the example attribution together, so I'm going to pause there for now. I'm happy to answer questions about my process! |
To my knowledge, which is admittedly not fresh, there is no code in this repo that is from the legacy repo other than content such as reference which is directly consumed from the GitHub repos of p5 libraries where the licenses travel with it. When contributors contribute to that library they are contributing to the p5 library project with its MIT license. This library is an entity separate from the individual author. My understanding is that the individual authors do not have attribution requirements or the ability to make demands and this is what is meant by the inbound=outbound. You are licensing your contribution with the same license including its attributions. Additionally, this is a situation where pieces of the text, like the JSDoc comments that become reference sketches, are often modified over time by many authors, some changing just a single word or punctuation. One author may make an update that changes the wording of an original author thus completely removing any single word written by them but that original author's impact is still there. These kinds of attribution issues become boundless quite quickly and this is why I've never heard of any license or attribution requirements for open source being as exacting as to try to track and update all of the contributors that modify individual sections of documentation. This can sometimes be done for parts of documentation that change rather infrequently and in these cases the first author of the example is typically attributed (I believe Threejs used to do this). This is why the contributor's list has historically been maintained separately and given subject area attributions, any other upkeep would quickly become burdensome. |
I don't have any comment on attributions or how it should be handled. My sense is that is an ongoing conversation that I have not been part of. If attributions at the level of the website are introduced then that is new, done voluntarily on behalf of p5 stewards, and should be done to further the effort (that has been in place since these projects started) to ensure that contributors feel recognized. In my opinion, that should be done without creating a boundless attribution problem for a project that undergoes constant changes across many different workstreams and any suggestions otherwise are not constructive. As far as license, there are no license violations because the license holder of the legacy website repo is the Processing Foundation and the same license is used here. If there are concerns about losing track of historical work, my suggestion is to keep the legacy website up as a github repo. |
Thank you all for your input. Like I mentioned in this comment in PR #425, I'm still waiting for some previous contributors' feedback on this issue and their suggestions on license for this new website repo, the legacy website repo, etc. We will revisit this issue after we get more responses from other previous contributors who are not currently actively on GitHub. Thanks for your patience. |
@Qianqianye There are no licensing concerns from Bocoup's perspective beyond the general expectation that it would be an open source license of course. I generally agree with what @stalgiag said above and will add that the MIT license does not require any individual attribution. If we want to add a copyright notice to the footer of the new website, that can be an straightforward task for someone to pick up. |
The MIT license under which the examples were committed (before the update a few weeks ago) does not mention the Processing Foundation. The Attribution-NonCommercial-ShareAlike 4.0 International license displayed on each example on the old website includes under its terms:
The license defines "appropriate credit" as:
Regarding these points:
Circling back to the original concern I raised, git maintains a record of who committed what automatically, so I proposed maintaining that history. I responded to feedback from project leadership, who expressed agreement with wanting to give credit to people who worked on the examples, with possible solutions to the issues raised. In addition to the all contributors list, the Processing Foundation gives individual attribution to many people, including me and others on this thread. My opinion is that those who have worked on examples also deserve visible credit for their work, and my goal here was to help make that happen on the new site. @Qianqianye, once you determine a path forward from the discussions with previous contributors, something else I can offer is that I can further revise the Adding Examples doc I worked on in the spring to include instructions on how contributors can credit themselves for new and edited examples. |
Hi @calebfoss, @stalgiag, and @outofambit, thank you for your attention to this issue. I'm taking over this particular license/copyright related issue from @Qianqianye and will work on determining the next steps. As I'm new to this problem, I appreciate your patience while I get up to speed in the upcoming months. |
@xinemata - supplementing my reply to your email, I wanted to share a proposal that would resolve all of the concerns that have been brought up in this discussion.
To clarify, I opened this issue to check if my temporary solution, #412, would fulfill license requirements. The current state of the site most certainly does not fulfill license requirements, and it therefore violates contributors' intellectual property rights. Having looked into this more, #412 does not fulfill all the legal requirements. My opinion, however, is that until those requirements can be fulfilled, #412 is better than nothing in terms of recognition of contributors' work. |
@calebfoss, thanks for your patience as I work through this issue with an open-source expert. Here are our responses to your suggestions:
I hope that these perspectives are helpful. |
@xinemata It sounds like there are some major misunderstandings regarding what I am proposing. I am going to try another route to clarify this: a usability test. The task I will be assessing is to find who created an example. There are a few roles from which I could approach this task including:
I will use the Snowflakes example, as this one was linked by @limzykenneth in this comment. Old Site![]() Pulling up the history for this example in the codebase, I find @aatishb's contributions. Additionally, I see edits from a couple other contributors: @keshavg2 and @katiejliu. My Proposal![]()
linking the GitHub profiles of each contributor. Pulling up the history for this example in the codebase, I find the contributions of each of the contributors listed in the description. Note: this is a case where the contributors who had made edits on the old site are not visible in the current git blame because those edits have since been further edited. My proposed changes from September 27 Current Site![]() I scroll all the way down to the bottom of the example...
I click the p5.js Contributors link, which takes me here: ![]() I scroll down... ![]() and down... ![]() and down... ![]() and down... ![]() and down... ![]() and down... ![]() and down... ![]() and down... ![]() and down... ![]() and down... ![]() I find a list of hundreds names in no particular order. There is no indication of who was involved in creating this example. Pulling up the history for this example in the codebase, I find that @limzykenneth is the only contributor for this example. If I were an employer, and a job candidate sent me this example as proof of open source contribution, I would see this as a big red flag, as it would appear that this candidate was plagiarizing @limzykenneth. ConclusionAs you can see, the new site removes the ability that was available on the old site to find the names of contributors for examples. It cites @limzykenneth as the original contributor for all example code. You mentioned examples written by Lauren Lee McCarthy, and so I wanted to specifically note that all of her examples are now attributed to @limzykenneth. On the new site, the Tutorials on credit their writers, the Community Sketches credit the creators, and the Libraries are credited to their creators. Why are the examples an exception to this? As a side note, another major change between the old site and new site is that the new site introduces keyboard traps in the code editors, obstructing users with disabilities who navigate using tab (see #666). Making my proposed changes from September 27 Circling back to the focus of this issue, to confirm for the record, is the Processing Foundation's position that the changes made between the old and new site (as described above) fulfill the requirement for "appropriate credit" in the CC BY-NC-SA 4.0 license? |
Hi @calebfoss, This is Kit, I’ve started recently as the new p5.js project lead. Thank you for your comment and for raising this concern. I’ll do my best to respond to your questions based on the best of my understanding. After reviewing the CC BY-NC-SA 4.0 license with our open-source consultant, @xinemata and I believe the changes made to the new site fulfill the attribution requirements as per the license. The authorship of both the old site and new site is the same (the p5.js contributors), and the all-contributors specification (which is the source of truth for attribution, not the version control history itself) satisfies the attribution requirement of the CC BY-NC-SA 4.0 license. We also want to emphasize that the attribution obligation is fulfilled by linking to the contributors' list, and there is no requirement to independently determine or display specific contributions for each individual. The all-contributors specification, which is the source of truth for attribution, satisfies the attribution requirements of the CC BY-NC-SA 4.0 license, as the license itself states that a hyperlinked page is an acceptable way to provide attribution. The main challenge here, as @xinemata pointed out, is balancing the level of detail for attribution with feasibility. The approach of using git blame (which is the basis of #425) adds a level of detail, but it also risks limiting attribution visibility to GitHub activity, which is an imperfect and incomplete record for various reasons. Originating in 2017, the all-contributors specification aims to provide a more inclusive, sustainable, and maintainable solution without getting into the weeds of detailed version history. The level of detail being proposed would require more manual review and maintenance, and the existing all-contributors policy was adopted because it strikes a balance between inclusivity and maintainability. That said, we do agree that there is room to improve the visibility of credit on the website itself. Your screenshots highlight areas where the all-contributors approach could be better supported. We are open to ideas on how to make this more prominent—perhaps using a more visible link to the GitHub contributors list, for example. Additionally, I just saw that multiple contributors mentioned in #425 have not been added to the all-contributors list. I can take on the task of adding those names manually. |
@ksen0 Take a look at the DOM Form Elements example on the old site. The description attributes Professor WM Harris as the original contributor and links to her profile on the Rochester Institute of Technology website: You will also find her attribution when loading this example in the p5 editor (the editor has not yet been updated to use the new version of examples). And you will find her name and link to her profile listed first on my version of the new p5 site. Now take a look at the new version of that example on the official p5 site. The page does not include Prof. Harris's name. At the bottom of the page, the example is credited to p5.js Contributors and the Processing Foundation. You will not find Prof. Harris's profile by following either of these links. In fact, you will not find her name at all. You will, however, find your own profile: You will also find the profiles of every person who has entered this discussion to defend the act of removing attribution for example contributors. I understand that this started as an unintentional mistake, but when you double down on something unintentional, you make it intentional. You did not make this mistake, @ksen0, but as the new Project Lead, you have the power to fix it. |
Hi @calebfoss, I would prefer to center the all-contributors list for exactly the reasons you list, not to mention personal preference*. However, because I'm new to the project and because I have not heard other voices besides those of the people on this thread on this, I really don't feel that there is consensus for even the very minor change proposed in that issue.
The main discussion I'm aware of is on this thread; are there other discussions / people that I'm not aware of?
I agree with that, that's why my main effort in this thread has been to understand the current approach to licensing, including through consulting an open source expert, which lead to the previous message I posted here: "The authorship of both the old site and new site is the same (the p5.js contributors), and the all-contributors specification (which is the source of truth for attribution, not the version control history itself) satisfies the attribution requirement of the CC BY-NC-SA 4.0 license." That license applies to reference (JSDoc in code + online) and to examples. Since then, we've created on more internal documentation on what are the licenses and how to interpret them (for example, CC BY-NC-SA 4.0 applies to those parts of the source code files that result in the generated reference; but the rest of the source code is under LGPL 2.1). The goal is to make this documentation more clear and publicly accessible, and I am working on supporting that. I've also been working on an automated method** for keeping the contributor list up to date on the website, since it's the GitHub repo that's the source of truth. One option would be to link to the GH repo landing from both the people page and the copyright notice (rather than having copyright notice link to the People page, which creates some of the problems you describe). This, however, would not fix the specific problem you're describing above, which is that although p5.js uses the all-contributors specification (which I did not put into place, but which I support intentionally), there are contributors who are not in the all-contributors list, especially from more historical parts of the code.
I've added all the people your other PR #425 had mentioned into the all-contributors list. That PR does not mention this Prof. Harris, either, unless I missed it, but in any case I am happy to work with you to create a more complete list of missing contributors to add to all-contributors? Or take suggestions on how I can go about generating the most complete list. The reason that I continue to not adopt the crediting of your website into the main repo is based on all the points raised in this thread: including maintainability and incompleteness relative to other forms of contribution (like comments on gdocs that are not captured in git blame, in the case of this examples project) as recognized by the all-contributors specification. If there are ideas on how to fix the attribution problem you're describing, I am open to them, but I also see the incompleteness problem as something that cannot be dismissed. *At a personal preference level, I don't even have my face that big, or at all, on my own website or social media. However, in this role I do see that it is important for accountability that it is clear whom to approach with problems, questions, and so on; and that this person is not "hidden" somehow. In that spirit, I've followed the previous convention. I think that "People" page trying to do 2 things at once: (1) providing an intro to the p5.js leadership which I do think is important for accountability/transparency; and (2) replicating the all-contributors list as additional record outside of GitHub. I feel these are two related but distinct goals and I would really like to clarify this at minimum, so if you have feedback about whether centering the all-contributors list could be a step in the right direction, that would be helpful for me to know. I'm very much in favor of rotating leadership every few years, so I anticipate in the future there is more need, not less, for clarity of who is responsible for the project at a given time additional to clarity on attribution and the all-contributors specification. **WIP as a gh action. Will share that when it's done on the thread you have about your accessibility website fork just in case it's helpful for keeping that site up to date; as well as for any other forks that seem to be also having to do this manually. |
@ksen0 I think part of the issue here is bad luck on timing, which is no one's fault. Because of changes in people involved in the new website development and overall project leadership, I've been communicating with many different people about this since December 2023. What I have heard back has been very inconsistent, and I get the sense that a lot of information has been lost from person to person. So I'll assemble a timeline here to see if that context helps us better understand each other. Then I will propose a couple new approaches, doing my best to meet the priorities that you have expressed while staying true to my strongly held values on attribution for creative workers. First, a quick clarification on this point:
You are correct that Prof. Harris is missing from #425. That PR was a very hastily assembled attempt to get as many creators attributed on the site as I could before it launched as invited by @limzykenneth in this comment (more about that in the timeline). TimelineDecember 2023My team completed a major revision of the Examples, documented here, including our suggestion on a more consistent and inclusive attribution method. March 2024I started getting nervous that I had not received any feedback or questions about our proposals. As I was working on a new set of tasks for the STF project, I was on an email thread that included a link to an example on the development repo for the new website, which I did not have access to. I emailed:
I was not given access to the repo at that time, but @stalgiag replied:
May 2024When the development repo became public, I saw that the example files had been copied over without the git history or reference to the contributors in that history. I emailed @Qianqianye and @limzykenneth
@Qianqianye wrote back:
@limzykenneth replied as well:
Following @limzykenneth's invitation, I opened #382. Unfortunately, while this did merge the commits from the original history to the new repo, it did not connect these commits with the versions of the files that @limzykenneth copied over, effectively burying them. June 2024@davepagurek and I continued to troubleshoot the issue, leading to #386. In that discussion, @limzykenneth writes:
I apologized to @limzykenneth for upsetting him and wrote:
@Qianqianye replied:
Because my values stand against creative workers being given additional unpaid work after the terms of a contract are met (or MOU in this case), I asked @Qianqianye if there was additional budget remaining for this work and provided instructions on how to look up names in the git blame if not. @Qianqianye emailed:
I wanted to get as much credit on the site as possible before launch, so I opened #412 as a temporary solution. This is when I realized that licenses include specific rules on attribution, so I opened this thread #415 to make sure whatever we did adhered to license rules. As the site launch approached without #412 being merged, I decided to cave on my personal values on compensation and prioritize attribution for the group, quickly assembling #425 to manually add the names as @limzykenneth had invited. @Qianqianye replied:
New ApproachesAll Contributors List OverhaulThe all contributors list does not currently include a mechanism for attributing individual creative works submitted to the website. Instead, individual works such as the Tutorials, Community Sketches, and Libraries directly credit and link their creators. The all contributors list could be developed to take this on instead. So an All Contributors centered approach would be to completely restructure its format. In addition to documenting general forms of contribution (as is currently done via emojis), the new format would document specific creative works for each contributor as well as leadership roles. (re: your preference, you could then drop the leadership profiles, but I personally think y'all deserve those. I just take issue with them being present above all other contributors and in place on attribution for individual creative works) A filtering system on the People page would then be added so that the visitor could filter p5 contributors by inclusion in the leadership team, educators, as well as specific works (like examples, community sketches, libraries, etc.). The page would then be developed to allow direct links to different filters. From there, corresponding links could be added to each of the examples pages. Update on Old Examples Attribution ModelAdd new fields in the MDX for examples for:
Assemble a template to add the data from these fields in addition to the people lists on each example. Here is what this would look like for the examples we've looked at above: SnowflakesContributed by Aatish Bhatia as Snowflakes Form ElementsContributed by Prof WM Harris as DOM Form Elements Here's what I like about this approach:
I am really excited to propose this second approach because I have a good feeling that this brings our priorities together into a practical solution. @ksen0 thank you for your time and attention on this. I hope that we are close to a resolution. |
I recently communicated concerns regarding attribution for the examples on this site. The public side of that conversation took place on #386. Most recently, I opened #412 as a temporary solution.
I realized, however, that there could potentially be an issue with the license on the legacy site repo, and I do not know if my PR would solve it. I have a difficult time understanding the legal language of licenses, and I wanted to raise the question for anyone who better understands licensing. My understanding is that with Github's inbound=outbound policy, contributors' work on the legacy site would be licensed under the same license as the repo and therefore also copyrighted. Because their code is now in this repo but with their authorship removed and replaced with a different author and because this repo does not currently include the required copyright notice or license, I am wondering if that is a violation of the legacy repo license.
The text was updated successfully, but these errors were encountered: