trustoverip / TechArch

This is the working area for the ToIP Technology Architecture specification.
Other
10 stars 13 forks source link

Define a set of rules and process for merging #40

Closed andorsk closed 1 year ago

andorsk commented 1 year ago

Define a set of rules and process for merging. This involves figuring out who is capable of merging back to master.

andorsk commented 1 year ago

@wenjing suggested break out: Editor and Maintainer.

Antti:

Abbie:

Drummond:

a-fox commented 1 year ago

I think this issue is inherently wider than just merging. We should describe the contribution & editing process, including Branching, Pull Request & Merging process. This is also closely tied in with the Labels & issue management process, as we tag the issue with PR's & merge-ready labels.

I've previously used Gitflow (https://www.gitkraken.com/learn/git/git-flow), but it's too complex for mere document management. However, GitHub Flow seems to be much simpler and would work fine for our needs.

For the process & rules, I propose the following:

Branching & Tagging:

Changes to document

Editing Git process 1) Create a clone of the repo 2) Make changes to the document on your own repo 3) Ensure commit history sync by rebasing own repo with 'git pull rebase' 4) Create a pull request against the ToIP repo main branch 5) Refer to the PR in the relevant issue(s). 6) Contributor sets the issue to label "Needs review" to signal editors to review the changes

Review & Merge Process

andorsk commented 1 year ago

I'll take putting this into a formal PR for the next call! Thanks @a-fox for the awesome comments here. Will probably take this w/ some modifications.

talltree commented 1 year ago

@a-fox Thank you for taking the time for such a detailed proposal. I'm not a GitHub expert, so this all seems to make sense to me. I will leave it up to the set of Editors who volunteer to be Maintainers (of which I hope you will be one, and @andorsk has also volunteered) to work this out to your satisfaction.

a-fox commented 1 year ago

I think the key point of decision is to agree the merging/maintaining process: 1) Initially all editors are allowed to merge new changes 2) Editor group may choose a time of controlled merging, when only selected people mantain merging 3) Maintainers are there to manage the merging, maintaining and publishing process technically.

Does this sound ok?

talltree commented 1 year ago

I'll take putting this into a formal PR for the next call! Thanks @a-fox for the awesome comments here. Will probably take this w/ some modifications.

@andorsk Since this issue isn't about the spec, but rather about our repo maintenance process, rather than a PR, I would propose that we document this in another wiki page just like the Github Issue Management page we just created today.

To make it easy, I just created that new wiki page: Github Repo Management.

Since @a-fox has proposed a process, I'm assigning him alongside you on this issue so the two of you can work out your proposed process on that wiki page. As soon as you have a draft you both like, add a comment back here and change the label to status: needs-review.

andorsk commented 1 year ago

@talltree I'm fine with maintaining a separate clone of the documents, (and I'm happy to copy things over after things are settled) but I think Github needs to be the single source of truth when it comes to the process and in terms of design process a PR actually does provide a good way to iterate, design, and handle it (at least IMO ).

Typically, a file like the GOVERNANCE.md and CONTRIBUTING.md file will provide the guidelines for governance of the repo. That file would be submitted and iterated over a PR. Samples are on the links.

I'll say this: From my personal experience, I actually find it more productive to run a PR with a proposal, then iterate on it with collaborators. I'm happy to do it over Confluence, as I'm not trying to make it difficult on purpose, but want to put it out there this might be a good opportunity to work through a different flow that's a little more lined up with the "git" process.

I understand that everyone is at different levels of familiarity with Git, so maybe I'm thinking a little bit too much like I would in a more Git friendly context, so please push back on this if you think it's appropriate.

Let me know where you guys are on this, and I'll go with it. I want to clarify I'm not opposed to using the page @talltree provided, but wanted to float this by first and see what you think.

andorsk commented 1 year ago

https://github.com/trustoverip/TechArch/pull/49 has some work around this and is in DRAFT.

andorsk commented 1 year ago

Current version: https://github.com/trustoverip/TechArch/blob/339dc1cf4bd0c7d226520dc963a1b9726937a020/CONTRIBUTING.md to be reviewed.