Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
1a24b3c
eliom-distillery: discover templates from installed packages
balat Mar 28, 2026
6690838
Rename user-facing source files: remove eliom_ prefix
balat Mar 27, 2026
705c0bc
Update all references to use new module names
balat Mar 27, 2026
6d06f2f
Add Eliom wrapper module and update dune configuration
balat Mar 27, 2026
834163f
Add eliom.compat.server and eliom.compat.client libraries
balat Mar 27, 2026
8af6dd1
Add missing compat shims for .eliom-derived modules
balat Mar 27, 2026
eef7c16
Update app.exe template: add eliom.compat dependency
balat Mar 27, 2026
06504ae
Migrate app.exe template to Eliom.Service style module names
balat Mar 27, 2026
258a5c9
Modernize app.exe template
balat Mar 27, 2026
a38688d
Migrate app.lib and basic.ppx templates to new module names
balat Mar 27, 2026
ad89946
Update api.odocl, indexdoc, filelist and _tags for renamed modules
balat Mar 27, 2026
ec0bbad
Use Content.Html.T as Tools.Make parameter
balat Apr 30, 2026
94c8383
Format ppx_eliom_utils.ml
balat Mar 27, 2026
d872ea9
Wrap eliom modules under the Eliom.X namespace
balat Mar 27, 2026
8f97ea4
Rename Eliom_client_value to Client_value
balat Mar 28, 2026
35b8c0d
Rename Eliom_syntax to Syntax
balat Mar 28, 2026
cb07e08
Fix PPX client to use eliom_expr for Eliom_client_core references
balat Mar 28, 2026
3d20b35
Add Syntax.to_poly for PPX-generated code
balat Mar 28, 2026
d59acbd
Rename Eliom_client_core to Client_core
balat Mar 28, 2026
ac94e14
Use check_internal() accessor consistently in ppx_eliom_utils
balat Mar 28, 2026
40e0e2d
Fix client PPX: use eliom_expr for get_injection to support wrapped m…
balat Mar 28, 2026
5573d90
Update Eliom.run references to Eliom.App.run in docs and templates
balat Mar 28, 2026
aca027f
Replace ocamlbuild with shell script for wikidoc generation
balat Mar 28, 2026
af41a68
Remove eliom.ocamlbuild plugin and legacy build system
balat Mar 28, 2026
9e27420
Add -internal-prefix flag to PPX for wrapped dependent libraries
balat Mar 28, 2026
88702b1
Track generated eliom-compat.opam
balat Mar 28, 2026
7910b28
Add local files to .gitignore
balat Mar 28, 2026
d8d0b4f
Rename Eliom_common to Common
balat Mar 28, 2026
e69a665
Rename all internal modules: remove eliom_/eliommod_ prefixes
balat Mar 31, 2026
04cd179
Update indexdoc files with new module names
balat Mar 31, 2026
f7ceabb
Add Eliom_common compat shim for eliom-compat package
balat Mar 31, 2026
849348c
Run dune fmt
balat Mar 31, 2026
17bc52a
Migrate to wrapped ocsigenserver module names
balat Apr 9, 2026
a6e4c6e
Move sources into Eliom/ subdir for (include_subdirs qualified)
balat Apr 9, 2026
c7acd39
Update eliom app.exe template: Ocsigen_server -> Ocsigen.Server
balat Apr 9, 2026
6583294
Add missing compat modules: Eliom_client_value, Eliom_react
balat Apr 10, 2026
722697a
Install distillery templates at lib/eliom/templates/<name>/
balat Apr 30, 2026
d092786
Fix is_site_available: require non-empty sitedata stack during init
balat Apr 30, 2026
1c09eb8
CHANGES: document the modernize work for 13.0
balat Apr 30, 2026
199d763
Fix doc references to use new module names
balat Apr 30, 2026
475bdcc
Common: rename Eliom_* exceptions to short forms
balat Apr 30, 2026
393f34b
Use short exception names internally in Common
balat Apr 30, 2026
2856d5f
Update mli doc references to short exception name
balat Apr 30, 2026
c50b4e1
gen_wikidoc.sh: fix MLI_DIR path after sources moved to Eliom/ subdir
balat May 1, 2026
a09a714
README: document make wikidoc workflow
balat May 1, 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
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ src/**/*.odocl
ocsigen.org-data

_opam

# Local files (not part of the project)
AGENTS*.md
instructions
eliom-analysis.md
eliom.opam.template
61 changes: 60 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
@@ -1,8 +1,67 @@
===== 13.0 =====
* Module namespace modernization
** Public modules are now accessed as Eliom.Service, Eliom.Content,
Eliom.Parameter, Eliom.Registration, Eliom.Client, ... instead of
the legacy flat Eliom_xxx prefix. Implemented with
(include_subdirs qualified) + (wrapped false) in dune.
** Eliom_common is now Eliom.Common; most internal modules lost
their eliom_/eliommod_ prefix as well (Content_core, Mod_main,
Mod_pagegen, ...). A few names are kept as-is for conflict
reasons (Eliom_form, Eliom_lazy, Eliom_react, Eliom_uri).
** New eliom-compat opam package: provides the legacy Eliom_xxx
module names as include-aliases of the new Eliom.Xxx modules,
to ease migration of existing code.
** BREAKING: Eliom.run is now Eliom.App.run (the auto-generated
wrapper module cannot contain val declarations).
* Eliom.Content.Html.T
** New named module type for the Tyxml HTML signature shared by F
and D, with Eliom's LINKS_AND_FORMS extensions. Use it as the
parameter signature of functors that need to abstract over the
F/D choice, instead of [module type of Content.Html.F]. The
latter triggers an OCaml strengthening bug in wrapped libraries
(see ia-reports/2026-04-ocaml-wrapped-mtof-bug.md). Tools.Make,
Ot.Icons.Make and the os_template Make functor all use it.
* Distillery template install path
** Eliom's three templates (app.exe, app.lib, basic.ppx) are now
installed at lib/eliom/templates/<name>/ via the standard dune
(install (section lib_root) ... (with_prefix ...)) pattern.
Third-party packages (e.g. ocsigen-start) that ship templates
are expected to install at the same location.
** eliom-distillery no longer auto-discovers templates from
per-package eliom-templates/ subdirectories; it reads from the
single standard lib/eliom/templates/ location, plus
ELIOM_DISTILLERY_PATH.
* Build system
** Eliom now uses ocsigen-dune-rules to drive its build. Adopted
the new gen / check-modules sub-command structure introduced
upstream by Jules Aguillon.
** Migrated to wrapped ocsigenserver module names (Ocsigen.Server,
Ocsigen.Extensions, Ocsigen.Request, Ocsigen.Response,
Ocsigen.Config, Ocsigen_base.Lib, Ocsigen_http.Header, ...).
** PPX gained -internal and -internal-prefix flags for compiling
wrapped libraries.
** Removed the eliom.ocamlbuild plugin and the legacy topkg/pkg
build artifacts. API documentation is now generated by
build/gen_wikidoc.sh (ocamldoc + wikidoc, no ocamlbuild
dependency); run via [make wikidoc].
* Bug fixes
** Syntax.is_site_available now checks that the sitedata stack is
actually non-empty during initialisation, instead of just
relying on Ocsigen.Extensions.during_initialisation. Fixes a
crash on startup
(Eliom_site_information_not_available "get_current_sitedata")
exposed by the new module link order: PPX-inserted top-level
close_server_section calls in extension-linked .eliom files
(Service_base, Content, Tools, ...) now correctly route their
compilation-unit data into !global_data when no site is active,
matching the design intent stated in the comment on
get_global_data.

===== 12.0 =====
* Eliom_lib
** Deprecated logging functions were removed (#821)
These are: debug_exn, debug, error, error_any, jsdebug
* Full WASM support: build system and sending either js or wasm depending on the browser
* Full WASM support: build system and sending either js or wasm depending on the browser
* Use Log instead of Lwt_logs

===== 11.1 =====
Expand Down
35 changes: 5 additions & 30 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,41 +1,16 @@
### Building
BEST=$(if $(shell command -v ocamlopt 2> /dev/null),native,byte)
BUILDER=_build/build/build.$(BEST)

.PHONY: all
all:
dune build

### Doc
.PHONY: doc wikidoc doc man alldoc
DOCS_DIR=src/lib/client src/lib/server src/ocamlbuild src/ppx
DOCS_HTML=$(addsuffix /api.docdir/index.html,$(DOCS_DIR))
DOCS_WIKI=$(addsuffix /api.wikidocdir/index.wiki,$(DOCS_DIR))
DOCS_MAN= src/lib/client/api.mandocdir/man.3oc \
src/lib/server/api.mandocdir/man.3os \
src/ocamlbuild/api.mandocdir/man.3o \
src/ppx/api.mandocdir/man.3o
.PHONY: wikidoc doccp
API_DIR=_build/doc/dev/api
doc: $(BUILDER)
$(BUILDER) $(DOCS_HTML)
wikidoc: $(BUILDER)
$(BUILDER) $(DOCS_WIKI)
man: $(BUILDER)
$(BUILDER) $(DOCS_MAN)
alldoc: man wikidoc doc

doccp: alldoc
mkdir -p $(API_DIR)/server $(API_DIR)/client $(API_DIR)/ocamlbuild $(API_DIR)/ppx
cp -Rf _build/src/lib/server/api.wikidocdir/*.wiki $(API_DIR)/server/
cp -Rf _build/src/lib/client/api.wikidocdir/*.wiki $(API_DIR)/client/
cp -Rf _build/src/ocamlbuild/api.wikidocdir/*.wiki $(API_DIR)/ocamlbuild/
cp -Rf _build/src/ppx/api.wikidocdir/*.wiki $(API_DIR)/ppx/
cp -Rf doc/index.wiki $(API_DIR)/
wikidoc:
bash build/gen_wikidoc.sh all

$(BUILDER): $(wildcard build/*.ml)
ocamlbuild -no-plugin -I src/ocamlbuild -no-links -use-ocamlfind build/build.$(BEST) 1> /dev/null
ocaml pkg/build.ml manpage=false native=true native-dynlink=true
builder: $(BUILDER)
doccp: wikidoc
cp -Rf doc/index.wiki $(API_DIR)/

### Cleaning ###
.PHONY: clean distclean
Expand Down
25 changes: 0 additions & 25 deletions README.build

This file was deleted.

18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,24 @@ More documentation [here](https://ocsigen.org/tuto/latest/manual/basics).

Write your first Web and mobile application with Eliom using [Ocsigen Start](https://ocsigen.org/ocsigen-start)

## Generating API documentation

Wiki API pages are generated from the `.mli` files using `ocamldoc`
and the [wikidoc](https://github.com/ocsigen/wikidoc) plugin:

```
make wikidoc
```

Output goes to `_build/doc/dev/api/{server,client}/`.

The wiki files are published on the [wikidoc branch] under
`doc/dev/api/{server,client}/`. To update the published documentation,
copy the generated `.wiki` files to a checkout of the `wikidoc` branch
and commit.

[wikidoc branch]: https://github.com/ocsigen/eliom/tree/wikidoc/doc/dev/api

## Authors

* Vincent Balat
Expand Down
1 change: 0 additions & 1 deletion build/_tags

This file was deleted.

96 changes: 0 additions & 96 deletions build/build.ml

This file was deleted.

57 changes: 0 additions & 57 deletions build/doc.ml

This file was deleted.

Loading
Loading