sgibson91 / ssi-fellowship

Project management and tracking impact of Sarah's SSI Fellowship (2020)
MIT License
2 stars 0 forks source link

Convert Zero-to-Binder tutorial into R and Julia languages #3

Closed sgibson91 closed 4 years ago

sgibson91 commented 4 years ago

Summary

This issue will track the conversion of the Zero-to-Binder into Julia and R so that there is a Binder introductory resource for all three languages.

What needs to be done?

Who can help?

willingc commented 4 years ago

@xorJane would be a fabulous resource for information about Julia.

@fperez may know others in the Jupyter world who work with Julia. @davidanthoff has been very helpful with Julia and nteract examples/feedback.

For R @cvitolo would be a person to meet.

davidanthoff commented 4 years ago

I’d be happy to be a contact on the Julia side. I won’t have time to do any actual work :) But happy to answer questions etc.

sgibson91 commented 4 years ago

Thank you all! @davidanthoff I'll definitely let you know if I run into anything strange :)

sgibson91 commented 4 years ago

@ots22 is interested on working on the Julia version. We'll have another discussion in early March once our calendars have eased off.

@annakrystalli interested in working on the R version. To be done in April.

sgibson91 commented 4 years ago

Tracking Julia translation

Issue: https://github.com/alan-turing-institute/the-turing-way/issues/952 PR: https://github.com/alan-turing-institute/the-turing-way/pull/959

sgibson91 commented 4 years ago

R version of Zero-to-Binder! https://github.com/alan-turing-institute/the-turing-way/pull/1139

Update: The R version is now complete! https://bit.ly/zero-to-binder-r

sgibson91 commented 4 years ago

Hey @davidanthoff 👋 I wonder if you could help me re-word the below paragraph to be more relevant to Julia? Thanks!

More on pinning dependencies

In the above example, we used two equals signs (==) to pin the version of numpy. This tells Binder to install that specific version.

Another way to pin a version number is to use the greater than or equal to sign (>=) to allow any version above a particular one to be installed. This is useful when you have a lot of dependencies that may have dependencies on each other and allows Binder to find a configuration of your dependencies that do not conflict with one another whilst avoiding any earlier versions which may break or change your code.

Finally, you could not provide a version number at all (just the name of the library/package) and Binder will install the latest version of that package.

N.B.: These operations to pin dependencies are most likely specific to Python. Each language has it's own quirks and a link to the different types of configuration files (which is what requirements.txt is) is given at the bottom of this document.

davidanthoff commented 4 years ago

So the general idea for Julia is that you put a Project.toml and Manifest.toml in the root of your github repo. You typically don't create them by hand, but use the built-in package manager to create them (docs for that are here). The combination of Project.toml and Manifest.toml pins every package to a specific version, so when binder starts up, you'll get an exact replication of the package versions that were originally used, including all dependencies of dependencies etc.

sgibson91 commented 4 years ago

And Julia is now done! http://bit.ly/zero-to-binder-julia 🎉 Thanks everybody!