Skip to content
{ Source++ } // Automated Programming Assistant
Branch: master
Clone or download
Latest commit 46ad39a Mar 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
agent
api
core
docker
docs
gradle/wrapper
plugin
tooltip
.gitignore
.travis.yml
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Mar 2, 2019
LICENSE
README.md
build.gradle
gradlew
gradlew.bat
settings.gradle

README.md

Open-source Automated Programming Assistant

Website :: Knowledge Base :: Roadmap


Introduction

Source++ is an open-source automated programming assistant with runtime-aware and context-aware functionality. Source++ is an observant-only programming assistant and aims to bridge application performance management (APM) solutions and the software developer's integrated development environment (IDE) to enable tighter feedback loops.

Source++ will not write source code for you. Source++ can be used to help debug and prevent runtime issues by providing contextualized behavior about your source code throughout development. Future versions of Source++ aspire to provide additional AI-based pair programming features.

Why?

  1. To enable developers easy access to feedback-driven development methodologies
  2. APMs often lack tight integration with actual development of the source code they monitor
  3. Source code comprehension can be improved by providing an extra dimension of behavior linked with said source code (ie. being able to visualize how a particular method acts in certain environments vs. locally)
  4. No websites or dashboards necessary to debug complex asynchronous runtime issues (just look at and follow through your actual source code)
  5. AI-based pair programming is going to be pretty cool when we get it right

Architectural Overview

Getting Started

Prerequisites

  • Supported APMs: Apache SkyWalking
  • Supported IDEs: JetBrains
  • Supported OSes: Linux, macOS, and Windows

Installation

Downloading the IDE

Install a JetBrains IDE if you don’t already have one.

Install the Source++ Plugin

  1. Press Ctrl+Alt+S to open the Settings dialog and then go to Plugins.
  2. Click the Install JetBrains plugin.
  3. In the dialog that opens, search for Source++.
  4. Press Install.
  5. Click OK in the Settings dialog and restart your IDE.

After installation you will need to configure the Source++ Plugin (see Configure Plugin).

Code Structure

Module Description Language
:agent:jvm-agent Used to activate and configure APMs' JVM agents Java 8+
:api Holds common data models and communication clients Java 8+
:core Handles integrations, contextualization, & subscriptions Groovy 2.4+
:plugin:jetbrains-plugin JetBrains implementation of the Source++ Plugin Groovy 2.4+
:plugin:source-plugin-commons Common Source++ Plugin functionality Groovy 2.4+
:tooltip Used to visually display contextualized artifact data Groovy 2.4+

Building/Testing

Run all Source++ tests:

./gradlew test

Build Source++ Agent:

./gradlew buildAgent

Build Source++ Plugin:

./gradlew buildPlugin

Run Source++ Core (in Docker):

./gradlew runCore

Run Source++ Plugin (in JetBrains IDE):

./gradlew runIde

Documentation

For full documentation, visit the knowledge base.

Roadmap

To know what is going on, see the roadmap.

Contributing

Feel free to open issues on just about anything related to Source++.

Attribution

This project was highly influenced by PerformanceHat. Thanks for the insights that made this possible.

License

Apache License 2.0

You can’t perform that action at this time.