PadWorld-Entertainment / worldofpadman

World of PADMAN game repository
https://worldofpadman.net
Other
39 stars 9 forks source link

Rename default branch to "main" #61

Closed codemasher closed 3 years ago

codemasher commented 3 years ago

Consistency with upstream, see also: https://www.hanselman.com/blog/easily-rename-your-git-default-branch-from-master-to-main

GitHub has simplified their UI for doing so and offers a snipped to copy-paste for updating local branches. I'm only a little hesitant as i'm not alone here anymore. :)

codemasher commented 3 years ago

Update: since it seems that we're back in active development, we should have some rules on how we contribute. Currently we're happily pushing to the default branch, adding new features etc - and we all know chaos will erupt in no time.

So we have a single monstrous PR (which i appreciated and merged) that lifts WoP to the current ioq3 - all fine here. The obvious problem is that it may or may not have introduced several bugs that we first should identify and fix before we start adding new features, such as the libtheora commit that introduces serious crashes (on Windows at least).

So can we please use branches and pull requests instead? In order to do so i'd propose that we create a new branch wop-engine/main from ioq3/main and set that one as new default branch, which would solve the renaming issue. We can then use the old "master" branch as dev-1.7 or something and cherry pick the smaller, unproblematic commits until we've fixed the bugs introduced with the engine update.

mgerhardy commented 3 years ago

We should please not use branches in this repo - but do personal forks and create pull requests. Otherwise the branch list in this repo will get quite crowed. We should maybe also agree on some coding conventions and commit message guidelines.

mgerhardy commented 3 years ago

Commit messages:

It makes stuff a lot easier when we prefix the commit message with the subsystem or topic we touched. This is a good working approach of scummvm and makes it easier to follow for other contributors:

e.g.

CLIENT: Fixed issue PadWorld-Entertainment/worldofpadman#3

Please also don't use icons in commit messages - this might be fancy when reading in a ui - but on the console this is just noise and make things hard to read.

mgerhardy commented 3 years ago

Coding conventions:

There is a .editorconfig file checked into the repository. Please configure your IDE to use it.

If you re-format a code file, please make it a separate commit before you perform the real change - this makes it a lot easier to follow the real changes - and nobody has to waste time in reviews to tackle all the whitespace changes.

mgerhardy commented 3 years ago

Oh, regarding renaming from master to main - this change should be made asap - once more people cloned the stuff for local development, the hassle will get bigger.

codemasher commented 3 years ago

Ahh, notification spam!

We should please not use branches in this repo - but do personal forks and create pull requests. Otherwise the branch list in this repo will get quite crowed.

Of course PRs for minor things shouldn't have their own branches here. However, major changes that may introduce issues on the main branch ( such as the libtheora commit i mentioned) and that may involve other people, should be held in an extra branch in this repo, along with a PR as tracking issue, similar to the MSVC PR i created. Also, since you've managed to import the SVN history (big thanks on that!), we can delete the several branches I've created for the different versions and rather tag them in the soon-to-be archive.

Please also don't use icons in commit messages

Honestly, using icons is immensely helpful to people using a UI to have additional information on the type of commit, but that's not a hill i want to die on...

Oh, regarding renaming from master to main - this change should be made asap - once more people cloned the stuff for local development, the hassle will get bigger.

Nobody will notice when we'll do what i mentioned above - just create a new clean branch main, keep master around until all of the 3 people who may have a local clone and are actively working have updated their branches. I just didn't do it yet because there was no feedback until now. I may as well just do it right now. Once we've done that, please commit to the dev-branch rather than main then. Thanks!

mgerhardy commented 3 years ago

I would prefer using main branch as main development branch - and create a version branch for each new version we release - for hotfix branches. I don't see the benefit of not using the default branch for development.

codemasher commented 3 years ago

In my opinion, the main branch should reflect the latest stable release, so that you can build and run from there. Currently, the main branch is a collection of commits with countless unidentified and unfixed issues, nowhere near "working" quality. Of course we'd branch out once we've got something release worthy - we're just not even close right now.

mgerhardy commented 3 years ago

That's imo where version branches and tags are for. Github even has releases for this.

codemasher commented 3 years ago

latest and release are 2 different things. And you'd agree that everyone pushing to main will create chaos. The branches feature exists and can be used. On the other hand if you want to keep main as the only development branch, we'll need pull requests for literally every commit, similar to ioq3.

codemasher commented 3 years ago

Btw. since the repo just got renamed without warning and my IDE started yelling at me, we can set the new default branch just right now. yolo!

robo9k commented 3 years ago

Does the archive repo have shared history with this repo here? If yes, why not just have one repo and tag the old v1.6, v1.5, v1.2 releases?

I don't mind doing pull requests for things that someone is working on themselves and if we need more coordination then create a branch in this repo here.

That being said, I'm also on board with renaming the master branch to main sooner than later. I'd also let it be the development branch. If someone is looking for historical commits, they should be able to find it with git tags here or in the archive repo. I don't think people visit this repo and go "ah but I expected the default branch to be the latest stable release from N years ago".

Regarding icons, I don't mind if they're used in addition to the subsystem/topic as @mgerhardy suggested, but I do mind if the whole commit message is just a single 🔥 emoji - that's not helpful. We'd still have to document the allowed values for subsystem/topic/icon somewhere (CONTRIBUTING.md, PadWorld-Entertainment/worldofpadman#23 ) or even enforce them automatically.

kai-li-wop commented 3 years ago

Go for the renaming from 'master' to 'main', if announced to all other coders (@mgerhardy, @robo9k, @seldomU) properly, so they know about the break before hand and can take action. I already renamed it, at least in the other new repos.

Regarding collaboration it is necessary to agree in a workflow and here I also prefer as @mgerhardy [suggested].(https://github.com/PadWorld-Entertainment/worldofpadman/issues/14#issuecomment-817341937) Everybody is working in the local repositories and send pull requests. This is also for me the best way to follow code changes and the corresponding discussion due to better visibility. Everybody has a chance to review and approve the code much better.

codemasher commented 3 years ago

I'm still unsure about the sudden rename of this repo to "worldofpadman" from "wop-engine". It is - and should remain - as the engine repo. Go on, create another one for the game itself, which then handles not only the automated creation of installers and holds distribution files, but also the issues related to the game (rather to the engine itself) that have been created here. Meanwhile, i have already created a main brach like i mentioned in the 2nd post here and I'd start cherry picking from master then. The bases of the existing pull requests can be changed and I'd like to ask @mgerhardy to create another PR for libtheora against main please.

robo9k commented 3 years ago

I'm still unsure about the sudden rename of this repo to "worldofpadman" from "wop-engine". It is - and should remain - as the engine repo. Go on, create another one for the game itself, which then handles not only the automated creation of installers and holds distribution files, but also the issues related to the game (rather to the engine itself) that have been created here.

I don't get this distinction. The upstream ioq3 code base doesn't have it. The repo contains files that aren't even code. The engine and gamecode have mutual dependencies and thus versioning/release constraints.

Users don't care if issues are to be fixed in the engine or gamecode or elsewhere. On the contrary, if there weren't license and size problems, a monorepo for the whole "World of Padman" product would probably reduce micromanagement.

There's auxiliary repos such as the map editor support that have a slightly different life cycle, but even those could be merged into this repo here.

codemasher commented 3 years ago

Distinction is easy: engine means engine, which is what upstream reflects. To avoid any licensing issues and creating further mess, we can keep anything related to building the full game (such as assets/scripts, that are currently kept in /misc) and its related issues separate. It's only logical to me:

Either way, this may require its own issue then.

codemasher commented 3 years ago

Anyway, I've created a new main branch with cherry picks from the current default and I'd like to switch to this branch now, so this is your final warning to update your local branches. :octocat:

robo9k commented 3 years ago

Distinction is easy: engine means engine, which is what upstream reflects.

There seems to be misunderstanding of what an "engine" is. The upstream ioq3 repo already contains both the engine and gamecode, even before it's been forked from the full id Software GPL release. WoP code is not only gamecode ever since it switched from being based on Quake 3 Mod SDK to being a standalone game, which includes the engine.

As such the distinction of "wop-engine" doesn't make sense (anymore). The separate "gamecode" is only of historical interest.

All of the engine and game code (and possibly icons that are part of compiled .exe builds etc.) has to be licensed under GPL and as said already, is dependent on each other, so separate repos only increase maintenance burden and would mean we have 2 forks to keep in sync with the single upstream ioq3 repo.

Textures, maps, shaders or game-specific config files etc. are not code but assets. Like said, those should be a separate repo. Then again this repo might not even be public, so it could not be used for public issue tracking and users won't really care nor know if their issue is due to code or assets.

codemasher commented 3 years ago

This repo still doesn't contain any assets, not should it. It's only part of "worldofpadman", aka, the full release and that name for this repo is misleading, Not to mention that there have already been issues created that are not relevant to this repo, but rather to the assets (maps).

codemasher commented 3 years ago

The default branch has been switched to main. I'm leaving the old default around for a bit longer until everything has been resolved.