User Tools

Site Tools


project_proposals:yangforge

This is an old revision of the document!


Project Name

  • Proposed project name: YangForge
  • Proposed repository name: yangforge
  • Project Category: Collaborative Development

Project Description

YangForge is an open-source toolkit and development framework designed to greatly simplify YANG data model driven application SDLC. This project provides easy-to-use CLI commands to work with YANG schema files and contains a number of built-in dynamic interface generators to dynamically create interfaces such as REST/JSON via a single command.

The primary target use cases are as follows:

  • Enable Information Model designers/architects to test/validate YANG schemas
  • Enable Developers to easily attach event-driven control logic to data models
  • Enable Collaborators to build/sign/publish and share YANG modules
  • Enable Operators to deploy/manage YANG modules in runtime

This project is a spin-out from Resource Management (Promise) project. While working on the implementation track for the Promise project (which required comprehensive data modeling of the ResourceElements across the entire Virtualized Infrastructure), a general tooling development initiative was kicked off and the YangForge toolkit was created as a result.

This project has been open-sourced on 7/17/2015 and currently averaging ~500 downloads per week.

Following the general availability of YangForge several weeks ago, this project has been presented to the ETSI TST working group as well as to other OPNFV project leads in order to introduce and collect feedback for applicability in helping to accelerate their own respective requirements driven projects that can benefit by leveraging this toolkit for model-driven implementation. Based on the collective positive feedback and recommendations, we have decided to initiate a separate stand-alone project within OPNFV for increasing visibility to the wider community and serving as a general tooling project for supporting other requirements driven projects within OPNFV.

The following OPNFV projects have expressed their support for YangForge:

Scope

The YangForge project is currently available for download/use. To check out current capabilities and usage documentation, please visit YangForge on Github. For more information on how it's being utilized for the Promise project, please visit Promise on Github.

This project's primary goal is to streamline and accelerate realization of requirements driven projects by abstracting away complexity and simplifying workflows. As such, it aims to encapsulate many of the traditional SDLC phases by enabling users to exercise these stages within a converged toolkit environment. The hope is to foster greater collaboration loop by providing a forum for exchanging model driven implementation outputs and building on top of existing modules to create new capabilities.

To attain such ends, the following are many new features/enhancements planned for improving the YangForge toolkit:

  • Lifecycle management of modules
    • implement init/build/config/deploy/sign/publish commands
    • provide hosting of public registry of modules
  • Complete coverage of YANG version 1.0 RFC-6020 language extensions
    • currently ~80% coverage of schema language statements (out of 64 total)
  • Bundle additional YANG schema modules
    • currently supports: ietf-yang-types, ietf-inet-types, iana-crypt-hash, complex-types
    • plan is to support all IETF and other standards approved YANG schemas
  • Additional interface generators
    • currently supports: cli, express, restjson
    • autodoc - Automatic Documentation Generator
    • explorer - Web-based data model browser and editor
    • storage - Data persistence layer to support various databases
    • websocket - Support for websocket I/O
    • xmpp - Support for XMPP transactions between components

As the project evolves and collaborates closely with various other projects, we expect to identify many more requirements and features that will be synthesized into the project roadmap. Although there are future possibilities for this project to reach outside the OPNFV community (the current download stats indicate wider external community interest), the current plan for the remainder of 2015 is to primarily focus on supporting the OPNFV community initiated projects and their requirements.

Documentation

Dependencies

Committers and Contributors

Project Lead: Peter K. Lee plee@clearpathnet.com

Committers:

  • TBD

Contributors:

  • TBD

Planned Deliverable

Planned Release Schedule

YangForge has an ambitious near-term release schedule targeting monthly release milestones until the end of 2015. The current plan is to align with OPNFV Brahmaputra release with the YangForge 1.0 release at the beginning of 2016.

  • 0.9.x - available now
  • 0.10.x - October 2015
  • 0.11.x - November 2015
  • 0.12.x - December 2015
project_proposals/yangforge.1441142663.txt.gz · Last modified: 2015/09/01 21:24 by Peter Lee