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

What does exports.boilerplate do? #7

Open
Sequoia opened this issue Mar 17, 2015 · 20 comments
Open

What does exports.boilerplate do? #7

Sequoia opened this issue Mar 17, 2015 · 20 comments
Assignees

Comments

@Sequoia
Copy link
Collaborator

Sequoia commented Mar 17, 2015

No description provided.

@timoxley
Copy link
Owner

This is the boilerplate content generated for the user for the exercise.

e.g.

module.exports = function(arg) {
  // your solution here
}

@Sequoia
Copy link
Collaborator Author

Sequoia commented Mar 17, 2015

mmm. but... why is it included in exports? is it consumed somewhere? oh, can users get it via workshopname boilerplate?

@timoxley
Copy link
Owner

it automatically dumps it into the user's solution directory.

I should probably expose this so it's less magical.

@Sequoia
Copy link
Collaborator Author

Sequoia commented Mar 17, 2015

ahhh OK thanks! what's "The user's solution directory"? When I was working thru these things there wasn't really a place to put files unless you made one. Is that another new feature?

@timoxley
Copy link
Owner

yeah I cloned a feature from the webgl/shaderschool workshops, where they generate a directory for each exercise up front, that directory contains the bootstrap.js and the exercise description so they don't have to keep opening and closing the workshop to review the instructions.

@timoxley
Copy link
Owner

this is an assumption though and I should make it clearer how to turn this off or customise it.

@Sequoia
Copy link
Collaborator Author

Sequoia commented Mar 18, 2015

cool. I think boilerplate but it would be nice to be able to disable it, perhaps by simply not exporting a boilerplate property or setting exports.boilerplate to false.

I plan on adding instructions in the top-level README for my lesson-set explaining the stuff about the boilerplate code & how to get started. I think this is necessary, otherwise the "we're about to populate" message is jarring & confusing. I'll think about ways to reword it. Something like "Would you like a directory created for this exercise with a boilerplate (starting point) file? Click yes & lesson-name/ will be created in the current directory."

@timoxley
Copy link
Owner

Sounds good!

@Sequoia
Copy link
Collaborator Author

Sequoia commented Mar 19, 2015

OK assign me then & I'll get to it when I have a mo.

@timoxley
Copy link
Owner

Added you as collab 🎉

Also note: #3

@Sequoia
Copy link
Collaborator Author

Sequoia commented Dec 7, 2015

Planning to prompt to create boilerplate files on first run & just leave it at that, simplifies behavior muchly.

@timoxley
Copy link
Owner

@Sequoia sounds good

@Sequoia
Copy link
Collaborator Author

Sequoia commented Jan 29, 2016

Wow

@timoxley
Copy link
Owner

🎆

@Sequoia
Copy link
Collaborator Author

Sequoia commented Jan 30, 2016

What the heck man earlier I pocket texted someone A PHOTO and now I see apparently I pocket commented on a github issue?? Presumably via email.

OS collaboration via pocket dial-- what a time to be alive!

@timoxley
Copy link
Owner

haha hopefully your pocket can start sending PRs

@Sequoia
Copy link
Collaborator Author

Sequoia commented Jan 30, 2016

I started working on this a while ago & got something mostly working, but now that I revisit it I am confused. Setup was getting run every single time the user ran the adventure command; I'm trying to change that but I'm getting hung up on exactly what's supposed to run here instead:

  exercises.forEach(function(exercise) {
    shop.add(exercise.name, function() {
//???
    })
  })

I'll try to look at it more later when I get a chance.

@timoxley
Copy link
Owner

How to solve this I guess depends on exactly the behaviour you think is best.

Select one or more of the following (or add other options):

  • Prompt to generate all boilerplate when one is missing (current behaviour)
  • Prompt to generate all boilerplate at startup
  • Prompt to generate boilerplate for specific exercise, if missing
  • Allow user to opt out of auto-boilerplate generation forever
  • Allow user to manually generate the current boilerplate via a command
  • Prompt whenever exercise selected
  • Prompt only on first selection of exercise
  • No prompting on selection of exercise at all
  • Prompt whenever workshop is run (current behaviour)
  • Prompt only on first startup of workshop

@timoxley
Copy link
Owner

Note that boilerplate generation stuff is mostly only frustrating for workshop authors while they're developing the workshop. Most users will simply get the boilerplate setup once and then work with it.

Perhaps should have a way to disable it while developing or figure out a better way to serve the workshop-developer's needs.

@Sequoia
Copy link
Collaborator Author

Sequoia commented Jan 31, 2016

Nah, it's annoying if you run the workshop, switch to the new directory, run it again, then boilerplate rubs again.

Tbh my next move is to just rip it out and move on, I never finished my worksheet I started about a year ago and the boilerplate stuff seems not worth the trouble...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants