bootstrapworld / curriculum

6 stars 6 forks source link

Please throw warning for unclosed directives #1930

Closed flannery-denny closed 7 months ago

flannery-denny commented 7 months ago

The problem here isn't really that the slidebreak is inside @QandA, it's that I never closed @QandA. If I hadn't also added a slidebreak, I wouldn't get a warning. Is it possible to warn authors about unclosed directives?

@QandA{
@Q{What is the shape of this histogram?}
@A{The histogram has high outliers, therefore it is skewed right.}
@Q{How does it differ from the one we just looked at?}
@Q{The previous histogram - with the 16-year-old cat omitted - was roughly symmetric.}

@slidebreak
schanzer commented 7 months ago

@flannery-denny which lesson is this in? You should be seeing the warning.

ds26gte commented 7 months ago

You should see an error saying Runaway directive @QandA with the text read for it until it hit end-of-file

flannery-denny commented 7 months ago

@ds26gte I had caught it on my own, but I just removed a closing } from standard-deviation and am not getting any warning with ./build-slide -f standard-deviation after a git pull and npm update. I pushed a version with the missing } in the above commit. Hope it helps. Signing off for the weekend so no you're not holding me up if you don't get to it until next week .

schanzer commented 7 months ago

@flannery-denny this is what I get when I run make after a fresh pull:

Read so far: "\n@Q{Do we compute standard deviation with categorical data or quantitative data? How many columns of data does standard deviation tell us about?}\n@A{Standard deviation is a measure that tells us about the spread of a single quantitative column of data.}\n\n@Q{Standard deviation is a measure of @vocab{spread}. In your own words, what does @vocab{spread} mean?}\n@A{Spread is the extent to which values in a dataset vary, either from one another or from the center.}\n\n@Q{How can two datasets have the same mean, but different standard deviations?}\n@A{Mean is a measure of central tendency, whereas standard deviation measures the variation of some sample.}\n\n@Q{Both unusually low and unusually high values (outliers) **increase** the standard deviation. Explain why.}\n@A{Standard deviation summarizes distance from the mean in **either** direction.}\n\n\n=== Investigate\nLet’s connect what we know about standard deviation to your chosen dataset.\n\n@teacher{\nReminder: Students have the opportunity to choose a dataset that interests them from our @lesson-link{choosing-your-dataset/pages/datasets-and-starter-files.adoc, \"List of Datasets\"} in the @lesson-link{choosing-your-dataset} lesson.\n}\n\n@lesson-instruction{\n- Open your chosen dataset starter file in @proglang.\n- Remind yourself which two columns you investigated in the @lesson-link{measures-of-center} lesson and use @proglang to compute the standard deviation for one of them.\n}\n\n@teacher{\nConsider recommending that students choose the same column they used when they found their @lesson-link{measures-of-center}. If students use a different column, they will need to copy/paste additional slides into their slide deck.\n}\n\n@QandA{\n@Q{What question does your computation answer?}\n@A{Possible responses: How is the data for a certain column distributed? How does the standard deviation compare to the mean?}\n}\n\n@lesson-instruction{\n- Write down that question in the top section of the @printable-exercise{data-cycle-analysis-stdev-my-dataset.adoc}.\n- Complete the rest of the data cycle, recording how you considered, analyzed and interpreted the question.\n- Repeat this process for the other column you explored before (and any others you are curious about).\n}\n\n@teacher{\nIf students want to investigate new columns from their dataset, they will need to copy/paste additional Measures of Center and Spread slides into their Explorartion Project and calculate the mean, median, modes and 5-number summaries for the new columns.\n\nInvite students to discuss their results and consider how to interpret them.}\n\n@slidebreak\n\n@lesson-instruction{\n**It’s time to add to your @starter-file{exploration-project}.**\n\n- Locate the \"Measures of Center and Spread\" section of your Exploration Project. Type the standard deviations you just identified into the tables for the corresponding columns.\n- Now, add your interpretations of the standard deviations and record any questions that emerged in the \"My Questions\" section at the end of the slide deck.\n}\n\n=== Synthesize\n\n@teacher{Have students share their findings.}\n\n- Did you discover anything surprising or interesting about your dataset?\n- What questions did the standard deviations inspire you to ask?\n- Were there any surprises when you compared your findings with other students?\n"
ERROR: ERROR: read-group: Runaway directive QandA in "distribution/en-us/lessons/standard-deviation-codap/index.adoc"

Do you not get anything in your console?

ds26gte commented 7 months ago

Yeah, this is biza'. Next week, maybe show the exact sequence of commands that causes the error no-show. The two scenarios I can think of:

  1. The error is so blah that you don't see it. Maybe I need to highlight it somehow. The runaway text printed may also be too large and causing the actual error message to scroll off. I could prune the runaway text so you get the gist without the whole onslaught
  2. The error is still being shunted into .make.error.log but I thought I fixed that. Is it possible you're working in a branch where this fix isn't in?
ds26gte commented 7 months ago

Since the runaway text can often be very long (distracting from other diagnostics that must be seen), I've put in a fix whereby only an elided portion of it is shown in such cases

flannery-denny commented 7 months ago

That looks like a helpful message. But slide build is not working how it's supposed to...

Once I realized that the error had been fixed, I removed the closing } from a @QandA, saved,

But... I should have gotten it when I used ./build-slide -f standard-deviation without having to make clean because we agreed that it's important for slides to be made from the most up-to-date lesson plans so that should be removing the adoc before building.

ds26gte commented 7 months ago

I am unable to replicate this at all. After a clean build, I remove the { from the repo's index.adoc and call build-slide. I get error as expected.

I thought maybe you were removing the { from the distribution lesson's index.adoc (which I don't recommend in general). Tried that too for good measure. Still get error.

schanzer commented 7 months ago

@flannery-denny I get the warning as well. Can you post step-by-step instructions to reproduce this, starting from make clean?

flannery-denny commented 7 months ago

Here's what I see... better than what I got yesterday. Not sure why.

git pull make clean delete the } on line 253 of standard-deviation and save ./build-slide -f standard-deviation

Read so far: "\n@Q{Do we compute standard deviation with categorical dat ··· ses when you compared your findings with other students?\n"
ERROR: read-group: Runaway directive QandA in distribution/en-us/lessons/standard-deviation-codap/index.adoc

Read so far: "\n@Q{Do we compute standard deviation with categorical dat ··· ses when you compared your findings with other students?\n"
ERROR: read-group: Runaway directive QandA in distribution/en-us/lessons/standard-deviation/index.adoc

lib/maker/collect-specials.lua
lib/maker/do-postproc.lua
lib/maker/make-pathway-tocs.lua
Read so far: "\n@Q{Do we compute standard deviation with categorical dat ··· es when you compared your findings with other students?\n\n"
ERROR: read-group: Runaway directive QandA
  context...:

which is a useful message for an author to get

run ./build-slide -f standard-deviation again make failed; build-slide aborted

add } on line 252 and save ./build-slide -f standard-deviation successful build

remove { on line 252 and save

I get

Read so far: "\n@Q{Do we compute standard deviation with categorical dat ··· ses when you compared your findings with other students?\n"
ERROR: read-group: Runaway directive QandA in distribution/en-us/lessons/standard-deviation-codap/index.adoc

Read so far: "\n@Q{Do we compute standard deviation with categorical dat ··· ses when you compared your findings with other students?\n"
ERROR: read-group: Runaway directive QandA in distribution/en-us/lessons/standard-deviation/index.adoc

lib/maker/collect-specials.lua
lib/maker/do-postproc.lua
lib/maker/make-pathway-tocs.lua
Read so far: "\n@Q{Do we compute standard deviation with categorical dat ··· es when you compared your findings with other students?\n\n"
ERROR: read-group: Runaway directive QandA
  context...:
   /Users/flannery/Documents/Bootstrap/curriculum/lib/slides-preproc.rkt:580:0: expand-directives
   /Users/flannery/Documents/Bootstrap/curriculum/lib/slides-preproc.rkt:799:8: temp109
   body of "/Users/flannery/Documents/Bootstrap/curriculum/lib/slides-preproc.rkt"
objc[27188]: Class GNotificationCenterDelegate is implemented in both /opt/homebrew/Cellar/glib/2.76.2/lib/libgio-2.0.0.dylib (0x121e706b0) and /Users/flannery/Documents/Bootstrap/curriculum/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/lib/libvips-cpp.42.dylib (0x125311a40). One of the two will be used. Which one is undefined.
 ████████████████████████████████████████ 100% | ETA: 0s | 2/2
Slides failed for standard-deviation/slides.mkd
Uploading images for this slide deck
Unable to generate slides: GaxiosError: Invalid requests[78].createImage: There was a problem retrieving the image. The provided image should be publicly accessible, within size limit, and in supported formats.
    at Gaxios._request (/Users/flannery/Documents/Bootstrap/curriculum/node_modules/gaxios/build/src/gaxios.js:142:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async OAuth2Client.requestAsync (/Users/flannery/Documents/Bootstrap/curriculum/node_modules/google-auth-library/build/src/auth/oauth2client.js:405:18)
    at async SlideGenerator.updatePresentation (file:///Users/flannery/Documents/Bootstrap/curriculum/node_modules/md2googleslides/lib/slide_generator.js:326:17)
    at async SlideGenerator.generateFromMarkdown (file:///Users/flannery/Documents/Bootstrap/curriculum/node_modules/md2googleslides/lib/slide_generator.js:175:5) {
  config: {
    url: 'https://slides.googleapis.com/v1/presentations/1EHgn5KK1D_Ahf3X0rk5hV3Y3w-hGobAGz3ct7OLTo9o:batchUpdate',
    method: 'POST',
    userAgentDirectives: [ [Object] ],
    paramsSerializer: [Function (anonymous)],
    data: { requests: [Array] },
    headers: {
      'x-goog-api-client': 'gdcl/7.0.1 gl-node/19.9.0',
      'Accept-Encoding': 'gzip',
      'User-Agent': 'google-api-nodejs-client/7.0.1 (gzip)',
      Authorization: 'Bearer ya29.a0AfB_byAHAp8T4Qs13kwcLoJL-rkSki8x-fR_ap9d10U2qGaEI6yE_dwubIZ6R4WuF1GSG0W6cgDEWnIitIEQEC2WAj2MGUGoPdOULNqP-VyD4YGxiK8Cpy-zMTdPKP5H4eUzcj34XVeaIFxwH6Jx5b6MsLa_rPVrdSLl-KYaCgYKAZUSARMSFQHGX2Min9hy12e9zogFh02KgXcR7Q0174',
      'Content-Type': 'application/json'
    },
    params: {},
    validateStatus: [Function (anonymous)],
    retry: true,
    body: `{"requests":[{"insertText":{"text":"Standard Deviation","objectId":"SLIDES_API825468082_0"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":18},"style":{"fontSize":{"magnitude":36,"unit":"PT"}},"objectId":"SLIDES_API825468082_0","fields":"fontSize"}},{"insertText":{"text":"To learn more about how to use PearDeck, and how to view the embedded links on these slides without going into present mode visit https://help.peardeck.com/en\\n","objectId":"SLIDES_API825468082_2"}},{"insertText":{"text":"Measuring \\"Deviance\\"","objectId":"SLIDES_API825468082_4"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":20},"style":{"fontSize":{"magnitude":26.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_4","fields":"fontSize"}},{"insertText":{"text":"The Animal Shelter Bureau reports that the mean age of shelter cats is 3 years.\\nTake a look at the the Animals Dataset on the spreadsheet (Google) or on this page (for those using a printed workbook, you'll find it at the front).\\nDoes a mean age of 3 years translate to all of the cats being close to 3 years old? Why or why not?\\n","objectId":"SLIDES_API825468082_3"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":230,"endIndex":330},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":230,"endIndex":329},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":80,"endIndex":230},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":162,"endIndex":229},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":153,"endIndex":162},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"},"link":{"url":"https://bootstrapworld.org/materials/fall2024-beta/en-us/courses/data-science/back-matter/pages/animals-dataset.html"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize,link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":146,"endIndex":153},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":122,"endIndex":146},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"},"link":{"url":"https://docs.google.com/spreadsheets/d/1VeR2_bhpLvnRUZslmCAcSRKfZWs_5RNVujtZgEl6umA/edit"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize,link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":80,"endIndex":122},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":80},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":79},"style":{"bold":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":47,"endIndex":79},"style":{"bold":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":43,"endIndex":47},"style":{"bold":true,"italic":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,italic,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":43},"style":{"bold":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,fontSize"}},{"insertText":{"text":"Take a look at the the Animals Dataset on the spreadsheet (Google) or on this page (for those using a printed workbook, you'll find it at the front).\\n​Does a mean age of 3 years translate to all of the cats being close to 3 years old? Why or why not?\\n\\t​No, we cannot assume all cats are close to 3 years old. There are some outliers in the dataset.\\nIn the activity that follows, students will look at ten cats from the shelter to consider the distribution of their ages.\\n","objectId":"SLIDES_API825468082_6"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":73,"endIndex":82},"style":{"link":{"url":"https://bootstrapworld.org/materials/fall2024-beta/en-us/courses/data-science/back-matter/pages/animals-dataset.html"}},"objectId":"SLIDES_API825468082_6","fields":"link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":42,"endIndex":66},"style":{"link":{"url":"https://docs.google.com/spreadsheets/d/1VeR2_bhpLvnRUZslmCAcSRKfZWs_5RNVujtZgEl6umA/edit"}},"objectId":"SLIDES_API825468082_6","fields":"link"}},{"createParagraphBullets":{"textRange":{"type":"FIXED_RANGE","startIndex":150,"endIndex":349},"bulletPreset":"BULLET_DISC_CIRCLE_SQUARE","objectId":"SLIDES_API825468082_6"}},{"insertText":{"text":"Measuring \\"Deviance\\"","objectId":"SLIDES_API825468082_8"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":20},"style":{"fontSize":{"magnitude":26.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_8","fields":"fontSize"}},{"insertText":{"text":"Turn to Computing Standard Deviation, and complete numbers 1-3.\\n​What did you get for the mean? Does it match what the Animal Shelter Bureau says?\\n​Can you think of four ages, such that the mean age for all of them is 3?\\n​Can you think of a different spread of four ages that would have the same mean?\\n​How many different sets of four ages can you think of, which all have a mean of 3?\\n","objectId":"SLIDES_API825468082_7"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":386},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":302,"endIndex":386},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":302,"endIndex":385},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":221,"endIndex":302},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":250,"endIndex":301},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":241,"endIndex":250},"style":{"italic":true,"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"italic,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":221,"endIndex":241},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":147,"endIndex":221},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":147,"endIndex":220},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":147},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":146},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":64},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":36,"endIndex":63},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":8,"endIndex":36},"style":{"fontSize":{"magnitude":16,"unit":"PT"},"link":{"url":"https://bootstrapworld.org/materials/fall2024-beta/en-us/lessons/standard-deviation/pages/computing-stdev.html"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize,link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":8},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"createParagraphBullets":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":386},"bulletPreset":"BULLET_DISC_CIRCLE_SQUARE","objectId":"SLIDES_API825468082_7"}},{"insertText":{"text":"​What did you get for the mean? Does it match what the Animal Shelter Bureau says?\\n\\t​The mean is 3; yes, it matches what the Animal Shelter Bureau says.\\n​Can you think of four ages, such that the mean age for all of them is 3?\\n\\t​Some possibilities include: {3,3,3,3}, {1,2,4,5}, {1,1,4,6}... any four ages that add up to 12 will work!\\n​Can you think of a different spread of four ages that would have the same mean?\\n\\t​See above.\\n​How many different sets of four ages can you think of, which all have a mean of 3?\\n\\t​See above.\\n","objectId":"SLIDES_API825468082_10"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":355,"endIndex":364},"style":{"italic":true},"objectId":"SLIDES_API825468082_10","f`... 46680 more characters,
    responseType: 'unknown',
    errorRedactor: [Function: defaultErrorRedactor],
    retryConfig: {
      currentRetryAttempt: 0,
      retry: 3,
      httpMethodsToRetry: [Array],
      noResponseRetries: 2,
      statusCodesToRetry: [Array]
    }
  },
  response: {
    config: {
      url: 'https://slides.googleapis.com/v1/presentations/1EHgn5KK1D_Ahf3X0rk5hV3Y3w-hGobAGz3ct7OLTo9o:batchUpdate',
      method: 'POST',
      userAgentDirectives: [Array],
      paramsSerializer: [Function (anonymous)],
      data: [Object],
      headers: [Object],
      params: {},
      validateStatus: [Function (anonymous)],
      retry: true,
      body: `{"requests":[{"insertText":{"text":"Standard Deviation","objectId":"SLIDES_API825468082_0"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":18},"style":{"fontSize":{"magnitude":36,"unit":"PT"}},"objectId":"SLIDES_API825468082_0","fields":"fontSize"}},{"insertText":{"text":"To learn more about how to use PearDeck, and how to view the embedded links on these slides without going into present mode visit https://help.peardeck.com/en\\n","objectId":"SLIDES_API825468082_2"}},{"insertText":{"text":"Measuring \\"Deviance\\"","objectId":"SLIDES_API825468082_4"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":20},"style":{"fontSize":{"magnitude":26.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_4","fields":"fontSize"}},{"insertText":{"text":"The Animal Shelter Bureau reports that the mean age of shelter cats is 3 years.\\nTake a look at the the Animals Dataset on the spreadsheet (Google) or on this page (for those using a printed workbook, you'll find it at the front).\\nDoes a mean age of 3 years translate to all of the cats being close to 3 years old? Why or why not?\\n","objectId":"SLIDES_API825468082_3"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":230,"endIndex":330},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":230,"endIndex":329},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":80,"endIndex":230},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":162,"endIndex":229},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":153,"endIndex":162},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"},"link":{"url":"https://bootstrapworld.org/materials/fall2024-beta/en-us/courses/data-science/back-matter/pages/animals-dataset.html"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize,link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":146,"endIndex":153},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":122,"endIndex":146},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"},"link":{"url":"https://docs.google.com/spreadsheets/d/1VeR2_bhpLvnRUZslmCAcSRKfZWs_5RNVujtZgEl6umA/edit"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize,link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":80,"endIndex":122},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":80},"style":{"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":79},"style":{"bold":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":47,"endIndex":79},"style":{"bold":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":43,"endIndex":47},"style":{"bold":true,"italic":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,italic,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":43},"style":{"bold":true,"fontSize":{"magnitude":14.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_3","fields":"bold,fontSize"}},{"insertText":{"text":"Take a look at the the Animals Dataset on the spreadsheet (Google) or on this page (for those using a printed workbook, you'll find it at the front).\\n​Does a mean age of 3 years translate to all of the cats being close to 3 years old? Why or why not?\\n\\t​No, we cannot assume all cats are close to 3 years old. There are some outliers in the dataset.\\nIn the activity that follows, students will look at ten cats from the shelter to consider the distribution of their ages.\\n","objectId":"SLIDES_API825468082_6"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":73,"endIndex":82},"style":{"link":{"url":"https://bootstrapworld.org/materials/fall2024-beta/en-us/courses/data-science/back-matter/pages/animals-dataset.html"}},"objectId":"SLIDES_API825468082_6","fields":"link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":42,"endIndex":66},"style":{"link":{"url":"https://docs.google.com/spreadsheets/d/1VeR2_bhpLvnRUZslmCAcSRKfZWs_5RNVujtZgEl6umA/edit"}},"objectId":"SLIDES_API825468082_6","fields":"link"}},{"createParagraphBullets":{"textRange":{"type":"FIXED_RANGE","startIndex":150,"endIndex":349},"bulletPreset":"BULLET_DISC_CIRCLE_SQUARE","objectId":"SLIDES_API825468082_6"}},{"insertText":{"text":"Measuring \\"Deviance\\"","objectId":"SLIDES_API825468082_8"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":20},"style":{"fontSize":{"magnitude":26.5,"unit":"PT"}},"objectId":"SLIDES_API825468082_8","fields":"fontSize"}},{"insertText":{"text":"Turn to Computing Standard Deviation, and complete numbers 1-3.\\n​What did you get for the mean? Does it match what the Animal Shelter Bureau says?\\n​Can you think of four ages, such that the mean age for all of them is 3?\\n​Can you think of a different spread of four ages that would have the same mean?\\n​How many different sets of four ages can you think of, which all have a mean of 3?\\n","objectId":"SLIDES_API825468082_7"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":386},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":302,"endIndex":386},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":302,"endIndex":385},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":221,"endIndex":302},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":250,"endIndex":301},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":241,"endIndex":250},"style":{"italic":true,"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"italic,fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":221,"endIndex":241},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":147,"endIndex":221},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":147,"endIndex":220},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":147},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":146},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":64},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":36,"endIndex":63},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":8,"endIndex":36},"style":{"fontSize":{"magnitude":16,"unit":"PT"},"link":{"url":"https://bootstrapworld.org/materials/fall2024-beta/en-us/lessons/standard-deviation/pages/computing-stdev.html"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize,link"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":0,"endIndex":8},"style":{"fontSize":{"magnitude":16,"unit":"PT"}},"objectId":"SLIDES_API825468082_7","fields":"fontSize"}},{"createParagraphBullets":{"textRange":{"type":"FIXED_RANGE","startIndex":64,"endIndex":386},"bulletPreset":"BULLET_DISC_CIRCLE_SQUARE","objectId":"SLIDES_API825468082_7"}},{"insertText":{"text":"​What did you get for the mean? Does it match what the Animal Shelter Bureau says?\\n\\t​The mean is 3; yes, it matches what the Animal Shelter Bureau says.\\n​Can you think of four ages, such that the mean age for all of them is 3?\\n\\t​Some possibilities include: {3,3,3,3}, {1,2,4,5}, {1,1,4,6}... any four ages that add up to 12 will work!\\n​Can you think of a different spread of four ages that would have the same mean?\\n\\t​See above.\\n​How many different sets of four ages can you think of, which all have a mean of 3?\\n\\t​See above.\\n","objectId":"SLIDES_API825468082_10"}},{"updateTextStyle":{"textRange":{"type":"FIXED_RANGE","startIndex":355,"endIndex":364},"style":{"italic":true},"objectId":"SLIDES_API825468082_10","f`... 46680 more characters,
      responseType: 'unknown',
      errorRedactor: [Function: defaultErrorRedactor]
    },
    data: { error: [Object] },
    headers: {
      'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000',
      'cache-control': 'private',
      'content-encoding': 'gzip',
      'content-type': 'application/json; charset=UTF-8',
      date: 'Mon, 04 Mar 2024 15:45:37 GMT',
      server: 'ESF',
      'transfer-encoding': 'chunked',
      vary: 'Origin, X-Origin, Referer',
      'x-content-type-options': 'nosniff',
      'x-frame-options': 'SAMEORIGIN',
      'x-l2-request-path': 'l2-managed-4',
      'x-xss-protection': '0'
    },
    status: 400,
    statusText: 'Bad Request',
    request: {
      responseURL: 'https://slides.googleapis.com/v1/presentations/1EHgn5KK1D_Ahf3X0rk5hV3Y3w-hGobAGz3ct7OLTo9o:batchUpdate'
    }
  },
  error: undefined,
  status: 400,
  code: 400,
  errors: [
    {
      message: 'Invalid requests[78].createImage: There was a problem retrieving the image. The provided image should be publicly accessible, within size limit, and in supported formats.',
      domain: 'global',
      reason: 'badRequest'
    }
  ],
  [Symbol(gaxios-gaxios-error)]: '6.3.0'
}

which is a lot of information for an author to parse and is hard to find the beginning of because it takes up several more screens in my terminal that it does on this git screen with text wrapping differently... and I probably have another error message ahead of it ;)

flannery-denny commented 7 months ago

Ah. here is the kicker. When working on slides. I usually make deck A. And then make deck B before working on A so that my flow doesn't get interrupted.

If I don't catch and fix the error in deck A before making deck B, here's what I get for deck B.

./build-slide -f threats-to-validity
make --no-print-directory -f lib/maker/Makefile.phase1
distribution/en-us/lessons updated
distribution/en-us/courses updated
lib/maker/collect-distribution-info.lua
make --no-print-directory -f lib/maker/Makefile.phase2
lib/maker/run-asciidoctor.sh
lib/maker/collect-specials.lua
lib/maker/do-postproc.lua
lib/maker/make-pathway-tocs.lua
objc[30329]: Class GNotificationCenterDelegate is implemented in both /opt/homebrew/Cellar/glib/2.76.2/lib/libgio-2.0.0.dylib (0x116cb06b0) and /Users/flannery/Documents/Bootstrap/curriculum/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/lib/libvips-cpp.42.dylib (0x11a151a40). One of the two will be used. Which one is undefined.
Slides failed for threats-to-validity/slides.mkd
Unable to generate slides: GaxiosError: Internal Error
    at Gaxios._request (/Users/flannery/Documents/Bootstrap/curriculum/node_modules/gaxios/build/src/gaxios.js:142:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async OAuth2Client.requestAsync (/Users/flannery/Documents/Bootstrap/curriculum/node_modules/google-auth-library/build/src/auth/oauth2client.js:405:18)
    at async SlideGenerator.copyPresentation (file:///Users/flannery/Documents/Bootstrap/curriculum/node_modules/md2googleslides/lib/slide_generator.js:123:17) {
  config: {
    url: 'https://www.googleapis.com/drive/v3/files/1vFGtTzhTlc1p8VJECRucj5DO83skm4wMI1BU3QbHE5k/copy',
    method: 'POST',
    userAgentDirectives: [ [Object] ],
    paramsSerializer: [Function (anonymous)],
    data: { name: 'AUTO-GEN:Threats to Validity', parents: [Array] },
    headers: {
      'x-goog-api-client': 'gdcl/7.0.1 gl-node/19.9.0',
      'Accept-Encoding': 'gzip',
      'User-Agent': 'google-api-nodejs-client/7.0.1 (gzip)',
      Authorization: 'Bearer ya29.a0AfB_byAfl4LvznnZY6RDjFm0TZL1hocfE1l83BGoD_lLXOU47l4zJWpr5Z6o5FF5TGM65R1ZHlNK9lOBGlo_nXjTog22q-w0neNP2H6Zw2Pngyfqnn5tDAMFA-9kkG_FlltIgp70RJP2rDLyTnWQeW0tyncquPBDhP--hOkaCgYKAd4SARMSFQHGX2MimbWcqTGt5OLuHf6nXMYtiQ0174',
      'Content-Type': 'application/json'
    },
    params: {},
    validateStatus: [Function (anonymous)],
    retry: true,
    body: '{"name":"AUTO-GEN:Threats to Validity","parents":["1AP4vk0XwLSl9cU8HIHjmSTFK7dG3CrGn"]}',
    responseType: 'unknown',
    errorRedactor: [Function: defaultErrorRedactor],
    retryConfig: {
      currentRetryAttempt: 0,
      retry: 3,
      httpMethodsToRetry: [Array],
      noResponseRetries: 2,
      statusCodesToRetry: [Array]
    }
  },
  response: {
    config: {
      url: 'https://www.googleapis.com/drive/v3/files/1vFGtTzhTlc1p8VJECRucj5DO83skm4wMI1BU3QbHE5k/copy',
      method: 'POST',
      userAgentDirectives: [Array],
      paramsSerializer: [Function (anonymous)],
      data: [Object],
      headers: [Object],
      params: {},
      validateStatus: [Function (anonymous)],
      retry: true,
      body: '{"name":"AUTO-GEN:Threats to Validity","parents":["1AP4vk0XwLSl9cU8HIHjmSTFK7dG3CrGn"]}',
      responseType: 'unknown',
      errorRedactor: [Function: defaultErrorRedactor]
    },
    data: { error: [Object] },
    headers: {
      'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000',
      'cache-control': 'private, max-age=0',
      'content-encoding': 'gzip',
      'content-type': 'application/json; charset=UTF-8',
      date: 'Mon, 04 Mar 2024 15:59:46 GMT',
      expires: 'Mon, 04 Mar 2024 15:59:46 GMT',
      server: 'ESF',
      'transfer-encoding': 'chunked',
      vary: 'Origin, X-Origin',
      'x-content-type-options': 'nosniff',
      'x-frame-options': 'SAMEORIGIN',
      'x-xss-protection': '0'
    },
    status: 500,
    statusText: 'Internal Server Error',
    request: {
      responseURL: 'https://www.googleapis.com/drive/v3/files/1vFGtTzhTlc1p8VJECRucj5DO83skm4wMI1BU3QbHE5k/copy'
    }
  },
  error: undefined,
  status: 500,
  code: 500,
  errors: [
    {
      message: 'Internal Error',
      domain: 'global',
      reason: 'internalError'
    }
  ],
  [Symbol(gaxios-gaxios-error)]: '6.3.0'
}
ds26gte commented 7 months ago

That huge error message is from md2googleslides -- I don't really have control over it. @schanzer, thoughts?

schanzer commented 7 months ago

I can catch and trim the error, to be sure. But "md2googleslides' error is too long" is a very different issue than "unclosed directives aren't throwing warnings at all".

flannery-denny commented 7 months ago

Confirming that you saw this comment where I don't get the QandA message when building deckB if the issue is in deckA.