flutter3d_education_lti 1.0.0-rc.2
flutter3d_education_lti: ^1.0.0-rc.2 copied to clipboard
Outside the 1.0 semver promise. LTI 1.3 launch, grade passback and xAPI reporting for flutter3d's lessons and laboratories, so a learning platform gets its grade back.
1.0.0-rc.2 #
- The engine's number, outside the 1.0 promise. Its signatures carry types of a package before 1.0 or of one that takes a major a year, so a release of that package may break this API in a minor, and the break is labelled here. SUPPORT.md names the four packages outside the promise; the number says which engine release this one goes with, and every pin the engine writes on it is the engine's own.
- Breaking: results that were records are final classes.
generateRsaKeyPairanswered or held a record, which can never gain a field. Each answers a final class now, with the record's field names (a positional$1has a name of its own),==andhashCode. A field read compiles as before; a destructuring pattern names the class, andflutter3d_build:migraterewrites the$1reads. - New: a package of its own. The LTI 1.3 launch, the AGS and xAPI
clients and
CheckReporterwere thelti.dartlibrary offlutter3d_education, andflutter3d_ltibefore that (its history is indoc/changelogs/flutter3d_lti.md). Every name is the one it had; importpackage:flutter3d_education_lti/flutter3d_education_lti.dart, anddart run flutter3d_build:migratemoves the dependency and the imports of a project written againstflutter3d_lti0.8. What reads an experiment no longer resolvespointycastle,dart_jsonwebtokenandhttp.
From flutter3d_lti 1.0.0-rc.1 #
- Breaking: one suffix for settings, Settings, and Descriptor in the
HAL.
LtiPlatformConfigisLtiPlatformSettings,XapiLrsConfigisXapiLrsSettings. Every settings class isfinalwith aconstconstructor and acopyWithover every field; a nullable field is reset withcopyWith(clearX: true).dart fixcarries the renames. - Breaking:
AgsException,LtiLaunchException,XapiExceptionextendResourceExceptioninstead of implementingExceptiondirectly. The names and members are unchanged and everyonclause that caught them still does; every exception the engine throws now hangs fromFlutter3dExceptioninflutter3d_plugin_api, in one of four families: format, capability, plugin and resource. A caller who reports anything the engine refused catches the root; one who acts on a kind catches its family. The migration table marks them as nothing to do.LtiLaunchExceptionis still sealed over the same five cases. - 1.0.0 is a promise: strict semver from there. This release candidate
already keeps it. A patch fixes bugs and
breaks nothing, a minor adds, and a break waits for a major. The whole
public API is stable, with no experimental exceptions, and is held to the
snapshot in
api/. A deprecated name stays until the next major and for at least six months, and says what replaces it. CONTRIBUTING.md has the rules, and SUPPORT.md says which releases get fixes and on which platforms.
Moves with the stack to 1.0.0, whose flutter3d_hardware gives
PassEncoder.draw a window of the bound indices and every PassEncoder
setAlphaToCoverage. Nothing in this package changed.
Its flutter3d_* dependencies ask for ^1.0.0.