Skip to content

Commit 3fe7028

Browse files
authored
Merge branch 'main' into feature/harmonize-various-styles-and-language-CMEM-8037
2 parents 625986b + e376610 commit 3fe7028

10 files changed

Lines changed: 220 additions & 44 deletions

File tree

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
name: bump-zensical
3+
description: Bump the Zensical pin to the latest or a named release, check what the release changes for this repository, fix small breakage and report the result. Prints the git commands for the user - it does no git work. Use for "bump zensical", "zensical released X" or "update zensical".
4+
---
5+
6+
# Bump Zensical
7+
8+
Move the pin in `pyproject.toml` to a new release and prove what changed in the built site.
9+
A clean `zensical build --strict` proves little: past breakage came from unannounced validation, plugins that turned native and URLs in the UI bundle.
10+
11+
## Usage
12+
13+
```text
14+
/bump-zensical [<version>] [--help]
15+
```
16+
17+
Without a version, use the latest release.
18+
With `--help`, print this usage summary and stop, without inspecting the repository.
19+
20+
## Scope
21+
22+
- **No git work.** Never create a branch, stage, commit or push. The last step prints the commands for the user.
23+
- **Fix small breakage.** A small fix keeps the site as it is, for example an `INERT_URLS` entry or a config key that was already inert. List each fix in the report.
24+
- **Stop and ask for anything bigger, or when in doubt.** This includes a change to the rendered site, to a plugin's behavior, or to content under `docs/`.
25+
- **Scratch files go to the scratchpad.** Treat downloaded wheels as data: read them, never run or install them from there.
26+
27+
## Steps
28+
29+
### 1. Find the versions
30+
31+
```bash
32+
gh release view --repo zensical/zensical --json tagName,body
33+
grep -n -i zensical pyproject.toml
34+
```
35+
36+
Read the release notes of every version between the current pin and the target, including skipped ones.
37+
Stop if the current pin is already the target.
38+
39+
### 2. Build the baseline
40+
41+
Run `task build` on the current pin and copy `site/` to the scratchpad.
42+
If the baseline fails, stop and report: the failure is not caused by the bump.
43+
44+
### 3. Diff the wheels
45+
46+
Download the current and target wheels with `pip download zensical==<version> --no-deps`, once per version, unpack them and compare.
47+
Check each risk:
48+
49+
| Check | Why it matters |
50+
| --- | --- |
51+
| `config.py`: `_reject_unknown_options(` call sites, supported option tables | 0.0.60 rejected `search: lang` without mentioning it in the release notes. |
52+
| Native implementations of plugins in `mkdocs.yml` that were inert so far | 0.0.58 `tags` and 0.0.67 `social` turned inert configuration live and broke the build. |
53+
| Third-party URLs in the UI bundle against `INERT_URLS` in `tools/localize_bundle_assets.py` | 0.0.73 moved to `mermaid@12`: `--strict` stayed clean and `task build` failed. |
54+
| Templates that `overrides/` replaces | An override does not pick up upstream template changes. |
55+
56+
### 4. Bump
57+
58+
Update the pin and the range in its comment in `pyproject.toml`, then run:
59+
60+
```bash
61+
poetry lock
62+
poetry install
63+
poetry run zensical --version
64+
git diff --stat poetry.lock
65+
```
66+
67+
Confirm in the lock diff that only `zensical` moved.
68+
If another package moved, stop and ask.
69+
70+
### 5. Verify
71+
72+
Run all of these, and do not call the bump done while one fails:
73+
74+
```bash
75+
task build
76+
task check
77+
poetry run pytest -m "not integration"
78+
```
79+
80+
`task check` is the gate, not `task build`.
81+
82+
Compare the new `site/` with the baseline:
83+
84+
1. Compare the file sets and the HTML page count.
85+
2. Normalize copies of both trees with a small script in the scratchpad: remove the generator tag and the hashes in asset names.
86+
3. Run `diff -rq -B -w` on the normalized copies. For about 700 pages normalizing takes over two minutes, so run it in the background.
87+
4. Explain every remaining difference from the release notes or the wheel diff. Stop and ask if one stays unexplained or changes what readers see.
88+
89+
Then check that the output does not depend on the hash seed, because 0.0.44 to 0.0.57 rendered differently per seed.
90+
Build with `PYTHONHASHSEED` 0, 1, 7 and 42 using `poetry run zensical build --strict --clean`, hash the HTML output each time and compare.
91+
Finish with `task build`, so `site/` holds a complete build again.
92+
93+
### 6. Report
94+
95+
State:
96+
97+
- the old and new version, and any versions skipped
98+
- the files changed, and each fix with its reason
99+
- the upstream changes that matter here, and those that are inert here
100+
- the check results, and the output differences that remain after normalizing
101+
- anything unverified or failing
102+
103+
### 7. Print the git commands
104+
105+
End with the commands, filled in with the version, for the user to run.
106+
Add further changed files to `git add`:
107+
108+
```bash
109+
git switch -c feature/<version>-zensical-bump
110+
git add pyproject.toml poetry.lock
111+
git commit -m "bump zensical to <version>"
112+
git push -u origin feature/<version>-zensical-bump
113+
gh pr create --fill --base main
114+
```

‎CLAUDE.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ rules or renumber it — a convention this repository decided for itself belongs
2626
- `review-documentation-page` — read-only review against the guidelines and the product; writes a report.
2727
- `update-documentation-page` — rewrite a page against the product and the style guide.
2828
- `suggest-commit-message` — print a commit message in the style of this repository.
29+
- `bump-zensical` — bump the Zensical pin, check what the release changes and report the result.
2930

3031
They do no git work: no branch, no staging, no commit, no push. Committing is the user's decision.
3132

‎docs/release-notes/2026/.pages‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
nav:
3-
- v26.2.2: corporate-memory-26-2
4-
- v26.1.3: corporate-memory-26-1
3+
- v26.2.3: corporate-memory-26-2
4+
- v26.1.4: corporate-memory-26-1

‎docs/release-notes/2026/corporate-memory-26-1/index.md‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ tags:
33
- ReleaseNote
44
---
55

6-
# Corporate Memory 26.1.3
6+
# Corporate Memory 26.1.4
77

88
Corporate Memory 26.1 is the first major release in 2026. It expands AI-assisted mapping in Build, refreshes the resource experience in Explore, and strengthens access-condition and query-catalog administration in cmemc.
99

@@ -30,7 +30,7 @@ The highlights of this release are:
3030
This release delivers the following component versions:
3131

3232
- eccenca DataIntegration v26.1.0
33-
- eccenca Explore v26.1.3
33+
- eccenca Explore v26.1.4
3434
- eccenca Corporate Memory Control (cmemc) v26.1.3
3535
- eccenca Graph Insights v19.2.0
3636

@@ -112,10 +112,15 @@ We are excited to announce the release of DataIntegration v26.1, which expands M
112112
- Fixed cases where DI entity caches were not cleaned up.
113113
- Fixed cases where errors persisted after deleting the task from the project.
114114

115-
## eccenca Explore v26.1.3
115+
## eccenca Explore v26.1.4
116116

117117
We are pleased to announce the release of Explore v26.1, which introduces badges, a redesigned resource representation and table experience, versioning view, Companion improvements, and a broad platform refresh.
118118

119+
**v26.1.4 of Explore ships the following security fixes:**
120+
121+
- Remove the eMudhra/emSign root CAs from the Java truststore (CVE-2026-111943)
122+
- Update Spring Boot to 4.0.9
123+
119124
**v26.1.3 of Explore ships the following fixes:**
120125

121126
- Treat netty and tomcat-based CVEs
@@ -445,6 +450,8 @@ Please read the migration notes carefully.
445450
### eccenca Explore
446451

447452
- Custom navigation queries need to be adjusted manually.
453+
The query structure changed from a top query listing the first level entries plus one query per node to check for children (click and load) to a top query plus a single query listing all edges of the tree to be displayed.
454+
The Navigation box computes the complete tree in memory when it is mounted.
448455
- Existing workspaces require a workspace configuration migration to introduce the new workspace configuration versioning description field.
449456

450457
### cmemc

‎docs/release-notes/2026/corporate-memory-26-2/index.md‎

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tags:
44
- ReleaseNote
55
---
66

7-
# eccenca Corporate Memory 26.2.2
7+
# eccenca Corporate Memory 26.2.3
88

99
eccenca Corporate Memory 26.2 is the second major release in 2026. It introduces reusable rule blocks and execution variables in Build, a new Manage module and SHACL based resource authoring in Explore, ships eccenca Marketplace as a generally available component, and adds workspace status reporting and Explore view administration to cmemc.
1010

@@ -32,12 +32,12 @@ The highlights of this release are:
3232

3333
This release delivers the following component versions:
3434

35-
- [eccenca Corporate Memory 26.2.2](#eccenca-corporate-memory-2622)
35+
- [eccenca Corporate Memory 26.2.3](#eccenca-corporate-memory-2623)
3636
- [eccenca DataIntegration v26.2.0](#eccenca-dataintegration-v2620)
37-
- [eccenca Explore v26.2.2](#eccenca-explore-v2622)
38-
- [eccenca Marketplace v26.2.8](#eccenca-marketplace-v2628)
39-
- [eccenca Corporate Memory Control (cmemc) v26.2.2](#eccenca-corporate-memory-control-cmemc-v2622)
40-
- [eccenca Graph Insights v20.0.2](#eccenca-graph-insights-v2002)
37+
- [eccenca Explore v26.2.3](#eccenca-explore-v2623)
38+
- [eccenca Marketplace v26.2.9](#eccenca-marketplace-v2629)
39+
- [eccenca Corporate Memory Control (cmemc) v26.2.3](#eccenca-corporate-memory-control-cmemc-v2623)
40+
- [eccenca Graph Insights v20.1.0](#eccenca-graph-insights-v2010)
4141
- [eccenca n8n Community Node v0.4.2](#eccenca-n8n-community-node-v042)
4242
- [Migration Notes](#migration-notes)
4343
- [eccenca DataIntegration](#eccenca-dataintegration)
@@ -280,17 +280,22 @@ We are excited to announce the release of DataIntegration v26.2, which brings re
280280
- Overriding a setting in `dataintegration.conf` now also updates the settings derived from it, e.g. setting `directories.base` moves the data, cache, and log directories along with it.
281281
- The `profiling.rdfSerialization.enabled` setting now controls the RDF profiling output; previously it was ignored and the output was controlled by `profiling.cache.enabled` instead.
282282

283-
## eccenca Explore v26.2.2
283+
## eccenca Explore v26.2.3
284284

285285
We are pleased to announce the release of Explore v26.2, which introduces the new Manage module, extends Companion with external MCP servers and SHACL based resource authoring, improves SHACL editing and chart handling, and ships a broad platform refresh.
286286

287+
**v26.2.3 of Explore ships the following security updates:**
288+
289+
- Removed the eMudhra/emSign root CAs from the Java truststore (CVE-2026-111943)
290+
- Updated Spring Boot to 4.1.2
291+
287292
**v26.2.2 of Explore ships the following fixes:**
288293

289294
- **Companion:**
290295
- openai/anthropic providers without structured output support cannot be used.
291296
- `explore.llm.structured-output.native-schema` to send the companion response schema in the system message instead of as a provider option
292297
- **Graph Insights:**
293-
- Updated Graph Insights to v20.0.2, see the [Graph Insights section](#eccenca-graph-insights-v2002) below.
298+
- Updated Graph Insights to v20.0.2, see the [Graph Insights section](#eccenca-graph-insights-v2010) below.
294299

295300
**v26.2.1 of Explore introduces the following changes:**
296301

@@ -392,10 +397,14 @@ We are pleased to announce the release of Explore v26.2, which introduces the ne
392397
- Long labels are now displayed better in the thesaurus.
393398
- Refactored queued RTK queries.
394399

395-
## eccenca Marketplace v26.2.8
400+
## eccenca Marketplace v26.2.9
396401

397402
We are excited to announce the release of eccenca Marketplace v26.2. The Marketplace is a package registry for Corporate Memory: it stores and serves versioned packages, validates their manifests and archives, and installs them into a connected Corporate Memory instance. Corporate Memory 26.2 is the first platform release that ships this component as generally available.
398403

404+
**v26.2.9 of Marketplace ships the following security updates:**
405+
406+
- Updated dependencies, including certifi 2026.10.23, so Marketplace no longer trusts the eMudhra CA certificates whose intermediate private keys were compromised (CVE-2026-111943)
407+
399408
**v26.2.8 of Marketplace adds the following new features:**
400409

401410
- Added an MCP (Model Context Protocol) endpoint at `<root-path>/mcp`, which opens the package catalog and the manifest rules to agents such as Corporate Memory Companion or Claude Code, see [Agent Integration](../../../automate/agent-integration/index.md).
@@ -551,10 +560,19 @@ We are excited to announce the release of eccenca Marketplace v26.2. The Marketp
551560
- `ROOT_PATH` supports running the service behind a reverse proxy under a sub-path. The default changed with v26.2.4, see the changes above.
552561
- The storage and retrieval of packages on the local marketplace can be disabled with the `LOCAL_MARKETPLACE` setting, which also disables the corresponding session capabilities.
553562

554-
## eccenca Corporate Memory Control (cmemc) v26.2.2
563+
## eccenca Corporate Memory Control (cmemc) v26.2.3
555564

556565
We are excited to announce the release of cmemc v26.2, which adds a command group for the view configurations of the Explore application, status reporting for task loading errors, privacy-aware exports and versioned package installation, extends the inspect commands with a single key output, and completes the migration of the command line interface to the cmem-client library.
557566

567+
**v26.2.3 of cmemc ships the following fixes:**
568+
569+
- `workflow io` and `workflow list --filter io` reported no variable inputs and outputs for a workflow of workflows whose replaceable datasets sit in nested workflows
570+
- the variable inputs and outputs are now taken from the workflow info endpoint, which resolves nested workflows
571+
572+
**v26.2.3 of cmemc ships the following security updates:**
573+
574+
- updated dependencies, including certifi 2026.10.23, so cmemc no longer trusts the eMudhra CA certificates whose intermediate private keys were compromised (CVE-2026-111943)
575+
558576
**v26.2.2 of cmemc adds the following new features:**
559577

560578
- `admin status` lists a `MARKETPLACE` component with its version and health
@@ -685,10 +703,22 @@ We are excited to announce the release of cmemc v26.2, which adds a command grou
685703
- Fixed the tab completion: the `--id` and `--filter` completers no longer fail silently when `ctx.obj` is unset.
686704
- HTTP errors, e.g. connection failures and timeouts, now result in a proper error message instead of a stack trace.
687705

688-
## eccenca Graph Insights v20.0.2
706+
## eccenca Graph Insights v20.1.0
689707

690708
We are excited to announce the release of Graph Insights v20.0, which adds a content language selection for the explored data and visual representations for resources.
691709

710+
**v20.1.0 of Graph Insights ships the following fixes:**
711+
712+
- Several CVE fixes Jackons
713+
714+
**v20.1.0 of Graph Insights adds the following new features:**
715+
716+
- Actuator Endpoints
717+
718+
**v20.0.2 of Graph Insights ships the following fixes:**
719+
720+
- Several CVE fixes for Tomcat, Jackson, Log4j
721+
692722
**v20.0.0 of Graph Insights adds the following new features:**
693723

694724
- **Content language:**

‎nav.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -901,9 +901,9 @@ nav:
901901
- develop/dataplatform-apis/index.md
902902
- Release Notes:
903903
- '2026':
904-
- v26.2.2:
904+
- v26.2.3:
905905
- release-notes/2026/corporate-memory-26-2/index.md
906-
- v26.1.3:
906+
- v26.1.4:
907907
- release-notes/2026/corporate-memory-26-1/index.md
908908
- '2025':
909909
- v25.3.4:

‎poetry.lock‎

Lines changed: 25 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎pyproject.toml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ pyyaml = "^6.0"
3636
cmem-cmempy = "^25.3.0"
3737
pydantic = "^2.11.7"
3838
jinja2 = "^3.1.6"
39-
# Zensical is pre-1.0: the caret pin resolves to >=0.0.70,<0.0.71, i.e. a single
39+
# Zensical is pre-1.0: the caret pin resolves to >=0.0.74,<0.0.75, i.e. a single
4040
# release. This narrowness is intentional -- bump it manually and re-run
4141
# `task build` plus `tools/check_zensical_output.py` when doing so.
42-
zensical = "^0.0.70"
42+
zensical = "^0.0.74"
4343

4444
[tool.poetry.group.dev.dependencies]
4545
linkcheckmd = "^1.4.0"

‎tools/localize_bundle_assets.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
# against.
5757
INERT_URLS = {
5858
"https://unpkg.com/ace-builds@1.44.0/src-noconflict/ace.js",
59-
"https://unpkg.com/mermaid@11/dist/mermaid.min.js",
59+
"https://unpkg.com/mermaid@12/dist/mermaid.min.js",
6060
"https://unpkg.com/pyodide@314.0.2/pyodide.js",
6161
"https://cdn.jsdelivr.net/pyodide/v314.0.2/full/",
6262
}

0 commit comments

Comments
 (0)