Repository navigation
refactor: remove the deprecated names and flags ahead of 0.12.0 - #1754
Merged
Merged
Conversation
Remove the surfaces deprecated in releases up to 0.10.0 whose replacements are documented: the sysml CLI's -to and -pdf-title-page/-pdf-toc/ -pdf-number-sections, the Python client's opensysml.eval and RuntimeError aliases, the Node client's strict parse option, and the Go client's EditResult.Content. ApplyEdits and ApplyDocumentEdits now require the edit_documents capability, which every service since 0.9.0 advertises. The tests that only exercised the deprecated names go with them; the others read the replacements. Docs, the manual page and the changelog fragments follow. Co-Authored-By: jason.han <hanhuijun@gmail.com>
Co-Authored-By: jason.han <hanhuijun@gmail.com>
…d alias current Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
…ctConformance The runner still mapped the wire field to the removed strict option, so a strict ParseFile scenario was sent without strict conformance. Two parse scenarios now tell the modes apart: an OpenSysML-only notation is one error under strict conformance and one warning by default, so a runner that drops the field fails the suite. Co-Authored-By: jason.han <hanhuijun@gmail.com>
…allback Co-Authored-By: jason.han <hanhuijun@gmail.com>
Resolves the Node client conflicts with the client-parity and action-trace work (#1766, #1786, #1778): ParseOptions keeps strictConformance alone, ParseSourcesOptions extends it, connection.ts and model.ts read options.strictConformance directly without the removed strictConformanceOf, and the sources test of the removed strict alias becomes a strictConformance test (an OpenSysML-only notation is a warning by default, an error strictly). The merged tree's remaining references to the removed names (the sysml REPL testing skill, a conversion.ts comment) are updated. Co-Authored-By: jason.han <hanhuijun@gmail.com>
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
Pre-cut cleanup for 0.12.0: every deprecated name whose replacement has shipped and is documented, and which nothing in the repository still uses, is removed. No stubs or compatibility shims are kept.
Removed:
sysmlCLI:-to(replaced by-convertin 0.0.7) and-pdf-title-page,-pdf-toc,-pdf-number-sections(replaced by-doc-title-page,-doc-toc,-doc-number-sectionsin 0.9.0, listed under aDeprecatedhelp group since). ThedeprecatedFlagtype and theDeprecatedusage group go with them; the man page is regenerated (make man-checkpasses).opensysml.eval,opensysml.RuntimeErrorandopensysml.errors.RuntimeErroraliases and the two__getattr__shims that served them (warning since 0.9.0);opensysml.evaluateandopensysml.ExecutionErrorremain.ParseOptions.strictalias ofstrictConformanceandstrictConformanceOf(deprecated in 0.10.0); the conformance runner passesstrictConformancein both places it mapped the wire field. Two parse scenarios now tell strict conformance from the default (parse/strict_conformance_refuses_an_extension: one error for an OpenSysML-onlychoice c;;parse/an_extension_is_a_warning_by_default: the same fixture, one warning), so a runner that drops the field fails the suite.EditResult.Content(deprecated in 0.9.0 forEditResult.Documents).ApplyEditsandApplyDocumentEditsnow require theedit_documentscapability, which every service since 0.9.0 advertises, and refuse a service without it withCodeUnimplemented;requireEditDocumentsgoes with the field. The conformance adapter still fills the wire-levelApplyEditsResponse.contentfor a one-document model fromDocuments[0], so the wire contract is unchanged.docs/internals/design/python-grpc-bindings.mdand the archived changelog keep their historical wording).Inventory
-to-convert)-pdf-title-page,-pdf-toc,-pdf-number-sections-doc-*)opensysml.evalevaluate)opensysml.RuntimeError,opensysml.errors.RuntimeErrorExecutionError)ParseOptions.strictstrictConformance)EditResult.ContentDocuments)ParseFileRequest.content_hash = 3 [deprecated = true](and the generated#[deprecated]/@deprecatedit produces in the Rust and Node bindings)api/proto/buf.yamlbreaking: FILE, which includesFIELD_NO_DELETE;client/python/tests/test_wire_compat.pypins the field number). The service ignores it, but deleting it is a breaking proto change and a regeneration of all seven bindings — belongs in the 1.0 wire review, not a minor.sysml-grpc-health-portseparate listener/health; only its use alongside Connect is deprecated. Removing it is a transport behaviour change, not an alias removal.SYSML_*names for the pre-0.9.0 variablesOPENSYSML_*)docs/reference/environment.mddocuments them as "accepted indefinitely" with a one-time warning; dropping them would contradict the published contract.-include-library-stubs%exitalias: true), never deprecated.choice/junction/historypseudostate keyword spellingsnonstandard-notation(replacement#choice state, …)-strictis the documented path to refuse them. Dropping them is a grammar change for its own PR.@Deprecated,#[deprecated,Base.depwarn,warning(...deprecated), migration shims).// Deprecated:outside*.pb.go)EditResult.Contentwas the only one.No removal collides with an open PR: #1730's
internal/translate/exportfiles, #1749's lockfiles and #1740's docs are untouched.Skipped the deprecation cycle
None. Every removed name was deprecated in a released version (0.0.7, 0.9.0, 0.10.0 — all ≤ 0.11.0).
How it was verified
go build ./...,go vet ./...,gofmt -l .(empty),go test ./...with the training, pilot and library-XMI corpora downloaded, andmake lintmake man-checkclient/python:pytest— 1549 passed, 141 skipped (the skips need a running service binary)client/node:npm run build && npm run lint && npm test— 456 passed, 1 skippedgo test -C tools ./cmd/conformance(the Go adapter and the new scenarios) andnpm run conformanceinclient/node: 188 passed, 8 skipped on each ofgrpc,connectandconnect-jsonChecklist
make testandmake lintpass locallychanges/unreleased/<slug>.<section>.md, not as an edit toCHANGELOG.mdmake docs-countsrun if a gate count moved (none moved)F4,K5) in the body, docs, or changelogLink to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/06b2c19b7ba9490db57a6184b7b4616d
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/06b2c19b7ba9490db57a6184b7b4616d?variant=devin
Requested by: @HuiJun