Skip to content
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

Open
calebfoss opened this issue Jun 19, 2024 · 18 comments
Open

Creative Commons License Violations on Examples #415

calebfoss opened this issue Jun 19, 2024 · 18 comments

Comments

@calebfoss
Copy link
Contributor

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.

@calebfoss
Copy link
Contributor Author

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.

@Qianqianye
Copy link
Collaborator

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.

@Qianqianye
Copy link
Collaborator

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.

@calebfoss
Copy link
Contributor Author

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!

@stalgiag
Copy link
Collaborator

stalgiag commented Jul 1, 2024

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.

@calebfoss
Copy link
Contributor Author

@stalgiag
Copy link
Collaborator

stalgiag commented Jul 1, 2024

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.

@Qianqianye
Copy link
Collaborator

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.

@outofambit
Copy link
Collaborator

@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.

@calebfoss
Copy link
Contributor Author

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.

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:

Attribution — You must give appropriate credit , provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

The license defines "appropriate credit" as:

If supplied, you must provide the name of the creator and attribution parties, a copyright notice, a license notice, a disclaimer notice, and a link to the material. CC licenses prior to Version 4.0 also require you to provide the title of the material if supplied, and may have other slight differences.

Regarding these points:

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.

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.

@xinemata
Copy link

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.

@calebfoss
Copy link
Contributor Author

calebfoss commented Sep 27, 2024

@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.

  1. Modify Add attribution links to each example description #425
    1. Fix the formatting issue causing it to fail a test.
    2. Include contributors who have worked on each example but are not listed in the blame. This would resolve the concern raised in this comment that the impact of one contribution may be obscured by a later edit. Far from boundless, this would add a few names to some of the examples.
    3. Add a link to the Attribution-NonCommercial-ShareAlike 4.0 International license on each example, as required in the license's terms.
    4. Include a short statement for each example indicating that they have been edited and revised, linking the version on the old p5 site, fulfilling the license's requirement to indicate that changes have been made.
    5. Add a link to the relevant Processing example for the few remaining examples that were originally ported. This would resolve this concern raised in this comment.
  2. I will open a PR to add the Adding_Examples doc with instructions for contributors to add attribution for themselves, as I offered in this comment. This would resolve the concern raised in this comment that crediting contributors would be burdensome.
  3. Amend the commit message on 37e3d66 to include all example contributors as co-authors. This would resolve the concern in raised in this comment that when re-adding credit in the git history, someone could accidentally erase someones else's contribution, as amending a message could not have that impact.

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.

@xinemata
Copy link

@calebfoss, thanks for your patience as I work through this issue with an open-source expert. Here are our responses to your suggestions:

  1. We have added a link to CC BY-NC-SA 4.0. and credited p5.js Contributors and the Processing Foundation under every example page.
  2. We’ve updated the copyright and acknowledgment page to invite contributors to add themselves explicitly.
  3. We hear your concern about wanting to be credited in a particular way, but we do have an existing approach to crediting individual contributors on our contributors page. Here are a couple of reasons behind the approach:
    1. The p5.js project has always been a huge communal effort. We follow the all-contributors specification and do our best to ensure we don’t accidentally exclude people who contributed in ways that did not involve pushing code.
    2. Historically, every webpage involved contributors who copy-edited, created illustrations, and organize files on a shared drive, but that’s not reflected in GitHub commits. In this context, counting the number of commits to quantify the volume of contributions is misleading. For example, in the project's early days, p5.js’s creator, Lauren Lee McCarthy, would code a large chunk of the p5.js website before pushing a single commit.
    3. We’re a small team that serves a vast population with various needs, and maintaining our contributors list with a single approach keeps things manageable.
  4. Given the long history of the repository and having looked into how authorship could be fairly reinstated, we unfortunately found that it is not technically possible to credit all the p5.js-example repository contributors within commits.
    1. For example, the proposed solution is a temporary solution that erases the authorship attributions of other contributors not included in the more case-by-case, manual approach of that PR. If we merged the history of the example repository and the new website repository, the authorship would then be traced back to the author of the committed examples in the example repository. This would erase authorship prior to your commit, which would not be fair to other contributors, either.
    2. If you are able to find an automated solution fair to all contributors, we would be happy to consider it. However, we cannot consider manual solutions for restoring commit authorship because we believe that the existing all-contributors policy described above is the most inclusive, fair, and maintainable approach to manually crediting all contributors.

I hope that these perspectives are helpful.

@calebfoss
Copy link
Contributor Author

@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:

  • someone interested in publishing this example elsewhere who is citing their source
  • an employer evaluating a job candidate who submitted this example as proof of open source contribution, aiming to check the authenticity of the credit

I will use the Snowflakes example, as this one was linked by @limzykenneth in this comment.

Old Site

p5 example page with a credit to Aatish Bhatia in its description The description ends with "contributed by Aatish Bhatia"

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

p5 example page with  Aatish Bhatia, Caleb Foss, and Darren Kessner listed on contributors in description The description ends with

Contributors: Aatish Bhatia, Caleb Foss, Darren Kessner

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
would address this by listing all contributors who have ever made commits to the file, whether or not they appear in the current blame. For this example, that would mean adding credits for @keshavg2 and @katiejliu.

Current Site

p5 example page with no contributor credited No one is credited in the description.

I scroll all the way down to the bottom of the example...
Bottom of p5 example page with license information containing a link to p5.js Contributors
I find this information:

Snowflakes by p5.js Contributors and the Processing Foundation is licensed under CC BY-NC-SA 4.0.

I click the p5.js Contributors link, which takes me here:

Paragraph headed 'People' introducing the p5 project and its leadership

I scroll down...

Profile for Processing Foundation member

and down...

Profile for Processing Foundation member

and down...

Profile for Processing Foundation member

and down...

Profile for Processing Foundation member

and down...

Profile for Processing Foundation member

and down...

Profile for Processing Foundation member

and down...

and down...

Profile for Processing Foundation member

and down...

Profile for Processing Foundation member

and down...

List of hundreds of people's names

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.

Conclusion

As 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
to #425, merging that, and merging #667 would resolve these issues.

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?

@ksen0
Copy link
Member

ksen0 commented Jan 24, 2025

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.

@calebfoss
Copy link
Contributor Author

@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:
Profile for Professor W Michelle Harrison on the Rochester Institute of Technology website including her photo and bio

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:

p5 Project Lead Kit Kuksenok's photo and bio

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.

@calebfoss calebfoss changed the title License issue? Creative Commons License Violations on Examples Mar 21, 2025
@ksen0
Copy link
Member

ksen0 commented Mar 25, 2025

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.

You will also find the profiles of every person who has entered this discussion to defend the act of removing attribution for example contributors.

The main discussion I'm aware of is on this thread; are there other discussions / people that I'm not aware of?
Thanks for taking the time to keep bringing this up and explaining things, by the way.

when you double down on something unintentional, you make it intentional

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.

as the new Project Lead, you have the power to fix it

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.

@calebfoss
Copy link
Contributor Author

@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:

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?

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).

Timeline

December 2023

My team completed a major revision of the Examples, documented here, including our suggestion on a more consistent and inclusive attribution method.

March 2024

I 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:

May I have access to the Bocoup p5.js-website repo so that I can take a look at what Stalgia linked? Ultimately my intention with the way I delivered the p5.js-example repo was that it would be merged into the new website repo and then contributors would add / edit from there. It still has all the git history dating back years, and I think it would be great to continue to preserve that.

I was not given access to the repo at that time, but @stalgiag replied:

And to an earlier question, yes if all goes as planned, you can merge the files from your p5.js-examples repo directly into the p5.js-website repo.

May 2024

When 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

I had hoped that the examples project I worked on last fall would be merged into the new website repo with git history intact, and I wrote about this in the README for the project. Something I really enjoyed about working on the examples was seeing the collaborative history spanning years, and I was careful to maintain that history as we edited/added. It looks like all of that history has been erased in the new repo with all of the examples now being credited to Ken. This makes me sad because I think that community collaboration is central to p5, and it looks like the record of collaboration will be replaced with authorship by a foundation member. For me personally, I know that having a record of contributions can be professionally useful, and I suspect that would be the case for others who worked on this project as well. I wrote several of the examples from scratch, and it does not feel good to see all that work attributed to someone else.

Is it still possible to merge those examples with their history? If not, how about a credits section for each example listing all the contributors who have worked on it? It could be another field in the description.mdx files and displayed on the example's page. Or better yet, both!

@Qianqianye wrote back:

We’d definitely like to keep the git contribution history. We were moving content relatively fast to fit the tight website dev schedule, so apologies if we overloop the git history. Ken and Dave, is there any feasible fix to include the git history in this case?

@limzykenneth replied as well:

One of the main reason the history is not transferred across is because the p5.js-example repo and the p5.js-website repo are two separate projects and that merging them with history intact is rather tricky, with "--allow-unrelated-histories” git option being the only possible way but is rather unconventional to do and I’m not sure how it will handle signed commits as well. We can possibly try it if you feel preserving the complete history is important.

As Q mentioned, we are planning to have a page for crediting contributors who helped with the project, the main delay in getting it done is that we are wrapping up final bugs and issues with the website at the moment. In addition, for examples you have authored, you can directly include attribution to it in the example itself such as this one: https://p5js.org/examples/simulate-snowflakes.html. I personally think this provides more visibility and value on the authorship of the example than having it nested deep in git history.

If you’d like to action any of the above, let us know or feel free to file a PR directly against the library repo as necessary.

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:

By the time I have got around to your email reply in 6, you have already filed the previous PR to restore the history and if that had successfully restore the commit history, it would have superceded the need to manually add contributors to the files (if that is still required, we'd happily take PR or do it ourselves if needed).

I apologized to @limzykenneth for upsetting him and wrote:

As long as you plan to restore attribution in the codebase in one way or another before the new site goes public, I am happy to trust you with that and drop out of the conversation.

@Qianqianye replied:

Just to confirm, @calebfoss, will you be open to take the task on adding the author and reviewer info in the MDX file for each example if we decide to do so? I'm not sure if I have the best knowledge on who worked on each example, but I can support the process of adding the info.

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:

Thank you for your patience as we work through the Git history for the example page. It's a bit more complicated than I initially thought, so I need some more time to test different options with help from Ken and Dave, hoping it won't cause problems in the repo. We are working hard to launch the website next week and planning p5.js 2.0 related projects, so I estimate it will take at least 2-4 weeks to find a proper final solution.

When we launch the website next week, I will make a post acknowledging all the contributors involved in the p5.js STF project, including the example page contributors of course.

After we finish testing options for including the example page Git history, we will then decide if we can include the author/reviewer info in the MDX files. We have closed the STF project budget internally with the Processing Foundation, so we don’t have immediate funds available to compensate contributors. I will double-check if we can access some alternative funding.

I will follow up with you in 2-4 weeks when we have more updates to share.

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:

Thanks @calebfoss. I'm still waiting for some previous contributors' feedback on this issue, like how to properly credit the contributors who worked on p5.js examples prior to the STF project, especially based on the fact that lots of p5.js examples were directly ported from examples on Processing website.

Meanwhile, @SableRaf is looking into getting clarification on processing website repo license issue.

I will come back to this PR after get more response from other contributors.

New Approaches

All Contributors List Overhaul

The 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 Model

Add new fields in the MDX for examples for:

  • Processing example GitHub URL from which the p5 example was ported (if applicable)
  • Contributor credited for Processing example: name and profile URL (if applicable and a contributor is credited on the Processing example site)
  • Original p5 example GitHub URL (for examples that were on the old site)
  • Original p5 contributor: name and profile URL (if a contributor is credited on the old p5 example site or it was written from scratch for the STF project)
  • Major revisions: year, contributor name and URL. For right now this would document the contributions in the STF project, and this would create a format to document major revision projects in the future.

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:

Snowflakes

Contributed by Aatish Bhatia as Snowflakes
2023 revision by Darren Kessner
Edited and maintained by p5.js Contributors and the Processing Foundation
Licensed under CC BY-NC-SA 4.0

Form Elements

Contributed by Prof WM Harris as DOM Form Elements
2023 revision by Kathryn Lichlyter
Edited and maintained by p5.js Contributors and the Processing Foundation
Licensed under CC BY-NC-SA 4.0

Here's what I like about this approach:

  • No one gets less visible attribution than they did on the old website.
  • By linking the old version of the example on GitHub, this links the git history that did not make it to the new site. So the record of contributors who edited the examples on the old site is still connected.
  • No maintenance! The only time changes need to be made is when another major revision project happens for examples. Maybe, for example, a few years down the line, a GSoC project updates the JS features used in the examples. With the new MDX fields, you have a place to easily document this project.
  • Completeness: still links to the all contributors list, acknowledging the work on these examples sometimes goes beyond what git records.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants