UMPsychMethodsCore / MethodsCore

All of the projects that the methods core develops, combined into one repository!
7 stars 0 forks source link

How to handle inter-toolbox dependencies? #379

Open dankessler opened 8 years ago

dankessler commented 8 years ago

Issue #378 brought up some discussion of inter-toolbox dependencies, so I'm opening this issue thread to hash out best practices for an inter-toolbox dependency workflow.

dankessler commented 8 years ago

I don't think I've actually addressed dependency in the wiki, so here's how I would handle Robert's example workflow (my approach is not necessarily the correct one, just laying it out for discussion purposes).

Scenario: Currently, spm8Batch uses spm8 R4667. I want to update spm8Batch to use spm8 R6313. Of course, I need to actually have R6313 available for this to make sense.

Let's start out by assuming that we don't have alpha/beta channels (this will simplify my notation) and that all channels currently reflect the stable & released version of their toolbox.

  1. checkout a new branch based on core called core/add_spm8_R6313
  2. add spm8_R6313 to appropriate folder and commit
  3. checkout a new branch based on spm8Batch called spm8Batch/support_spm8_R6313
  4. merge core/add_spm8_R6313 into my current branch (spm8Batch/support_spm8_R6313)
  5. make changes to spm8Batch so that it points to R6313 (now available via the merge)
  6. submit pull request A: core/add_spm8_R6313 ->into-> universe/core
  7. submit pull request B: spm8Batch/support_spm8_R6313 ->into->universe/spm8Batch

The two pull requests can be independently reviewed. Adding spm8_R6313 is presumably straightforward, but for the sake of discourse, let's assume that somehow there's a problem that is identified while reviewing pull request A that necessitates some changes to core/add_spm8_R6313. We simply then merge core/add_spm8_R6313 ->into->spm8Batch/support_spm8_R6313 again and those fixes are now incorporated.