Thread Tools Display Modes
11-04-09, 12:40 AM   #1
Barjack
A Black Drake
AddOn Author - Click to view addons
Join Date: Apr 2009
Posts: 89
Lightbulb Maintaining local patches for addons

So, the scenario is that I often end up making many small tweaks to third party mods in order to make them fit my UI better. The problem is, how does one keep track of these changes? I'm guessing there are other people who do the same, as I'm wondering if anyone has opinions or advice on good or easy ways to do this (specifically on Windows).

Right now I'm just going in and editing the files immediately when I decide to try a change, then afterwards I'll add a little note that "Addon X is edited" so I know that I can't update it without overwriting an edit. Then when I do finally update the mod I'll go in, look for what I changed, and duplicate that in the new file. Definitely not ideal, but part of the problem is I don't really know an easy way to make this process better. Ideally maybe I'd have some sort of diffs/patches which I could reference to see what I changed, but setting up and using repos for each change seems a little difficult, and putting the addons folder thing in one big repo doesn't seem right either. I don't have that much experience with version control though, so maybe I'm overlooking a good way to do this.

So, anyone else encountered these problems? Advice/ideas?
  Reply With Quote
11-04-09, 05:05 AM   #2
Jzar
A Chromatic Dragonspawn
 
Jzar's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2007
Posts: 158
Yeah, I tinker with a number of the addons I use. Usually, I just post my changes to the addon's comments section and suggest the author incorporate my changes, or something similar. Being active in an addon's community can really help improve it for everyone, and you might be surprised by how often the author has responded favorably, and then my changes are simply incorporated into the original. No more version control problem!

A lot of the other changes I'm forced to make to addons come because the author no longer is maintaining them, so I don't get into version conflict scenarios with them.

For the few times where the author and I disagree on whether a change should be made to their addon, I usually simply adjust to their wishes because I don't want to get into the headache of a situation that you describe. My solution's not ideal either, but I have to admit that I was surprised at how often I was able to adjust fairly well with a little more tinkering with configuration, or reworking some part of my UI or something.
  Reply With Quote
11-04-09, 11:03 AM   #3
nightcracker
A Molten Giant
 
nightcracker's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 716
I think the following system would be awesome:
The minion checks the MD5 of the mod you have in your folder and the one of the original addon. If they differ he goes looking deeper for changesets and upload those changesets to a place where the author can look at them. This means if you make some changes the author can look at those changes and consider them applying them into the original addon. This is an automatic feedback system which saves a lot of time and improves the quality of addons a lot.

But that's just my 2 cents.
  Reply With Quote
11-04-09, 12:08 PM   #4
wurmfood
A Flamescale Wyrmkin
AddOn Author - Click to view addons
Join Date: Apr 2009
Posts: 122
The problem with that is a number of addons give you the option of adjusting configuration files and those don't need to be uploaded to the author.

Although, having a .toc line that said a particular file is a config file and shouldn't be written over unless specified by the author would be nice.
  Reply With Quote
11-04-09, 07:25 PM   #5
jeffy162
A Pyroguard Emberseer
 
jeffy162's Avatar
AddOn Author - Click to view addons
Join Date: May 2009
Posts: 2,364
Originally Posted by wurmfood View Post
Although, having a .toc line that said a particular file is a config file and shouldn't be written over unless specified by the author would be nice.
It would also be immediately ignored by anyone that wanted to modify said file.
  Reply With Quote
11-04-09, 07:58 PM   #6
Akryn
A Firelord
AddOn Author - Click to view addons
Join Date: Mar 2008
Posts: 479
Originally Posted by jeffy162 View Post
It would also be immediately ignored by anyone that wanted to modify said file.
They're talking about using Minion or something to diff the files and send changes to authors as suggestions. You'd want to be able to add metadata to tell Minion which files are normally supposed to be edited and which don't constitute changing actual addon code.

The thing about this is that it would generate a TON of spam, most of it worthless, even if you could eliminate false positives caused by actual updates to addons. I think that if you have made a change that you feel is worth getting added to the main distribution, it would be better to send it to the author with a description of what it does.
  Reply With Quote
11-05-09, 03:30 AM   #7
Zyonin
Coffee powered Kaldorei
 
Zyonin's Avatar
AddOn Author - Click to view addons
Join Date: May 2006
Posts: 1,443
To the OP, if you are comfortable with using a version tracking system, I would suggest starting a project on WoWInterface's SVN (Projects button), GitHub (git) or using CurseForge/WoWAce's project repositories (SVN, git or Mercurial). That way it's easier to keep track of your changes as you make them and if you make a mistake, it's easier to to revert back to an earlier version. I don't recommend Google Code unless the AddOn you are branching from, is under some kind of an Open Source License as GCode requires that.

Myself, to keep an updater from updating my customized AddOns, I will usually "branch" off that AddOn into it's own custom AddOn. So in the case of something like caelNameplates (an example), I maintain a branch called zyo_caelNamplates. The "zyo_" is my tag (in the .toc and folder name) to alert me that the AddOn in question is my customized version and it also keeps any updater from touching it. In this way I can update the original AddOn (caelNameplates) then if there any new features/code, I can choose whether or not to incorporate those changes into my private branch.

Eventually I do need to get around to working with Git or SVN however that is all command line stuff I am not familiar with yet.
__________________
Twitter
  Reply With Quote
11-05-09, 04:38 AM   #8
nightcracker
A Molten Giant
 
nightcracker's Avatar
AddOn Author - Click to view addons
Join Date: Sep 2009
Posts: 716
Originally Posted by Zyonin View Post
To the OP, if you are comfortable with using a version tracking system, I would suggest starting a project on WoWInterface's SVN (Projects button), GitHub (git) or using CurseForge/WoWAce's project repositories (SVN, git or Mercurial). That way it's easier to keep track of your changes as you make them and if you make a mistake, it's easier to to revert back to an earlier version. I don't recommend Google Code unless the AddOn you are branching from, is under some kind of an Open Source License as GCode requires that.

Myself, to keep an updater from updating my customized AddOns, I will usually "branch" off that AddOn into it's own custom AddOn. So in the case of something like caelNameplates (an example), I maintain a branch called zyo_caelNamplates. The "zyo_" is my tag (in the .toc and folder name) to alert me that the AddOn in question is my customized version and it also keeps any updater from touching it. In this way I can update the original AddOn (caelNameplates) then if there any new features/code, I can choose whether or not to incorporate those changes into my private branch.

Eventually I do need to get around to working with Git or SVN however that is all command line stuff I am not familiar with yet.

I use bitbucket with TortoiseHG and it works fine under windows without console commands.
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » AddOn Help/Support » Maintaining local patches for addons


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off