Hi,
I maintain a github mirror of your project at: https://github.com/EmperorArthur/mlox
I've made several, smaller, changes in my own branch, and have a user who would like to push patches from their fork.
How should I submit these changes to you?
Would you like a patch per commit, or per user's total contributions?
How do you want to deal with authorship?
Normally, I've seen authorship assigned on a per commit basis, but I've had some projects take patches and claim they authored them.
I'm used to git's easy way of managing things, so forgive me if these questions seem mundane from an svn perspective.
Hi there, I would like to contribute your Project sometimes as well, also wrote to Dragon32 on modnexus... :)
Last edit: Anonymous 2016-12-17
The current success (if we can use that word) of mlox is due to Dragon32's effort to maintain the database, so I will defer to Dragon32 if he has an opinion about this.
As for me, I'd be happy just to add you here as a contributor and let you proceed as you see fit, you could even point people that come here to your github project, if that's your preference for hosting development and support.
I'm currently busy with other stuff, and will not be doing anything with mlox, at least for the foreseable future.
My opinion on authorship is that I don't care about credit at all, at least for myself, authorship is only useful to me if someone makes a change and something goes wrong and you need to find out what happened and why. That said, I'm happy to acknowlege the contributions of others, it's sort of the least one can do to encourage participation.
But if you'd like to become lead maintainer, you're welcome to run things as you see fit.
Feel free to bug me again if you don't hear from Dragon32. I should get notifications of posts here like I did with this one, but if it gets lost, I still listen at john.moonsugar@gmail.com
I appreciate everything you've both done.
I rarely touch the project myself, but if you're ok transitioning from SVN to GIT I can do that for this project. It will make drive by patches significantly easier, and allows for things like viewing the change log much faster and available offline.
The big nous in such a switch is I can easily pass patches I'm getting on my Github mirror to the project without having to change history on the mirror. GIT clients tend to complain whenever history is rewritten.
Regardless, I'd love to join you all as a co-maintainer. As I said earlier, I have several patches from myself and at least one other person sitting on my mirror. I could give them to you as giant patches, but if something goes wrong finding the problem might not be as easy as me just committing them individually.
Hi Arthur,
I haven't heard back from Dragon32, but anyway, I've added you as a project admin here so you can proceed. If you would like to migrate mlox to github that's fine with me.
Cheers, and all that.
Hey there. Apologies for not replying as I didn't see this and have only just got back from a fortnight at my parents' (no Internet!) so also missed John's note on Nexus.
One thing I'd ask is to keep the URL for downloading the rule-set as it is now (SourceForge), making changes to the rule-set was what got me to learn this Subversion thing and I have no idea about Git, although I know it's what the cool kids use now :)
So: woo-hoo! Program updates. One thing I'd love to have is a cosmetic tweak: Conflict rules having their text highlighted in yellow (as Requires rules do in Red
Thanks!
Okay,
I've migrated everything over to Git. Once you get past the learning curve, I really think you'll like the extra features.
I've kept the SVN repository up since that's what the previous versions were downloading their rules from, but removed everything but that file and a moved notice.
Future versions will use sourceforge's download page. Moving the 7z file out of the repository helps with bloat and helps prevent developers from working on the wrong file.
I've also created a github organization at https://github.com/mlox/mlox I don't know if the Dragon32 on github is the same the one I'm talking to here, but everyone else recieved an invite.
Hope this working for everyone.
If there are any problems please let me know.
Great work, Arthur Moore.
I seem to remember the reason why I had the 7z in the repository was because I couldn't get a guaranteed file URL for a download when using SF's download page (URL redirects to a mirror). It's a little while since I did that though...
Can't remember if I've set-up an account on Github, I'll have to check (can't see one in KeePass)
In one of your mlox rule commits there's an error in one of the Order rules:
Warning: mlox_base.txt:56781: Cycle detected, not adding: "Syc_HerbalismforPurists_TB_DV.esp" -> "Syc_HerbalismforPurists_BM_DV.esp"
Basically see those when an Order rule is trying to add "Syc_HerbalismforPurists_TB_DV.esp" before "Syc_HerbalismforPurists_BM_DV.esp", in contravention of a previous Order rule. Rule causing the error is on line 56781, original Order rule is somewhere else...
Also, when adding new plugin I've tried to add them in in alphabetical order (raher than just adding new entries to the end of the file). It means making future updates is easier for me (I can quickly search to see if I've already added a plugin, refer to existing rules etc.)
Finally, always tried to add a reference (name of the mod's readme file, URL of a Forum post etc.) to statements in mlox like Requires (I've also added them in commented lines for Order rules and the like so when I come back to an entry after months I know what I meant by the rule). Whilst a lot of people don't even read their mods' readmes I think providing some background for the statements and rules in mlox is a good idea, showing that they're not just arbitrary things.
Some are from my own experience, see Order rules in "@Princess Trees [Princess Stomper]" and a Note on a script error in "@Knights of Tamriel [Jeremy McGuinn]", and don't have references but I think it's a good thing to do.
[Edit: A small thing but the last modified date for the mlox_base.txt is 5th January but the timestamp in the file is 26th December]
Last edit: Dragon32 2017-01-22
OK. So I'm confused.
What happens where now?
There's here: https://sourceforge.net/projects/mlox/
There's your original github mirror: https://github.com/EmperorArthur/mlox
And then this on github too: https://github.com/mlox/mlox
What do each of these do?
Also, where is it possible to talk about things? This isn't the ideal place really, a problem ticket. Do you have an account on Bethsoft? Nexus? OpenMW? Does github have some kind of discussion forum? Can't find an account there either.
Also realised that those updates to the rule-set were from Translator5 and just pushed through / commited / approved / whatever by you.
How do you achieve quality using github? Those additions didn't follow the published guidelines for editors and yet made it into the rule-set? How is that?
Don't want to be snippy but I've being doing this thing for nine years now. The program's alright and all but it's the rule-set which makes mlox what it is and I've spent a fuckload of hours on that. Disconcerting to see it start going shitty so quickly.
Yeah, that's my bad. I'd much rather leave things like rules to you. My expertise is in making code work corss platform, and the organization side of things.
Github normally makes it easy to submit a patchset for review (called a pull request), but I bypassed that since I hadn't finished setting everything up correctly. In the future, you should be able to see, comment, and approve/reject pull requests.
On that note:
I only did a half transition to keep from rocking the boat. I see now that was a bad decision, and am moving everything over to github.
Some important things about git. Git is a distributed version control system. That means it's extremely easy to create code mirrors. In fact, github is built around this principle. Everyone creates their own code mirror (mine is https://github.com/EmperorArthur/mlox) then sends a pull request to the main repository (https://github.com/mlox/mlox). Sourceforge is now a mirror of that main repository.
Here's my ToDo list:
1. Get you set up as someone who can review pull requests on github
2. Create a top level Mlox Readme. This is the file github uses as part of the landing page.
3. Migrate the issue tracker over to github (half done, but I don't want to close this one down until you're on github)
4. Migrate the wiki to github/actual documentation files in git itself. (I prefer moving the docs to the actual git repo personally, since it's easier for developers to reference them there
This transition should answer your question about what is where, and you'll easily be able to see any new changes to the code base.
Update.
I've made it extremely clear that this is the old issue tracker, and have added a link for the new one.
I've migrated most of the wiki to git, but left it open since EditingRules was still being worked on by Dragon32. Once Dragon has repo acess on github that can be closed down, and a promenent link to the appropriate github page shown instead.
In moving the wiki over I found a rather nice file to use as the Readme, so github looks nice now.
The current blocker is my not knowing Dragon32's github account name. Once I have that, I'll back everything up as appropriate, and finish the migration.
Why I removed most of the wiki:
Moving the wiki into the code means anyone who downloads the code also gets the documentation. This is generally considered to be best practice among large swaths of the coding community. It also has the advantage that if any future hosting platform changes are needed, the docs don't have to be migrated seperately.
Right then.
Got an account on GitHub: Dragon-32
Not ideal but close enough :)
Took a little bit of time reading up on Git and then clients (not sure I really need one for what I'm going to be doing but what the hey).
Done the Hello World GitHub thing. So I'm obviously 100% an expert with the whole thing.
That said (you may realise I was lying just then)... In creating a clone of https://github.com/mlox/mlox it looks like I use Import Repository on GitHub? Although that looks like it's for importing from somewhere else (like I guess you did with the original grab you did from Google Code or SourceForge)?
Or
Do I use the Fork command on mlox/mlox?
And so create Dragon-32/mlox?
As to your To-Do list.
Looks like you can do #1 now;
/#2 is there;
/#3 can be done when #1 is done;
and it looks like #4 is done too. From what I could see the wiki changes I made here on SourceForge had migrated over, looks like some local differences in syntax (mainly CR / LF differences) but the content's there. The words are the main thing...
Didn't know that about documentaion