Welcome to the March 2024 edition of the OCaml.org newsletter! This update has been compiled by the OCaml.org team. You can find previous updates on Discuss.
Our goal is to make OCaml.org the best resource for anyone who wants to get started and be productive in OCaml. The OCaml.org newsletter provides an update on our progress towards that goal and an overview of the changes we are working on.
We couldn’t do it without all the amazing OCaml community members who help us review, revise, and create better OCaml documentation. Your feedback enables us to better prioritise our work. Thank you!
This newsletter covers:
- OCaml Cookbook: A prototype of an OCaml cookbook that provides short code examples that solve practical problems using packages from the OCaml ecosystem is on OCaml Cookbook.
- Dark Mode: We enabled the dark mode on all pages of OCaml.org, based on your operating system / browser settings.
- Community & Marketing Pages Rework: We are seeking feedback on wireframes for the community section and for the marketing-related pages.
- General Improvements: As usual, we also worked on general maintenance and improvements based on user feedback, so we’re highlighting some of our work below.
Open Issues for Contributors
You can find open issues for contributors here!
Upcoming OCaml Cookbook
We’re in the process of adding a community-driven section to the Learn area: the OCaml Cookbook. This cookbook is designed as a collection of recipes, offering code samples for tackling real-world tasks using packages from the OCaml ecosystem. It’s a practical effort to enrich our learning resources, making them more applicable and useful for our community.
This month, our focus shifted towards finalizing the cookbook for release. This includes
- restructuring the directory structure and placement of recipe files, and
- adding tasks to the cookbook, so that you can contribute recipes for these tasks (we took inspiration from the excellent Rust Cookbook).
It will always be possible to propose more tasks for the OCaml Cookbook. The main criteria here are:
- task must require more than just a single Standard Library function call to solve,
- task must be focused on common problems that occur when trying to build products,
- if in doubt, make the task more specific, instead of more generic.
A good place to give feedback on the cookbook is this discuss thread.
Relevant PRs and Activities:
- (WIP) Cookbook compression / decompression by @F-Loyer
- Cookbook : fix in Lwt (type mismatch with iter_s/iter_p functions) by @F-Loyer
- Update 00-caqti-ppx-rapper.ml - fix caqti-driver-sqlite → caqti-driver-sqlite3 by @F-Loyer
Dark Mode Released
We’re happy to anounce that we shipped the Dark Mode for OCaml.org. Dark mode is activated based on your operating system / browser settings. If you see anything wrong, please open an issue and include the URL on which you’re seeing a problem.
Relevant PRs and Activities:
- Announce Dark Mode on Discuss
- Add Preliminary Dark Mode for Package Documentation by @sabine
- Fix: dark text color on blue background by @amarachigoodness74
- (dark mode) adjust breadcrumbs text color by @sabine
- (ui) Activate Dark Mode by @sabine
- Correctly invert text on “Is OCaml Web” page by @SquidDev
- fix: add missing darkmode styles for in-package search results by @sabine
- Remove legacy tailwind colors and styles, tidy up darkmode colors by @sabine
Homepage & Marketing Pages Rework
The Home page project kicked off with an analysis of user surveys and interviews, and the development of an initial wireframe for the homepage and the “Industrial Users” and “Academic Users” pages.
We’ve been reaching out to the community on Discuss and Twitter to find what people say about OCaml, so we can give a bit more context through testimonials on the “Academic Users” page.
Besides this, we’ve been asking on Twitter for ideas for the main tagline of the homepage
You can comment on the wireframes in Figma here.
If you have opinions on the homepage, feel free to share them in this discuss thread!
Community Section Rework
This week, we focused on creating wireframes for the Event, Job, Internship, and Workshop pages, followed by soliciting feedback from the community via Discuss. Concurrently, work commenced on the UI design for the Community Landing page, as well as the Event and Job pages.
We also made some improvements to the Events section on the Community page. This involves better treatment of start/end times of events, as well as listing more upcoming events.
If you have opinions on the community section, feel free to share them in this discuss thread!
Relevant PRs and Activities:
- Invite people to add events to events directory: Add your OCaml Events to the Community Page on OCaml.org
- Improve Events Directory by @sabine
- Fix template bug on upcoming events list by @sabine
- Make clear upcoming event time is UTC by @sabine
- Data contributed to events:
- (data) Add S-REPLS event by @sabine
- (data) fix wrong date on event by @sabine
- (data) Add OCaml Retreat Auroville by @D8kTwoXfSUWLdpXruFrQiw
- (data) add OCaml Manila Meetup by @sabine
Outreachy Application Period & Internship
In March, OCaml.org hosted the application period for one Outreachy internship on creating an interactive experience for solving OCaml exercises.
The process of selecting an Outreachy intern involved creating and managing 15 issues, reviewing 61 pull requests from 8 applicants. The tasks were similar in nature and dealt with restructuring the exercises to enable an interactive experience, adding test cases and solutions (where missing).
Relevant PRs and Activities:
- Create practice folder by @cuihtlauac
- Sort exercises by slug before emitting template by @csaltachin
- Turning exercises into practice @Ozyugoo, @mnaibei, @divyankachaudhari, @Kxrishx03, @maha-sachin, @MissJae, @jahielkomu, @Appleeyes
General Improvements and Data Additions
Relevant PRs and Activities:
- (WIP) we’re moving the OCaml Language Manual from v2.ocaml.org to ocaml.org
- set up dlvr.it to automatically post RSS feed items from OCaml Planet and OCaml Changelog to new ocaml_org Twitter account
- Link to recently added videos on watch.ocaml.org by @sabine
- Change twitter account from OCamlLang to ocaml_org by @sabine
- fix: small improvements on news.eml by @sabine
- is yet category slug by @cuihtlauac
- Add a badge from the green web foundation to the carbon footprint page by @0xrotense
- Deployment of odoc 2.4.1 to package documentation pipeline:
- Data:
- (data) add ocaml.org newsletter February by @sabine
- Changelog entry for OCaml 4.14.2~rc1 by @Octachron
- Add dune.3.14.2 announcement by @Leonidas-from-XIV
- OCaml 4.14.2 release and changelog pages by @Octachron
- OCaml 4.14.2: fix release year by @edwintorok
- Add Platform changelogs for February 2024 by @tmattio
- Changelog entry for OCaml 5.2.0~beta1 by @Octachron
- Add Outreachy winter 2023 round by @patricoferris
- Documentation:
- DOC: note about windows ppx_show by @heathhenley
- (docs) Fix small typos by @kenranunderscore
- (docs) Add link for instances of Array by @rmeis06
- Linking exercise to tutorials by @rmeis06
- Explain why t-first works with labels by @mikhailazaryan
- Document that begin … end use by @rmeis06
- Use uniform syntax for eval steps by @cuihtlauac
- Linking mentions of atomic module to doc by @rmeis06
- Linking Bigarray references by @rmeis06
- (docs) fix example in ‘Libraries With Dune’ by @0xRamsi
- Fix typo in 4ad_01_operators.md by @vog
- (docs) Use DkML 2.1.0 by @jonahbeckford