The future of Dream

People have sporadically asked about @antron’s personal status (here and elsewhere). He seems to be okay (based on signs of life in the #dream channel on the reason discord anyway), but after 6 months of radio silence re: Dream, I think it’s fair to raise the topic of where people in the community want to see from that project going forward, even if Anton by happenstance “returns” tomorrow.

Personally, I’ve really enjoyed working with Dream, and have accumulated a handful of fixes and enhancements for it; others have probably done the same. It would seem to make sense to start vetting and combining these works together, somewhere. Of course this opens all sorts of questions: where to place a community fork, who should be lead maintainers, what the project’s objectives are beyond tweaks and patches, etc. I have no serious answers to any of these questions, but maybe others here do. :slight_smile:

6 Likes

OCaml Community · GitHub might be the right place if they are happy to host the (temporary) fork.

2 Likes

Given how popular Dream has become, I think it makes a lot of sense to fork it. AFAIK @antron currently doesn’t have plans to go back to contributing to OCaml in the near future, and so if people are relying on this software, the community needs to be able to keep developing it independently.

4 Likes

Has that been stated publicly? If so, then we should all move along posthaste.

I linked to this topic in the #dream channel on the Reason discord, and Anton replied with a pretty comprehensive statement, quoted here:

the issue with me working on ocaml projects is that i support my work by doing some of it on contract. during the recent events between russia and ukraine, my clients stopped offering contracts. i didnt ask why (because its both unprofessional for them to stop over this, and unprofessional for me to ask why), but one voluntarily offered the reason that they dont want to support the russian economy (i am a US citizen living in Russia). they said thats everyone’s reason, and i am inclined to agree. since i am not going to make a personal decision to relocate from russia based on the opinions of business contacts, that effectively means i can no longer fund my work in ocaml as before. i am also not motivated to work as a volunteer for two reasons: 1. engineering employees of my clients continue to expect to get benefit from my ongoing work, while the client’s business employees made the decision to boycott me. 2. i am not motivated to work with people that dont want to support my personal life processes (“economy”) under the claim that funding one person “supports the russian economy”, under the implication that most of it is relevant to the war, or that expect to somehow manipulate me into making personal decisions based on their own personal views. in simpler words, those good open source feelings that stimulate contribution are not there

even though i love ocaml, i decided that western business contacts are unreliable for the time being and switched to other work, because it is not practical under the current circumstances for me to work in ocaml. simpler, i left the ocaml community is response to a boycott

i’ll see about coming back if/when the boycott has ended

you can, of course, do whatever you want with dream. as it is available under a free license. however, i greatly regret this whole sequence of events

btw github donations stay in the US, github doesn’t even support paying out to russia

(not even before all the military and political events)

but i cant really justify them, since i dont know if/when i will work in ocaml again

i currently have one contract again, but it remains to be seen whether me and the other side will actually carry it out

so i hope so, but really cant promise and i dont base my personal decision making on it yet

there’s nothing sad about my circumstances, and you shouldn’t be sad to hear about them :slightly_smiling_face: i’ve simply learned what i am dealing with and life continues to be great :slightly_smiling_face: what’s sad is petty and unprofessional behavior :slightly_smiling_face:

19 Likes

We have projects using Dream or moving to Dream (ocaml-ci, ocaml.org, current-bench). I expect that Dream will continue in some form or other. I’ve had no contact with Anton personally so cannot speak to his situation. Currently we have forks for ocaml-matrix, mirage and EIO/multicore support. All of which we would like to get merged back into the official Dream version along with regular releases.

My personal opinion is that I will maintain a version of Dream with various change and make every effort to contribute back. Technically we can use git submodules and keep this working for now. I think that Dream is a fantastic piece of software for the OCaml community and I want to see it succeed.

15 Likes

I don’t believe that is an accurate tl;dr. But while I’m certain we could have an interesting discussion about geopolitics and the related ethics and current law, but I’m hoping this thread can remain focused on Dream and the broader OCaml web dev community.

12 Likes

How do we get in contact with anton for some contracting work?
My company might have some work for him if he’s interested.

3 Likes

I think that probable make sense, and looking at the inclusion criterias the main blocker would be:

vi. Have you found someone to act as the initial owner for the code, and if so, who will that be? (Typically that will be at least the person proposing inclusion, though there may be exceptions.)

We’d need to find a volunteer (or group of) to be the new maintainer(s).

Try discord (Reason channel). He is pretty responsive there.

Half a year later I was wondering whether anyone (a) volunteered (b) talked with @antron about moving dream to the ocaml-community organization (or (c) everyone switched over to some other web framework)?

Since e.g. the new OCaml website is using dream (and the mirage website as well), I’m curious how sustainable it is to stand on a rather old release / some forked / branched version?

9 Likes

@octachron and I tried to contact @antron to that end about 2 weeks ago but we didn’t get any answer yet.

I wouldn’t look to Anton for further answers, I think he’s already said everything he wanted to about this. If anyone wants to take Dream forward, they will need to fork it–probably with a name change as the ‘Dream’ name may be considered Anton’s IP (I vote ‘Reve’).

1 Like

I’m also concerned about what @antron’s hiatus means for his other packages. Several of my own packages depend on his markup package, and I recently rewrote my camyll package so that it would not need his lambdasoup library: The reason for my change is that lambdasoup does not support OCaml 5, even though the fix is not so difficult and @kit-ty-kate has an outstanding PR for it.

I myself am at home recovering from a major medical operation and am currently weak. In the hospital, I also spent my time recovering in the same room as other people of various health and age. As a result, I began to think about my own mortality. As this topic relates to OCaml, what would happen to any of my libraries that other people are using if I died or became otherwise incapable of maintaining them?

Should OCaml have a plan for if a package maintainer disappears or becomes unable to work anymore?

That’s a question with a very broad scope. It’s not clear what you mean by ‘OCaml’. Of course people in the community will one day (hopefully far off) die, have commitments that leave them no spare time, or become unwell. In the eventuality, people who need to use their packages will need to self-organize somehow to do the work to maintain the packages going forward. This is not unique to OCaml but the same in every open source community. There are no guarantees in open source.

7 posts were split to a new topic: Package maintenance policies

I would encourage people that want to discuss “adoption policies for orphaned packages” to move to a different Discuss thread. This is an interesting topic, but it adds noise to a Dream-specific discussion, and also the discussion feels semi-inappropriate to me in the context of Dream, which is a different, rather sensitive situation. (It’s not that the author is not interested in maintaining the software anymore, but a more complex situation.)

7 Likes

Glad to see interest on this topic here again after a while. Some miscellaneous thoughts given that and the time that’s elapsed:

  • I think @yawaramin is correct that expecting/hoping/waiting for further input from antron is probably not productive.
  • I don’t think there’s any actual IP challenges around the “dream” name; antron [to his credit] never even claimed it as a common law trademark AFAICT (though I really don’t think it’s particularly important what the project’s name is going forward).
  • [EDIT: removed this point in favour of a more developed reply here re: package namespacing/scoping in opam]
  • Maybe @bhoot et al. have a different take, but it feels like a library (or a category) as opinionated as dream / web frameworks might not be at home in the ocaml-community group? i.e. as seen in other language communities, there are literally hundreds of ways to skin a “web framework”; I’d hate to see dream being a part of ocaml-community dissuade others from promulgating their take on the category.

I’ve been edging towards “publishing” my own fork of dream for a while (whether to opam or simply via suggesting it as a new viable HEAD), but am happy to not do that insofar as more active community contributors have a head of steam on it.

3 Likes

Maybe @bhoot et al. have a different take, but it feels like a library (or a category) as opinionated as dream / web frameworks might not be at home in the ocaml-community group? i.e. as seen in other language communities, there are literally hundreds of ways to skin a “web framework”;

I see putting Dream in the ocaml-community account as getting a collaborative home, rather than getting an official status as the web framework.

The repo describes itself as:

A collaborative, community-driven project for long-term maintenance of OCaml packages

This account seems like the lowest common denominator to maintain community-backed OCaml projects. If we don’t wish to put dream under another user account, then why not use this repository? Come tomorrow, another similar framework could find a place here too.

I’d hate to see dream being a part of ocaml-community dissuade others from promulgating their take on the category.

It’s not like living under this account improves discoverability of a project. The official projects probably live here: OCaml · GitHub

And judging from the examples of Lwt/Async, jsoo/melange, Brr/gen_js_api, bs-tea/incr_dom/ocaml-vdom/bonsai, cohttp/dream/ocsigen etc., I don’t think anyone motivated is going to stop themselves from having a go at another framework. :smile:

All of the above of course assumes that ocaml-community accepts projects like this.

6 Likes

I agree. From being familiar with his opinions, I don’t think we should expect any more contributions from him in the coming years. This makes Dream a good test case for improving our opam fallback system.

2 Likes