mdmintz / pynose

pynose fixes nose to extend unittest and make testing easier
https://pypi.org/project/pynose/
GNU Lesser General Public License v2.1
11 stars 6 forks source link

Please ensure proper attribution and consider rebasing for git history #28

Closed astatide closed 2 months ago

astatide commented 2 months ago

This popped up in the discussion about the incorrect license being applied, but I don't want to lose it. So, this: https://github.com/mdmintz/pynose/commit/5b7314a0a7c1ad61a98fb506dca54a095aa9ad30

where rather than forking a repo, you instead copy/paste it wholesale into your own repo thereby removing attribution and credit

is incredibly unethical and should not be tolerated. This is apparently not the first time you've done this, either, and it should be considered unacceptable practice in the open source community.

There is absolutely no valid reason for you to have done this, especially as the existing nose repo is here on GitHub. Please, as a matter of good faith, rebase your repository and ensure that the existing git history is contained within your fork.

EDIT: While removing the git history is not considered a license violation, I would urge you to reinstate it as, combined with the license change and improper attribution (where are you crediting the original developers of Nose?) it comes across as been having done in bad faith.

pbrkr commented 2 months ago

Git history can be trimmed, so long as the attribution requirements and other conditions of the license are respected.

astatide commented 2 months ago

Fair enough from a licensing perspective, although obviously he's not in compliance with attribution at the moment as I don't see where the original authors of nose are noted as having contributed.

This seems to be a consistent behavior from the repo owner, though, and I would argue from a community perspective we should encourage the use of fork over copy/paste imports (not from a legal standpoint basically), potential technical reasons notwithstanding (that is, a git repository so large that it takes an unusual long amount of time and space to clone, etc). And in that case, I would argue that some degree of effort to make it clear it's a fork would be necessary.

Understand I'm arguing this point from a "responsible community member" point of view; that is, if he wishes to be a member of the community in good standing, he should probably not erase the existing contributions as it looks bad.

alerque commented 2 months ago

Steps to fix if good faith is intended:

  1. Rename this repository something temporary.
  2. Fork the original nose repository with history to this name.
  3. Use that as the starting point, then work back up to the current state by some combination of copying the code wholesale from the temporary name (if you don't care about history being preserved, only something you should do for your own commits, not contributors), cherry picking (you can add the temp repo as a remote and pick them across). There are some other tools to accomplish this but those are the easy and effective ones. No merging should be done of the whole tree that includes the license change or the original wholesale code copy.
  4. Any still-relevant issues should be copied across to the fork.
astatide commented 2 months ago

@mdmintz , if you could look at this issue and respond that would be a good way to seem as if you're acting in good faith and merely making mistakes here.

It's not, as has been pointed out, the first time you've taken this approach with a repository: https://github.com/mdmintz/pynose/issues/16#issuecomment-2214964715

This is not a one off behavior, so you should take steps towards improving how you interact with other people and their contributions.

mdmintz commented 2 months ago

https://github.com/mdmintz/pynose/pull/30 has been merged.

mdmintz commented 2 months ago

Also https://github.com/mdmintz/pynose/pull/32 was merged, which includes several authors that were missing in the original https://github.com/nose-devs/nose/blob/master/AUTHORS file.

alerque commented 2 months ago

In other words the request to include history in the repository so future users can judge for themselves has been rejected. Gotcha, intent noted.

mdmintz commented 2 months ago

@alerque Keep in mind that the original nose repo forgot to credit multiple contributors: https://github.com/nose-devs/nose/blob/master/AUTHORS (compare that to https://github.com/nose-devs/nose/graphs/contributors)

alerque commented 2 months ago

The use of an AUTHORS file predates the use of Git (or any) version control where the history of contributions can be audited at all. They were maintained much more rigorously before the same information started to be exposed via Git. The original nose project (as evidenced by the fact that you linked to the contributors page for that project as if it was evidence against them) does maintain the history for all contributors. Your copy/paste/commit-everything-as-yourself approach obliterated that history. The egg is on your face, not the original nose project.

mdmintz commented 2 months ago

There's no Git History in https://pypi.org/project/nose/#files

migraine-user commented 2 months ago

Here is where git history is located: https://github.com/nose-devs/nose/commits/master/?since=2011-12-13&until=2024-07-09

migraine-user commented 2 months ago

There's no Git History in https://pypi.org/project/nose/#files

you can also git clone the repo from github and run git log on your machine. Here is a link demonstrating how.