Rochet2 / TrinityCore

Rochet2's stuff for TC
https://rochet2.github.io
90 stars 143 forks source link

TrinityCore/TrinityCoreCustomChanges repo #104

Closed jackpoz closed 5 years ago

jackpoz commented 5 years ago

Hey @Rochet2 , we created a repo at https://github.com/TrinityCore/TrinityCoreCustomChanges to keep all custom changes that the community seems to like but that we can't merge into the main TC repo, do you have anything that you would like there to ? The point is to have a place where the community will find up to date custom changes, with TC branches merged regurlarly, and also provide some useful links like /compare with .diff to automatically create a .patch for those who like it.

Another nice thing is that, since it's not the main repo, more people could get push access to maintain their own branch (I would prefer not to use any rebase there otherwise merging into one's fork will cause issues).

Please let me know if you are interested :)

Rochet2 commented 5 years ago

Hmm, sure. Could try out with some of the patches like multivendor and player item gossip.

How often would the merging occur? Will it be automatic? I myself currently have an automatic system set up so I will just get a mail once errors occur.

What about readmes and such, has there been any thought about how information about a code would be visible? Would it simply be a forum post?

jackpoz commented 5 years ago

I was thinking about implementing automatic merging, but if you have something in place already maybe we could use what you setup.

I was thinking of using github wikis to provide information about each branch, they could also have a link to the forum if one wants. Having a repo users can report issues and ask for features or even open pull requests.

Rochet2 commented 5 years ago

About the auto merging, I originally modified the travis yml of each of my branches to contain the merging code. Then I set travis to run the build daily as it now supports timed building.

However users reported conflicts about merging travis yml, so I moved the travis build script to another repository that builds all branches: https://github.com/Rochet2/TrinityCore3.3.5/blob/pch/.travis.yml https://travis-ci.org/Rochet2/TrinityCore3.3.5/builds/497642339

jackpoz commented 5 years ago

I was thinking of doing that in appveyor, the build scripts are set in the appveyor website instead of the repo. I got thinking, since you have everything setup already, maybe we could just include links to your repo and your branches in the wiki at https://github.com/TrinityCore/TrinityCoreCustomChanges/wiki so you don't have to modify anything. That way we could use the repo as the front-page of custom changes and anyone can ask to include a link without having to rely on TC devs to setup anything. What do you think ?

Rochet2 commented 5 years ago

I think a link is fine. A list of links has worked well, at least for the "awesome"-lists https://github.com/sindresorhus/awesome#readme https://github.com/fffaraz/awesome-cpp#awesome-c- However here are some things to think about:

As it is now, I think the problem with people making things is that they are left unmaintained and all over the place. Even collections of scripts are maintained as diff files instead of repositories, so updating or using them is difficult if left alone for a while. Also there has been only 4 pull requests in all of these 5-9 years to this fork of mine with all of the scripts, so if there is a single owner there is almost 0 contribution.

Maybe we can take inspiration from azerothcore module site: http://www.azerothcore.org/modules-catalogue/ It also has clear instructions on how to join and handle readme and such: http://www.azerothcore.org/modules-catalogue/submit.html However if considering to use github api to search for repositories or tags like azerothcore module catalog does, it should be noted that there is a limit of 10 requests per minute per user IP to github. So a solution using browser side caching would be good to be used.

I find the idea of searching github for a tag very nice and clean. Also anyone could join by tagging their custom repository without the aid of TC at all. I guess the wiki would work similarily if it can be edited by anyone to add a link. Its also nice to have a single place for at least the core patches people use as they could be maintained by contributors and developers of TC together over time as you said that there could be multiple members added there.

jackpoz commented 5 years ago

Btw thanks for the travis file, it worked like a charm :D turns out AppVeyor doesn't have cron jobs unless mailing them about it. That azerothcore catalogue looks very nice indeed.

I don't expect that many contributions either but I hope there will not be that many merge issues. At the same time though it might give the feeling one is not alone maintaining those custom changes (for now Aokromes was maintaining most custom patches that are now in that TC custom repo). It allows also for peer review since they are no longer just .diff files but proper branches with version history.

It's more of a long term plan (like everything in opensource contributions :D ) so we'll see how it grows :)

jackpoz commented 5 years ago

I added some links at https://github.com/TrinityCore/TrinityCoreCustomChanges/wiki for now which seemed to be the best choice :)

Rochet2 commented 5 years ago

Alright. I may add a PR for some of them in the future.