-
Notifications
You must be signed in to change notification settings - Fork 25
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
Automatic sync v2 #61
Comments
I think we should give it a chance to figure out how to include the commit in the merge. Once the commit is included I suspect that the same changes won't be pulled next month due to the commit timestamp. This was true in my initial research/testing before funding the idea. |
You mean that sync-template.yml should propose changes only to the files that have been added/updated/removed in the https://github.com/ubiquity/ts-template repo during the last month? |
After the initial run it should only sync new changes. That's the point of this tool. But we need to merge the commit for git to resolve future pulls in this manner. |
I still don't understand how it's supposed to work. Check these
When we open a PR from |
I think for initial setup I'll need to merge the pull, and then cherry pick or "revert" the changes on top of that commit. Once that commit is in, I don't anticipate redundant changes to be requested again. Instead, only new changes to the template will be requested to be merged in, which is precisely the behavior that we want. |
I tried for a few hours tonight testing at pay.ubq.fi but couldn't figure it out. Claude suggested an interesting approach that involved cherry picking commits which I think is more on the right track.
Perhaps a full whitelist should be defined here. I think it makes sense to sync every file in the root, |
/wallet 0xE80FC2700ec6faF5f0347a2E7E7798FAf548e1c3 |
+ Successfully registered wallet address |
/start |
Tip
|
@ariesgun Regarding failing https://github.com/ariesgun/work.ubq.fi/actions/runs/11304622140/job/31443217530 You may either create a new github app, install to your forked instance of https://github.com/ariesgun/work.ubq.fi (with necessary permissions) and setup Either pass your personal github PAT here, but keep in mind that in the end |
If we continue with this idea: I think it might actually make more sense to run a single cron that authenticates with our GitHub app from a dedicated repo. This script can dynamically find all the active repositories across all three of our organizations and open pulls against them. Then we don't need to worry about managing every instance of this script across all of our orgs. |
I updated the script based on https://github.com/ubiquity/pay.ubq.fi/blob/dbe772fe36d7fffbe4c6ca75a3862336092c3e2d/.github/workflows/sync-template.yml#L42-L54. Here's the results: First time sync is always painful since there will be lots of conflicts. These must be solve manually as well. Subsequent syncs might and might not have conflicts. Do you guys think this mechanism is acceptable? |
It's hard to say but in my experience the run didn't go smoothly. We might need to settle with dialing back the scope of the script's responsibility. Perhaps just sync the root level files until we figure a reliable technique? |
The best strategy at this moment is to use whitelisting strategy then. Don't use git merge or cherry pick at all (because it might trigger merge conflicts) and just simply copy paste whitelisted files from ts-template to the target repos. Even if we only sync root files, it does not guarantee that it wont replace changes made in the target repo. (e.g. package.json) |
We could make more advanced custom logic that uses AI to figure out what to sync. For example:
Seems a bit overkill but I think it could solve the problem. I would make this a low priority project that would take about a week. |
Do you guys have an example on using Claude AI? Using an AI to solve merge conflicts sounds dangerous |
Via pull request the results are approved by humans |
/stop |
/start |
! ariesgun you were previously unassigned from this task. You cannot be reassigned. |
@0x4007, can you assign this to me again? I would like to try to use Claude AI to handle the merge conflicts. |
@ariesgun the deadline is at Mon, Oct 28, 10:45 PM UTC |
Is https://github.com/ubiquity/.github still the best place to put the script? |
Passed the deadline and no activity is detected, removing assignees: @ariesgun. |
/start |
Yes, the sync workflow should only propose changes automatically on shared files between repos, I agree those include some of the workflows and ts settings. What I would propose is to enable manual workflow runs with input files too. This way if you want every repo that uses the template to receive a specific new file or to create an overwriting, but not too big PR, you can do it. I believe the AI analysis even though might help, would still need a thorough review and would not reduce any time overhead. I am not sure centralizing the sync workflow is a good idea, if so we would need another way to identify which repos implement the template, to only open PRs in those. |
/start |
! You have reached your max task limit. Please close out some tasks before assigning new ones. |
@zugdev the deadline is at Sat, Nov 9, 2:50 PM UTC |
Passed the deadline and no activity is detected, removing assignees: @zugdev. |
GitHub iOS UI is broken and I can't access the menu to assign you but there's a change that should be made before merging. |
@zugdev the deadline is at Tue, Nov 19, 4:11 PM UTC |
Passed the deadline and no activity is detected, removing assignees: @zugdev. |
This PR introduced a workflow for syncing https://github.com/ubiquity/ts-template repository template with all of our other repositories.
There are a couple of issues:
a) Clears the main page
b) Removes required dependencies
"Auto sync" may be useful for small changes like CI updates, ts config edits, etc... Such PRs introduce too many changes which are hard to debug and fix.
What should be done:
deploy.yml
ortsconfig.json
) with the following strategy:ts-template
: file added,target-repo
: file missing => propose adding a filets-template
: file modified,target-repo
: file exists => propose changets-template
: file deleted,target-repo
: file exists => propose deleteP.S. For authentication you may use github PAT of this user https://github.com/ubiquity-devpool
The text was updated successfully, but these errors were encountered: