<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Agreed. I think it's important not to scatter all this information too much as we assemble it though.<div class=""><br class=""></div><div class="">Putting all of this in the central OPAM FAQ first (perhaps with categories) will give us one place to point to, and we could then create a more domain-specific teaching page with links into to the FAQ. I would, for example, also like to link into the central OPAM FAQ from the MirageOS site as well.</div><div class=""><br class=""></div><div class="">Anil<br class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 2 Dec 2014, at 14:46, David Walker <<a href="mailto:princedpw@gmail.com" class="">princedpw@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Having a FAQ with a list of questions/how-tos and links to "answers" would be terrific for me. There have already been a couple of "how-tos" in this email thread vis-a-vis setting up Merlin better.<div class=""><br class=""></div><div class="">Dave</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Dec 2, 2014 at 8:32 AM, Yaron Minsky <span dir="ltr" class=""><<a href="mailto:yminsky@janestreet.com" target="_blank" class="">yminsky@janestreet.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr" class="">This seems like a great little howto. Should we perhaps have a teaching FAQ on <a href="http://ocaml.org/" target="_blank" class="">ocaml.org</a> and put bits of advice like this in there?</p><span class="HOEnZb"><font color="#888888" class=""><p dir="ltr" class="">y</p></font></span><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On Dec 1, 2014 9:48 PM, "Louis Gesbert" <<a href="mailto:louis.gesbert@ocamlpro.com" target="_blank" class="">louis.gesbert@ocamlpro.com</a>> wrote:<br type="attribution" class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u class=""></u>
<div style="font-family:'Monospace';font-size:8pt;font-weight:400;font-style:normal" class=""><div style="margin: 0px; text-indent: 0px;" class="">On how to provide a set of libraries to install, the following is on its way to the FAQ:</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">«</div><div style="margin: 0px; text-indent: 0px;" class="">### Easily provide a set of packages for students to install</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">The easiest way is to create a package with your prerequisites as `depends` and</div><div style="margin: 0px; text-indent: 0px;" class="">have them pin that. A quick way to host the file is to use a</div><div style="margin: 0px; text-indent: 0px;" class="">[Gist](<a href="https://gist.github.com/" target="_blank" class="">https://gist.github.com</a>). Create one with minimal contents and listing</div><div style="margin: 0px; text-indent: 0px;" class="">your packages as dependencies -- the file name **has** to be `opam`:</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">```</div><div style="margin: 0px; text-indent: 0px;" class="">opam-version: "1.2"</div><div style="margin: 0px; text-indent: 0px;" class="">name: "ocaml101"</div><div style="margin: 0px; text-indent: 0px;" class="">version: "0.1"</div><div style="margin: 0px; text-indent: 0px;" class="">maintainer: "Louis Gesbert <<a href="mailto:louis.gesbert@ocamlpro.com" target="_blank" class="">louis.gesbert@ocamlpro.com</a>>"</div><div style="margin: 0px; text-indent: 0px;" class="">depends: [ "menhir" { = "20140422" }</div><div style="margin: 0px; text-indent: 0px;" class=""> "merlin" { >= "2" }</div><div style="margin: 0px; text-indent: 0px;" class=""> "ocp-indent"</div><div style="margin: 0px; text-indent: 0px;" class=""> "ocp-index" ]</div><div style="margin: 0px; text-indent: 0px;" class="">```</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">Save that and get the `HTTPS clone URL`. All that is needed then is to run:</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">```shell</div><div style="margin: 0px; text-indent: 0px;" class="">$ opam pin add ocaml101 <HTTPS clone URL></div><div style="margin: 0px; text-indent: 0px;" class="">```</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">Furthermore, `opam update` will then pick up any modification you made to the gist.</div><div style="margin: 0px; text-indent: 0px;" class="">»</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">Cheers,</div><div style="margin: 0px; text-indent: 0px;" class="">Louis</div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p><div style="margin: 0px; text-indent: 0px;" class="">Le jeudi 27 novembre 2014, 18:23:40 Louis Gesbert a écrit :</div><div style="margin: 0px; text-indent: 0px;" class="">> Thanks for the feedback!</div><div style="margin: 0px; text-indent: 0px;" class="">> </div><div style="margin: 0px; text-indent: 0px;" class="">> > Things, I would love:</div><div style="margin: 0px; text-indent: 0px;" class="">> > - being able to give them a sort of meta-package requiring a set of libraries</div><div style="margin: 0px; text-indent: 0px;" class="">> It's possible to define one within a repository. Or, more directly, it should work to host an archive containing an `opam` file somewhere, and then have them run `opam pin URL`.</div><div style="margin: 0px; text-indent: 0px;" class="">> I'll check if that works and document it somewhere (OPAM FAQ?) if that turns out to be useful.</div><div style="margin: 0px; text-indent: 0px;" class="">> </div><div style="margin: 0px; text-indent: 0px;" class="">> > - perhaps some support to get access to the sources (perhaps it exists but I haven’t seen it), sometimes I push them into looking at the code of the libraries and they need to get it (or browse github). Why not also the doc?</div><div style="margin: 0px; text-indent: 0px;" class="">> OPAM 1.2 added the `opam source <package>` command. Damn useful :)</div><div style="margin: 0px; text-indent: 0px;" class="">> </div><div style="margin: 0px; text-indent: 0px;" class="">> Hope that helps!</div><div style="margin: 0px; text-indent: 0px;" class="">> </div><div style="margin: 0px; text-indent: 0px;" class="">> </div><div style="margin: 0px; text-indent: 0px;" class="">> _______________________________________________</div><div style="margin: 0px; text-indent: 0px;" class="">> Teaching mailing list</div><div style="margin: 0px; text-indent: 0px;" class="">> <a href="mailto:Teaching@lists.ocaml.org" target="_blank" class="">Teaching@lists.ocaml.org</a></div><div style="margin: 0px; text-indent: 0px;" class="">> <a href="http://lists.ocaml.org/listinfo/teaching" target="_blank" class="">http://lists.ocaml.org/listinfo/teaching</a></div><div style="margin: 0px; text-indent: 0px;" class="">> </div><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class=""> </p></div><br class="">_______________________________________________<br class="">
Teaching mailing list<br class="">
<a href="mailto:Teaching@lists.ocaml.org" target="_blank" class="">Teaching@lists.ocaml.org</a><br class="">
<a href="http://lists.ocaml.org/listinfo/teaching" target="_blank" class="">http://lists.ocaml.org/listinfo/teaching</a><br class="">
<br class=""></blockquote></div>
</div></div><br class="">_______________________________________________<br class="">
Teaching mailing list<br class="">
<a href="mailto:Teaching@lists.ocaml.org" class="">Teaching@lists.ocaml.org</a><br class="">
<a href="http://lists.ocaml.org/listinfo/teaching" target="_blank" class="">http://lists.ocaml.org/listinfo/teaching</a><br class="">
<br class=""></blockquote></div><br class=""></div>
_______________________________________________<br class="">Teaching mailing list<br class=""><a href="mailto:Teaching@lists.ocaml.org" class="">Teaching@lists.ocaml.org</a><br class="">http://lists.ocaml.org/listinfo/teaching<br class=""></div></blockquote></div><br class=""></div></div></body></html>