Difference between revisions of "Template:Project Facts"

From fd.io
Jump to: navigation, search
Line 1: Line 1:
{| class="wikitable" style="color:#C95000; background-color:#FFE6CD; margin-left: 10px;"  align="right" border="1"
+
{{Project Facts
|align="center"|'''{{{name}}} Facts'''
+
|name=Sweetcomb
|-
+
|shortname=Sweetcomb
|
+
|jiraName=Sweetcomb
'''Project Lead:''' {{{projectLead}}}<br>
+
|projectLead= [mailto:hongjun.ni@intel.com Hongjun Ni], @ Intel
'''Committers:'''<br>
+
|committers=
{{{committers}}} <br>
+
* [mailto:drenfong.wang@intel.com Drenfong Wang], @ Intel,
'''Repository:''' {{{repo|{{#if:{{{shortname|}}}|git clone https://gerrit.fd.io/r/{{{shortname}}}|unspecified}} }}}<br>
+
* [mailto:wangchuanguo@huachentel.com Chuanguo Wang], @ HuachenTel,
'''Mailing List:''' {{{mailingList|{{#if:{{{shortname|}}}|[https://lists.fd.io/mailman/listinfo/{{{shortname}}}-dev {{{shortname}}}<nowiki>-dev@lists.fd.io</nowiki>]|unspecified}} }}}<br>
+
* [mailto:chenhui@huachentel.com Hui Chen], @ HuachenTel,
'''Jenkins:''' {{{jenkins|{{#if:{{{shortname|}}}|[https://jenkins.fd.io/view/{{{shortname}}}/ jenkins silo]|unspecified}} }}}<br>
+
* [mailto:lizhuoqun@cmhi.chinamobile.com Zhuoqun Li], @ China Mobile,
'''Gerrit Patches:''' {{{gerrit|{{#if:{{{shortname|}}}|[https://gerrit.fd.io/r/#/q/project:{{{shortname}}} code patches/reviews]|unspecified}} }}}<br>
+
* [mailto:lihf140@chinaunicom.cn Hongfeng Li], @ China Unicom,
'''Bugs:''' {{{jira|{{#if:{{{jiraName|}}}|[https://jira.fd.io/projects/{{{jiraName}}} {{{jiraName}}} bugs]|unspecified}} }}}<br>
+
* [mailto:zhijl.bri@chinatelecom.cn Jinglong Zhi], @ China Telecom,
|}<noinclude>
+
* [mailto:changlin.li@nxp.com Changlin Li], @ NXP,
 +
* [mailto:tianyi.wang@tieto.com Tianyi Wang], @ Tieto,
 +
* [mailto:davidfgao@tencent.com Feng Gao], @ Tencent,
 +
* [mailto:jingqing.cjy@alibaba-inc.com Jianyong Chen], @ Alibaba,
 +
* [mailto:gu.jian1@zte.com.cn Jian Gu], @ ZTE,
 +
* [mailto:jtollet@cisco.com Jerome Tollet], @ Cisco,
 +
* [mailto:mkonstan@cisco.com Maciek Konstantynowicz], @ Cisco,
 +
* [mailto:raszabo@cisco.com Rastislav Szabo], @ Cisco,
 +
* [mailto:hongjun.ni@intel.com Hongjun Ni], @ Intel,
 +
}}
 +
== Intro ==
  
<font color="red">'''NOTE:''' This template should be used only for officially approved fd.io projects.</font>
+
Sweetcomb is a generic NETCONF/RESTCONF java-based management agent and provides a framework for building specialized agents.
  
This Project Facts template is used to give people an at-a-glance view of the core information about a project and also used to track the current projects in fd.io.
+
It uses many features and utilities from different [http://www.opendaylight.org Opendaylight (ODL)] projects (e.g. yangtools, controller, mdsal and netconf).
 +
The biggest use case of Sweetcomb is VPP (fd.io’s Vector packet processor). Sweetcomb delivers a management agent to enable integration of VPP with e.g. SDN controllers such as Opendaylight.
  
==Usage==
+
For VPP specific distribution of Sweetcomb, please refer to [https://wiki.fd.io/view/Hc2vpp hc2vpp] project.
  
The template is designed to automagically fill out the mailing list, jenkins, gerrit patches, and bugs if you just fill in the <tt>shortname</tt> variable. The other fields need to be specified by hand. See any of the pages above for examples.
+
=== Overview ===
  
=== Fields ===
+
[[File:Sweetcomb + VPP stack.png|frameless|Sweetcomb in VPP stack]]
  
The template supports the following fields. Optional ones are called out in ''italics'' and labeled with "(optional)". Automagically populated fields are also called out. <font color="red">''Note that field names are case sensitive.''</font>
+
==== Slides ====
  
* <tt>projectLead</tt>
+
Sweetcomb overview presentation from Paris FD.io 2016 event: [[File:Sweetcomb overview.pptx|thumb|Sweetcomb overview prepared for Paris FD.io 2016 event]]
* <tt>committers</tt>
+
* <tt>name</tt>
+
* <tt>shortname</tt>: automagically populates the six shown sub-fields, but you can override it by explicitly defining them as well.
+
** <tt>''gerrit''</tt> (optional)
+
** <tt>''jenkins''</tt> (optional)
+
** <tt>''repo''</tt> (optional)
+
  
==Categories==
+
Sweetcomb 1609 overview update from fd.io Seattle summit 2016: [[File:HC 1609 overview.pptx|thumb|Slides detailing Sweetcomb's goal, architecture and features as of 1609 release]]
  
This template adds certain categories to pages that use it. First, it adds the "Project Main Pages" category any page. As a consequence, a list of the pages using this template can be found here: [[:Category:Project Main Pages]].
+
==== Generic nature ====
  
To include that list inside of another page you can use:
+
Sweetcomb provides a distribution to control VPP. However HC is developed as a generic agent that can be positioned on top of any other software/system etc. that can be controlled from Java(or some other JVM language) code. This is achieved thanks to the modularity of HC enabling any "translation plugin" such as V3PO (VPP core management translation code) to work in HC framework.
  
<tt><nowiki><DynamicPageList></nowiki><br/>
+
==== Minimal distribution ====
category    = Project Main Pages<br/>
+
ordermethod = categorysortkey<br/>
+
order      = ascending<br/>
+
<nowiki></DynamicPageList></nowiki></tt>
+
  
Like this:
+
Sweetcomb provides a minimal distribution that contains only:
<DynamicPageList>
+
* HC framework jars + plugin jars + dependencies from Opendaylight
category    = Project Main Pages
+
* HC framework config files + plugin config files
ordermethod = categorysortkey
+
* Runnable shell scripts
order      = ascending
+
</DynamicPageList>
+
  
Note that indirectly adding a category to a page like this is not instantaneous in mediawiki, but will instead be [http://en.wikipedia.org/wiki/Help:Category#Categories_and_templates processed by the job queue] and then they will be marked as in the appropriate category. You can accelerate this process by performing a [http://en.wikipedia.org/wiki/Help:Null_edit#Null_edit null edit].
+
== Project Contact Name and Email ==
 +
* [mailto:hongjun.ni@intel.com Hongjun Ni], @ Intel,  
 +
* [mailto:lixingfu@huachentel.com Xingfu Li], @ HuachenTel,
 +
* [mailto:lizhuoqun@cmhi.chinamobile.com Zhuoqun Li], @ China Mobile,
 +
* [mailto:lihf140@chinaunicom.cn Hongfeng Li], @ China Unicom,
 +
* [mailto:zhijl.bri@chinatelecom.cn Jinglong Zhi], @ China Telecom,
 +
* [mailto:changlin.li@nxp.com Changlin Li], @ NXP,
 +
* [mailto:tianyi.wang@tieto.com Tianyi Wang], @ Tieto,
 +
* [mailto:davidfgao@tencent.com Feng Gao], @ Tencent,
 +
* [mailto:jingqing.cjy@alibaba-inc.com Jianyong Chen], @ Alibaba,
 +
* [mailto:gu.jian1@zte.com.cn Jian Gu], @ ZTE,
 +
* [mailto:jtollet@cisco.com Jerome Tollet], @ Cisco,
 +
* [mailto:mkonstan@cisco.com Maciek Konstantynowicz], @ Cisco,
 +
* [mailto:raszabo@cisco.com Rastislav Szabo], @ Cisco,
  
===Project State Categories===
+
== Meeting ==
  
This template also automatically, adds the "${project state} Projects" category to the page, so we can produce a category for each project state and thus we can list them out very easily as follows:
+
[https://wiki.fd.io/view/Sweetcomb/Meeting Sweetcomb meeting]
  
'''Incubation Projects:'''
+
== Scope ==
<DynamicPageList>
+
category    = Incubation Projects
+
ordermethod = categorysortkey
+
order      = ascending
+
</DynamicPageList>
+
  
'''Bootstrap Projects:'''
+
This section is devided into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of Sweetcomb project and what will be just reused from other projects (or where Sweetcomb relies on other projects).
<DynamicPageList>
+
category    = Bootstrap Projects
+
ordermethod = categorysortkey
+
order      = ascending
+
</DynamicPageList>
+
  
Note: This requires that the state be spelled and capitalized consistently.</noinclude><includeonly>[[Category:Project Main Pages]]</includeonly>
+
'''Sweetcomb project scope:'''
 +
* Northbound interfaces:
 +
** [http://tools.ietf.org/html/rfc4741, Netconf] northbound interface
 +
** [https://tools.ietf.org/html/draft-ietf-netconf-restconf-05, Restconf] northbound interface
 +
** [https://www.ietf.org/rfc/rfc4271, BGP]
 +
 
 +
* Translation layer between device management and Yang based data structures
 +
 
 +
* Sweetcomb distribution
 +
** Minimal distribution for Sweetcomb management agent with all dependencies from ODL and their wiring
 +
 
 +
'''Out of scope:'''
 +
* Yang models and translation code for VPP management
 +
** Moved to [https://wiki.fd.io/view/Hc2vpp hc2vpp] in 17.01
 +
 
 +
* Vpp-japi
 +
** Java APIs for VPP, allowing JVM to interact with VPP is out of scope of Sweetcomb project and is part of the base VPP project
 +
 
 +
* Yang parser
 +
** Available from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/yangtools, yangtools] project
 +
 
 +
* Base implementation of northbound interfaces
 +
** Base implementation of generic northbound interfaces is out of scope and will be reused from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/netconf, netconf] project
 +
 
 +
* Yang based data structures and a dedicated DataTree(storage)
 +
** Available from ODL's [https://git.opendaylight.org/gerrit/#/admin/projects/yangtools, yangtools] and [https://git.opendaylight.org/gerrit/#/admin/projects/mdsal, mdsal] projects, not necessarily the entire projects, only required parts in binary form.
 +
 
 +
* Integration/performance testing
 +
** Complex integration or performance tests are out of scope of Sweetcomb project and are part of CSIT project
 +
 
 +
* Any other application based on top of Sweetcomb is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io
 +
 
 +
== Releases ==
 +
 
 +
=== 18.07 - Last stable  ===
 +
 
 +
'''[[Sweetcomb/Release_Plans/Release_Plan_18.07| Release plan]]''':
 +
* Work planned for release
 +
* Milestones leading to the release
 +
 
 +
[https://docs.fd.io/Sweetcomb/1.18.07/Sweetcomb-aggregator/index.html '''Documentation''']:
 +
* Devel documentation
 +
* Overview
 +
* Details
 +
* Javadocs
 +
* ... for each module in Sweetcomb project
 +
 
 +
[https://docs.fd.io/Sweetcomb/1.18.07/release-notes-aggregator/release_notes.html '''Release notes''']:
 +
* New/Updated/Removed/Deprecated Features
 +
* Install guide
 +
* Devel guide
 +
* User guide
 +
 
 +
=== 18.10 - Current master ===
 +
 
 +
'''[[Sweetcomb/Release_Plans/Release_Plan_18.10| Release plan]]''':
 +
* Work planned for release
 +
* Milestones leading to the release
 +
 
 +
[https://docs.fd.io/Sweetcomb/1.18.10-SNAPSHOT/Sweetcomb-aggregator/index.html '''Documentation''']:
 +
* Devel documentation
 +
* Overview
 +
* Details
 +
* Javadocs
 +
* ... for each module in Sweetcomb project
 +
 
 +
[https://docs.fd.io/Sweetcomb/1.18.10-SNAPSHOT/release-notes-aggregator/release_notes.html '''Release notes''']:
 +
* New/Updated/Removed/Deprecated Features
 +
* Install guide
 +
* Devel guide
 +
* User guide
 +
 
 +
=== Previous releases ===
 +
 
 +
 
 +
== Sweetcomb backlog ==
 +
Backlog can be found in: [https://jira.fd.io/secure/Dashboard.jspa?selectPageId=10200 Sweetcomb's JIRA].
 +
 
 +
== Code quality ==
 +
Current sonar analysis can be found at: [https://sonar.fd.io/overview?id=1107 Sweetcomb's sonar]
 +
 
 +
== Devel ==
 +
 
 +
[[Sweetcomb/BranchCutting|HowTo: Cutting stable branches]]
 +
 
 +
[[Sweetcomb/BumpingVersions|HowTo: Bumping versions]]
 +
 
 +
=== Design and architecture ===
 +
 
 +
<span style="color:red">// TODO These all should be part of the code in e.g. adoc format, built during CI, deployed and just linked here</span>
 +
 
 +
[[VPP/Java_API|JVpp Java facade for VPP]]
 +
 
 +
[[Sweetcomb/Translation_Layer|Sweetcomb Translation layer/SPI]]
 +
 
 +
[[Sweetcomb/Persistence|Sweetcomb persistence/Reconciliation with VPP]]
 +
 
 +
[[Sweetcomb/VPPJAPI workflow|Modifying the VPP JVPP API and testing in Sweetcomb]]
 +
 
 +
[[Sweetcomb/IETF-ACL model|IETF_ACL model implementation]]

Revision as of 03:48, 9 November 2018

Sweetcomb Facts

Project Lead: Hongjun Ni, @ Intel
Committers:

Repository: git clone https://gerrit.fd.io/r/Sweetcomb
Mailing List: Sweetcomb-dev@lists.fd.io
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
Bugs: Sweetcomb bugs

Intro

Sweetcomb is a generic NETCONF/RESTCONF java-based management agent and provides a framework for building specialized agents.

It uses many features and utilities from different Opendaylight (ODL) projects (e.g. yangtools, controller, mdsal and netconf). The biggest use case of Sweetcomb is VPP (fd.io’s Vector packet processor). Sweetcomb delivers a management agent to enable integration of VPP with e.g. SDN controllers such as Opendaylight.

For VPP specific distribution of Sweetcomb, please refer to hc2vpp project.

Overview

Sweetcomb in VPP stack

Slides

Sweetcomb overview presentation from Paris FD.io 2016 event:
File:Sweetcomb overview.pptx
Sweetcomb overview prepared for Paris FD.io 2016 event

Sweetcomb 1609 overview update from fd.io Seattle summit 2016: File:HC 1609 overview.pptx

Generic nature

Sweetcomb provides a distribution to control VPP. However HC is developed as a generic agent that can be positioned on top of any other software/system etc. that can be controlled from Java(or some other JVM language) code. This is achieved thanks to the modularity of HC enabling any "translation plugin" such as V3PO (VPP core management translation code) to work in HC framework.

Minimal distribution

Sweetcomb provides a minimal distribution that contains only:

  • HC framework jars + plugin jars + dependencies from Opendaylight
  • HC framework config files + plugin config files
  • Runnable shell scripts

Project Contact Name and Email

Meeting

Sweetcomb meeting

Scope

This section is devided into 2 sections: in-scope and out-of-scope to clearly define what is developed as part of Sweetcomb project and what will be just reused from other projects (or where Sweetcomb relies on other projects).

Sweetcomb project scope:

  • Translation layer between device management and Yang based data structures
  • Sweetcomb distribution
    • Minimal distribution for Sweetcomb management agent with all dependencies from ODL and their wiring

Out of scope:

  • Yang models and translation code for VPP management
  • Vpp-japi
    • Java APIs for VPP, allowing JVM to interact with VPP is out of scope of Sweetcomb project and is part of the base VPP project
  • Yang parser
  • Base implementation of northbound interfaces
    • Base implementation of generic northbound interfaces is out of scope and will be reused from ODL's netconf project
  • Yang based data structures and a dedicated DataTree(storage)
    • Available from ODL's yangtools and mdsal projects, not necessarily the entire projects, only required parts in binary form.
  • Integration/performance testing
    • Complex integration or performance tests are out of scope of Sweetcomb project and are part of CSIT project
  • Any other application based on top of Sweetcomb is out of scope of this project and needs to be hosted in a dedicated project inside or outside of fd.io

Releases

18.07 - Last stable

Release plan:

  • Work planned for release
  • Milestones leading to the release

Documentation:

  • Devel documentation
  • Overview
  • Details
  • Javadocs
  • ... for each module in Sweetcomb project

Release notes:

  • New/Updated/Removed/Deprecated Features
  • Install guide
  • Devel guide
  • User guide

18.10 - Current master

Release plan:

  • Work planned for release
  • Milestones leading to the release

Documentation:

  • Devel documentation
  • Overview
  • Details
  • Javadocs
  • ... for each module in Sweetcomb project

Release notes:

  • New/Updated/Removed/Deprecated Features
  • Install guide
  • Devel guide
  • User guide

Previous releases

Sweetcomb backlog

Backlog can be found in: Sweetcomb's JIRA.

Code quality

Current sonar analysis can be found at: Sweetcomb's sonar

Devel

HowTo: Cutting stable branches

HowTo: Bumping versions

Design and architecture

// TODO These all should be part of the code in e.g. adoc format, built during CI, deployed and just linked here

JVpp Java facade for VPP

Sweetcomb Translation layer/SPI

Sweetcomb persistence/Reconciliation with VPP

Modifying the VPP JVPP API and testing in Sweetcomb

IETF_ACL model implementation