From bf9e816c89d90cb535d8a20ec7f87650c95fdbbb Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Fri, 2 Oct 2026 15:29:33 -0400 Subject: [PATCH] Bump to 1.35.0: a project whose whole definition is one matlab.toml reads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R2026b's `matlab.project.DefinitionFiles.Toml` deletes `resources/` and the `.prj` marker both and writes a single `matlab.toml` at the project root. That file is now parsed into the same `ParsedProject` the three XML layouts produce, so the page, the tree and every consumer behind `parseProject` are unchanged. Two fields are new, and both exist because this format records something the others do not — and omits something they all have: - `ParsedProject.membersEnumerated` answers "does this FORMAT record a member list", not "did we find any". True on every XML path, including the one for a store that would not open; false only here. Without it an empty `files` means two different things and the page reports a real project as empty. - `ProjectLabel.declaredFiles` is the inverted assignment only this format has: a label declares the files it covers, where a store assigns labels per member. `ProjectPage.memberCount`, `labelledCount` and `ProjectPageLabel.count` are therefore `number | null`. Null and not 0 or -1: a renderer that prints "0 members" for a project whose members are every file under its root is confidently wrong, and null is the only value that makes reaching the markup a compile error in the consumer that escapes it. The parser is `smol-toml` (BSD-3-Clause, zero dependencies, browser-safe) rather than a hand-rolled subset, because this is the one definition format designed to be hand-edited: it will carry comments, quoting variants, dotted keys and multi-line arrays, and a subset parser that mis-reads one of those renders a confidently-wrong page. The lockfile's own version is bumped with package.json this time. Bumping package.json alone is what let the two drift apart by a full release. --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6a62284..cb9a583 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "data-explorer-core", - "version": "1.34.0", + "version": "1.35.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "data-explorer-core", - "version": "1.34.0", + "version": "1.35.0", "license": "BSD-3-Clause", "dependencies": { "fast-xml-parser": "^5.8.0", diff --git a/package.json b/package.json index e0a36c8..8a71198 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "data-explorer-core", - "version": "1.34.0", + "version": "1.35.0", "description": "Parser, data model, and node schema for Simulink data-dictionary, model, MAT-file, and project files. Presentation-independent; embeddable in-process.", "license": "BSD-3-Clause", "type": "module",