oss-compass / compass-metrics-model

GNU Affero General Public License v3.0
13 stars 4 forks source link

Metrics Model: Compass model metrics split(Compass 模型指标拆分) #52

Closed lishengbao closed 1 year ago

lishengbao commented 1 year ago

Git元数据

lishengbao commented 1 year ago
  1. 指标分类 https://github.com/oss-compass/compass-metrics-model/issues/36

  2. Compass metric model 拆分结构方案 https://wr8d2mufu7.feishu.cn/docx/FdBOdoRd4oHOUvxnlGFcOThNnid?from=from_copylink

lishengbao commented 1 year ago

Compass metric model 拆分结构方案

compass当前结构

Image

compass拆分后结构

compass-metrics-model
    compass_contributor (不变)
    compass_metrics_model (不变)
    tools (没用到, 可以删除)
    compass_common(新增, 放一些工具代码)
        opensearch_client_utils.py
    compass_metrics (新增, 将指标分配到不同分类中)
        db_dsl.py
        git_metrics.py
        issue_metrics.py
        pr_metrics.py
        contributor_metrics.py
        social_metrics.py
    compass_model (新增, 存放模型, 包括三个维度模型, lab, 开发者模型)
        base_metrics_model.py (model的基类, 其他model都基于它来自定义生成对应model)
        productivity
            collaboration_development_index_metrics_model.py
            community_service_and_support_metrics_model.py
        robustness
            activity_metrics_model.py
        niche_creation
            organizations_activity_metrics_model.py 
        lab
            starter_project_health_metrics_model.py
        developer
            developer_metrics_model.py

base_metrics_model.py

class BaseMetrcsModel:
    def __init__(self, repo_index, git_index, issue_index, pr_index, 
                issue_comments_index, pr_comments_index, contributors_index, release_index, 
                out_index ,from_date, to_date, level, community, source, 
                model_name, json_file, metrics_weights_thresholds, algorithm, custom_fields)
        """ Metrics Model is designed for the integration of multiple CHAOSS metrics.
        :param repo_index: repo index.
        :param git_index: git index.
        :param issue_index: Issue index.
        :param pr_index: pr index.
        :param issue_comments_index: issue comment index.
        :param pr_comments_index: pr comment index.
        :param contributors_index: contributor index.
        :param release_index: release index.
        :param out_index: target index for Metrics Model.
        :param from_date: the beginning of time for metric model.
        :param to_date: the end of time for metric model,
        :param level: str representation of the metrics, choose from repo, project, community.
        :param community: used to mark the repo belongs to which community.
        :param source: the repo data source gitee or github.

        :param model_name: the model name.
        :param json_file: the path of json file containing repository message.
        :param metrics_weights_thresholds: dict representation of metrics, the dict values include weights and thresholds.
        :param algorithm: The algorithm chosen by the model,option AHP or other.
        :param custom_fields: custom_fields.
        """
        pass
lishengbao commented 1 year ago

53

54

56

57

58

59

lishengbao commented 1 year ago

模型指标拆分后需要的改动 1: 输出指标字段的改动, 因为之前有些输出字段是重复的(两个不同的指标, 输出字段名重复了)

Image

2: 组织活跃度模型结构发生改变

Image