datacamp-content / courses-introduction-to-shell

Introduction to Shell by Greg Wilson
Other
48 stars 47 forks source link

Support for package installation #5

Closed gvwilson closed 7 years ago

gvwilson commented 7 years ago

Find out whether packages can be installed during lessons so that we can teach brew/apt/yum/etc.

Consensus is that:

  1. Packages can be installed.
  2. There's no need to worry about persistence across sessions.
  3. We do need to worry about intermediate prompts.

Note: we do not need package installation in the basic course (this one), but should introduce it in the second (intermediate) course so that we can show learners what lands where - they'll need to know this in order to debug when things (inevitably) go wrong.

ramnathv commented 7 years ago

@ncarchedi @gvwilson My sense is that packages can be installed, but will NOT persist across user sessions. @filipsch @machow can you shed some more light on this?

machow commented 7 years ago

That's right, but keep in mind comments about how a command which produces a prompt such as...

would you like to install this package (y/n)?

that requires the user to then enter y, will cause the session to hang until timeout

https://docs.google.com/document/d/1Lc8Qd9Mk7iza6btGuqLdDusQZxhGWwUHwRUVrPKmKqI/edit?disco=AAAABE7XPoI

gvwilson commented 7 years ago
  1. It's OK if package installation doesn't persist across sessions: if they install correctly, there's no need for persistence, and if they don't, they should repeat the installation exercise.
  2. Some packages allow zero-prompt installation, but not all (and even those that do often use curses to animate textual progress bars etc.), so this may need to be deferred until intermediate prompts are handled.
machow commented 7 years ago

RE (1) if you end up wanting to start exercises at different "states" (for example, students practice installing ack in one exercise, and then use it in the next), you could do something like

In this sense, each module would hold an intermediate course state.

RE (2) right, in case you're curious, we're using the python library pexpect behind the scenes!

ncarchedi commented 7 years ago

Issue moved to datacamp/courses-intermediate-unix-shell #3 via ZenHub