-
-
Notifications
You must be signed in to change notification settings - Fork 381
Per-subject/tool branches for easy lesson mixing and maintenance #102
Comments
Example instructor notes: |
I think it's a good idea to encourage experienced developers to maintain their own SWC feature branches that can be merged into SWC as a more advanced workflow. I also think it's important to have a central list of "blessed" content that coexists in one repository, similar to the Python standard library and the wide range of packages that augment it. I understand there are weaknesses to this approach, but I think they are outweighed by the advantages. I'm happy to work with you (and others) on this as a Skunk Works project, possibly in another properly rooted repository. My primary concerns with adopting those over our current workflow are that our instructors are not experienced enough with Git to perform these sort of maneuvers. I have a couple of years of experience with Git and merging in wildly different branches is still a bit terrifying to me sometimes :) |
About the central list of "blessed" content we can use git submodule for this. Any reason, except more advanced git knowledge, for not using it? |
On 2013-10-23 9:19 AM, r-gaia-cs wrote:
|
@r-gaia-cs - Do you trust me when I say that git submodule would cause many more problems than it would solve in this scenario? It confuses even advanced users when developing. I'm speaking from experience on two software projects I manage with professional scientists. |
One more -1 on git submodules. Very tricky to use for most folks (we use them in my lab it causes lots of confusion). |
On Wed, Oct 23, 2013 at 05:39:07AM -0700, Aron Ahmadia wrote:
There's no reason you can't have a blessed collection of feature
Sounds good, since this is currently a fair distance from useful ;). $ git clone git://tremily.us/swc-boot-camp.git Alternatively, you can just enable everything: $ git clone git://tremily.us/swc-boot-camp.git The submodule repositories are culled from the old boot-camps and
Heh. A few thoughts:
Incidentally, this approach makes "where do I store compiled |
On Wed, Oct 23, 2013 at 06:40:39AM -0700, Ethan White wrote:
An option for the submodule averse would be: $ git clone --branch namespaced git://tremily.us/swc-boot-camp.git And the maintainer of each submodule could periodically run: $ git checkout namespaced to keep the namespaced branch up to date with file edits. They'd have One benefit of this decoupled namespacing is that I can use the same |
I agree that keeping multiple repositories to help deal with repository bloat/optional content is one path forward. What are your thoughts on a binary hash-tracker such as the git annex/fat? |
On Wed, Oct 23, 2013 at 07:39:20AM -0700, Aron Ahmadia wrote:
I think binary data isn't source ;). Those tools are useful for If your source is binary (e.g. a GIMP .xcf), then you can manage |
@ahmadia Yes, git submodules can cause many problems when learning it but is the safest way to go with isolate per-subject rules. Using branches can cause lots of troubles (conflicts when merging) and be time consuming for new instructor when setup a bootcamp. |
On Wed, Oct 23, 2013 at 07:28:05AM -0700, W. Trevor King wrote:
Talk is cheap, so I've stubbed that out in the following branch: git://tremily.us/swc-boot-camp.git assembled With the submodule-based analog in: git://tremily.us/swc-boot-camp.git master I'd recommend the latter, because:
However, the submodule-averse are welcome to use an assembly of |
@wking - This is going to take more time than I normally have during the week. I'm going to play with this over the weekend and report back. |
On Wed, Oct 23, 2013 at 07:03:14AM -0700, W. Trevor King wrote:
Today I finished the last of my restructured-modular-shell branch 1.
including some of Orion Buske's genotype history pulled from the jaws |
@wking - Thanks, I took a look at it.
My reaction is positive so far. This isn't that complicated of a setup, and I think it's a good way for instructors to maintain and pull in material from each other. I can't believe we're still having this discussion, but I don't think we've agreed on a standard for presenting materials yet. I think it's time to open that meta-issue and keep trying to hash that out here. |
On Wed, Oct 30, 2013 at 05:42:51AM -0700, Aron Ahmadia wrote:
Thanks for the feedback :).
Really?
1.32 MiB is not that huge… Most of the weight is in the 'assembled'
You can also:
The reason we're still having the "presentation format" discussion is |
@wking - my connection hiccuped, and I gave up early :) Glad it's only 1.32 MiB. I don't suppose you know of a way to query that without actually doing the fetch, do you? |
On Wed, Oct 30, 2013 at 10:06:36AM -0700, Aron Ahmadia wrote:
Apparently you can with GitHub's API 1, but not with the standard It doesn't actually show the total size, but you can certainly watch :p |
My impression of things is that they are a bit less up in the air than |
@ethanwhite - Agreed. At first we were trying IPython Notebooks for everything, although I agree we've back off from that. I'm referring a bit more to the structure of the lessons themselves. @wking had an excellent earlier point where he summarized the various layouts we were considering (longform web notes, short instructor notes, short form learner's notes, exercises, etc...) You can see examples of all of them across the SWC and THW materials. The request for an issue doesn't mean I want to discuss this more, it just means I (and others) looking for clarity. I'd love to see this added to the docs so we have something to refer to when considering pull requests and reorganizing material. |
On Wed, Oct 30, 2013 at 11:58:32AM -0700, Ethan White wrote:
There's just been a PR with RMarkdown source (#91, #92), and another
Hmm, the README has some typos in it (e.g. |
And RMarkdown (issue #92)? Can you got a resolution for it before close this issue? (@wking was faster than I.) I'm +1 on IPython notebooks for Python material (beside it need some improvements), RMarkdown for R and Markdown for everything else (just to remember the issue #93 where we have a IPython Notebook for Software Carpentry's shell lesson). |
My impression is that the goal is to move towards a single set of
I completely agree that this is a difficult problem and that the current |
On Wed, Oct 30, 2013 at 01:59:09PM -0700, Ethan White wrote:
Hooray :). And good luck ;).
Sounds good. I'll reiterate that the submodule-based approach to |
Apologies for being absent from the discussion - travel :-( We're not going to adopt per-subject/per-tool branches, but I agree that we need to figure out what to do about managing media (IPython Notebooks, R Markdown files, etc.) and more generally where Software Carpentry ends and other things begin. I have a long-ish message about this in my drafts folder, and I'll try to get it out by noon tomorrow. |
I like it this way too. Maybe part of @ahmadia's awesome weekly update |
@ethanwhite @gvwilson - As I mentioned earlier in the thread, I think it's time to start a new issue about this :) @gvwilson - you seem to have the best sense for the temperament of the discuss mailing list, so perhaps it's best if you start the new issue and advertise it there. |
On Wed, Oct 30, 2013 at 03:00:16PM -0700, Greg Wilson wrote:
That's pretty concise ;). If we end up nominating per-subject/tool |
On Wed, Oct 30, 2013 at 04:27:44PM -0700, W. Trevor King wrote:
I think I should point out that there's no reason to require a
But I submitted an alternate #269 that got the content through my
Anyone else interested in the installer script (but not the rest of So folks who think “bc is too heavy, I want a lighter weight version” |
My number one priority is to make it easy for newcomers to contribute. |
On Tue, Feb 04, 2014 at 05:22:23PM -0800, Greg Wilson wrote:
They can still submit PRs against bc.
I'm still in favor of assembling a canonical collection in
I agree with both of your priorities, but not your conclusion ;). I windows-installer$ git fetch bc bc$ git checkout windows-installer There's nothing (except a single cherry-pick) that we don't teach |
On Tue, Feb 04, 2014 at 06:02:27PM -0800, W. Trevor King wrote:
Particularly for maintainers who opt-in to this approach ;). Anyone |
In the lab meeting today, @gvwilson mentioned mixing lessons using |
On Thu, May 22, 2014 at 04:35:40PM -0700, W. Trevor King wrote:
In the July sprint, @twitwi, @r-gaia-cs, and I stubbed out a procedure |
I've been thinking about the isolated-feature-branches approach that I used #89, and I've started toying with what that would look like for lesson content (#89 only uses it for pre-boot-camp setup). Ordinarily, I'd post this message to discuss@, but following @gvwilson's request, I'll open this one as an issue. I'm happy to move this discussion back into a mailing list if someone knows where this sort of workflow discussion belongs.
The isolated-feature branch workflow looks something like this:
New instructor getting ready for a boot camp
a. Create a branch for the new boot camp, possibly in its own repository, cloning
b. List possible subjects:
c. For each subject you want to cover, merge the subject branch
d. For each subject, pick and merge a tool
e. Publish your student-facing setup notes as you see fit for your tool/branch choices, possibly just by pointing students at the GitHub browser for your new branch.
Old instructor getting ready for another boot camp
a. Create a branch for the new camp, based on something you've used in the past:
b. You've been hearing good things on discuss@ about @wking's version-control-git branch, so you try switching over to it, dropping your old notes:
c. Publish…
The drawback of this multi-branch approach is that you don't have an out-of-the-box experience (unless folks want to maintain "distribution" branches collecting a useful set of topic branches). The upside is that we don't have to agree on everything across tools and subjects before we can collaborate on a single subject/tool note set. It also makes maintainer-ship obvious; version-control-git is in my repository, so I'm going to maintain it, and that's where you should sent pull requests. If I'm doing a bad job, and jdoe starts an alternative branch with long-form notes and sexy graphics, it's an easy merge for interested parties to switch over. It also makes it easy for experienced instructors to grab some new testing stuff that they like, while keeping their personal shell lesson which they adore.
Thoughts?
The text was updated successfully, but these errors were encountered: