Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setup/swcarpentry-installation-test-2.py should test the tools we use most commonly #136

Closed
abostroem opened this issue Jan 15, 2015 · 24 comments
Labels
help wanted Looking for Contributors type:enhancement Propose enhancement to the lesson

Comments

@abostroem
Copy link
Contributor

The current version of setup/swcarpentry-installation-test-2.py tests for everything we could possibly use including tools like Mayavi that are not standardly taught. It would be good to have only the packages that we teach standardly uncommented so that students who use this script rather than a customized one for the workshop. I would comment:

  • Easy Mercurial (I don't think we have lesson materials for this - but I usually teach git - so correct me if I'm wrong)
  • make
  • virtual-pypi-installer
  • setuptools
  • nosetests
  • nose
  • py.test
  • pytest
  • sympy
  • Cython
  • networkx
  • mayavi.mlab
@wking
Copy link
Contributor

wking commented Jan 15, 2015

On Thu, Jan 15, 2015 at 10:57:14AM -0800, Azalee Bostroem wrote:

The current version of setup/swcarpentry-installation-test-2.py
tests for everything we could possibly use including tools like
Mayavi that are not standardly taught.

I don't think “standardly taught” is well defined ;). It's hard to
imagine a case where you'd want both Git and Mercurial, and if you're
already going in to comment those accordingly, it doesn't seem like
much additional burden to touch up the rest of the entries.

It would be pretty easy for individual instructors to setup branches
with their comments though. I just pushed a mirror of
git://tremily.us/swc-setup-installation-test.git to GitHub 1 to make
forking easy for folks who prefer GitHub to local repositories. The
workflow would look like:

  1. Fork my repository
  2. Edit your master branch to setup your usual comments.
  3. Optionally merge your master branch into your namespaced or
    bc-namespaced branch.
  4. Pull your branch into your workshop respository, instead of
    pulling mine [2,3].

Then before a new workshop, you'd:

  1. Fetch my repository to see if there were updates to my master.
    a. If there were:
    i. Merge them into your master.
    ii. Optionally merge your master branch into your namespaced or
    bc-namespaced branch.
    iii. Pull your updated branch into your workshop respository.

@abostroem
Copy link
Contributor Author

@wking I agree there is no single testing script that works for every workshop (R vs python, git vs mercurial, are you teaching SQL...). However I think the installation testing script should reflect our core material and what is being taught in most workshops. mayavi is not in our core material (what lesson does that belong to?). Likewise - testing is not part of our required teaching material (and I don't think our core lessons on testing include using all of those packages).

When mercurial is taught is it taught using hg or EasyMercurial (or do you need both)?

My basic point is that while you can't write a general testing script tailored to each workshop there are some packages that are not used in most workshops which could be commented out so that even if a student uses the wrong version of the code they install fewer unnecessary packages.

Also - I'm confused about your instructions. I think that if you follow the general workshop creation workflow you will get a personal copy of the testing script and directions to run it that you can point students to for an individual workshop. How is what you are proposing different/better?

@wking
Copy link
Contributor

wking commented Jan 15, 2015

On Thu, Jan 15, 2015 at 12:37:58PM -0800, Azalee Bostroem wrote:

My basic point is that while you can't write a general testing
script tailored to each workshop there are some packages that are
not used in most workshops which could be commented out so that even
if a student uses the wrong version of the code they install fewer
unnecessary packages.

That's reasonable. Going back to your initial list, I'd recommend
leaving the following uncommented:

  • make, which has an official lesson now 1.
  • virtual-pypi-installer, since folks teaching Python-based workshops
    might want students to install something like ipythonblocks (I don't
    know if it's in an official lesson, but we've used it a lot in the
    past 2).
  • nosetests and nose, which were used by the Hacker Within lessons
    before their removal in Add location of schedule.html in README.md #427 3. Now that we have stand-alone
    lessons, I expect someone will pick testing back up, and the builtin
    unittest library required some object-oriented stuff last time we
    checked, bc/issues#116.

Also - I'm confused about your instructions. I think that if you
follow the general workshop creation workflow you will get a
personal copy of the testing script and directions to run it that
you can point students to for an individual workshop.

That's right, but I maintain the script in a separate repository
(available at git://tremily.us/swc-setup-installation-test.git and
https://github.com/wking/swc-setup-installation-test.git). In #83 we
merged that into this repository 4 so folks who are comfortable
using the stock comments don't have to pull it in themselves. They're
the same commits in both repositories though, so you can still pull to
merge other work based on my upstream repository.

How is what you are proposing different/better?

It's not different/better (i.e. “instead of”), it's just an optional
addition. If you're comfortable with the stock script, you can use
workshop-template out of the box. If you want a slightly differnent
version of the test scripts, you can fork my repository, make your
changes, and pull your forked script into your workshop repository.
I'm just recommending using Git if you feel like you need to customize
the script, because:

$ git pull https://github.com/you/swc-setup-installation-test.git bc-namespaced

for each workshop is easier than trying to remember and apply your
usual tweaks by hand for each new workshop.

@ethanwhite
Copy link
Contributor

My take on this is that the most important uses of these tests will be for relative novices. Experienced programmers will generally be able to handle installing software. We're trying to avoid the issues that happen when a bunch of novices don't get things installed correctly. From that perspective all of the things that @abostroem listed are less important to include, with the possible exception of Mercurial.

It seems to me that setting sensible defaults can accommodate both a more restricted set of default tests and being able to test lots of things. I'd propose that we comment out all of the things on @abostroem's list. The instructions can then indicate that if you want to add testing for less standard options that you can do so by uncommenting the relevant sections of the file.

@jiffyclub
Copy link
Contributor

👍

@wking
Copy link
Contributor

wking commented Mar 19, 2015

On Thu, Mar 19, 2015 at 10:54:39AM -0700, Ethan White wrote:

My take on this is that the most important uses of these tests will
be for relative novices.

Sure, but configuring the tests is up to the
presumably-more-experienced instructor.

It seems to me that setting sensible defaults can accommodate both a
more restricted set of default tests…

The default is currently to check for everything that has at some
point been used in a SWC workshop. That makes it easy to test the
script (since I don't forget to uncomment something and accidentally
break it's tester). After @abostroem's proposed removals, we'd be
testing:

virtual-shell
virtual-editor
virtual-browser
git
hg
sqlite3
sqlite3-python
python
ipython
IPython
argparse
numpy
scipy
matplotlib
pandas

That's a smaller set of tests than the current default, but I still
expect instructors will need to tweak it (as I pointed out before 1,
you probably don't need both Git and Mercurial). And once they're in
there tweaking it, I don't think the default commenting really matters
(so I'd like to keep the “test everything” default that makes
development easier). If you really trimmed this down to the minimum
required 2, you'd have:

virtual-shell
virtual-editor

because their's either R or Python, either Git or Mercurial, and
optional SQL. I don't think that minimum set would be a very useful
default.

Instead of trying to guess at a list of “standard” requirements, it
makes more sense to me to leave requirement declarations up to the
lesson maintainers, and have workshop instructors just list the
lessons they'll use. That's swc-setup-installation-test#2, but I
think there's too much going on in the lesson repositories at the
moment to open that up now. Until then, I think it's a pretty low bar
to ask workshop instructors to edit CHECKS, and I don't see another
general way around it. There's also the customized-config-in-a-branch
approach I floated earlier 1, which would make it easy for a
git-branch-comfortable instructor (or groups of instructors) to share
whatever customized config they generally used.

@ethanwhite
Copy link
Contributor

I guess I'll just say that I disagree and that if it was up to me we'd test the most common workshop setup - shell, git, and Python - by default, and ask folks to modify for less common configurations. There are lots of things to do for any given workshop and minimizing the number of changes to be made by the average instructor is a good thing. With that, I'll leave this up to the maintainers.

@jiffyclub
Copy link
Contributor

It's clear from @ethanwhite's description in #180 that the current procedure is not working, and that it's generating extra work for organizers and unnecessary scares for students. I don't think either of those outcomes are acceptable and we need to modify some part of this workflow to address that. Restricting the default tests to only the most commonly used items (as proposed by @ethanwhite and @abostroem) seems like an effective way to cut down on unnecessary reports of missing software.

@wking
Copy link
Contributor

wking commented Mar 19, 2015

On Thu, Mar 19, 2015 at 02:29:39PM -0700, Ethan White wrote:

I guess I'll just say that I disagree and that if it was up to me
we'd test the most common workshop setup - shell, git, and Python -
by default, and ask folks to modify for less common configurations.

So:

virtual-shell
virtual-editor
virtual-browser
git
python
ipython
IPython
numpy

?

There are lots of things to do for any given workshop and minimizing
the number of changes to be made by the average instructor is a good
thing.

Absolutely, but I'm concerned that “many instructors don't need to
tweak CHECKS, but if you teach R/Mercurial/… you should” is going to
be more hit/miss than just telling everyone to tweak CHECKS.

@apawlik
Copy link

apawlik commented Jun 2, 2015

There should be some more explicit info/reminder for the instructors to tweak the CHECKS. Right now it's easy to miss the reference to checks (esp. for the new instructors) among lots of other instructions. We just had a case when at a workshop that uses R, one of the attendees following the instructions on the website (made from the template) tried to run the scripts and since he didn't have Python, got lots of errors. He (and one of the local helpers) then spend hours trying to fix that until they came to the conclusion that maybe something is wrong with the info on the website.

I'd suggest that to avoid that, we do a simple redesign of the workshop template index.html and make a separate subsection "Install check" and add a note for instructors to comment it out/not include if the workshop doesn't use "xyz".

@sritchie73
Copy link
Contributor

We had the same problem (cc: @hdashnow) at an R workshop a few weeks ago in Melbourne. I'm in the process of creating a new workshop website now, and it doesn't look like swc-installation-test-2.py has any checks for R. Maybe we need an R specific script that checks for valid shell, git, sql, and R installations?

@ethanwhite
Copy link
Contributor

Maybe we need an R specific script that checks for valid shell, git, sql, and R installations?

I think having a parallel script written in, and focused on, R might be a good solution.

@wking
Copy link
Contributor

wking commented Jun 10, 2015

On Wed, Jun 10, 2015 at 06:56:06AM -0700, Ethan White wrote:

Maybe we need an R specific script that checks for valid shell,
git, sql, and R installations?

I think having a parallel script written in, and focused on, R might
be a good solution.

The current Python scripts could drive R from the command line
(assuming R has something like Python's -c option), and if someone
with access to R wants to work up those checks I'll happily merge
them. On the other hand, if someone wants to work up an R based
script for checking the R installation, that would be fine too. I
think maintaining the non-Python checks (editor, browser, shell, Git,
SQLite, …) in both languages is unnecessary duplication of effort, but
if the R-checker author wants to go down that route, it's their time
;).

@hdashnow
Copy link

I see your point about duplication of effort @wking.

My main concern about adding R workshop requirements to the current script would mean that students of R workshops would have to also install Python.

Or do we think all students should download Python for all workshops irrespective of the language being taught? If that's the case, then we need to be adding Python to the list of R install instructions and explain why.

@hdashnow
Copy link

Another thought, what if the script takes an optional argument like
check_install --workshop r-novice-gapminder
And then only checks for a predefined set of things for that workshop. We could have these specified for the most common types of workshops.

Or even check_install --language R --versioncontrol git

Apologies if this has already been proposed elsewhere...

@wking
Copy link
Contributor

wking commented Jun 11, 2015

On Wed, Jun 10, 2015 at 06:12:45PM -0700, Harriet Dashnow wrote:

My main concern about adding R workshop requirements to the current
script would mean that students of R workshops would have to also
install Python.

Folks who are using non-Windows OSes already have a system Python.
Well, we support “Linux” too, which isn't very well defined except for
the kernel (no Python interpreter there yet ;), but I don't know of
any mainstream distros that don't have a system Python out of the box.

Or do we think all students should download Python for all workshops
irrespective of the language being taught?

Yes and no ;). They'll need Python to run the script, but if that
Python is just part of py2exe-created executible that's run (but not
installed) by an Inno Setup installer (like 1, see also comments in
#25 [2,3]). The downside to this approach is that we'd either have to:

a. Have instructors build their own installer/checker after editing
CHECKS, or
b. Land wking/swc-setup-installation-test#2 and provide a way for
students to paste in their
https://efran.github.io/2015-04-09-UW/lessons.txt URL. If we don't
get all the way to pulling checks from a lesson list, we could just
load a CHECKS array from YAML/JSON we fetch from a URL.

@iglpdc
Copy link
Contributor

iglpdc commented Jun 11, 2015

I just forgot to change the requirements for a workshop I'm teaching next
week and got a couple of emails from students about their installations not
passing the tests :).

In any case, adapting the test script should be in the lead instructor list
or the workshop-template README.

On Thu, Jun 11, 2015 at 10:39 AM, W. Trevor King [email protected]
wrote:

On Wed, Jun 10, 2015 at 06:12:45PM -0700, Harriet Dashnow wrote:

My main concern about adding R workshop requirements to the current
script would mean that students of R workshops would have to also
install Python.

Folks who are using non-Windows OSes already have a system Python.
Well, we support “Linux” too, which isn't very well defined except for
the kernel (no Python interpreter there yet ;), but I don't know of
any mainstream distros that don't have a system Python out of the box.

Or do we think all students should download Python for all workshops
irrespective of the language being taught?

Yes and no ;). They'll need Python to run the script, but if that
Python is just part of py2exe-created executible that's run (but not
installed) by an Inno Setup installer (like 1, see also comments in
#25 [2,3]). The downside to this approach is that we'd either have to:

a. Have instructors build their own installer/checker after editing
CHECKS, or
b. Land wking/swc-setup-installation-test#2 and provide a way for
students to paste in their
https://efran.github.io/2015-04-09-UW/lessons.txt URL. If we don't
get all the way to pulling checks from a lesson list, we could just
load a CHECKS array from YAML/JSON we fetch from a URL.


Reply to this email directly or view it on GitHub
#136 (comment)
.

@wking
Copy link
Contributor

wking commented Jun 11, 2015

On Thu, Jun 11, 2015 at 08:24:15AM -0700, Ivan Gonzalez wrote:

In any case, adapting the test script should be in the lead
instructor list or the workshop-template README.

Sounds good to me. I wrote up a tool for creating checklist issues on
GitHub based on a template [1,2] which mentioned this “customizing…
the setup instructions”, but I think @gvwilson got bored with that
idea ;).

wking added a commit to wking/swc-setup-installation-test that referenced this issue Nov 14, 2015
On Wed, Mar 11, 2015 at 03:08:15PM -0700, Piotr Banaszkiewicz wrote [1]:
> Maybe add workshop-template/requirements.txt (not necessarily a
> Python dependencies file) that's read by installation testing script
> and adjusts CHECKS entries accordingly?

The old CHECKS approach didn't work very well, because many
instructors would forget to edit CHECKS and learners would be confused
when they failed checks for packages that they didn't actually need
(but which were still listed in CHECKS) [2,3,4,5].  This commit makes:

  $ ./swc-installation-test-2.py

a no-op.  Users will either have to explicitly specify checks on the
command line:

  $ ./swc-installation-test-2.py virtual-editor

or point the tester at an instructor-provided config:

  $ ./swc-installation-test-2.py --url https://swcarpentry.github.io/2015-11-09-abc/lessons.json

Because dependencies for a given lesson can be tricky and are shared
by all lesson consumers, it offloads the bulk of the
requirement-listing to lesson maintainers.  Once that work is done,
instructors can just list out the lessons they're covering (which is
also useful for tools like AMY [6] who would like an automatic way to
determine what is being taught).

SWC generally prefers YAML to JSON, but I've gone with JSON here to
stick with stock Python 2.6+ support.  I've also changed some
or_dependency definitions from tuples to lists so I can mutate them
with .remove().

[1]: numfocus/gsoc#3 (comment)
[2]: carpentries/workshop-template#136
[3]: carpentries/workshop-template#180
[4]: carpentries/workshop-template#181
[5]: carpentries/workshop-template#258
[6]: https://github.com/swcarpentry/amy
wking added a commit to wking/swc-setup-installation-test that referenced this issue Nov 14, 2015
On Wed, Mar 11, 2015 at 03:08:15PM -0700, Piotr Banaszkiewicz wrote [1]:
> Maybe add workshop-template/requirements.txt (not necessarily a
> Python dependencies file) that's read by installation testing script
> and adjusts CHECKS entries accordingly?

The old CHECKS approach didn't work very well, because many
instructors would forget to edit CHECKS and learners would be confused
when they failed checks for packages that they didn't actually need
(but which were still listed in CHECKS) [2,3,4,5].  This commit makes:

  $ ./swc-installation-test-2.py

a no-op.  Users will either have to explicitly specify checks on the
command line:

  $ ./swc-installation-test-2.py virtual-editor

or point the tester at an instructor-provided config:

  $ ./swc-installation-test-2.py --url https://swcarpentry.github.io/2015-11-09-abc/lessons.json

Because dependencies for a given lesson can be tricky and are shared
by all lesson consumers, it offloads the bulk of the
requirement-listing to lesson maintainers.  Once that work is done,
instructors can just list out the lessons they're covering (which is
also useful for tools like AMY [6] who would like an automatic way to
determine what is being taught).

SWC generally prefers YAML to JSON, but I've gone with JSON here to
stick with stock Python 2.6+ support.  I've also changed some
or_dependency definitions from tuples to lists so I can mutate them
with .remove().

[1]: numfocus/gsoc#3 (comment)
[2]: carpentries/workshop-template#136
[3]: carpentries/workshop-template#180
[4]: carpentries/workshop-template#181
[5]: carpentries/workshop-template#258
[6]: https://github.com/swcarpentry/amy
wking added a commit to wking/swc-setup-installation-test that referenced this issue Nov 14, 2015
On Wed, Mar 11, 2015 at 03:08:15PM -0700, Piotr Banaszkiewicz wrote [1]:
> Maybe add workshop-template/requirements.txt (not necessarily a
> Python dependencies file) that's read by installation testing script
> and adjusts CHECKS entries accordingly?

The old CHECKS approach didn't work very well, because many
instructors would forget to edit CHECKS and learners would be confused
when they failed checks for packages that they didn't actually need
(but which were still listed in CHECKS) [2,3,4,5].  This commit makes:

  $ ./swc-installation-test-2.py

a no-op.  Users will either have to explicitly specify checks on the
command line:

  $ ./swc-installation-test-2.py virtual-editor

or point the tester at an instructor-provided config:

  $ ./swc-installation-test-2.py --url https://swcarpentry.github.io/2015-11-09-abc/lessons.json

Because dependencies for a given lesson can be tricky and are shared
by all lesson consumers, it offloads the bulk of the
requirement-listing to lesson maintainers.  Once that work is done,
instructors can just list out the lessons they're covering (which is
also useful for tools like AMY [6] who would like an automatic way to
determine what is being taught).

SWC generally prefers YAML to JSON, but I've gone with JSON here to
stick with stock Python 2.6+ support.  I've also changed some
or_dependency definitions from tuples to lists so I can mutate them
with .remove().

[1]: numfocus/gsoc#3 (comment)
[2]: carpentries/workshop-template#136
[3]: carpentries/workshop-template#180
[4]: carpentries/workshop-template#181
[5]: carpentries/workshop-template#258
[6]: https://github.com/swcarpentry/amy
@wking
Copy link
Contributor

wking commented Nov 14, 2015

On Thu, Mar 19, 2015 at 02:44:40PM -0700, Matt Davis wrote:

It's clear from @ethanwhite's description in #180 that the current
procedure is not working, and that it's generating extra work for
organizers and unnecessary scares for students.

So I finally got the time to implement @pbanaszkiewicz's suggestion
(referenced in wking/swc-setup-installation-test#2). How does
wking/swc-setup-installation-test#9 look to everyone?

wking added a commit to wking/swc-setup-installation-test that referenced this issue Nov 22, 2015
On Wed, Mar 11, 2015 at 03:08:15PM -0700, Piotr Banaszkiewicz wrote [1]:
> Maybe add workshop-template/requirements.txt (not necessarily a
> Python dependencies file) that's read by installation testing script
> and adjusts CHECKS entries accordingly?

The old CHECKS approach didn't work very well, because many
instructors would forget to edit CHECKS and learners would be confused
when they failed checks for packages that they didn't actually need
(but which were still listed in CHECKS) [2,3,4,5].  This commit makes:

  $ ./swc-installation-test-2.py

a no-op.  Users will either have to explicitly specify checks on the
command line:

  $ ./swc-installation-test-2.py virtual-editor

or point the tester at an instructor-provided config:

  $ ./swc-installation-test-2.py --url https://swcarpentry.github.io/2015-11-09-abc/lessons.json

Because dependencies for a given lesson can be tricky and are shared
by all lesson consumers, it offloads the bulk of the
requirement-listing to lesson maintainers.  Once that work is done,
instructors can just list out the lessons they're covering (which is
also useful for tools like AMY [6] who would like an automatic way to
determine what is being taught).

SWC generally prefers YAML to JSON, but I've gone with JSON here to
stick with stock Python 2.6+ support.  I've also changed some
or_dependency definitions from tuples to lists so I can mutate them
with .remove().

[1]: numfocus/gsoc#3 (comment)
[2]: carpentries/workshop-template#136
[3]: carpentries/workshop-template#180
[4]: carpentries/workshop-template#181
[5]: carpentries/workshop-template#258
[6]: https://github.com/swcarpentry/amy
wking added a commit to wking/swc-setup-installation-test that referenced this issue Nov 23, 2015
On Wed, Mar 11, 2015 at 03:08:15PM -0700, Piotr Banaszkiewicz wrote [1]:
> Maybe add workshop-template/requirements.txt (not necessarily a
> Python dependencies file) that's read by installation testing script
> and adjusts CHECKS entries accordingly?

The old CHECKS approach didn't work very well, because many
instructors would forget to edit CHECKS and learners would be confused
when they failed checks for packages that they didn't actually need
(but which were still listed in CHECKS) [2,3,4,5].  This commit makes:

  $ ./swc-installation-test-2.py

a no-op.  Users will either have to explicitly specify checks on the
command line:

  $ ./swc-installation-test-2.py virtual-editor

or point the tester at an instructor-provided config:

  $ ./swc-installation-test-2.py --url https://swcarpentry.github.io/2015-11-09-abc/lessons.json

Because dependencies for a given lesson can be tricky and are shared
by all lesson consumers, it offloads the bulk of the
requirement-listing to lesson maintainers.  Once that work is done,
instructors can just list out the lessons they're covering (which is
also useful for tools like AMY [6] who would like an automatic way to
determine what is being taught).

SWC generally prefers YAML to JSON, but I've gone with JSON here to
stick with stock Python 2.6+ support.  I've also changed some
or_dependency definitions from tuples to lists so I can mutate them
with .remove().

The tuple cast when setting minimum_version from the JSON lets us
avoid:

  TypeError: unorderable types: tuple() < list()

when doing the version comparison.

[1]: numfocus/gsoc#3 (comment)
[2]: carpentries/workshop-template#136
[3]: carpentries/workshop-template#180
[4]: carpentries/workshop-template#181
[5]: carpentries/workshop-template#258
[6]: https://github.com/swcarpentry/amy
wking added a commit to wking/workshop-template that referenced this issue Jan 10, 2016
Sometimes instructors forget to customize their CHECKS, but learners
still follow this link and run the stock checks, resulting in a bunch
of confusing errors about missing packages that the learner doesn't
actually need [1,2,3,4].  Instead of expecting instructors to edit
CHECKS or remove the setup/ reference from index.html (a default that
is right for nobody), this commit comments that setup/ reference out
(a default that is right for folks who don't want
installation-checks).  Instructors who *do* want installation checks
now need to do two things (uncomment the setup/ reference and update
CHECKS), but with both steps listed in CUSTOMIZATION they are more
likely to get that right.

[1]: carpentries#136
[2]: carpentries#180
[3]: carpentries#181
[4]: carpentries#258
wking added a commit to wking/workshop-template that referenced this issue Mar 11, 2016
…tions

Ivan brought this idea back up in maintainers@ recently [1].  I think
the last time it was raised seriously was [2], which has reasonable
links into earlier discussion.  The main argument against tags was
that it was too hard to find the source for a particular line you
wanted to tweak [3].  This commit restores our old liquid templating
to show/hide sections *without* splitting the sections out into
sub-files (e.g. bc#738 had _includes/setup/linux-editor.html).  If we
keep everything in the index file, we can have tags and instructors
can either adjust the tags or easily find/edit/delete as they see fit.

A few notes on the implementation:

* I've gone with double quotes in the YAML front matter for
  consistency with the other entries, but stuck with the original
  (from swcarpentry/bc) single quotes for the liquid conditionals.

* I've kept "check" and "VM" out of the default tools list to match
  the current display, but we may want to enable everything and write
  a stronger message about removing stuff you don't need to avoid
  repeating the problems we had with check being visible by default
  [4].  Because folks will have to tweak the tools list if they want
  to enable the "check" or "VM" sections, I've added comments at the
  beginning of each section pointing instructors back up at the YAML
  front matter.

* I've moved the "check" section out of the Python section, because
  while the tool doesn't currently test R packages, it does test Git,
  Bash, text editors, etc., and it could certainly be extended to test
  R if someone with R knowledge wanted to chip in (although it's
  harder to *run* the script on Windows without bundling Python) [5].

[1]: http://lists.software-carpentry.org/pipermail/maintainers_lists.software-carpentry.org/2016-March/000179.html
     Subject: Re: [Maintainers] Vote needed for setup instructions
     Date: Thu, 10 Mar 2016 12:05:33 -0500
     Message-ID: <CAJpTZ0DPYKgu2fbi6dZ3XvZVyed0MwmS-jTR-e-Y3uYoZKoctQ@mail.gmail.com>
[2]: swcarpentry/DEPRECATED-bc#738
[3]: swcarpentry/DEPRECATED-bc#729 (comment)
[4]: carpentries#278
[5]: carpentries#136 (comment)
wking added a commit to wking/workshop-template that referenced this issue Mar 11, 2016
…tions

Ivan brought this idea back up in maintainers@ recently [1].  I think
the last time it was raised seriously was [2], which has reasonable
links into earlier discussion.  The main argument against tags was
that it was too hard to find the source for a particular line you
wanted to tweak [3].  This commit restores our old liquid templating
to show/hide sections *without* splitting the sections out into
sub-files (e.g. bc#738 had _includes/setup/linux-editor.html).  If we
keep everything in the index file, we can have tags and instructors
can either adjust the tags or easily find/edit/delete as they see fit.

A few notes on the implementation:

* I've gone with double quotes in the YAML front matter for
  consistency with the other entries, but stuck with the original
  (from swcarpentry/bc) single quotes for the liquid conditionals.

* I've kept "test" and "VM" out of the default tools list to match the
  current display, but we may want to enable everything and write a
  stronger message about removing stuff you don't need to avoid
  repeating the problems we had with the installation-test link being
  visible by default [4].  Because folks will have to tweak the tools
  list if they want to enable the "test" or "VM" sections, I've added
  comments at the beginning of each section pointing instructors back
  up at the YAML front matter.

* I've moved the "test" section out of the Python section, because
  while the tool doesn't currently test R packages, it does test Git,
  Bash, text editors, etc., and it could certainly be extended to test
  R if someone with R knowledge wanted to chip in (although it's
  harder to *run* the script on Windows without bundling Python) [5].
  The new header separates the test section from the previous section.

[1]: http://lists.software-carpentry.org/pipermail/maintainers_lists.software-carpentry.org/2016-March/000179.html
     Subject: Re: [Maintainers] Vote needed for setup instructions
     Date: Thu, 10 Mar 2016 12:05:33 -0500
     Message-ID: <CAJpTZ0DPYKgu2fbi6dZ3XvZVyed0MwmS-jTR-e-Y3uYoZKoctQ@mail.gmail.com>
[2]: swcarpentry/DEPRECATED-bc#738
[3]: swcarpentry/DEPRECATED-bc#729 (comment)
[4]: carpentries#278
[5]: carpentries#136 (comment)
@gvwilson
Copy link
Contributor

Status?

@wking
Copy link
Contributor

wking commented Jul 26, 2016

On Tue, Jul 26, 2016 at 03:50:54AM -0700, Greg Wilson wrote:

Status?

wking/swc-setup-installation-test#9 (mentioned in 1) works, but I
haven't had any luck talking folks into moving in that direction. I
don't have any other good ideas for adapting the tests to a particular
workshop, so we need one of:

a. someone has a good alternative idea,
b. maintainers and instructors decide they're actually ok with
wking/swc-setup-installation-test#9, or
c. folks keep updating CHECKS as the current docs recommend 2.

@rgaiacs
Copy link
Contributor

rgaiacs commented Feb 4, 2017

@abostroem and @wking Thanks to work on this one. Any progress?

@abostroem
Copy link
Contributor Author

@rgaiacs I think @wking is waiting on some comments for how to proceed (see his last comment)...

rgaiacs added a commit to rgaiacs/swc-workshop-template that referenced this issue May 6, 2017
@fmichonneau fmichonneau added type:enhancement Propose enhancement to the lesson help wanted Looking for Contributors and removed enhancement labels Jun 21, 2018
@fmichonneau
Copy link
Contributor

closing as stale.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Looking for Contributors type:enhancement Propose enhancement to the lesson
Projects
None yet
Development

No branches or pull requests