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

Some suggestions for Workflow renaming and management #39

Open
rudradesai200 opened this issue Sep 27, 2020 · 4 comments
Open

Some suggestions for Workflow renaming and management #39

rudradesai200 opened this issue Sep 27, 2020 · 4 comments

Comments

@rudradesai200
Copy link

As discussed with @patricoferris , These are some of our suggestions

  1. Rename the "Configuring Ocaml tools for your Editor" To "Setting up an OCaml development environment" would be more appropriate and we can also add a few more headings under this workflow like
  • Generally Required Libraries
  • Files and Libraries Management (Included in Navigating through OCaml Projects)
    etc
  1. Add a sitemap for the website, or we can add a search bar to help new users navigate through the website more efficiently.

  2. There are already separate pages for tools like opam and dune, but a good-explanation involving the use of top-level in jupyter-notebook, bytecode compiler and the assembly compiler can be helpful. Also, I found that the explanation for library management using dune and opam is not present for complete beginners. Some common problems faced by some of my colleagues and even me were

  • Handling multiple modules and libraries,
  • Handling functors and separating execuatables
  • creating multiple tests for the same modules
    etc

I am also attaching some references which I found to be quite useful for setups and other tools.

  1. Starting an ocaml app project using dune
  2. Using files to separate modules and programs
@patricoferris
Copy link
Collaborator

Thanks @rudradesai200 for these great suggestions!

I've split out the first two into separate issues as I think they raise great points. As for the third, the problems you and your colleagues had is exactly the things we should mitigate whenever it falls in our remit.

Library Management

I think the "library management with opam and dune" is somewhat covered in a... decentralised way across multiple pages for example:

Is this the kind of content you were thinking of? Do you think a "Installing and using libraries" workflow would be a better place to bring these ideas together?

I think it might be. I think some of the hurdles most (including myself) struggle with are:

  • Switches (global & local)
  • Pinning (for development, for trying unreleased things...)
  • Interaction between dune and opam

Other Problems

I think, as you have pointed out, modules and functors is covered by RWO very well and are more concerned with aspects of the OCaml language rather than workflows for being productive in the language.

However, there is also a concept that has come up time and time again about "Design Patterns" in OCaml which I believe you are eluding to which isn't covered as much in RWO. For example how Irmin uses a lot of functors. I'm not sure it is suited for Explore either as it is v. subjective and project dependent. Is this what you mean? Or am I missing something?

@rudradesai200
Copy link
Author

"Do you think a "Installing and using libraries" workflow would be a better place to bring these ideas together?"
Yes, I completely agree with you. This workflow could indeed resolve most of the issues faced by beginners like me. Also, I have not yet properly explored the Switches and Pinning part myself, to be honest. Let me get back to you on this.

I am currently learning Library and File management in OCaml and interaction between dune and opam, as I explored OCaml using Jupyter Notebooks only. So, I will start creating a rough design about what we can include in this workflow, and maybe we can review it later. What do you think?

"I'm not sure it is suited for Explore either as it is v. subjective and project dependent. Is this what you mean? Or am I missing something?"
Yes, I agree it is very subjective as well as project dependent. The problems which I was facing was mainly concerned with "Interaction between dune and opam", and we are already covering it above, so no worries.

Also, I am mostly done with the beginner's workflow as of now, I must say you guys have done really impressive work. This project is more than sufficient enough for beginners to get started with OCaml.

@patricoferris
Copy link
Collaborator

Great sounds like a plan! Once you are ready, feel free to open a third issue for creating that workflow to track it separately and we'll review it :) Thanks again for all of the wonderful suggestions!

@patricoferris
Copy link
Collaborator

patricoferris commented Sep 29, 2020

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