diff --git a/python-textX.changes b/python-textX.changes index 8f47a4e..1a91025 100644 --- a/python-textX.changes +++ b/python-textX.changes @@ -1,3 +1,74 @@ +------------------------------------------------------------------- +Fri Jul 6 20:48:57 UTC 2018 - sebix+novell.com@sebix.at + +- update to version 1.7.0: + - A major feature of this release is multi-(meta-)model support with + configurable resolving techniques. Thanks Pierre Bayerl (goto40@GitHub)! + + The docs sections are [here](http://www.igordejanovic.net/textX/scoping/) + and [here](http://www.igordejanovic.net/textX/multimetamodel/). + + Details follow: + - added new function textx.get_model.children to search arbritrary children + using a lambda predicate. + - remapped textx.model.get_children_of_type to the new children function + (changed the logic, such that the root node is also checked to be model + object). + - added new metamodel function to register scope providers. Scope providers + are callables, which return the referenced object. + - added optional attribute "_tx_model_repository", see metamodel.py + documentation + - added attribute "scope_provider" like "obj_processors" to organize scope + providers + - added an optional argument to model_from_str and model_from_file: + "pre_ref_resolution_callback": this is required internally to prepare the + loading of other model files. + - changed reference resolution in model.py + - moved default resolution to textx.scoping.py + - select the scope provider based on rule and rule-attribute (see + scoping.py documentation) + - added a Postponed type to postpone the resolution + - introduced a multi-pass resolution (implemented at the end of + parse_tree_to_objgraph; introduced new helper argument, e.g., a new + optional argument "is_this_the_main_model" and + "pre_ref_resolution_callback" (see metamodel.py above) to support + reference resolution in the presence of different model files. + - added a new module textx.scoping, to provide some scope providers (e.g. a + fully qualified name provider) - see scoping.py: + - full qualified names for reference names (e.g. package.package.class) + - global scope (model distributed over different files - loaded globally) + - import scope (model distributed over different files - loaded when + imported) + - relative scopes (e.g. instance.method where method is defined for the + class of the instance in a model of classes, methods and instances) + - selecting the metamodel based on a file pattern when loading models + - added tests (mostly scope related - some of them also test other stuff, + like buildins) + - exceptions where adapted to include a file name (makes errors more + visible) + - The metamodel now allows to specify a global model repository. With this + you can now share models across metamodels (before you could only do this + within one metamodel or language). + - The metamodel clones the parser when parsing a model file. The meta model + holds one parser, which is clone for every model to be parsed. + - TextXModelParser now has a clone method. + (TBC: is the clone ok: see responsibility of the method) + - model.py: the resolution loop logic now mostly moved to a separate object + ReferenceResolver, which holds the parser. + - The reference resolver are build from all model files affected (loaded). + This may involve multiple meta models. + - Then all references are resolved in one loop. + - Finally the helper objects (ReferenceResolver) are purged. + - The MetaModelProvider has a clear-method now (useful for tests). + - Backward incompatible change: match filters and object processors unified. + Now there are only object processors but they are called for any type of + rule and the returned value if exists is used instead of the original + object. See [the + docs](http://www.igordejanovic.net/textX/metamodel/#object-processors). In + order to migrate your match filters just register them as object processors. + - Fixing FLOAT regex. Thanks Boris Marin (borismarin@GitHub)! + - Fixing position info on obj cross ref. Thanks Daniel Elero (danixeee@GitHub)! + ------------------------------------------------------------------- Sun Feb 18 18:52:02 UTC 2018 - jengelh@inai.de diff --git a/python-textX.spec b/python-textX.spec index 340fa4e..ac7805a 100644 --- a/python-textX.spec +++ b/python-textX.spec @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %bcond_without test Name: python-textX -Version: 1.6.1 +Version: 1.7.0 Release: 0 Summary: Meta-language for DSL implementation inspired by Xtext License: MIT diff --git a/v1.6.1.tar.gz b/v1.6.1.tar.gz deleted file mode 100644 index ef60f92..0000000 --- a/v1.6.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:661fff2adf7633ce7eff2893c225eee5c66f07d13912164930029aab65bb504a -size 1579214 diff --git a/v1.7.0.tar.gz b/v1.7.0.tar.gz new file mode 100644 index 0000000..824f0b7 --- /dev/null +++ b/v1.7.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:827f1e65a2c000d18822e58f92f9cb3bdfaabe82e63fff52d118ee5ed4630a7b +size 1612306