Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
68f6b61
Fix: do not link js_of_ocaml in server library
balat Mar 28, 2026
ce9e616
Migrate to new Eliom.Xxx module names
balat Mar 28, 2026
28d8540
Document API documentation generation in README
balat Mar 28, 2026
7520778
Update Ot_xxx references to Ot.Xxx for wrapped ocsigen-toolkit
balat Mar 28, 2026
5a4bdab
Rename Os_xxx modules to short names under the Os namespace
balat Mar 28, 2026
78d7644
Update distillery template content from os_template
balat Mar 28, 2026
a81c8d3
Update Eliom_common -> Common (now Eliom.Common)
balat Mar 28, 2026
cd3c2d1
Run dune fmt
balat Mar 31, 2026
c905623
Move source files into Os/ subdir for (include_subdirs qualified)
balat Apr 9, 2026
9916a83
Move from vendored to opam-pinned ocsigen-dune-rules
balat May 29, 2026
281e569
opam: require eliom >= 13.0~ & < 14.0.0
balat May 29, 2026
4cebfc7
Migrate to wrapped ocsigenserver module names
balat Apr 9, 2026
6da450c
Update os template with new ocsigenserver module names
balat Apr 30, 2026
0ed361f
Sync os distillery template assets from os_template
balat Apr 30, 2026
73066d6
Add ocsigen-start-compat package
balat Apr 10, 2026
9bb87e1
Update os distillery template: Ot.Icons.Make on Eliom.Content.Html.T
balat Apr 30, 2026
0f3a769
Install the distillery template at lib/eliom/templates/os/
balat Apr 30, 2026
cd75c3e
CHANGES: document the modernize work for 9.0.0~dev
balat Apr 30, 2026
a447e2a
Add wikidoc generation script
balat May 1, 2026
41ff8c8
gen_wikidoc.sh: drive menu structure from doc/{server,client}.indexdoc
balat May 1, 2026
abf07af
Os.Email: real sendmail-based default_send
balat May 28, 2026
393804b
ocamlformat
balat May 28, 2026
fa0b9ff
doc: update manual references to the new Os.Xxx module names
balat Jun 22, 2026
b2e12de
Move from vendored to opam-pinned ocsigen-dune-rules
balat Apr 9, 2026
a0ef2e5
Migrate to wrapped ocsigenserver module names
balat Apr 9, 2026
1534aac
Add ocsigen-start-compat package
balat Apr 10, 2026
75925e5
Install the distillery template at lib/eliom/templates/os/
balat Apr 30, 2026
161dd37
CHANGES: document the modernize work for 9.0.0~dev
balat Apr 30, 2026
8857f20
Add wikidoc generation script
balat May 1, 2026
69d1285
gen_wikidoc.sh: drive menu structure from doc/{server,client}.indexdoc
balat May 1, 2026
8f785c7
Os.Email: real sendmail-based default_send
balat May 28, 2026
9117fe7
ocamlformat
balat May 28, 2026
2d2346c
Migrate persistent erefs to Deriving_Json codecs
balat May 29, 2026
43e2cf3
opam: relax eliom constraint and drop stale pin-depends
balat May 29, 2026
3e458ab
doc: odoc manual + native API refs for wodoc (dev)
balat Jun 5, 2026
9af1610
doc: build & deploy with wodoc (declarative client/server config)
balat Jun 7, 2026
64bf2f9
doc(ci): pin odoc/odoc-driver from the balat/odoc fork (cross-lib lin…
balat Jun 7, 2026
0e45f37
doc(ci): fix the odoc fork pin URL (balat/odoc#driver-sibling-lib-lin…
balat Jun 7, 2026
495fa9f
doc(ci): add a 'release' workflow_dispatch to publish a stable version
balat Jun 13, 2026
9eaf8cc
doc: use the declarative (nav) format + fix the manual landing
balat Jun 13, 2026
d98009e
doc: link js_of_ocaml, tyxml and reactiveData docs on ocsigen.org
balat Jun 18, 2026
bd20b3a
doc: link Lwt docs on ocsigen.org
balat Jun 19, 2026
0043eef
doc: order the sidebar and make index.mld the landing page
balat Jun 20, 2026
c2698ad
doc: merge the introduction into the home page (index.mld)
balat Jun 20, 2026
de72008
doc: port cross-project link conversion to the deriving branch
balat Jun 20, 2026
f3859ef
doc: use wodoc image markup for the screenshots (sync with master)
balat Jun 20, 2026
c57dab5
Remove the obsolete wikidoc generation script
balat Jun 25, 2026
93ac404
Adapt to Ocsigen Server 8: use stdlib Option
balat Jun 26, 2026
4272722
Reformat doc/dune (dune fmt)
balat Jun 26, 2026
a01e3b5
Merge pull request #721 from ocsigen/adapt-ocsigenserver-8
balat Jun 26, 2026
b70d9b0
CI: pin the Server 8 dev branches of all ocsigen deps
balat Jun 26, 2026
08db5f8
Merge pull request #722 from ocsigen/ci-server8-pins
balat Jun 26, 2026
ff26de7
Merge branch 'master' into deriving
balat Jun 26, 2026
ce5b2a4
Require js_of_ocaml 6.4
balat Jun 26, 2026
57a1a75
Relax eliom lower bound to 13.0~ (match the 13.0~dev pre-release)
balat Jun 26, 2026
1b480c5
CI: require OCaml >= 5.3
balat Jun 26, 2026
b6ce8f7
CI: set up binaryen for wasm_of_ocaml; drop Windows
balat Jun 26, 2026
8922c2f
CI: use the renamed 'os' distillery template
balat Jun 29, 2026
89fb772
template: update dependency bounds for Server 8 / Eliom 13
balat Jun 29, 2026
1ae3557
template: make the client-module generator work under a dune sandbox
balat Jul 17, 2026
4a479a0
template: make the client-module generator work under a dune sandbox
balat Jul 17, 2026
0fe54de
Merge remote-tracking branch 'origin/master' into deriving
balat Jul 17, 2026
6386bcd
Merge remote-tracking branch 'origin/deriving' into jsoo-6.4
balat Jul 17, 2026
521fc1b
template: skip generated files in the client-module generator
balat Jul 17, 2026
4b90a38
template: skip generated files in the client-module generator
balat Jul 17, 2026
28b15e9
CI: give the distillery test project its own dune root
balat Jul 17, 2026
900961d
CI: give the distillery test project its own dune root
balat Jul 17, 2026
37dd5e4
Merge pull request #723 from ocsigen/jsoo-6.4
balat Jul 17, 2026
ec3e691
CI: drop the dune-workspace step duplicated by the #723 merge
balat Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 26 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,10 @@ jobs:
os:
- macos-latest
- ubuntu-latest
- windows-latest
# The Server 8 / modern ppx stack (ocsigen-ppx-rpc needs ppxlib >= 0.37,
# pulled together with ppx_sexp_conv -> ppxlib_jane) requires OCaml >= 5.3.
ocaml-compiler:
- "4.14"
- "5.2"
include:
- os: ubuntu-latest
ocaml-compiler: "4.12"
- "5"

runs-on: ${{ matrix.os }}

Expand All @@ -46,17 +43,37 @@ jobs:
ocaml-compiler: ${{ matrix.ocaml-compiler }}
opam-pin: false

# wasm_of_ocaml (pulled in via eliom) needs binaryen's wasm-merge.
- name: Set-up Binaryen
uses: Aandreba/setup-binaryen@v1.0.0
with:
token: ${{ github.token }}

# Pin the Ocsigen Server 8 development branches until 8.0 is released
# (the default branches of these repos are still the Server 7 line).
- run: |
opam pin add -n eliom https://github.com/ocsigen/eliom.git
opam pin add -n ocsigen-toolkit https://github.com/ocsigen/ocsigen-toolkit.git
opam pin -yn git+https://github.com/ocsigen/ocsigenserver#master
opam pin -yn git+https://github.com/ocsigen/ocsipersist#master
opam pin -yn git+https://github.com/ocsigen/eliom#deriving
opam pin -yn git+https://github.com/ocsigen/ocsigen-toolkit#modernize
opam pin -yn git+https://github.com/ocsigen/ocsigen-dune-rules#modernize
opam pin -yn git+https://github.com/ocsigen/ocsigen-ppx-rpc#modernize
opam pin -yn git+https://github.com/ocsigen/ocsigen-i18n#modernize

- run: opam pin add ocsigen-start.7.0.0 . --no-action

- run: opam install .

- run: mkdir -p template

- run: opam exec -- eliom-distillery -name template -template os.pgocaml
- run: opam exec -- eliom-distillery -name template -template os

# Make the generated project its own dune root. It lives inside the
# ocsigen-start checkout, which ships a dune-project; without this, dune
# would take ocsigen-start as the root and treat the project as a nested
# subdirectory, which breaks Eliom's client/server value linking
# ("Inferred type of client value not found. You need to regenerate ...").
- run: echo '(lang dune 3.0)' > template/dune-workspace

- run: opam install -y .
working-directory: template
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ local/
doc/client
doc/server
.*.sw*
doc/manual/menu.wiki
2 changes: 1 addition & 1 deletion .ocamlformat
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version=0.28.1
version=0.29.0
parse-docstrings = false
wrap-comments = false
break-cases = fit
Expand Down
33 changes: 33 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,36 @@
===== 9.0.0~dev =====
* Module namespace modernization
** Public modules are now accessed as Os.Session, Os.User, Os.Tips,
Os.Mail, Os.Notif, ... instead of the legacy flat Os_xxx prefix.
Implemented with (include_subdirs qualified) + (wrapped false)
in dune.
** New ocsigen-start-compat opam package: provides the legacy
Os_xxx module names as include-aliases of the new Os.Xxx
modules, to ease migration of existing code.
* PROJECT_NAME_icons.eliom in the distillery template is now
parameterised on Eliom.Content.Html.T (the shared signature
exposed by Eliom 13) instead of an ad-hoc ICON_HTML signature.
* Distillery template
** Renamed from os.pgocaml to os.
** Source directory renamed back to template.distillery/ (the
convention used by ocsigen-start's previous Makefile-based
build), and now installed via dune
(install (section lib_root) (files (glob_files_rec
(template.distillery/* with_prefix eliom/templates/os))))
so the template lands at lib/eliom/templates/os/, where
eliom-distillery picks it up at the standard location (Eliom
13 dropped the per-package eliom-templates/ auto-discovery).
* Migrated to the new Eliom 13 module names (Eliom.Service,
Eliom.Content, Eliom.Common, ...) and to the wrapped
ocsigenserver module names (Ocsigen.Server, Ocsigen.Extensions,
Ocsigen.Config, Ocsigen_base.Lib, ...).
* Build system uses ocsigen-dune-rules (gen sub-command).
* Os.Email: the default email-sending function now pipes an RFC-2822
message to the configured mailer ("sendmail" by default) via
Lwt_process, instead of printing to stdout. If the mailer is not on
PATH, the email is logged to stderr so the application stays usable
out of the box. The now-unused [Invalid_mailer] exception is removed.

===== 7.1.0 (2024-11) =====
* Compatibility with WASM

Expand Down
57 changes: 57 additions & 0 deletions doc/client.indexdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{1 Ocsigen Start client API}

{2 User management}

{!modules:
User
User_view
User_proxy
Current_user
Session
Connect_phone
}

{2 Persistence}

{!modules:
Types
Email
}

{2 Notifications}

{!modules:
Notif
Msg
Fcm_notif
}

{2 Web pages and services}

{!modules:
Page
Services
Handlers
Icons
Tips
Uploader
Request_cache
}

{2 Real-time}

{!modules:
Comet
}

{2 Utilities}

{!modules:
Lib
Date
Platform
}

{2 Indexes}

{!indexlist}
1 change: 1 addition & 0 deletions doc/dune
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
; Ocsigen Start manual pages (odoc .mld), compiled in place with the API by
; `dune build @doc` and installed with the package, so they appear on ocaml.org
; and resolve {{!page-X}} / {!Module} references against the API.

(documentation
(package ocsigen-start))
Loading
Loading