All Projects → inherd → Coco

inherd / Coco

Licence: mit
An effective DevOps analysis and auto-suggest tool。Coco 是一个研发效能分析工具,如团队发展现状(根据架构复杂度及行数变更)、团队演进、历史分析等。生成可视化报告及对应的改进建议。

Programming Languages

rust
11053 projects

Coco

Coco Build

(aka coconut, juice), an automatic DevOps metrics analysis tool.

Case Studies: Coco cases

Online Demos:

Support OS: macOS, Windows, GNU/Linux

特性(features in Chinese):

  • 可交互式架构分析
  • UML 可视化
  • 团队/项目健康值分析
  • 框架检测与分析
  • 云原生成熟度分析
  • 多项目并行分析
  • 分支生命周期和可视化
  • 改进建议(在线)

Usage

  1. install or download Coco components from release
  2. use coco init to generate config file
  3. config coco.yml
  4. optional: use coco plugins to download plugins
  5. run Coco
    • coco, gather data from source
    • visual, visualization of data
    • suggest, generate suggestion

Coco

coco 0.4.2

USAGE:
    coco [OPTIONS] [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -b, --branches <branches>            With all branches [default: true]
        --commits <commits>              With all commits [default: true]
    -c, --config-file <config-file>      Config file .yml [default: coco.yml]
    -d, --debug <debug>                  Debug mode [default: false]
    -f, --file-history <file-history>    Scan file change list from git & cloc [default: false]
    -y, --git-years <git-years>          Set git commits scan years, default 1, [default: 1.0]
    -t, --tags <tags>                    With all tags [default: true]

SUBCOMMANDS:
    help       Prints this message or the help of the given subcommand(s)
    init       Create default coco.yml files
    plugins    Download plugins from GitHub

coco.yml

配置 (config in Chinese)

示例:

# 代码库
repos:
  - url: https://github.com/coco-rs/coco.fixtures
  - url: https://github.com/coco-rs/coco.fixtures2
  - url: .
    languages: [Rust]
  - url: https://github.com/datum-lang/scie
  - url: https://github.com/projectfluent/fluent-rs
    languages: [Rust, JavaScript]                     # set languages for struct analysis

plugins:
  - name: swagger
  - name: struct_analysis
    config:
      - key: ctags                       # set location for macOS ctags path
        value: /usr/local/bin/ctags

Documents

Development

See in DEVELOPMENT.md

Online video

Bilibili: 研发效能分析工具 Coco 第一次线上讨论

Roadmap

analysis and reporter

analysis

  • git analysis
    • branch
    • changes
    • commits
  • cloc analysis
    • summary
    • file arch
  • framework analysis
  • architecture analysis
    • file/directory organization

reporter

  • html reporter
  • json output
  • query api?

suggest and case study

Tech

  • AST Parser: include_parser/mod.rs
  • Web Server: light_server.rs
  • CLI: visual.rs, coco.rs, suggest.rs

Todo

  • [x] git analysis
  • [x] cloc analysis
    • [x] spike cloc tools Tokei
    • [x] history cloc changes
    • [x] commit cloc changes
  • [ ] framework analysis.
    • framework detector
    • [x] merge from scie-detector
    • [x] framework output
    • [ ] tech stack generate
    • [ ] cloud native
  • [ ] module analysis
    • [x] base framework for directory
      • [x] gitignore support
    • [x] code flower
    • [ ] include analysis
      • [x] code parser: pest
      • [ ] languages support.
  • [ ] team analysis
    • [x] join time & life time
      • 以加入时间开始度量平均提交:上手成本分析
      • 平均加入时长
      • 成员加入时间点
    • [x] member growth
    • [x] count system size & learning curve
  • [ ] commit analysis
    • [x] commit times analysis (hours)
    • [ ] rule regex support in config
    • [ ] participle(分词)
    • [x] tags generate
  • [ ] suggestion API
    • [ ] document manage system
    • [ ] suggest to ledge
    • [ ] suggest to cases
    • [ ] suggest to coco.server?
      • [ ] online suggest ?
      • [ ] link daily checking
    • [ ] architecture design rules
  • [ ] architecture
    • [ ] tech stack version check (more than 3 years ?)
      • [ ] Maven Center
      • [ ] NPM Server
      • [ ] Go Server
  • [ ] tools
    • [ ] tools config identify
    • [ ] tools suggest (identify old tools)
    • [ ] cloud-native config
  • [ ] case study
  • [ ] todo scan
    • [ ] merge from coca
  • [x] multiple platform support
    • [x] macOS
    • [x] GNU/Linux
    • [x] Windows
      • [x] fix tests
      • [x] make it works
  • [ ] C4 Model
    • [ ] PUML for call chain
      • [ ] symbol design - IsA, Use-In-The-Interface, Uses-In-The-Implementation
  • [ ] plugin
    • [ ] struct analysis
      • [x] ctags
      • [ ] visual
      • [x] uml
    • [x] swagger
    • [x] Jenkinsfile
    • [ ] Dockerfile

Visual and Reporter

  • visual api
    • [x] static files server
    • [x] export assets
    • [x] cli prompt for projects
    • [ ] query JSON API
    • [ ] CLI JSON API
  • visual web
  • [ ] reporter
    • [ ] framework
    • [ ] cloc
    • [ ] git
    • [ ] architecture

DevOps pipeline

  • [ ] Jenkinsfile of Coco's examples

Tech Debt Integration

Documents

Refs: Libgit2 Documents

Thanks

Jetbrains

License

ctags analysis based on https://github.com/dalance/ptags with MIT, see in src

ctags parser rewrite from Golang's https://github.com/ruben2020/tags2uml with Apache License.

@ 2020~2021 This code is distributed under the MIT license. See LICENSE in this directory.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].