soboyle,
I was wondering how difficult upgrades are to the program after you have made extensive changes to coppermine?
IMHO, as with any program or script, it really depends on how extensive your modifications have been, and how what files you modified. A good program like [url http://winmerge.sourceforge.net/]winmerge[/url]
http://winmerge.sourceforge.net/ is indispensible when viewing changes between two files. With it, you can instantly view the differences between your existing file and any new updated file and readily update your file accordingly.
Variations between updates: 1.30 -> 1.31 ->1.32 ->1.33 ->1.34 are not as severe as variations between upgrades: 1.2x -> 1.3x ->1.4x
When modifying files, I believe it's always a good idea to add a comment where you modified on or near the modified section or line of code. eg:
new code here; // modified by me for xxx feature start
next code here; // modified by me for xxx feature end
or
<!-- section modified by me for xxx feature start -->
new code 1;
new code 1;
<!-- section modified by me for xxx feature end-->
In addition, you should keep create a text log (I suggest keeping it in the Docs folder) listing all of the files that contain personal modifications. This way, you will always be able to expedite "updates" on the files you had previously modified and simply overwrite files that you did not modify.
"Upgrades," on the other hand, may require more extensive rework as an upgrade generally implies an extensive overhaul of the code. For example, much of the scripting in the individual theme components of versions 1.3x are now in a shared file in versions 1.4x. Newer versions incorporate new features, some of which might even be the same features you added to a previous version, but scripted in a different manner. It may well be that where you previously incorporated your modifications will no longer be in the same file, but in a different file or files. This is where good notation as to where and what your modifications are come in handy.
For me, the advantages of an open source program like Coppermine is that, unlike most commercial programs, modifications and features are welcome. There are many people here who are happy to help you with your changes, provided you search the boards thoroughly and don't repeat requests that have already been resolved. Others with similar or same modifications will go through a shared experience with you and their questions and the answers posted will go a long way to resolving any issues you might have when upgrading. This is enough for me to recommend Coppermine regardless of the difficulties that might ensue from future upgrades.
Dennis