Bruno, > For the record; you should rarely be > touching the CE plugin code (unless you're doing a bugfix or feature > addition that is intended to go back into core). Your local application > customizations should be done in your app directory, not directly to CE.
I have read this before but at the time (about a year ago) when I first started hacking on CE I didn't follow your advise. The advantage I see with a separate branch is that I have to manually fix any merge conflicts. This lets me know when we modify the same places in the app. Now if I was a good Rails citizen and wrote/ran test scripts frequently it might not be as big of a problem, but at the time I felt more comfortable jumping into (my first) git workflow compared to overriding entire methods/views in my own app folder. A lot of this has to do with the types of changes I wanted to make initially. For example, one of the first things I did was change from a location based on country/state/city to one based on region/county/ neighborhood (my site is local and I needed more granularity). This meant I was modifying a lot of files to make 1 or 2 line changes. I was worried if I copied all of these files to my own app that I would be stuck at a later time synchronizing them by hand to bring in any new goodness from core (master). Instead I let git handle this automatically and I only have to deal with the conflicts. I do agree that we should strive to make CE as modular as possible. I am working on some other features which I have broken off into a separate plugin. Here it made sense because I wasn't overriding functionality, only adding. Most importantly it gave me a convenient way to manage my migrations separately. Unfortunately, I must admit, during my last round of development my methods resulted in some commits that belong upstream getting stuck in a heavily a customized branch. I would like to make some of these changes more accessible to others. I plan to cherry-pick commits with upstream potential into a separate branch for your review. Going forward this is the workflow I will probably follow. I am open to any suggestions for improvement: fixes branch - for things that belong upstream or may be of general use to the community. project branch - for all the customizations specific to my project. Probably not useful to others. new plugin - for new functionality not directly coupled with existing CE core functionality. Thanks, Justin -- You received this message because you are subscribed to the Google Groups "CommunityEngine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/communityengine?hl=en.
