Now it is possible to
1) Define metadata classes that describe arbitrary metadata.
Meta-classes has all the capabilities of regular classes and
in addition has 3 new attributes: Cardinality, Applies and Inherited
2) It is possible to attach meta-class instances to packages,
classes (including other meta-classes), properties, methods and
method arguments. Each of them got new "Meta" key containing
list (or single scalar) of meta-class instances
Implements: blueprint metadata-in-muranopl
Change-Id: Ieac999a877221a9ecd7d7379b39557036e882aa7
Adds versioning for class config files.
For class foo.bar version 1.2.3 the following file names will be examined:
foo.bar-1.2.3.json
foo.bar-1.2.3.yaml
foo.bar-1.2.json
foo.bar-1.2.yaml
foo.bar-1.json
foo.bar-1.yaml
exactly in this order.
In addition for classes of version 0.x.y file name without version suffix are
also examined as a last attempt so the backward compatibility is retained.
Change-Id: Ie0135589d2a637985723244c94ef45a8f1626df8
With this change MuranoPackage becomes first-class DSL citizen.
Packages have version, runtime_version (that is specified
in Format attribute of the manifest file) and a list of classes.
Previously engine used to have package loader which had most
of "load" functionality and class loader that mostly acted as an
adapter from package loader to interface that DSL used to
get classes. Now class loader is gone and is replaced with
package loader at the DSL level. Package loader is responsible
for loading packages by either package or class name (as it was
before) plus semantic_version spec (for example ">=1.2,<2.0").
Package loader can now keep track of several versions of the same
package.
Also packages now have requirements with version specs.
All class names that are encountered in application code are
looked up within requirements only. As a consequence
packages that use other packages without referencing
them explicitly will become broken. An exception from this rule
is core library which is referenced automatically.
Partially implements: blueprint murano-versioning
Change-Id: I8789ba45b6210e71bf4977a766f82b66d2a2d270