Commit Graph

4 Commits

Author SHA1 Message Date
Stan Lagun f36fe4929d Support of MuranoPL extended metadata was added
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
2016-03-03 12:32:19 +00:00
Stan Lagun 0ff2fff717 Versioning for class configs
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
2016-02-14 18:11:50 +03:00
zhu.rong a1fca22926 Delete the unused LOG configure code
Delete the unused LOG configure code and import code

Change-Id: I423ce866ee9907577c0cf5b171bb3c295d6f0d04
2015-09-12 15:28:16 +08:00
Stan Lagun 068831ccd8 Package versioning
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
2015-09-03 12:06:42 +00:00