Roadmap

1 New Tools to Support (Plugins)

  • artifactory: #607
  • Jenkins pipeline plugin: #582
  • Cloudflare IP List Monitor: #560
  • Use Validator for Config Validation: #558
  • GitLab CE: #509
  • zendao: #508
  • Tekton
  • Jira-GitHub, Jira-GitLab integration
  • Jenkins-GitHub, Jenkins-GitLab integration
  • ArgoCD-GitHub SSO integration
  • Repository bootstrapping for Python/Nodejs for GitHub, Golang/Python/Nodejs for GitLab
  • GitLab CI workflows for Python/Nodejs
  • FluxCD plugin
  • Trello-GitLab Integration

2 Core Features

General:

  • single config profile support: #596
  • make sure people who don’t have optimum internet connections (e.g., users behind firewall or proxy) can still use DevStream smoothly.

dtm show config

This is already supported, but we will improve the features of it, for example:

  • show the default configs of multiple plugins that are used together
  • interactive: user select plugin then show the default config

3 Quality of Life Improvements for Developers

Automated End-to-End Testing in a Staging Environment

  • AWS EC2 (linux-amd64) creation with Terraform/Ansible
  • Push notification to Slack/Lark when the testing environment is occupied or released

Misc

  • Integrate the golangci-lint command in the makefile #632
  • Push notification when CI failed: #636
  • Shorter CI time: for example, adding packages into a base image
  • More end-to-end tests coverage, to test more typical usecases and plugins
  • Push notification to core committers when there is a new PR ready for review

4 Already Done

Core:

  • local state support: #16
  • pluginmanager module: #17
  • statemanager supports concurrent map: #71
  • pluginmanager download status bar: #88, #98
  • multi-plugin instance support: #136
  • force delete feature: #177, #278
  • verify command: #252, #253
  • output support: #324
  • Homebrew support: #351, #372
  • remote state: #378, #485
  • autocomplete: #380
  • generate default config: #383
  • list all plugins: #384
  • config supports global variables: #393
  • plugin status: #401
  • parallel download: #579
  • plugins released to AWS S3 instead of GitHub releases page

Plugins:

  • Jenkins plugin: #11
  • GitLab CI plugin: #12
  • GitHub Actions plugin for Nodejs and Python: #14
  • GitHub Actions plugin supports test coverage: #133
  • GitHub repo scaffolding for Golang plugin: #191, #520
  • Prometheus/grafana plugin: #231
  • Helm type plugins support values: #272
  • openldap plugin: #284
  • trello plugin: #307, #314
  • GitLab CI generic plugin: #377
  • Helm generic plugin: #424

Develop:

  • cross-platform build: #21, #170
  • end to end test: #50, #118
  • logging level: #176
  • parallel build: #361
  • automated release: #364
  • command to help contributors to generate scaffolding code: #454, #443, #436
  • params validation improvement: #511
  • editor config: #629

By versions:

v0.3.1:

  • automated release: when a new tag is generated, build binaries for different platforms/OS and distribute the binaries to the plugin storage.

v0.3.0:

  • “Destroy” and “force delete”: everything can be cleared up without any residue or side effects.
  • “Output”: all plugin’s output is printed for users to review.
  • Plugin dependency management: a common way to handle plugin dependencies and execution order using graph/topology sort.
  • Automated e2e testing: AWS EKS cluster with Terraform.
  • Trello plugin that creates boards.

v0.4.0-v0.5.0:

  • generic GitLab CI plugin
  • define variables and use it in the config file.
  • auto-complete support for dtm commands
  • HashiCorp Vault