-
Notifications
You must be signed in to change notification settings - Fork 177
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
Link Lwt-related libraries in README.md #546
Conversation
Do we really want a mostly auto-generated list in the Readme that will be outdated the instant it's commited? |
@smithjessk, thanks for the PR. These are packages, some of which correspond to libraries that are worth listing, but it requires a bit of curation to figure out what to include. For example, Also, I think some of the packages are deprecated. Not immediately sure. We want to look for the ones that are actively maintained. The easiest way to find all this out is to type |
@Drup @aantron Thanks for the quick comments. Is there still interest in this PR being on this project? I ask because of @Drup's comment. If so, I'd be happy to:
|
@smithjessk Yes, please. That plan sounds good. I'm also wondering why e.g. Opium isn't in the list. I haven't tried running the command recently, so I don't know if it's not being picked up through the dependency graph. |
Two more things I'd suggest:
|
Opium isn't included because, as a starting point, I only kept packages whose names contained "lwt". The listed I see now that this is a bad filter because of the important false negatives (e.g., Opium, the main Cohttp package), so I'll manually go through the results and see what comes out. It shouldn't be too bad. I plan to have an updated + improved list by the end of the week. |
Ok, wow, I didn't realize it was that many. I usually run that command through grep, or start a script that downloads everything and then runs grep, so I never actually counted. |
That might be because of |
Sounds fair. I considered that before posting my last comment, but, since I'm new to the Ocaml world, I wasn't sure if that would miss important projects. Could we drop |
Libraries depending through Dropping Two things regarding the number of packages:
|
Hey- sorry for the delay. I went through the ~330 by hand and tried to pick out a good starting set. Does anyone see any false negatives/positives? In the meantime, I'll start writing up small descriptions for these. alcotest |
No problem, I can imagine how much work it was :) So thank you :) Pretty much everything in that list is a very solid project, but I suggest taking from it only This is because most of the other projects are mainly using Lwt. From Lwt's point of view, those are so high up the dependency chain, that they are practically applications for us. To make this concrete, take either Jupyter or IOCaml. If a developer stumbles on the Lwt repo and wants to know what else is going to make developing their other application easier with Lwt, they won't likely find Jupyter or IOCaml immediately useful for that (neat as Jupyter and IOCaml are in general, of course :)). By contrast, they may find Alcotest very useful for easily writing nice tests of their Lwt code, ezjsonm for parsing JSON in an Lwt-using codebase, etc. So, the projects I'm suggesting to leave are the ones that somehow directly enhance the experience of coding with Lwt. They interact with Lwt on what Lwt does, which is concurrency and I/O, and are on a similar level in the dependency graph. Of course, this is all open to interpretation :) |
I added a new commit with the libraries you mentioned. Please let me know if there's anything else I can do. Actually, the large number of libraries made this a perfect starter issue. I learned a lot about the important players in the Ocaml ecosystem. Thanks for being patient! |
Thanks for being thorough! I'm glad you found it useful. You probably now have a better survey of the OCaml ecosystem than almost everyone, me included :) |
Addresses #366. As mentioned in the REAMDE, I generated the list of libraries with
opam list --unavailable --depends-on=lwt --depopts --recursive --short | grep lwt
. This might miss some libraries, but I believe it's a good start. I usedwget
to check that all the URLs work.