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.


Reply via email to