From fc54631334a4b0888064c52ea2bddafde3169dc1 Mon Sep 17 00:00:00 2001 From: Alexander van Elsas <58037137+avanelsas@users.noreply.github.com> Date: Wed, 26 Aug 2026 19:21:51 +0200 Subject: [PATCH] Release 3.9.0 --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ build.clj | 2 +- deps.edn | 2 +- docs/installation.md | 6 +++--- package.json | 2 +- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29af7e28..ac28fba8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,35 @@ All notable changes to BareDOM will be documented in this file. +## [3.9.0] - 2026-08-26 + +The manifest declares `schemaVersion 1.0.0` and omitted three fields the schema defines. It now +publishes all three, so an editor reading `custom-elements.json` completes attributes and custom +properties that it previously knew nothing about. + +### Added + +- **`attributes`** — every attribute a component observes. An attribute that a `property-api` + entry reflects also carries that property's type and field name. The rest carry a name alone, + because the component states no type for them. 809 attributes across 108 components, 480 of + them typed. `observed-attributes` names symbols rather than strings, so each one is resolved + through the model's own constants: a symbol that escaped resolution would publish `attr-columns` + as if it were an attribute name. + +- **`cssProperties` and `cssParts`** — the custom properties a component reads and the parts it + exposes, read from the implementation source that writes them rather than from a second + declaration. A property is owned by the longest tag that prefixes it, so `--x-table-cell-padding` + belongs to `x-table-cell` and not to `x-table`. 1351 properties and 489 parts. + +- **`scripts/check_css_api.bb` and `scripts/check_attribute_api.bb`** — CI checks that read each + component crudely and assert the manifest agrees. Each is written to avoid the assumption its + extractor makes, because a check that shares one agrees with the bug. + +### Notes + +- **`src/` is unchanged**, so the ESM bundles, the framework adapters and the compiled namespaces + in the jar are identical to 3.8.0. Only the manifest grew. + ## [3.8.0] - 2026-08-14 ### Added diff --git a/build.clj b/build.clj index 0b1571f9..c57c74d9 100644 --- a/build.clj +++ b/build.clj @@ -2,7 +2,7 @@ (:require [clojure.tools.build.api :as b])) (def lib 'com.github.avanelsas/baredom) -(def version "3.8.0") +(def version "3.9.0") (def class-dir "target/classes") (def jar-file (format "target/%s-%s.jar" (name lib) version)) (def pom-file (format "target/classes/META-INF/maven/%s/%s/pom.xml" diff --git a/deps.edn b/deps.edn index 1b23a48f..130a92e3 100644 --- a/deps.edn +++ b/deps.edn @@ -6,5 +6,5 @@ :deploy {:deps {slipset/deps-deploy {:mvn/version "0.2.1"}} :mvn/repos {"clojars" {:url "https://repo.clojars.org/"}} :exec-fn deps-deploy.deps-deploy/deploy - :exec-args {:artifact "target/baredom-3.8.0.jar" + :exec-args {:artifact "target/baredom-3.9.0.jar" :installer :remote}}}} diff --git a/docs/installation.md b/docs/installation.md index 40c30294..f498c00f 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -9,13 +9,13 @@ BareDOM can be consumed three ways: as a **ClojureScript source dependency** (Cl Add BareDOM to your `deps.edn`: ```clojure -{:deps {com.github.avanelsas/baredom {:mvn/version "3.8.0"}}} +{:deps {com.github.avanelsas/baredom {:mvn/version "3.9.0"}}} ``` Or in your `shadow-cljs.edn` dependencies: ```clojure -:dependencies [[com.github.avanelsas/baredom "3.8.0"]] +:dependencies [[com.github.avanelsas/baredom "3.9.0"]] ``` Then require component namespaces directly and call their `init!` function once at startup: @@ -76,7 +76,7 @@ Add the npm package to your `package.json`: ```json { "dependencies": { - "@vanelsas/baredom": "^3.8.0" + "@vanelsas/baredom": "^3.9.0" } } ``` diff --git a/package.json b/package.json index 95ae5c05..3f54d944 100644 --- a/package.json +++ b/package.json @@ -588,7 +588,7 @@ "bugs": { "url": "https://github.com/avanelsas/baredom/issues" }, - "version": "3.8.0", + "version": "3.9.0", "sideEffects": [ "./dist/*.js" ],