Intro - Me and a few members have developed a self hosted support system on 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 the core project.
What we’re trying to do -
Support Project will have features added by a couple of members in our team regularly.
MyCustomSupportProject is a fork of SupportProject.
We want to pull in SupportProject new features into MyCustomSupportProject and still have MyCustomSupportProject features being 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 can’t 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 the work in git branches somehow.
you’d have to be very careful and it’s a bad idea - but could be possible.
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 to do
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 rails engine using any scripts/tools without having to create a new project and move the code over. We’re planning to follow this