Skip to content

Process discussion for keeping in sync with main repository #7

@effigies

Description

@effigies

Just wanted to start a discussion about how to operate a BEP like this separate from the main spec, particularly with respect to keeping things in sync so that when you're getting ready for merging back in, merge conflicts don't arise. Because this was created with the full git history, this should be fairly easy, technically speaking.

So I'm going to propose a model. Feel free to reject or adapt, but hopefully this will be helpful nonetheless.

Initial setup

I have done some initial work that I detailed in #6. That involved:

  • Pushing the current state of upstream master and common-derivatives to this repository
  • Reinstating the diffusion derivatives only in a bep-016 branch, that I propose treating as equivalent to your master branch. All PRs should go against that.
  • Rebasing the commits from [ENH] Restructuring of DWI derivatives #5 against bep-016, so that PR can be picked back up with as little interruption as possible. (@Lestropie, please ask if you need help switching to that branch.)

Maintaining

I would suggest that you identify one maintainer to periodically (perhaps weekly) update the common-derivatives and master branches, so that changes in the main spec get reflected here, and makes any potential merge conflicts evident. To set up a new repository:

git clone git@github.com:<USER>/bids-specification.git
cd bids-specification
git remote add bids git@github.com:bids-standard/bids-specification.git
git remote add bep16 git@github.com:bids-standard/bids-bep016.git
git fetch --all
git branch --set-upstream-to=bids/master master
git checkout -t bids/common-derivatives

To update:

git fetch bids bep16
git push bep16 bids/master:master
git push bep16 bids/common-derivatives:common-derivatives

As long as the master and common-derivatives stay in sync, this should work smoothly. If things get messed up, I'm happy to help figure out what happened and get things back to a clean state.

There's nothing wrong with multiple maintainers, but assigning one person (or one person at a time) might reduce the likelihood of messes.

Contributing

Otherwise, I would recommend you treat this like a normal repository, but with PRs against the bep-016 branch.

Merging back

When this PR is in a state where you're ready for final review to merge back into the primary spec, I would recommend the maintainer do:

git fetch bids bep16
git checkout -t bep16/bep-016
git push bids bep-016

This assumes you don't have a copy of the bep-016 branch already on your local repository and that you have write access to the main repository.

Metadata

Metadata

Assignees

No one assigned

    Labels

    processRelated to dev process

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions