8023YangDesignTeam / EthernetYang

For the development of YANG modules for IEEE 802.3 Ethernet
http://www.ieee802.org/3/
1 stars 2 forks source link

Build Status

YANG

This repository contains a collection of YANG modules:

Contribution Procedures

Direct Contributions

This is the preferred method of contribution. With this approach you pick where your models will reside in the directory hierarchy, and manage the files mainly in your own fork of the main repository, submitting a pull request when you wish to make public updated models.

By convention, there should also be a check.sh script provided by the contributors, which should be referenced from the travis.yml file for CI builds. Multiple examples are already in place to copy and modify as required.

Contributions Via Submodules

Standards bodies or vendors may also provide models to the main repository via a git submodule. Examples of this can be see under https://github.com/YangModels/yang/tree/master/standard, with the BBF and MEF submodules. By convention, if a submodule is used, there should also be an equivalent check.sh provided by the contributors, which should be referenced from the travis.yml file for CI builds. An example of this may be found in the BBF's submodule, and a sample invocation here.

A summary of the suggested process is:

  1. Create a fork of https://github.com/YangModels/yang
  2. Enable Travis on your fork
  3. Add your source git repository as a submodule to your fork:
    • Clone your fork
    • cd into vendor or standards directory (depending on the source of your models)
    • git submodule add https://github.com/<owner>/<repository>.git <name>
  4. Add appropriate entry to the .travis.yml file to check your models.
  5. Commit changes to your fork

After you've verified that the submodule addition and module checking is working ok, submit a PR to the main repository. This will take the latest commit from your repository and make it available as a submodule.

Subsequently, when an updated set of models needs to be released, fork, clone, update submodule, commit and submit PR, also ensuring that Travis is again enabled on your fork to allow pre-pull request checks.

Travis CI Jobs

In general, pull requests will not be accepted without check.sh scripts being in place and a clean Travis CI build being achieved. As can be seen from existing check scipts, all of which use pyang today, the bar is set fairly low. The minimum requirement is that the models contributed compile correctly such that pyang plugins such as the tree plugin will function correctly, and the schema tree is available for interrogation and tasks such as code generation.

As noted above, the check scripts today depend on pyang, and, as of writing, this tool does not support validation of content such as regular expressions or XPath constraints. As such, models available in this repository may not be accepted by tools that perform more complete semantic validation. An example of such a tool is the OpenDaylight controller.

Slack Group and Channels

To Subscribe and Browse Click Here

Models Directory Structure

The following directories are maintained for YANG models [license note in brackets]:

Tools Directory Structure

The following directories are maintained for tools [license note in brackets]:

License Notes

[1] IETF Trust License (Note Well):

[2] OpenDaylight Eclipse License:

[3] IEEE License:

[4] Vendor Specific License:

[5]

[6] Broadband Forum License: