* Mon May 18 2020 Petr Gajdos <pgajdos@suse.com>
- %python3_only -> %python_alternative
* Wed Mar 11 2020 pgajdos@suse.com
- version update to 2.1.0
[#]## Added
- Added new function `textx.scoping.is_file_included` ([#197]).
[#]## Changed
- Allow passing kwargs (specially - file_name) argument when loading metamodel
from string (needed for `textX-LS v0.1.0`) ([#211]).
- Changed the parser rule for regex matches. Spaces are not stripped any more
from the beginning and the end of the regexp-pattern. This could be possible
* *BIC** for some special cases [#208].
- Changed function name `textx.scoping.get_all_models_including_attached_models`
to `textx.scoping.get_included_models` (marked old function
as deprecated) ([#197]).
- Delete all models touched while loading a model, when an error occurs
while loading in all repositories (strong exception safety guarantee) ([#200]).
* Tue Jul 09 2019 Sebastian Wagner <sebix+novell.com@sebix.at>
- Fix Tests for Leap 15.1: click requires UTF-8 locale.
* Sat Jun 08 2019 Sebastian Wagner <sebix+novell.com@sebix.at>
- Use documentation page as homepage instead of repository.
* Thu Jun 06 2019 Sebastian Wagner <sebix+novell.com@sebix.at>
- Fix the tests
* Tue Jun 04 2019 Tomá? Chvátal <tchvatal@suse.com>
- Make sure the package actually again gets to the test phase
* the tests are actually failing now
* Sun Jun 02 2019 Sebastian Wagner <sebix+novell.com@sebix.at>
- update to version 2.0.1:
- Added:
- [Registration and discovery] of languages and generators ([#187])
- New textx CLI commands for listing generators and languages
(`list-generators`, `list-languages`) and calling a generator (`generate`) ([#187])
- Meta-models may now [reference other registered meta-models] using the
`reference` statement ([#187])
- Adding examples and documentation related to scope providers (related to
model modification through scope providers) ([#168])
- metamodel export feature for [PlantUML] ([#165])
- `textx_isinstance` from `textx.scoping.tools` made available in `textx`
([#164], [#157])
- CLI extensibility ([#162], [#161])
- An initial version of FAQ page ([#138]). Thanks Aluriak@GitHub
- A version of `calc.py` exercises usage of
`text.scoping.tools.textx_isinstance()` to inspect model objects types
during traversal. ([#136], [#123]). Thanks dkrikun@GitHub
- A version of `calc.py` in expression example that exercises dynamically adding
properties to object classes ([#126]). Thanks dkrikun@GitHub
- python like imports (named import rules, scope providers affected) ([#114])
- Added `STRICTFLOAT` as buildin type to allow to distinguish ints from floats
in `NUMBER`. Fixed docu link ([#98]). Possible **(BIC)**
- Added [flake8] and [coverage] checking ([#92])
- Changed:
- All textX commands implemented using textX CLI extensibility. `check`
command reworked to support the new registration feature ([#187]) **(BIC)**
- (Meta-)model visualization reworked as a set of textX generators ([#187]).
* *(BIC)**
- Made scope provider implementation of `RelativeName` and `ExtRelativeName`
more readable ([#186]). Minor functional changes, not very probable to have
any impact (only affects model-paths containing a list not at the end of the
path; see [#186]). Possible **(BIC)**.
- Improved handling of abstract rules references. Improved the definition of
rules for various cases. Docs + tests ([#185], [#166]) **(BIC)**
- Changed the time of call of match rule object processors to be during the
model construction. This enable proper override of base types processors and
calls on nested match rules ([#183], [#182], [#96]). Possible **(BIC)**
- CLI migrated to the [click] library ([#162])
- Docs improvements ([#146], [#153], [#151]). Thanks simkimsia@GitHub.
- `FQN` constuctor param `follow_loaded_models` removed and introduced
callback `scope_rediction_logic` to implement arbitrary logic on FQN
resolution ([#133], [#114], [#103]) **(BIC)**
- Changed attribute name for the meta-model object (from `metamodel._parser`
to `metamodel._parser_blueprint`). ([#93]) **(BIC)**
- Started using _[Keep a Changelog][keepachangelog]_ ([#174])
- Started using _[Semantic Versioning][semver]_ ([#174])
- Dropped support for Python 3.3
- Fixed:
- White-spaces in string matches were erroneously stripped ([#188])
- Calling of match rule object processors ([#183], [#182], [#96])
- Circular rule references in grammars ([#173], [#159], [#155])
- Assertion error while calling object processors with multi meta models
(extended grammars) and custom types ([#141], [#140])
- Using a sequence of matches and rule reference in an abstract rule choice
alternative, and explicitly disallowing referencing more than one rule in an
abstract rule choice alternative ([#134])
- Unicode requirement for (meta)-model strings API parameters made strict.
This should prevent common errors with Python 2.x. ([#120]) (related: [#99],
[#105], [#117]). Possible **(BIC)**
- OS incompatibility fixes (path separator). ([#114])
- Object processors called twice for imported models ([#108], [#118])
- Documentation and examples regarding `NUMBER` base type ([#97], [#100]).
Thanks approxit@GitHub
* Fri Apr 05 2019 pgajdos@suse.com
- version update to 1.8.0
- https://github.com/igordejanovic/textX/pull/71
- Regular expression with group support
- See [the
docs](http://www.igordejanovic.net/textX/development/grammar/#matches)
for usage.
- https://github.com/igordejanovic/textX/pull/69
- Added search path feature (issue #66) - search path support for model
files (importURI scope providers; see docs/scoping.md).
- https://github.com/igordejanovic/textX/pull/77
- New multi meta model support for references-only for better meta model
modularity (referencing models without having access to the grammar,
see docs/multimetamodel.md).
- https://github.com/igordejanovic/textX/pull/79
- Fixing obj_processors calling.
- https://github.com/igordejanovic/textX/pull/84
- New contribution guide.
- https://github.com/igordejanovic/textX/pull/81
- Bugfix: lost encoding for multi meta-model.
- https://github.com/igordejanovic/textX/pull/68
- changed parser access in metamodel (private attribute "_parser")
- mkdocs documentation now uses [mike](https://github.com/jimporter/mike) for
multiversion support.
* Tue Dec 04 2018 Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
* Thu Nov 22 2018 Bernhard Wiedemann <bwiedemann@suse.com>
- drop indeterministic .dot files to make package build reproducible
(boo#1114571)
* Fri Jul 06 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)!