From c1b3d096e9ba388c244e90a9b2406a1034e3ef1b Mon Sep 17 00:00:00 2001 From: checktheroads Date: Mon, 24 Jun 2019 14:03:11 -0700 Subject: [PATCH] README Improvements; Community docs --- .github/PULL_REQUEST_TEMPLATE.md | 3 ++ CONTRIBUTING.md | 47 +++++++++++++++++++++++++++++++ README.md | 48 +++++++++++++++++++------------- 3 files changed, 79 insertions(+), 19 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CONTRIBUTING.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..d9182b5 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,3 @@ +<-- Thank you for your interest in contributing to hyperglass. The contribution policy requires that a feature request or bug must be opened prior to a pull request being reviewed. Please list the related feature request or bug below: --> + +### Fixes: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..60b6ce0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,47 @@ +## Getting Help + +If you encounter any issues installing or using hyperglass, open a GitHub issue. + +## Reporting Bugs + +- Check the [GitHub issues list](https://github.com/checktheroads/hyperglass/issues) + to see if the bug you've found has already been reported. Feel free to add a comment describing how it's affecting your installation. + +- When submitting an issue, please be as descriptive as possible. Be sure to include: + + - The environment in which hyperglass is running + - (Scrubbed) `configuration.toml` and `devices.toml` files + - The exact steps that can be taken to reproduce the issue (if applicable) + - Any error messages or exceptions generated + - Screenshots (if applicable) + +- Please avoid prepending any sort of tag (e.g. "Bug") to the issue title. The issue will be appropriately tagged after it is reviewed. + +## Feature Requests + +- First, check the [GitHub issues list](https://github.com/checktheroads/hyperglass/issues) to see if the feature you're requesting is already listed. Feel free to add a comment supporting the addition of the feature. + +- When submitting a feature request on GitHub, be sure to include the + following: + + - A detailed description of the proposed functionality + - A use case for the feature; who would use it and what value it would add + to hyperglass + - Any third-party libraries or other resources which would be involved + +- Please avoid prepending any sort of tag (e.g. "Feature") to the issue title. The issue will be appropriately tagged after it is reviewed. + +## Submitting Pull Requests + +- Be sure to open an issue **before** starting work on a pull request, and discuss your idea with the hyperglass maintainers before beginning work. This will help prevent wasting time on something that may be out of hyperglass's intended scope. + +- Any pull request which does _not_ relate to an accepted issue will be closed. + +- When submitting a pull request, please be sure to work off of the `develop` branch, rather than `master`. The `develop` branch is used for ongoing development, while `master` is used for stable, tested, release-worthy versions of hyperglass. + +- All code submissions should meet the following criteria (CI will enforce + these checks): + + - Python syntax is valid + - Python code is [black](https://github.com/python/black) formatted + - Python code is rated **10/10** by Pylint (using provided `.pylintrc` files) diff --git a/README.md b/README.md index 1ddd2a5..dd52985 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,23 @@ **hyperglass** is a modern network looking glass application. A looking glass is typically implemented by network service providers as a way of providing customers, peers, and partners with a way to easily view elements of, or run tests from the provider's network. -**hyperglass** is intended to make implementing a looking glass too easy not to do, with the lofty goal of improving the internet community at large by making looking glasses more common across autonomous systems of any size. +
-
+
+ +[**Documentation**](https://hyperglass.readthedocs.io)   |   [**Screenshots**](https://hyperglass.readthedocs.io/en/latest/screenshots/)   |   [**Live Demo**](https://hyperglass.allroads.io/) [![Build Status](https://travis-ci.org/checktheroads/hyperglass.svg?branch=master)](https://travis-ci.org/checktheroads/hyperglass) ![GitHub issues](https://img.shields.io/github/issues/checktheroads/hyperglass.svg) ![Pylint](https://raw.githubusercontent.com/checktheroads/hyperglass/master/pylint.svg?sanitize=true) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black) +
+ +
+ +**hyperglass** is intended to make implementing a looking glass too easy not to do, with the lofty goal of improving the internet community at large by making looking glasses more common across autonomous systems of any size. + ## Features - BGP Route, BGP Community, BGP AS Path, Ping, Traceroute @@ -28,32 +36,34 @@ - Query response caching with configurable cache timeout - [Prometheus](https://prometheus.io/) metrics for query statistics tracking -### [Documentation](https://hyperglass.readthedocs.io) - -### [Preview](https://hyperglass.readthedocs.io/en/latest/screenshots/) - -### [Demo](https://hyperglass.allroads.io/) - ## Platform Support -Theoretically, any vendor supported by Netmiko can be supported by hyperglass. However, hyperglass is preconfigured to support the following platforms: +hyperglass is preconfigured to support the following platforms: -### Routers +- **Cisco IOS-XR**: Netmiko `cisco_xr` vendor class +- **Cisco Classic IOS/IOS-XE**: Netmiko `cisco_ios` vendor class +- **Juniper JunOS**: Netmiko `junos` vendor class +- **FRRouting**: [`hyperglass-frr`](https://github.com/checktheroads/hyperglass-frr) API +- **BIRD**: [`hyperglass-bird`](https://github.com/checktheroads/hyperglass-bird) API -- Cisco IOS-XR: Netmiko `cisco_xr` vendor class -- Cisco Classic IOS/IOS-XE: Netmiko `cisco_ios` vendor class -- Juniper JunOS: Netmiko `junos` vendor class -- FRRouting: [hyperglass-frr](https://github.com/checktheroads/hyperglass-frr) API -- BIRD: [hyperglass-bird](https://github.com/checktheroads/hyperglass-bird) API - -### Proxies - -- Linux: `linux_ssh` +Theoretically, any vendor supported by Netmiko can be supported by hyperglass. To request support for a specifc platform, please [submit a Github Issue](https://github.com/checktheroads/hyperglass/issues/new) with the **enhancement** label. ## Coming Soon - [GoBGP](https://github.com/osrg/gobgp) Support +## Community + +For now, hyperglass news will be made available via Twitter: + +- [@checktheroads](https://twitter.com/checktheroads) + +**hyperglass is developed with the express intention of being free to the networking community**. + +*However, the hyperglass demo does cost [/checktheroads](https://github.com/checktheroads) about $15/month for 3 Digital Ocean droplets. If you're feeling particularly helpful and want to help offset that cost, small donations are welcome.* + +[![Donate](https://img.shields.io/badge/Donate-blue.svg?logo=paypal)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ZQFH3BB2B5M3E&source=url) + ## Acknowledgements - This project originally started as a fork of [vraulsan](https://github.com/vraulsan)'s [looking-glass](https://github.com/vraulsan/looking-glass) project. The guts of the Flask components still remain from that project, but almost everything else has been rewritten. Nevertheless, the inspiration for building hyperglass came from here.