Skip to content

project yml

Stefan Schneider edited this page May 18, 2018 · 2 revisions

The project.yml file

The project.yml is automatically generated when creating a new project with the tng-project command, e.g., with tng-project -p p1 (see the generated project.yml below). It includes metadata about the package (name, vendor, version, maintainer, description), a version field, and most importantly a list of all files belonging to the project.

descriptor_extension: yml
files:
- path: sources\vnfd\vnfd-sample.yml
  tags:
  - eu.5gtango
  type: application/vnd.5gtango.vnfd
- path: sources\nsd\nsd-sample.yml
  tags:
  - eu.5gtango
  type: application/vnd.5gtango.nsd
package:
  description: Some description about this sample
  maintainer: Name, Company, Contact
  name: 5gtango-project-sample
  vendor: eu.5gtango
  version: '0.1'
version: '0.5'

The file list contains the file path (relative to the project root), the MIME type, and tags for each file. Tags are optional and specify the target platform (or platforms) belonging to each file. Hence, tng-project can be used to create and organize projects for 5GTANGO but also for other platforms like OSM. When creating a package, tng-package uses the tags for creating different layers corresponding to the different target platforms. For details about layering, see the package specification.

The basic structure of fields in the project.yml is the following:

+- descriptor_extension
+- version
+- package:
|  +- name
|  +- vendor
|  +- version
|  +- maintainer
|  +- description
+- files:
|  +- path
|  +- type
|  +- tags
|  +- ...

The metadata in the package field can be edited directly in the project.yml. For adding and removing files to the project, there are command line tools tng-project --add filename -p projectname and tng-project --remove filename -p projectname, respectively.