Opinions Desired: Github Sync

I’m going to be adding a Sync to GitHub feature. This will sync all your solutions to github.

I’d like some idea-generation on how you’d like it to work. My initial thinking is a structure of:

  • Dedicated repo on a user’s personal account
  • Structured like: /ruby/two-fer/iteration_1/two_fer.rb
  • Auto-push on iteration creation.

Questions:

  1. Push or PR?
  2. If Push, what happens if the user has pushed (and conflicted somehow)
  3. Automatic or manually-trigger actions?
  4. What am I not considering / thinking of

**Please use this thread to send me thoughts ideas. Please don’t use it to debate those ideas :slight_smile: I want to hear opinions, not find conclusions, so please stick to one post per person, which you update if your ideas evolve/change! :slight_smile: **

2 Likes

If you don’t mind, could you expand more? What’s the motivation? How will it be (intended to be) used?

Will it sync the local workspace for an exercise? Or the solutions on the website under a user profile? First I assumed the former, but on re-read “will sync all your solutions” I guess the latter.


Structured like: /ruby/two-fer/iteration_1/two_fer.rb

Idea: Why not /ruby/two-fer/two_fer.rb with iterations as commits?

Thanks for commenting. It syncs your solutions to GitHub, so that you have a backup/showcase of them away from Exercism. It’s something a lot of people do manually.

It syncs your solution. I hadn’t thought about the workspace too. That’s interesting and I’d be interested in hearing opinions on that.

On the commits idea, that’s interesting. I’d like to hear other people’s opinions on that too! :)

1 Like

I support the idea for commits, if it’s easy to setup. After all, git is for versioning.

Other than that, so far i have no useful comments.

I’d also like it to sync the local workspace so you have the test suite at the time of the iteration. Old solutions may not pass the current test suite on the website so it’d be important to have the original test suite on hand.

Having the repo on the personal account means the user can also make changes to the repo which may conflict. Would it make more sense to have a private repo on the Exercism org for each Insider that’s read-only for them. Then, they can fork it and do whatever they want with it, but that original repo will always be there and up-to-date if there are any issues.

+1 to using the same path for multiple iterations and relying on git for the iterations.

1 Like

I like the idea over all and I hope it also brings things a bit closer to having the “easy diff view” potentially as well to the platform.

I am one of those that encourage students to retain their iterations in a version control system (often Git, but I really do not care what they chose), and I also keep a git backup of the student iterations (and conversations) so that I can easily see their progression locally, with diff views, helping me evaluate where they have been, the moves they have made (as snapshots of time) and I can present side by side direct comparisons of things.

For my own iterations, I create the git history as I develop in my own environment for any language that gets past “topical interest” so keeping versions is natural in those, but is other wise pretty “forced” if I want it for the topical interest tracks. This would help to cross that barrier for me, and would easily allow me to have no barrier in terms of effort to benefit.

1 Like

I support the idea.

Hyperskill.org offers a share student’s projects on GitHub as well (after students completed the project).

OK. Thanks everyone. I’ve built out the first version of this and will hopefully launch a beta tomorrow or Monday.

It will:

  • Allow for either PR or commits.
  • Allow you to choose your path template
  • Allow you to choose your commit message
  • All you to override previous iterations or create subdirectories for each.
  • In both PR/commit modes, it just adds the files at the path given in the PR, so no risk of conflict.
  • Allow you to store submitted files or the whole directory.
  • Allow you to add to any repo you can install a GitHub App on.
  • Allow you to have PRs/Commits submitted automatically or manually on a sync-per-exercise basis.

I also want to add a “Bootstrap repo” option. But I’ve not looked at that yet.

5 Likes