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

[Total Automation] Validate each meeting's PR #38

Open
7 tasks
jmuchovej opened this issue Dec 17, 2019 · 5 comments
Open
7 tasks

[Total Automation] Validate each meeting's PR #38

jmuchovej opened this issue Dec 17, 2019 · 5 comments
Assignees
Labels
🚧 in progress Moved from TODO-like state to actual development 👷‍♂️ tool:CI/CD 🎆 feature-request 🔑 required Tasks that **need** to be completed, ASAP.

Comments

@jmuchovej
Copy link
Member

jmuchovej commented Dec 17, 2019

Just a note, when referring to groups... groups := {intelligence, core, data-science, supplementary}

Feature Request, for groups

Description Since Coordinators must submit notebooks as PRs (and given tight integration between the website and groups), we need to automatically verify their changes. NOTE: This shouldn't approve the merge until someone actually takes a look at the content in the notebook.

Needs

  • Check that Coordinators were working in <YYYY-MM-DD-slug>.solution.ipynb. IFF:
    • compile the "non-solution" notebook (if this fails, halt PR with helpful feedback)
    • compile the webpage rendition (if this fails, halt PR with helpful feedback)
    • generate the most up-to-date banner.jpg (if this fails, halt PR with helpful feedback)
      • (🍜 Nice to Have) Notify @social-squad in Discord about a failure to generate the banner.
    • attempt to push to Kaggle (if this fails, halt PR with helpful feedback)
      • (🍜 Nice to Have) Notify @director-<group> in Discord about a failure to publish on Kaggle
@jmuchovej jmuchovej added 📝 todo Items in still in ideation, discovery, or planning "mode." 🔑 required Tasks that **need** to be completed, ASAP. 👷‍♂️ tool:CI/CD 🎆 feature-request labels Dec 17, 2019
@jmuchovej jmuchovej added this to the Winter 2019 Upgrade milestone Dec 17, 2019
@jmuchovej jmuchovej changed the title [Total Automation] [Total Automation] Validate each meeting's PR Dec 17, 2019
@Haugf
Copy link
Collaborator

Haugf commented Dec 17, 2019

Hey John can you explain what a "non-solution" notebook is for me

@jmuchovej
Copy link
Member Author

https://ucfai.org/docs/admin/making-meetings

That should be fairly comprehensive, I think – but, an easy example of this is in #29's description. Currently, this strictly refers to the code blocks of a Jupyter notebook.

#29's description permalink

@jmuchovej jmuchovej assigned Haugf and unassigned SirRoboto and Ch1pless Dec 17, 2019
@Haugf
Copy link
Collaborator

Haugf commented Dec 17, 2019

@bb912 just showed me #29

Thanks John!

@Haugf
Copy link
Collaborator

Haugf commented Dec 19, 2019

For this task, all of the files we need to compile are already built and ready to be called inside of lib/utils/meetings.py

render_banner(), update_or_creat_notebook() and export_notebook_as_notebook are here at least...

@jmuchovej
Copy link
Member Author

so, prior to accepting a PR on a notebook, all of these should pass:
https://github.com/ucfai/bot/blob/409902fc7fa352d0e619ceaf661dd837f91d160f/autobot/lib/ops.py#L104

so, the main thing to focus on validating is that the notebook compiles and generates a notebook that's exactly the same (minus the "solution sections"). sooo, a way to do this might be to make use of /tmp (linux temporary directory) and write-out notebooks, doing a diff on them (i think, if you remove the "solution sections" from the .solution.ipynb, run nbgrader over it, an then compute a sha256 over the notebooks you should be able to easily determine if they're different.

let me know if you have further questions about ^.

now that i think about it... there might actually two different "use-cases" for PRs, at least. considering intelligence doesn't work out of notebooks too much, at the moment, these PRs may need to run on syllabus.yml updates as well. (but for now, let's assume that we only need to validate PRs on notebooks.)

@jmuchovej jmuchovej added 🚧 in progress Moved from TODO-like state to actual development and removed 📝 todo Items in still in ideation, discovery, or planning "mode." labels Dec 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🚧 in progress Moved from TODO-like state to actual development 👷‍♂️ tool:CI/CD 🎆 feature-request 🔑 required Tasks that **need** to be completed, ASAP.
Projects
None yet
Development

No branches or pull requests

5 participants