As I develop various applications utilizing a core framework of my own creation, I am looking for a way to easily manage updates across all these applications. I have structured the code by creating a GitHub project where the main branch consists of the common core files, with each separate branch representing a different application. This allows me to update the common core and then create a pull request from the main branch to the application branch in order to sync the changes.
While this setup works well, I encounter issues in specific scenarios. For instance, if I need to modify a common core file within an application branch to cater to unique requirements of that particular application, I want to isolate and edit only that file while keeping other files updated as usual.
The challenge arises when trying to merge the pull request after making changes to the isolated common core file within the application branch, as it differs from the one in the main core repository.
In my typical project organization, I have:
core/...
features/...
public/...
main.ts
The 'core' and 'public' folders contain the common core files which should ideally remain unchanged. By branching the common core repository, adding feature modules within the folder, and loading all modules from 'main.ts', everything functions smoothly except when I need to tweak a public file for a specific application. Any alteration to this file prevents merging the branch and receiving updates from the common core files.
I previously experimented with submodules but found them unsatisfactory. My objective is to seamlessly integrate continuous updates from the common core files even when some are locally modified and need to be "untracked" in a sense.
If you have any suggestions on how to address this issue or improve the code structure, I would greatly appreciate your insights.
Thank you!