Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

根据项目主体代码进行分类 #6

Open
wxy opened this issue Oct 1, 2018 · 2 comments
Open

根据项目主体代码进行分类 #6

wxy opened this issue Oct 1, 2018 · 2 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@wxy
Copy link
Member

wxy commented Oct 1, 2018

根据项目主体代码,将所分析的项目分成几类:

  • 文档类项目,以 markdown、html 为主体的项目
  • 前端类项目,以 javascript、css(及预处理器) 为主体的项目
  • 开发类项目,以其它源代码为主体的项目

以上三类项目的开发和活跃度模式相差比较大,应该分别进行排行。

@bestony bestony added the enhancement New feature or request label Oct 1, 2018
@bestony bestony added the good first issue Good for newcomers label Oct 5, 2018
@bestony
Copy link
Member

bestony commented Oct 5, 2018

实现思路

  1. 使用 GraphQL 获取语言的前5~10的语言,参考 GraphQL 如下
{
  repository(owner: "lctt", name: "grank") {
    name
  	languages(first:10,orderBy:{field:SIZE,direction:DESC}){
      nodes{
        id
        name
      }
    }
  }
}
  1. 根据前三或特定顺序来进行分组。建议以排名第一的语言进行排序。比如,JS 语言的不区分 Node 还是前端,统一归为前端。Python 的不区分网站还是cli,统一归为 Python 类型的。

  2. 数据以各自的列表进行排序。

需要注意的点:

  1. 可以在导出的 CSV 中添加对应的 type,排序由人工来完成。(也就是输出时带上 type,分析人员通过 Excel / Numbers 之类的软件进行手动实现排序)
  2. 第一步建议实现按语言划分(即区分 JavaScript 、Java、Php、Python 等语言),后续再考虑综合不同语言的排序来实现(文档类、前端类、开发类)。

wxy added a commit that referenced this issue Oct 10, 2018
@wxy
Copy link
Member Author

wxy commented Oct 30, 2018

正如之前讨论的,我们需要一个记录被采集项目的配置文件,这个配置文件中的配置值与其它途径的配置存在优先级:

  • 全局配置,优先级最低
  • 程序自动分析的得出的配置,优先级次高
  • 数据配置文件中的配置,优先级更高
  • 命令行指定的配置,优先级最高

举例一:项目分类

全局配置中不会指定项目分类,所以项目的分类首先是据此 issue 算法的自动分析得出的;然后,如果数据配置文件中有指定该分类,则采用数据配置;如果命令行中强制指定,则采用命令行配置。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants