Controller Core Functionality Tutorials proposal

Name

Controller Core Functionality Tutorials

Repo Name

coretutorials

Description

The Tutorials project is focused on developers, to facilitate:

  • New Project Onboarding: Tutorials for foundational projects, or projects early in the dependency tree; that a new project would need to understand and leverage to get started

  • Documenting a standard project structure (i.e. Archetype) from the standpoint of a 'paint-by-numbers' approach in a templated fashion

  • This will result in:

    • Re-usable pieces of code/configuration

    • Standardise "best-practices" coding patterns

It is using a wiki-based walk-thru format with a 'chaptered' approach. Checkpoints are downloadable along the way from a single OpenDaylight repository. With this in mind, it is intended to eventually move to the ascii-docs format, so that Tutorials would be embedded in the release they pertain to.

It is intended to cross (sub-)projects/components such as:

  • Config Subsystem

  • MD-SAL/YANGTOOLS

    • Datastores, Messaging, Notifications

    • Inventory, Topology

  • OpenFlowPlugin and OpenFlowJava

  • NETCONF / RESTCONF

Projects (and where relevant, specific sub-projects) considered in scope (from https://wiki.opendaylight.org/images/0/03/ODL-Helium-dependency.png):

  • Controller

    • MD-SAL

    • Clustering (potential)

  • Yangtools

  • OpenFlowJava

  • OpenFlowPlugin

Work to date can be found here:

Related documentation/tutorial activities currently on the wiki but may move to ascii-docs too and possibly this project's repository:

Alternatives Considered

The Documentation project succinctly addresses Usability i.e. a broader audience's ability to use the OpenDaylight controller (i.e. End-users, Operators, Developers) It also provides a per project format/structure (and hence does not cross project/component boundaries)

While considering if we could merge this activity with the Documentation project, it was felt by members of the MD-SAL Hackers meeting (where this idea originated) that the goals differed significantly enough that it shouldn't be bundled; and due it's cross-project nature, required a separate repository.

It is NOT a replacement for per project documentation, nor a place for specific projects outside of core functionality to store Tutorials. If the format is useful, it maybe helpful for projects to adopt a similar framework for their tutorials.

Scope

It is intended to cross (sub-)projects/components such as:

  • Config Subsystem

  • MD-SAL/YANGTOOLS

    • Datastores, Messaging, Notifications

    • Inventory, Topology

  • OpenFlowPlugin and OpenFlowJava

  • NETCONF / RESTCONF

Projects (and where relevant, specific sub-projects) considered in scope (from https://wiki.opendaylight.org/images/0/03/ODL-Helium-dependency.png):

  • Controller

    • MD-SAL

    • Clustering (potential)

  • Yangtools

  • OpenFlowJava

  • OpenFlowPlugin

Resources Committed (developers committed to working)

Initial Committers

Vendor Neutral

  • No vendor package names in code

  • No vendor branding present in code or output of build

Meets Board Policy (including IPR)

Yes.