Skip to content

Conversation

@xvw
Copy link
Contributor

@xvw xvw commented Nov 18, 2025

Core engine of the YOCaml Static Site Generator

CHANGES:

Yocaml_git

  • A more robust metric for is_file and is_directory in Git context (by dinosaure)

Yocaml_liquid

  • ⁠First release - Add support for Shopify Liquid templating language (by Dev-JoyA)

Yocaml

  • Add Action.with_cache helper to simplify working with cached actions (by Abiola-Zeenat)
  • Introduce type aliases converter, validator, and validable to simplify the Validation API (by Linda-Njau)
  • Add module signatures S in Yocaml.Data and Yocaml.Data.Validation to standardize conversion and validation (by Linda-Njau)
  • Add Yocaml.Data.into and Yocaml.Data.Validation.from helpers for easier module use (by Linda-Njau)
  • Add Yocaml.Metadata.Injectable and Yocaml.Metadata.Readable functors to simplify creation of injectable and readable modules (by Linda-Njau)
  • Add Yocaml.Data.Validation.String, a set of validator for String (by Okhuomon Ajayi)
  • Add missing test coverage for Nel.equal and Nel.append functions (by Bill Njoroge)
  • Add to_data and from_data for Archetypes (by gr-im)
  • Add Yocaml.Data.Validation.Int and Float, a set of validator for Int and Float (by gr-im)

Copy link
Member

@jmid jmid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

The new yocaml_liquid seems to missing a lower bound causing the following
https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/d4ca2c8996e7b80cf11028ad8c43876c747e0880/variant/compilers,5.1,yocaml_liquid.2.7.0,lower-bounds

#=== ERROR while compiling yocaml_liquid.2.7.0 ================================#
# context              2.5.0~beta1 | linux/x86_64 | ocaml-base-compiler.5.1.1 | pinned(https://github.com/xhtmlboi/yocaml/releases/download/v2.7.0/yocaml-2.7.0.tbz)
# path                 ~/.opam/5.1/.opam-switch/build/yocaml_liquid.2.7.0
# command              ~/.opam/opam-init/hooks/sandbox.sh build dune build -p yocaml_liquid -j 71 @install
# exit-code            1
# env-file             ~/.opam/log/yocaml_liquid-7-99ee7c.env
# output-file          ~/.opam/log/yocaml_liquid-7-99ee7c.out
### output ###
# (cd _build/default && /home/opam/.opam/5.1/bin/ocamlc.opt -w -40 -g -bin-annot -I plugins/yocaml_liquid/.yocaml_liquid.objs/byte -I /home/opam/.opam/5.1/lib/base -I /home/opam/.opam/5.1/lib/base/base_internalhash_types -I /home/opam/.opam/5.1/lib/base/caml -I /home/opam/.opam/5.1/lib/base/md5 -I /home/opam/.opam/5.1/lib/base/shadow_stdlib -I /home/opam/.opam/5.1/lib/base64 -I /home/opam/.opam/5.1/lib/base_bigstring -I /home/opam/.opam/5.1/lib/base_quickcheck -I /home/opam/.opam/5.1/lib/base_quickcheck/ppx_quickcheck/runtime -I /home/opam/.opam/5.1/lib/batteries -I /home/opam/.opam/5.1/lib/batteries/unthreaded -I /home/opam/.opam/5.1/lib/bin_prot -I /home/opam/.opam/5.1/lib/bin_prot/shape -I /home/opam/.opam/5.1/lib/calendar -I /home/opam/.opam/5.1/lib/camlp-streams -I /home/opam/.opam/5.1/lib/core -I /home/opam/.opam/5.1/lib/core/base_for_tests -I /home/opam/.opam/5.1/lib/core/command -I /home/opam/.opam/5.1/lib/core/filename_base -I /home/opam/.opam/5.1/lib/core/heap_block -I /home/opam/.opam/5.1/lib/core/univ_map -I /home/opam/.opam/5.1/lib/core/validate -I /home/opam/.opam/5.1/lib/fieldslib -I /home/opam/.opam/5.1/lib/int_repr -I /home/opam/.opam/5.1/lib/jane-street-headers -I /home/opam/.opam/5.1/lib/jane_rope -I /home/opam/.opam/5.1/lib/liquid_interpreter -I /home/opam/.opam/5.1/lib/liquid_ml -I /home/opam/.opam/5.1/lib/liquid_parser -I /home/opam/.opam/5.1/lib/liquid_std -I /home/opam/.opam/5.1/lib/liquid_syntax -I /home/opam/.opam/5.1/lib/logs -I /home/opam/.opam/5.1/lib/num -I /home/opam/.opam/5.1/lib/ocaml/str -I /home/opam/.opam/5.1/lib/ocaml/threads -I /home/opam/.opam/5.1/lib/ocaml/unix -I /home/opam/.opam/5.1/lib/parsexp -I /home/opam/.opam/5.1/lib/ppx_assert/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_bench/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_compare/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_expect/collector -I /home/opam/.opam/5.1/lib/ppx_expect/common -I /home/opam/.opam/5.1/lib/ppx_expect/config -I /home/opam/.opam/5.1/lib/ppx_expect/config_types -I /home/opam/.opam/5.1/lib/ppx_hash/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_here/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_inline_test/config -I /home/opam/.opam/5.1/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_log/types -I /home/opam/.opam/5.1/lib/ppx_module_timer/runtime -I /home/opam/.opam/5.1/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_stable_witness/runtime -I /home/opam/.opam/5.1/lib/ppx_stable_witness/stable_witness -I /home/opam/.opam/5.1/lib/re -I /home/opam/.opam/5.1/lib/re2 -I /home/opam/.opam/5.1/lib/re2/c -I /home/opam/.opam/5.1/lib/regex_parser_intf -I /home/opam/.opam/5.1/lib/seq -I /home/opam/.opam/5.1/lib/sexplib -I /home/opam/.opam/5.1/lib/sexplib0 -I /home/opam/.opam/5.1/lib/sha -I /home/opam/.opam/5.1/lib/splittable_random -I /home/opam/.opam/5.1/lib/stdio -I /home/opam/.opam/5.1/lib/stdlib-shims -I /home/opam/.opam/5.1/lib/time_now -I /home/opam/.opam/5.1/lib/typerep -I /home/opam/.opam/5.1/lib/variantslib -I /home/opam/.opam/5.1/lib/yocaml -intf-suffix .ml -no-alias-deps -o plugins/yocaml_liquid/.yocaml_liquid.objs/byte/yocaml_liquid.cmo -c -impl plugins/yocaml_liquid/yocaml_liquid.ml)
# File "plugins/yocaml_liquid/yocaml_liquid.ml", line 32, characters 31-41:
# 32 |             (fun acc (k, v) -> Object.add k (from v) acc)
#                                     ^^^^^^^^^^
# Error: Unbound module Object
# (cd _build/default && /home/opam/.opam/5.1/bin/ocamlopt.opt -w -40 -g -I plugins/yocaml_liquid/.yocaml_liquid.objs/byte -I plugins/yocaml_liquid/.yocaml_liquid.objs/native -I /home/opam/.opam/5.1/lib/base -I /home/opam/.opam/5.1/lib/base/base_internalhash_types -I /home/opam/.opam/5.1/lib/base/caml -I /home/opam/.opam/5.1/lib/base/md5 -I /home/opam/.opam/5.1/lib/base/shadow_stdlib -I /home/opam/.opam/5.1/lib/base64 -I /home/opam/.opam/5.1/lib/base_bigstring -I /home/opam/.opam/5.1/lib/base_quickcheck -I /home/opam/.opam/5.1/lib/base_quickcheck/ppx_quickcheck/runtime -I /home/opam/.opam/5.1/lib/batteries -I /home/opam/.opam/5.1/lib/batteries/unthreaded -I /home/opam/.opam/5.1/lib/bin_prot -I /home/opam/.opam/5.1/lib/bin_prot/shape -I /home/opam/.opam/5.1/lib/calendar -I /home/opam/.opam/5.1/lib/camlp-streams -I /home/opam/.opam/5.1/lib/core -I /home/opam/.opam/5.1/lib/core/base_for_tests -I /home/opam/.opam/5.1/lib/core/command -I /home/opam/.opam/5.1/lib/core/filename_base -I /home/opam/.opam/5.1/lib/core/heap_block -I /home/opam/.opam/5.1/lib/core/univ_map -I /home/opam/.opam/5.1/lib/core/validate -I /home/opam/.opam/5.1/lib/fieldslib -I /home/opam/.opam/5.1/lib/int_repr -I /home/opam/.opam/5.1/lib/jane-street-headers -I /home/opam/.opam/5.1/lib/jane_rope -I /home/opam/.opam/5.1/lib/liquid_interpreter -I /home/opam/.opam/5.1/lib/liquid_ml -I /home/opam/.opam/5.1/lib/liquid_parser -I /home/opam/.opam/5.1/lib/liquid_std -I /home/opam/.opam/5.1/lib/liquid_syntax -I /home/opam/.opam/5.1/lib/logs -I /home/opam/.opam/5.1/lib/num -I /home/opam/.opam/5.1/lib/ocaml/str -I /home/opam/.opam/5.1/lib/ocaml/threads -I /home/opam/.opam/5.1/lib/ocaml/unix -I /home/opam/.opam/5.1/lib/parsexp -I /home/opam/.opam/5.1/lib/ppx_assert/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_bench/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_compare/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_enumerate/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_expect/collector -I /home/opam/.opam/5.1/lib/ppx_expect/common -I /home/opam/.opam/5.1/lib/ppx_expect/config -I /home/opam/.opam/5.1/lib/ppx_expect/config_types -I /home/opam/.opam/5.1/lib/ppx_hash/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_here/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_inline_test/config -I /home/opam/.opam/5.1/lib/ppx_inline_test/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_log/types -I /home/opam/.opam/5.1/lib/ppx_module_timer/runtime -I /home/opam/.opam/5.1/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/5.1/lib/ppx_stable_witness/runtime -I /home/opam/.opam/5.1/lib/ppx_stable_witness/stable_witness -I /home/opam/.opam/5.1/lib/re -I /home/opam/.opam/5.1/lib/re2 -I /home/opam/.opam/5.1/lib/re2/c -I /home/opam/.opam/5.1/lib/regex_parser_intf -I /home/opam/.opam/5.1/lib/seq -I /home/opam/.opam/5.1/lib/sexplib -I /home/opam/.opam/5.1/lib/sexplib0 -I /home/opam/.opam/5.1/lib/sha -I /home/opam/.opam/5.1/lib/splittable_random -I /home/opam/.opam/5.1/lib/stdio -I /home/opam/.opam/5.1/lib/stdlib-shims -I /home/opam/.opam/5.1/lib/time_now -I /home/opam/.opam/5.1/lib/typerep -I /home/opam/.opam/5.1/lib/variantslib -I /home/opam/.opam/5.1/lib/yocaml -intf-suffix .ml -no-alias-deps -o plugins/yocaml_liquid/.yocaml_liquid.objs/native/yocaml_liquid.cmx -c -impl plugins/yocaml_liquid/yocaml_liquid.ml)
# File "plugins/yocaml_liquid/yocaml_liquid.ml", line 32, characters 31-41:
# 32 |             (fun acc (k, v) -> Object.add k (from v) acc)
#                                     ^^^^^^^^^^
# Error: Unbound module Object

CHANGES:

#### Yocaml_git

- A more robust metric for `is_file` and `is_directory` in Git context (by [dinosaure](https://github.com/dinosaure))

#### Yocaml_liquid

- ⁠First release - Add support for Shopify Liquid templating language (by [Dev-JoyA](https://github.com/Dev-JoyA))

#### Yocaml
- Add `Action.with_cache` helper to simplify working with cached actions (by [Abiola-Zeenat](https://github.com/Abiola-Zeenat))
- Introduce type aliases `converter`, `validator`, and `validable` to simplify the Validation API (by [Linda-Njau](https://github.com/Linda-Njau))
- Add module signatures `S` in `Yocaml.Data` and `Yocaml.Data.Validation` to standardize conversion and validation (by [Linda-Njau](https://github.com/Linda-Njau))
- Add `Yocaml.Data.into` and `Yocaml.Data.Validation.from` helpers for easier module use (by [Linda-Njau](https://github.com/Linda-Njau))
- Add `Yocaml.Metadata.Injectable` and `Yocaml.Metadata.Readable` functors to simplify creation of injectable and readable modules (by [Linda-Njau](https://github.com/Linda-Njau))
- Add `Yocaml.Data.Validation.String`, a set of validator for `String` (by [Okhuomon Ajayi](https://github.com/six-shot))
- Add missing test coverage for `Nel.equal` and `Nel.append` functions (by [Bill Njoroge](https://github.com/Bnjoroge1))
- Add `to_data` and `from_data` for Archetypes  (by [gr-im](https://github.com/xvw))
- Add `Yocaml.Data.Validation.Int` and `Float`, a set of validator for `Int` and `Float`  (by [gr-im](https://github.com/gr-im))
@xvw xvw force-pushed the release-yocaml-v2.7.0 branch from d4ca2c8 to f068a89 Compare November 20, 2025 11:03
@xvw
Copy link
Contributor Author

xvw commented Nov 20, 2025

Thanks @jmid
Should be better now!

Copy link
Member

@jmid jmid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much better, thanks!

opam-ci is down to only opam-2.0 failures 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants