-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define workflow for patching CKEditor #16
Labels
Comments
👍 submodule + patches approach |
I'm also in favor of trying the submodule + patch approach and also agree that this should be well documented and possibly automated |
For anyone interested, this is currently being implemented in #17 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This issue is to provide a place for us to discuss how we want to approach the question of applying patches to the upstream CKEditor given our new build system. For context, the old and the new build system are described in #7.
Ways to modify CKEditor
git-format-patch
) in a directory, and apply them as part of the build process. In this approach there are two main ways to get the base version of the code upon which to apply the patches: one is from a submodule (ie. what we currently have in this repo) and the other would be to keep it on a branch (ie. you'd add the CKEditor upstream as a remote and just create a local tracking branch to follow it here).Observations:
Proposals
To get the ball rolling on the discussion here, I'll detail a proposal for what I think would be a decent solution.
Proposal 1: Submodule plus explicit patch-list with supporting scripts
git format-patch
, and applied withgit am
.Variant to this approach:
git-worktree
to create a directory with a checkout of a branch from the upstream repo. To the developer, the structure looks the same (ie. the upstream code will be at "ckeditor-dev/") and the contents are a commit graph, so you can do all the things that you can usually do with Git (usegit-am
,git-format-patch
,git-rebase
,git-merge
etc). The only difference is that one is a submodule and the other is a worktree. Advantages of this approach: removes friction related to submodules. Disadvantages: we no longer have a the guarantee that the submodule provides us by pointing at a specific commit of the upstream project, so we'd have to right some supporting code in the build process to force, insofar as it is possible, that the worktree is based on a specific commit from the upstream repo.Both of these variants would involve what most would consider to be "advanced" Git usage, so my sense is that we'll need to provide some scaffolding in the form of clear documentation and helper scripts to carry out the workflow. My inclination is to give the submodule + patches approach a try first, and then evaluate whether it's working well enough, or whether we should explore an alternative. In any case, we might be able to defer all this for quite some time, as we don't actually need to apply any patches until we actually need to apply any patches... 😂
The text was updated successfully, but these errors were encountered: