chore(release): 0.9.1 - #614
Open
devin-ai-integration[bot] wants to merge 593 commits into
Open
devin-ai-integration[bot] wants to merge 593 commits into
devin-ai-integration[bot] wants to merge 593 commits into
Conversation
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…ion-calc Co-Authored-By: jason.han <hanhuijun@gmail.com>
… feature/tool-sequence-outputs Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # internal/exec/analysis/reply.go # internal/exec/analysis/testdata/toolreply/main.go
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…o feature/tool-dry-run-and-demo Co-Authored-By: jason.han <hanhuijun@gmail.com>
…unused output filter Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…d rows however flagged A picture drawn after one that lies over the element symbols, and covered by no later element symbol, now lies over them too, so the later picture stays over the earlier one it overlaps; one a later element symbol covers is drawn under and the note counts the pictures it lay over beside the element symbols. A symbol whose bounds have no area is not written, with the reason in the report. A compartment row marked not visible before its elementID is hidden as one marked after it is. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
… does Co-Authored-By: jason.han <hanhuijun@gmail.com>
…d features The descendant walk ran over every exposed element, so an exposed package or other non-node element suppressed an exposed feature its subtree holds, and the feature vanished from the rendering. Only the elements that enter featureNode now feed the suppression walk. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…-stress-model Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # mkdocs.yml # tests/stressmodel/satnet.go # tests/stressmodel/satnet_test.go
…raph is malformed A malformed collaborator application over the view's documentation comment is refused and reported as before, but no longer suppresses the paragraph the section opens with; only a well-formed collaborator paragraph showing that comment does. Co-Authored-By: jason.han <hanhuijun@gmail.com>
… note unread images per symbol A compartment row the stream hides stays off the migrated view even when the diagram's element list names it and its owner is drawn. A DiagramLayout::Picture whose location is a URL is a diagram-layout-value error rather than a file name handed to Graphviz. An unreadable pasted image is noted on its own symbol, so two unnamed symbols no longer share one note. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…rse-runtime Co-Authored-By: jason.han <hanhuijun@gmail.com>
…an exploring schedule Co-Authored-By: jason.han <hanhuijun@gmail.com>
… properties Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…nt's own id The paragraph a section opens with stands for the view's documentation comment itself, so its report row keeps the comment's id rather than the id of a DocGen collaborator application over that comment; a malformed application is now reported only as refused. Co-Authored-By: jason.han <hanhuijun@gmail.com>
* feat(client): add thin Julia and MATLAB/Octave clients for sysml-grpc Both are JSON-over-HTTP clients of the Connect-JSON surface — no protobuf, no generated code, no binary download — at parity with each other: - client/julia/OpenSysML: a Pkg package (Julia >= 1.10, HTTP.jl + JSON.jl) with connect/external/private, parse*/symbol/evaluate/instantiate/ execute_action/execute_state/query over a model hash, decode_value for all 19 arms, and ConnectError/TransportError/DiagnosticError. - client/matlab: +opensysml for MATLAB R2019b+ and GNU Octave 7+, with the same surface; MATLAB uses matlab.net.http, Octave a curl subprocess, and private() needs Java (Octave without it uses external()). - Each ships a conformance runner that drives every scenario through the public call/callRaw (callRaw sends the scenario's request text verbatim) and writes the shared report format. Both runners port the Rust comparison rules, including an is_default_expectation step the wire needs because proto3-JSON omits default-valued fields the Rust runner's reserialized answer carries. - make conformance-julia / conformance-matlab, julia-client and matlab-client jobs in pr.yml (mirrored in .circleci), area filters in ci-changed-areas, julia-api.md/matlab-api.md reference pages, and clients/wire-contract/roadmap/guide/README updates. Co-Authored-By: jason.han <hanhuijun@gmail.com> * docs(client): correct Julia/Octave wording and trim comment blocks Co-Authored-By: jason.han <hanhuijun@gmail.com> * fix(client): harden Julia and MATLAB clients from review Co-Authored-By: jason.han <hanhuijun@gmail.com> * fix(client): bound private-service startup and quote curl paths Co-Authored-By: jason.han <hanhuijun@gmail.com> * fix(client): bound child cleanup and accept spaced temp paths Co-Authored-By: jason.han <hanhuijun@gmail.com> * fix(client): bound the MATLAB address read by deadline and length Co-Authored-By: jason.han <hanhuijun@gmail.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
A Clock's currentTime answered by clockMember never reached the sharing trace, so a default or check reading it could be recorded against the shape and taken by another occurrence after the clock advanced. The instant is the run's: reading it makes every open derivation the occurrence's own. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…n the current tree Co-Authored-By: jason.han <hanhuijun@gmail.com>
An overlay picture written after every node is painted over the connections too, since Graphviz emits each edge right after its tail node; the test renders a view whose overlay crosses a connection through dot and checks the SVG order in both drawing styles. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…rse-runtime Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # docs/internals/performance.md # docs/project/satellite-network-stress-test.md
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…records Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # internal/workspace/libs/stdlib.snapshot
…tate's transition Only a transition out of the deferring state itself, under no guard, takes the signal from the deferral outright; one out of a substate wins only while that substate is active, so the state keeps the signal the rest of the time. A deferral dropped for a completion transition is kept as a comment in the state's body. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Regenerate the bundled library snapshot over the merged stdlib sources. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…ty table Co-Authored-By: jason.han <hanhuijun@gmail.com>
…definition change The self-model edit moved the examples/ input digest, and the new nonstandard-semantics warnings account for every added openSysMLOnly finding; no other movement. Co-Authored-By: jason.han <hanhuijun@gmail.com>
… time With several deferred signals in one state the flush keeps arrival order within each signal but not between signals; UML leaves the event pool's order open, so the report note and the reference say this is a permitted approximation. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…tion Re-recording the baseline moved the headline counts (344 fully agreeing, 46 only ours); regenerate the gated doc-count lines and update the quoted figures and the adjudication record to match. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…s action usages A v1 activity a block owns whose body reads the block's features (an attribute, a port a signal arrives at, an operation of a part, a «Probability» property) is written as an action usage of the part def carrying the body, since a definition nested in a type reaches none of its features; every site naming it (calls, receptions, interactions, simulation configurations, Monte Carlo analyses, reports) names the usage. An «Allocate» whose ends no allocate can relate — a definition and a usage, or a node of an action def or of a call-run action usage — is a plain dependency with the reason. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…he package The corpora differential ran as a sequential top-level test with its four roots one after another, adding its whole duration to the package's wall time under -race; the roots are independent, so they now run alongside the package's other parallel tests. Co-Authored-By: jason.han <hanhuijun@gmail.com>
An activity written as its block's action usage is no definition: an «Allocate» ending on it is a plain dependency rather than an allocation def typed by it, a nested member of it is reached as a member of the usage, and a stereotype tag naming it casts it to SysML::ActionUsage — a form the checker now admits, since `x meta T` reads the element x names, not its value. A call of such a behavior whose target pin no flow feeds is an empty step, no longer performed on the caller's sole part of the behavior's block. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…e by its definition generals An operation whose method a caller names directly is called by that caller: one that reaches no object of the block keeps the operation an action def. An action usage's generals written as definitions type it (`: Base`) and those written as usages are subsetted (`:> active`), each with its own relationship rather than one separator for the whole list. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Order the chains reaching one feature most-specific first — the tails carried down, then each type before its member sources — and let the first win rather than the last. Carry an object's pending tails through a held image so a member materialized after the restore is redefined all the same. When a classifier is added to an object, apply its nested redefinitions to the children already materialized, refining their feature values as the classifier's direct features do. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…d's own redefinition A redefined member shares one feature value under every name it reads as, so a chain's first segment matches any name of the value being materialized, not only the name read. And a child's own redefinition wins over a chain a classifier applies to it, the same precedence the materialize path gives it. Co-Authored-By: jason.han <hanhuijun@gmail.com>
The job already reaches 46 minutes on develop on a slow runner, and the interface-record corpus differential adds a few more. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # changes/unreleased/authoring-transitions.added.md
…ement' into release/0.9.1
…into release/0.9.1
…s' into release/0.9.1
…nto release/0.9.1
…into release/0.9.1 Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # internal/workspace/libs/stdlib.snapshot # internal/workspace/libs/stdlib/OpenSysML Libraries/MigrationMetadata.sysml
… into release/0.9.1 Co-Authored-By: jason.han <hanhuijun@gmail.com>
…release/0.9.1 Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # internal/semantic/semantics/annotations.go # internal/workspace/libs/stdlib.snapshot
…o release/0.9.1 Co-Authored-By: jason.han <hanhuijun@gmail.com> # Conflicts: # docs/project/pilot-differential-baseline.json
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Release branch for 0.9.1, cut from
developperdocs/project/releasing.md§ The release branch. It carries everything merged intodevelopsince 0.9.0 (as of614373cb2, which includes #582, #606, #616, #617, #618, #619, #620, #622, #624, #625, #626) plus the open PRs the maintainer asked to include, merged from their branches:08e318f94), fix(migrate): keep migrated root packages out of the standard library's names #628 (0154f718f), fix(migrate): write accessible feature references and usage-ended allocations #629 (7e56aa147), fix(migrate): write a decision's else branch right after the decision node #631 (1da31daf3), feat(migrate): encode deferred triggers in standard SysML v2 under -strict #632 (56102bff2)38c6bbb7b), feat(symbols): hold closed documents as interface records #621 interface records (9aa0190ef), feat(runtime): apply nested redefinition chains below composite features #634 nested redefinition chains (f1a8bf47d)Left out: #483 (SysON) and #583 (wasm). #635 is deferred until its author rebases it onto
developafter #629 lands; it will then come in through adevelopmerge.Bookkeeping commits:
c7b18504,c07d41cf,70072f1b,d295dc4a0fold all fragments underchanges/unreleased/into## 0.9.1 — 2026-09-26(the last one by hand, verbatim, incl. a new### Securitysection for ci(release): attest SLSA provenance over the release manifest's artifacts #606's release provenance). OnlyREADME.mdremains underchanges/unreleased/.f3fdf451setsVERSION = "0.9.1"inclient/python/opensysml/_version.py, which the release workflow checks against the tag.Merge resolutions, all through repository tooling:
client/rust/conformance/sysml.descriptor.binpbregenerated withmake proto-rust;internal/workspace/libs/stdlib.snapshotregenerated withmake stdlib-snapshotafter #632/#623/#621 (disjoint additions toMigrationMetadata.sysmlboth kept);docs/project/pilot-differential-baseline.jsonregenerated by the pilot differential harness after #634;annotations.gokeeps both #621's and develop'svia/recordedannotation handling through a sharedindexAbouthelper.87e1a313dand50b6c754cupdate expectations that changed because of how the merged PRs interact (e.g. #629 writes an owner-context activity as an action usageaction issue, so #632's REPL step drivesConsole::issuerather thanConsole::Issue).Versioning note:
per-file-documents(a root-level import in one command-line file no longer serves the others; two files declaring the same root package are no longer diagnosed), #617 (three forms the grammar forbids are now refused) and the migrate fixes (output that was not valid SysML v2 now is) change what 0.9.0 produced or accepted. The maintainer classified all of these as corrections of wrong results toward what the spec and the pinned pilot derive and kept 0.9.1. No flag, command, RPC or wire field is removed or renamed;proto-breakingagainstmainpasses.After merge: tag
mainasv0.9.1, then mergemainback intodevelop(which also lands the included open PRs, so they can be closed).How it was verified
On the branch head:
gofmt -l .empty,go build ./...,go vet ./...,python3 scripts/changelog.py check,python3 scripts/check-doc-links.py,make docs-check,make proto-breaking BUF_BREAKING_REF=origin/main(no breaking changes),go test -count=1 ./...,make conformance(137 passed, 0 failed, 1 skipped), andOPENSYSML_REQUIRE_TRAINING_CORPUS=1 OPENSYSML_REQUIRE_PILOT_CORPORA=1 go test -count=1 ./tests/corpus.Checklist
make testandmake lintpass locallychanges/unreleased/<slug>.<section>.md, not as an edit toCHANGELOG.md(a release folds the fragments intoCHANGELOG.mdby design)make docs-countsrun if a gate count moved (compliance rows need nothing: the census is counted at docs build)F4,K5) in the body, docs, or changelogLink to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/e0c5a204e0984415814ed38767578b41
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/e0c5a204e0984415814ed38767578b41?variant=devin
Requested by: @HuiJun