SubnauticaModding / Nautilus-Proto

Archived prototype for Nautilus, the Subnautica Modding API.
https://subnauticamodding.github.io/Nautilus/
GNU General Public License v3.0
6 stars 3 forks source link

Repository problems #27

Closed K07H closed 1 year ago

K07H commented 1 year ago

Hello,

I'm OSubMarin from France (contributor to the SML Helper repository since its beginning in 2018 and author of two of the most popular mods for Subautica for those who don't know me). I don't know exactly what happened to the SML Helper project these last 3 months, but I noticed some things which makes me sad.

1) I did an update to the SML Helper repository this winter, to make it works with the latest version of the game ("living large" update), but somehow my contributions to the repository have disappeared: https://github.com/SubnauticaModding/SMLHelper DisppearedContributions As you can see there is no remaining traces of my contributions from this winter. The number of commits should be 18 at least.

2) When I go to the renamed version of SML Helper, aka Nautilus, there are various things that are disturbing:

DisppearedContributors1

DisppearedContributors2

DisppearedContributors3

3) When I check the copyright notice of the renamed version of SML Helper, aka Nautilus, the copyright notice shows "Copyright @ 2023 Subnautica Modding Community", but it should display "Copyright @ 2019" as required by the terms of the GNU General Public License.

I don't know exactly what is happening right now, but I can see that some of the previous contributors to the project have been obfuscated, I don't like it and it makes me sad. I assume the loss of information in the recent manipulations was unintentional. Hopefully I still have some backups of the project, and I noticed my changes are present in the renamed version of the project (aka Nautilus), so the other contributor's work should also be there and we can still work on together to recover what has been lost regarding previous contributors, their forks and their work.

K07H commented 1 year ago

PS: Sorry for the multiple edits. I had to make adjustements to my original message as I did not really used proper words for some sentences. The message is now final and no further edits to it will be made.

toebeann commented 1 year ago

I can agree that most of this appears problematic.

My assumption is the reason for commit history differences is that the Nautilus repo began from a clone of the SMLHelper dev branch, not the master branch.

As for the GitHub contributor stuff, that's unfortunate. Probably due to this repo being a clone, and I agree it's problematic.

As for the copyright stuff, I'm not an expert on this so I won't really say anything about it. My only knowledge on the subject is that the starting copyright year should never change, but I'm not sure how that applies to Nautilus. Perhaps Copyright 2019 - Copyrtight 2023 makes more sense. As for adding the name of the organisation as the copyright owner, I really have no clue how that pertains to copyright law and the GPL license. Perhaps the Subnautica Modding organisation was always implied since it wasn't included, and therefore adding it now makes no difference? But I really don't know.

I believe I have a solution for the first two problems:

If instead of hosting Nautilus under a clone, it was part of the SMLHelper repo as a branch, this should alleviate the issues with contributor history and commits to the original repo being a little wonky, as well as the network graph info etc.

Since I believe this repo is a clone of SMLHelper, it should be as simple as adding this repo as a remote to the SMLHelper repo, and checking out the branches, then pushing them to origin.

Then, this repo can be archived/deleted/renamed, and the SMLHelper repo can be renamed to Nautilus.

In that way, all the work that has been done on the clone will not be lost, commit history of both will be intact, contibutor history/graphs will be intact. It should also make it easier to backport bugfixes from Nautilus to SMLv2 legacy, since I was told previously that it would still be maintained as an LTS. It will still be possible to direct people to SMLHelper readmes and source code, as they will be maintained in their own branch.

The one caveat with this solution is that we will need to address how tags are handled, since there will be some conflicts as Nautilus is starting its versioning from v1 again. If anyone has any suggestions on how to handle that, it would be appreciated.

I'll see if I can do the first part of migrating the Nautilus branches back to the SMLHelper repo and see how it looks.

Metious commented 1 year ago

Nautilus can't be just another branch of SML because it's versioned differently, uses different conventions compared to SML, and also there's the GitHub page that must be named after Nautilus due to it being Nautilus-specific.

I find it stupid to put a different distribution/clone of a project under a branch; that's simply too limiting to maintain the project moving forward.

As for the history, this project was a mirror of SMLHelper. The history was not erased and you can see the full contribution history by visiting the Contributors list.

I'm not sure why they're not visible without full-viewing the graph, but the past contributions are definitely there. image

This of course is unfortunate, but by no means is a deal-breaker imo.

toebeann commented 1 year ago

uses different conventions compared to SML, and also there's the GitHub page that must be named after Nautilus due to it being Nautilus-specific.

That's why you rename the repo. Instead of SMLHelper and Nautilus, you have Nautilus, which has an smlhelper branch (the current SMLHelper legacy branch). Master, docs and gh-pages are all for Nautilus.

I find it stupid to put a different distribution/clone of a project under a branch; that's simply too limiting to maintain the project moving forward.

Can you elaborate on what you can't do under a branch of the same repo that you can do under a new repo? Because I'm not aware of much. But on the other hand, if you intend to continue to maintain SMLHelper as LTS as you specifically mentioned to me in the discord channel when we were discussing the rebrand, them living under the same repo makes porting bugfixes between them much simpler.

K07H commented 1 year ago

Imagine I clone the project, and I change all copyright notices to "Copyright @ 2023 OSubMarin". It's obvious to me that it's a direct violation. It's also well explained in the GPL Q&A as you can see below: https://www.gnu.org/licenses/gpl-faq.en.html DirectGPLViolation

Metious commented 1 year ago

Can you elaborate on what you can't do under a branch of the same repo that you can do under a new repo? Because I'm not aware of much.

Mainly the releases would be awkward. One of the main reasons why we even considered a rebrand is so people can go to x repo for legacy and z repo for current. This is a better user experience and also reduces human error quite a bit.

if you intend to continue to maintain SMLHelper as LTS as you specifically mentioned to me in the discord channel when we were discussing the rebrand, them living under the same repo makes porting bugfixes between them much simpler.

It's not that easy though, root namespace changes and the enforcement of file-scoped namespaces of Nautilus will make it quite a challenge to merge Nautilus fixes (if we need to) back to SML. The diff will be all messed up making a copy-paste for fixes much simpler.

Metious commented 1 year ago

Imagine I clone the project, and I change all copyright notices to "Copyright @ 2023 OSubMarin".

That's the thing, the copyright notice hasn't been changed to a different entity. It used to be implicitly implying on the org, but now it explicitly mentions the name of the org.

K07H commented 1 year ago

Mainly the releases would be awkward. One of the main reasons why we even considered a rebrand is so people can go to x repo for legacy and z repo for current. This is a better user experience and also reduces human error quite a bit.

It's not "awkward" at all, it's how open source projects works. There is no need to have two separate projects, you can simply rename the main project "Nautilus". It's the most healthy thing to do, that way you avoid losses of information and you avoid confusion by not having multiple repositories.

LeeTwentyThree commented 1 year ago

Again, SMLHelper is NOT changing. Nautilus is a derivative work. Yes, your work still exists under it, and a lot of our planned changes are impossible without getting the permission of contributors to change the license, hence why we are asking you.

The solution to MANY of the problems you have listed is updating the license with the permission of all previous contributors. You are inventing problems by refusing to allow us to make the needed changes to the license. Unless you prefer we revoke all your contributions and rewrite them?

K07H commented 1 year ago

Imagine I clone the project, and I change all copyright notices to "Copyright @ 2023 OSubMarin".

That's the thing, the copyright notice hasn't been changed to a different entity. It used to be implicitly implying on the org, but now it explicitly mentions the name of the org.

Sorry but you're wrong. The organistion was never part of the original project and was added later. Also which part of "you must keep copyright notices intact" don't you understand? Because the definition of "intact" is pretty clear to me, and I can see the original copyright notice has been modified which is a direct violation of the GPL terms.

LeeTwentyThree commented 1 year ago

Also I just remembered while writing my last response: GPL requires derivative works to be licensed under GPL. It is literally a parasite, that is another reason we need permission from everyone to change it. Why does SMLHelper need to be under such strict control?

K07H commented 1 year ago

@LeeTwentyThree @Metious I'm whiling to help you to fix the various problems, but threatening me to remove all my contributions, insulting me by saying I'm a non-human being, and your overall attitude is disturbing and outrageous in a way. I'm trying to keep cool and not react to these attacks tho.

SamuramongeDev commented 1 year ago

Pardon, when did they said you're not Human?

K07H commented 1 year ago

Pardon, when did they said you're not Human?

On the topic related to changing the license, here: https://github.com/SubnauticaModding/Nautilus/pull/25#issuecomment-1537163437

jonahnm commented 1 year ago

Pardon, when did they said you're not Human?

On the topic related to changing the license, here: #25 (comment)

That's a bit of a stretch man.

Metious commented 1 year ago

It's not "awkward" at all, it's how open source projects works. There is no need to have two separate projects, you can simply rename the main project "Nautilus". It's the most healthy thing to do, that way you avoid losses of information and you avoid confusion by not having multiple repositories.

Believe me it is. So far we have been working with two versions of SML where one works on legacy and the other works on the current branch. It's a complete mess.

Open source projects are permissive when it comes to derivatives for a reason. We can take advantage of that. Imagine if Harmony 2.0 and HarmonyX were on the same repo, or Jotunn and ValheimLib were on the same repo. If you've worked with them before, you'd understand that it's a complete mess to have to distinguishable distributes under the same repo.

Information on the commit history is still intact and the conversion is not "illegal" in any shape or form. Regarding the copyright notice, as of ddaa2505d479a0c987e38faea4d76f07601bb869, it has been reverted back to the original one. I hope that satisfies you.

Have a great day.

SamuramongeDev commented 1 year ago

Pardon, when did they said you're not Human?

On the topic related to changing the license, here: #25 (comment)

Oh yeah that. I don't consider that as an attack. It's more like an invitation to have better discussion, y' know, without evading questions nor anything related. I don't want to get involved in the discussion but as far as i have read you've been evading questions and not understanding what they say. Or at least that its what i think, im not a lawyer or anything so i don't know too much about licences. But my view is clear, the current licence it's sort of 'illegal' and oh well, I'm technically involved because i've made mods with SML Helper and Nautilus. (Sorry if i said something wrong, or it's not understandable at all. My native language it's not english.)

toebeann commented 1 year ago

@Metious

Mainly the releases would be awkward. One of the main reasons why we even considered a rebrand is so people can go to x repo for legacy and z repo for current. This is a better user experience and also reduces human error quite a bit.

I do agree with OSub that it's not that awkard re. releases, it is a normal thing for open source projects to do. Take BepInEx for example, sure it hasn't renamed, but they have a branch called v5-lts and the main branch is for v6 moving forward. They still uses the releases page for both. Pretty standard.

It's not that easy though, root namespace changes and the enforcement of file-scoped namespaces of Nautilus will make it quite a challenge to merge Nautilus fixes (if we need to) back to SML. The diff will be all messed up making a copy-paste for fixes much simpler.

I can see your point here, but copy-paste fixes has the downside of losing original contributor info. Not the biggest issue but it is a downside.

@LeeTwentyThree I notice you removed the edit threatening to remove OSub's contributions.

Personally, I'd rather it not come to that. Rewriting them though would still be a violation of the license at the time OSub made the contribution as the rewrite would be a derivative. The only thing that would not be a violation would be complete removal of any contributions they made, which is IMO the only way to change the license if OSub is the only hold-out. I'd prefer it not come to that however, and I would actually withdraw my consent to changing to MIT if that is the plan, at least until people have had a chance to have a reasonable discussion.

@jonahnm

That's a bit of a stretch man.

Let's please remember OSub's first language is not English. Metious definitely meant it in a condescending/insulting tone when they said that, and that's likely what OSub is getting at.


IMO, both sides here are heated. There has been bad blood between OSub and members of this community in the past, so it is reasonable for them to be wary.

The license issue is completely separate to this particular issue, so bringing it up here is irrelevant. The issue being brought up here is to do with contributor history being lost.

And on that subject, personally I am in agreement with OSub. I would prefer if we could find a compromise that allows to move forward without contributions being obfuscated, which IS the impact that has happened so far.

I think that moving work on Nautilus back to the SMLHelper repo is the best way to reach a compromise which works for everybody on this particular issue.

I'm reopening and unlocking the issue as I think it is a little unfair to completely shut out OSub's voice on the matter, but I would prefer if all parties could try to keep their cool.

Metious commented 1 year ago

Still think that it's in our best interest to keep the two distributions in separate repos.

I think BepInEx is a bad example to follow in our case because firstly BepInEx 6 is still on pre-release (meaning the releases are still BepInEx 5 only while BepInEx 6 is on pre-release). And secondly, they're not dealing with a rebranded project. HarmonyX vs Harmony 2.0 or Jotunn vs ValheimLib are more appropriate for our use-case.

Once again, Nautilus and SMLHelper are different. Them being on the same repo makes no sense to me whatsoever. On one branch you'd have a README talking about Nautilus, and then on another you suddenly see it talking about SML. This is absolutely ridiculous and I don't believe we're making the right call moving forward.

I'm resting my case and will not engage with this issue again because it's all so far been a reiteration of previously discussed conversations. I'll leave the decision to @MrPurple6411 and @PrimeSonic.

toebeann commented 1 year ago

HarmonyX vs Harmony 2.0 or Jotunn vs ValheimLib are more appropriate for our use-case.

I disagree, it's a fork maintained by different people, not a rebrand which is essentially just a breaking change version bump. In that sense, Nautilus is closer to v6 of BepInEx and SMLHelper is closer to v5. The only difference is a rebrand and restarting version numbers.

You can call them different, but at the end of the day, it is in reality just a rebrand with breaking changes. You must agree with this on some level, or why did you name the discord thread for discussing the changes "Rebranding SML"?

LeeTwentyThree commented 1 year ago

These issues should be resolved now in this repository.

If I missed anything, feel free to mention me on the other repository or its mirrored issue.