Coder Social home page Coder Social logo

mvalliath / tanzu-plugin-runtime Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vmware-tanzu/tanzu-plugin-runtime

0.0 0.0 0.0 139.96 MB

The Tanzu Plugin Runtime provides functionality and helper methods to develop Tanzu CLI plugins

License: Apache License 2.0

Shell 0.61% Go 98.24% Makefile 1.15%

tanzu-plugin-runtime's Introduction

Tanzu Plugin Runtime

Cross-version API Compatibility Tests

NOTE: The first alpha release is available for evaluation. Please watch this page for further updates as we work towards our first official release in the second quarter of 2023.

Overview

The Tanzu CLI is based on a plugin architecture. This architecture enables teams to build, own, and release their own piece of functionality as well as enable external partners to integrate with the system.

The Tanzu Plugin Runtime is a library that provides functionality and helper methods to develop Tanzu CLI plugins.

Developers begin plugin development by using the builder plugin to bootstrap a new plugin project. The code generated in the project relies on the runtime to provide some functionality common to all plugins. For more information about the development process, see the Tanzu CLI Plugin Development guide

The library

This Tanzu Plugin Runtime broadly consists of:

  1. CLI UX Component library
  2. Configuration library
  3. Plugin integration
  4. Command helpers
  5. Test helpers

CLI UX Component Library

This package implements reusable CLI user interface components, including:

  • output writers (table, listtable, json, yaml, spinner)
  • prompt
  • selector
  • question

For more details go to Component Library

Configuration Library

This package implements helper functions to read, write and update various Tanzu CLI configuration objects like Contexts, DiscoverySources, CLI Features and environment settings.

For more details about the design and APIs go to Configuration Library

Plugin integration

This package implements helper functions for new plugin creation. This is one of the main packages that each and every plugin will need to import to integrate with the Tanzu CLI. For more information about the development process, see the Tanzu CLI Plugin Development guide

Command Helpers

This package implements command specific helper functions like command deprecation, etc.

Test Helpers

This package implements helper functions to develop test plugins and Cross-version Configuration Library APIs compatibility testing

Besides unit and integration tests, the runtime APIs are also being tested in the presence of other versions runtime client code as part of cross-version API compatibility testing. These tests are important in ensuring interoperability among runtime clients (and hence different generations of CLI plugins)

Cross Version API Compatibility Testing

Cross Version API Compatibility testing ensures that Configuration Library APIs of different Tanzu Plugin Runtime versions work as expected as long as those Tanzu Plugin Runtime versions are supported.

Cross Version API Compatibility testing simulates the interaction of Configuration library APIs provided by different versions of plugin runtimes to ensure that they can interoperate with one another.

For more details go to Cross-version API Compatibility

Contributing

Thanks for taking the time to join our community and start contributing! We welcome pull requests. Feel free to dig through the issues and jump in.

Before you begin

  • Check out the contribution guidelines to learn more about how to contribute.
  • Check out the document here about the project's support process.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.