You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@training.apache.org by Dmitriy Pavlov <dp...@apache.org> on 2019/10/30 18:02:51 UTC

[Discussion] Ignite training labs: separate repo, navigation using branches

Hi Training Developers,

I would like to contribute labs related to Ignite training, initially I've
placed it here
https://github.com/dspavlov/training-ignite

In this repo there is model application, and each branch contains it's
incomplete state to be completed by student. It is easy to maintain labs
this way, so you can update something in master (completed state) and then
cherry-pick to other branches
master->lab6->...lab1.

WDYT if we create separate repository for labs (model app)?

Sincerely,
Dmitriy Pavlov

PS. It is also possible to do a WET solution and place every class in
separate folder in main repository, but I feel this branch-based & separate
repo approach may be useful,as well:
https://github.com/dspavlov/training-ignite/branches

Re: [Discussion] Ignite training labs: separate repo, navigation using branches

Posted by Jan Høydahl <ja...@cominvent.com>.
Have you considered using soft links? I think git can store them. So each file in folder “final” would be symlinked to one or more other folders.

Jan Høydahl

> 4. nov. 2019 kl. 14:25 skrev Ryan Skraba <ry...@skraba.com>:
> 
> To be clear: I have no experience with creating and (_especially_)
> maintaining lab materials, just pointing out that one experience as a
> student with a WET lab.  In the elm workshop, it's
> Write-Everything-Fourteen-Times-(Max)!
> 
> My experience with git and multi-branch workflows (release trains /
> maintenance branches) is to encourage minimizing the number of
> branches currently in play.  It's not that WET is less evil, just that
> I *will* end up cherry-picking to the wrong branch, or merging a PR
> from/to a misconfigured branch, or forgetting to push one of the
> branches, or... etc. etc.   In comparison to a single commit: I can
> verify that the same change was applied three times: to lab4, lab5,
> and lab6 (but not before lab4 because that code didn't apply yet).
> 
> That being said, it's possible that the branch-per-lab is the best fit
> for this use case.  If the Ignite materials are already prepared
> (awesome news), I imagine that incubating is the right time to give it
> a try.  It might also be extra encouraging for other lab creators,
> which would be additional feedback before deciding on "best
> practices"!
> 
> All my best, Ryan
> 
> 
> 
>> On Fri, Nov 1, 2019 at 10:12 AM Dmitriy Pavlov <dp...@apache.org> wrote:
>> 
>> Hi Justin, Ryan, thank for your replies.
>> 
>> Do I understand you correctly? WET (actually, not twice, but 4 or 5 or,
>> hopefully in the future, 10+ times) is less evil and all labs should be
>> initially diverged and placed to separate folders?
>> 
>> I also thought about some mixed approach:
>> 
>> I can commit all stuff using initial proposal, and master->lab6->5->4...
>> will be branches during development, but just before release some (for
>> example, gradle) script will checkout labs from supplementary repo and do
>> all copy-paste job.
>> 
>> E.g. git checkout lab 6; copy all stuff -> lab6, checkout lab 5, copy all
>> stuff -> lab5
>> 
>> What do you think?
>> 
>> пт, 1 нояб. 2019 г. в 11:25, Justin Mclean <ju...@me.com>:
>> 
>>> HI,
>>> 
>>>> Hello!  I just wanted to point to a workshop that uses the WET
>>>> strategy: https://github.com/rtfeldman/elm-workshop   Each step of the
>>>> lab is in a different directory, rather than branch.
>>> 
>>> I have to say I like that idea better as it’s clear what the current
>>> version is.
>>> 
>>> Thanks,
>>> Justin
>>> 
>>> 

Re: [Discussion] Ignite training labs: separate repo, navigation using branches

Posted by Ryan Skraba <ry...@skraba.com>.
To be clear: I have no experience with creating and (_especially_)
maintaining lab materials, just pointing out that one experience as a
student with a WET lab.  In the elm workshop, it's
Write-Everything-Fourteen-Times-(Max)!

My experience with git and multi-branch workflows (release trains /
maintenance branches) is to encourage minimizing the number of
branches currently in play.  It's not that WET is less evil, just that
I *will* end up cherry-picking to the wrong branch, or merging a PR
from/to a misconfigured branch, or forgetting to push one of the
branches, or... etc. etc.   In comparison to a single commit: I can
verify that the same change was applied three times: to lab4, lab5,
and lab6 (but not before lab4 because that code didn't apply yet).

That being said, it's possible that the branch-per-lab is the best fit
for this use case.  If the Ignite materials are already prepared
(awesome news), I imagine that incubating is the right time to give it
a try.  It might also be extra encouraging for other lab creators,
which would be additional feedback before deciding on "best
practices"!

All my best, Ryan



On Fri, Nov 1, 2019 at 10:12 AM Dmitriy Pavlov <dp...@apache.org> wrote:
>
> Hi Justin, Ryan, thank for your replies.
>
> Do I understand you correctly? WET (actually, not twice, but 4 or 5 or,
> hopefully in the future, 10+ times) is less evil and all labs should be
> initially diverged and placed to separate folders?
>
> I also thought about some mixed approach:
>
> I can commit all stuff using initial proposal, and master->lab6->5->4...
> will be branches during development, but just before release some (for
> example, gradle) script will checkout labs from supplementary repo and do
> all copy-paste job.
>
> E.g. git checkout lab 6; copy all stuff -> lab6, checkout lab 5, copy all
> stuff -> lab5
>
> What do you think?
>
> пт, 1 нояб. 2019 г. в 11:25, Justin Mclean <ju...@me.com>:
>
> > HI,
> >
> > > Hello!  I just wanted to point to a workshop that uses the WET
> > > strategy: https://github.com/rtfeldman/elm-workshop   Each step of the
> > > lab is in a different directory, rather than branch.
> >
> > I have to say I like that idea better as it’s clear what the current
> > version is.
> >
> > Thanks,
> > Justin
> >
> >

Re: [Discussion] Ignite training labs: separate repo, navigation using branches

Posted by Dmitriy Pavlov <dp...@apache.org>.
Hi Justin, Ryan, thank for your replies.

Do I understand you correctly? WET (actually, not twice, but 4 or 5 or,
hopefully in the future, 10+ times) is less evil and all labs should be
initially diverged and placed to separate folders?

I also thought about some mixed approach:

I can commit all stuff using initial proposal, and master->lab6->5->4...
will be branches during development, but just before release some (for
example, gradle) script will checkout labs from supplementary repo and do
all copy-paste job.

E.g. git checkout lab 6; copy all stuff -> lab6, checkout lab 5, copy all
stuff -> lab5

What do you think?

пт, 1 нояб. 2019 г. в 11:25, Justin Mclean <ju...@me.com>:

> HI,
>
> > Hello!  I just wanted to point to a workshop that uses the WET
> > strategy: https://github.com/rtfeldman/elm-workshop   Each step of the
> > lab is in a different directory, rather than branch.
>
> I have to say I like that idea better as it’s clear what the current
> version is.
>
> Thanks,
> Justin
>
>

Re: [Discussion] Ignite training labs: separate repo, navigation using branches

Posted by Justin Mclean <ju...@me.com>.
HI,

> Hello!  I just wanted to point to a workshop that uses the WET
> strategy: https://github.com/rtfeldman/elm-workshop   Each step of the
> lab is in a different directory, rather than branch.

I have to say I like that idea better as it’s clear what the current version is.

Thanks,
Justin


Re: [Discussion] Ignite training labs: separate repo, navigation using branches

Posted by Ryan Skraba <ry...@skraba.com>.
Hello!  I just wanted to point to a workshop that uses the WET
strategy: https://github.com/rtfeldman/elm-workshop   Each step of the
lab is in a different directory, rather than branch.  I went to a
(shortened) workshop presented by a team member, and it was a pretty
successful and enjoyable experience as a student.

The advantage would be that there's no need to separate out into a
different repo, and you only need to maintain the master branch
(albeit with NN different parts directories).  For building/CI,
packaging and distributing materials to presenters and students, this
seems far simpler!

The disadvantage as you mentioned, of course, is that the course
developer needs to maintain NN different directories instead of NN
different branches, and cherry-picks aren't available... I wonder if
there's a diff/patch strategy that would be just as effective?

Are you thinking of one training-labs repo for all lab-oriented
material, or one repo per subject?  Having one training-labs repo with
many, many branches to be maintained sounds like it would be a huge
maintenance burden!

Best regards, Ryan


On Wed, Oct 30, 2019 at 7:03 PM Dmitriy Pavlov <dp...@apache.org> wrote:
>
> Hi Training Developers,
>
> I would like to contribute labs related to Ignite training, initially I've
> placed it here
> https://github.com/dspavlov/training-ignite
>
> In this repo there is model application, and each branch contains it's
> incomplete state to be completed by student. It is easy to maintain labs
> this way, so you can update something in master (completed state) and then
> cherry-pick to other branches
> master->lab6->...lab1.
>
> WDYT if we create separate repository for labs (model app)?
>
> Sincerely,
> Dmitriy Pavlov
>
> PS. It is also possible to do a WET solution and place every class in
> separate folder in main repository, but I feel this branch-based & separate
> repo approach may be useful,as well:
> https://github.com/dspavlov/training-ignite/branches