Intro - Me and a few members have developed a self hosted support system
rails 4 and we are building more features around it so that projects can
easily adapt it.
Problem - Customizing the project for another client without effecting
What we’re trying to do -
- Support Project will have features added by a couple of members in
- MyCustomSupportProject is a fork of SupportProject.
- We want to pull in SupportProject new features into
MyCustomSupportProject and still have MyCustomSupportProject features
added without conflicting with SupportProject features.
Is there a way to handle a situation without using rails engine / gem?
Any recommendations to handle a situation like this in a clean way ?
You have removed the two options that would allow you to do this. Why
you make SupportProject a Rails engine, or break out some of it’s
functionality into Gems?
A rails engine is how I’d do it myself but if that’s off the table, the
only way I see that could remotely (and poorly) work would be to manage
work in git branches somehow.
you’d have to be very careful and it’s a bad idea - but could be
have a core branch of code and a set of production branches… when the
core changes you can merge it over the production branches. just don’t
ever merge the production branches over the core… lol
it’s a bad idea… use an engine - they work nicely and aren’t very hard
Sounds to me like a gem that represents some of your core domain logic,
being developed by a singular or group of teams (and possibly being
forked for development by multiple teams as you say) is a great solution
to your problem.
Why don’t you want to use a gem?
I think I’m convinced to go via rails engine as doing via git branches
makes it difficult to manage later on ( as Allen suggested ) but as the
SupportSystem is already half way through, Can i turn that app into
engine using any scripts/tools without having to create a new project
move the code over. We’re planning to follow this