Skip to content

Latest commit

 

History

History
102 lines (77 loc) · 10.2 KB

CHANGELOG.md

File metadata and controls

102 lines (77 loc) · 10.2 KB

Changelog

This is the changelog for Legend applications: Legend Studio, Legend Query, etc. For respective libraries changelogs, please navigate to their respective directory in the codebase, e.g. @finos/legend-shared.

This changelog will eventually be moved to http://github.com/finos/legend

0.0.1 (August 2021)

Update 0.0.2: For more details, check out this pull request

Update 0.0.3: For more details, check out this pull request


This marks the official release of the stand-alone version of query builder, also known as Legend Query. Thanks to this, we took the time to re-organize our codebase to make it easier to introduce even more Legend applications in the future.

For more details, check out pull request finos#414

Deployment

Studio config

  • Renamed metadata to depot
  • Renamed options to extensions
  • Removed TEMPORARY__disableSDLCProjectStructureSupport as SDLC pipeline has now been supported as part of finos/legend-sdlc#223
  • Added a new config for the base URL of Query API in engine server client via the settings engine: { queryUrl?: string }. This is the start of an effort to break Legend Engine server to multiple pieces for better monitoring and performance

Extension authoring

  • Renamed EditorPlugin to StudioPlugin
  • In StudioPlugin:
    • Added getExtraElementEditorPostRenameActions()
    • Added getExtraElementEditorPostDeleteActions()
    • Renamed getExtraElementEditorPostCreationActions() to getExtraElementEditorPostCreateActions()
    • Renamed getExtraNewElementDriverEditorCreators() to getExtraNewElementDriverEditorRenderers()
    • Renamed getExtraElementEditorCreators() to getExtraElementEditorRenderers()
    • Removed getExtraPureGrammarParserNames()
    • Removed getExtraPureGrammarKeywords()
    • Removed getExtraPureGrammarElementLabelers()
    • Removed getExtraExposedSystemElementPath()
  • In PureGraphManagerPlugin:
    • Added getExtraPureGrammarParserNames()
    • Added getExtraPureGrammarKeywords()
    • Added getExtraPureGrammarElementLabelers()
    • Added getExtraExposedSystemElementPath()
    • Remove getExtraPureGraphExtensionClasses()
  • Introduced PureGraphPlugin to handle internal Pure graph processes:
    • Added getExtraPureGraphExtensionClasses()
    • Added getExtraDeadReferencesCleaners()
  • We made a decision to change the prefix of extensions package names to @finos/legend-extension-* to make it more simple extension maintainers. Prior to this, we considered an option to split each plugin by the layers they serve, for example, @finos/legend-studio-preset-dsl-text is meant for holding Studio components extension for DSL Text, whereas @finos/legend-graph-preset-dsl-text holds the metamodels, graph manager extension of DSL Text. However, doing this way will make the codebase hard to maintain.
  • We also added documentation to each extension methods to help with the extension development process.

Engineering

Studio codebase restructure

Since the introduction of Legend Query in the codebase, we realize the need to restructure the codebase in order to reuse shared parts between Legend applications. This restructuring directly translate to the merging, splitting, and renaming of some of our existing NPM packages:

Some new essential packages are introduced in an effort to make core more modularized and compact:

Legend application testing improvements

Grammar roundtrip test runner will now also check for compilation issues using Legend Engine server. Also, before, when there is a test case that fails at some testing phase (grammar roundtrip check, hashing, etc.), we need to disable it entirely; now, we can pick the check to exclude for each test case.

Adopt Typescript 4.4

We now use Typescript 4.4 in the codebase. This means that we can now simplify try/catch expression as unknown is now the default type in catch variables, as well as re-writing type definition of optional properties in models to be more accurate thanks to the new flag --exactOptionalPropertyTypes. We also benefit from other improvements which do not require code changes, such as better declaration emit and incremental build performance, and particularly the better control flow analysis.

Notable fixes

  • 533 Change detection reports modified elements as new elements after users fix graph building errors which happen on initial load
  • 463 Mock data generator for models break when there are enumerations with 0 or 1 value in the source class tree
  • 462 Layout is broken: activity bar disappear and editor stretches beyond screen width when there are too many elements being opened
  • 449 Changing class properties' type in form mode, especially when the type if primitive is not working
  • 442 meta::pure::profiles::doc is hidden from profile selector in Studio model editors
  • 425 Mock data generator for models sometimes fail to generate for properties of type Boolean
  • 424 Paths in transform function of relational property mapping are not resolved properly after switching in and out of text-mode.
  • 426 Committed reviews are not shown when there is no previous releases
  • 399 Multiple mapped properties disappear in mapping editor
  • 354 Viewer mode does not allow viewing project configuration
  • 298 Operation class mapping editor allows cycle
  • 269 Allow editing of project configuration during dependency error