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
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
- Renamed
metadata
todepot
- Renamed
options
toextensions
- 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 settingsengine: { queryUrl?: string }
. This is the start of an effort to breakLegend Engine
server to multiple pieces for better monitoring and performance
- Renamed
EditorPlugin
toStudioPlugin
- In
StudioPlugin
:- Added
getExtraElementEditorPostRenameActions()
- Added
getExtraElementEditorPostDeleteActions()
- Renamed
getExtraElementEditorPostCreationActions()
togetExtraElementEditorPostCreateActions()
- Renamed
getExtraNewElementDriverEditorCreators()
togetExtraNewElementDriverEditorRenderers()
- Renamed
getExtraElementEditorCreators()
togetExtraElementEditorRenderers()
- Removed
getExtraPureGrammarParserNames()
- Removed
getExtraPureGrammarKeywords()
- Removed
getExtraPureGrammarElementLabelers()
- Removed
getExtraExposedSystemElementPath()
- Added
- In
PureGraphManagerPlugin
:- Added
getExtraPureGrammarParserNames()
- Added
getExtraPureGrammarKeywords()
- Added
getExtraPureGrammarElementLabelers()
- Added
getExtraExposedSystemElementPath()
- Remove
getExtraPureGraphExtensionClasses()
- Added
- Introduced
PureGraphPlugin
to handle internalPure
graph processes:- Added
getExtraPureGraphExtensionClasses()
- Added
getExtraDeadReferencesCleaners()
- Added
- 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 forDSL Text
, whereas@finos/legend-graph-preset-dsl-text
holds the metamodels, graph manager extension ofDSL 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.
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:
- @finos/legend-studio-components: Renamed to @finos/legend-art
- @finos/legend-studio-dev-utils: Renamed to @finos/legend-dev-utils
- @finos/legend-studio-shared: Renamed to @finos/legend-shared
- @finos/legend-studio-network: Merged into @finos/legend-shared
- @finos/legend-studio-preset-external-format-json-schema: Renamed to @finos/legend-extension-external-format-json-schema
- @finos/legend-studio-preset-dsl-text: Renamed to @finos/legend-extension-dsl-text
- @finos/legend-studio-plugin-tracer-zipkin: Renamed to @finos/legend-tracer-extension-zipkin
- @finos/legend-studio-preset-query-builder: Renamed to @finos/legend-studio-extension-query-builder
- @finos/legend-studio-plugin-management: Renamed to @finos/legend-studio-extension-management-toolkit
Some new essential packages are introduced in an effort to make core more modularized and compact:
- @finos/legend-server-sdlc: Models and client for server backend for Legend SDLC
- @finos/legend-server-depot: Models and client for server backend for Legend Depot
- @finos/legend-model-storage: Storage models (e.g.
Entity
) shared by @finos/legend-server-sdlc and @finos/legend-server-depot - @finos/legend-graph: PURE graph, metamodels as well as graph manager including protocol models and server backend for Legend Engine
- @finos/legend-application: Common framework for Legend application creation, including components, styling, config, state manager, etc.
- @finos/legend-query: Core components of
Legend Query
- @finos/legend-studio-app:
Legend Studio
application with default set of extensions. This library's version will be considered the main release version - @finos/legend-query-app:
Legend Query
application with default set of extensions - @finos/legend-extension-dsl-diagram: Extension for DSL Diagram
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.
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.
- 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