diggit-developers_activity 0.1.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/diggit-developers_activity.gemspec +1 -1
- data/lib/diggit/developers_activity/activity_extractor.rb +4 -3
- data/lib/diggit/developers_activity/activity_extractor/modules.rb +11 -6
- data/lib/diggit/developers_activity/analyses/activity_analysis.rb +12 -10
- data/lib/diggit/developers_activity/analyses/commits_files_analysis.rb +47 -0
- data/lib/diggit/developers_activity/analyses/module_metrics_analysis.rb +4 -3
- data/lib/diggit/developers_activity/analyses/months_activity_analysis.rb +11 -10
- data/lib/diggit/developers_activity/analyses/project_developers_analysis.rb +7 -6
- data/lib/diggit/developers_activity/analyses/releases_activity_analysis.rb +7 -6
- data/lib/diggit/developers_activity/dataset/options +8 -0
- data/lib/diggit/developers_activity/dataset/sources.list +2 -2
- data/lib/diggit/developers_activity/dataset/{.dgitsources-options → sources_options} +0 -0
- data/lib/diggit/developers_activity/{analyses → joins}/developer_turnover_join.rb +13 -8
- data/lib/diggit/developers_activity/module_metrics_extractor.rb +6 -5
- data/lib/diggit/developers_activity/version.rb +1 -1
- data/lib/diggit/developers_activity/workspace_init.rb +32 -11
- metadata +9 -8
- data/lib/diggit/developers_activity/dataset/.dgitrc +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 552e9664a0e67b37ffc9fd48718ec708743bdb72
|
4
|
+
data.tar.gz: e96e958f992482b089c6febed723b7d50e22c548
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de2e21304b1ce2337a0b0c93cf84207ada78e672540cddf7fcc372729d47473a31d59bea2e938a0602ee2c1e59ebf09edd9198254ff4b726f52e9363d431be4b
|
7
|
+
data.tar.gz: 841f2a1f7d7383cc1f4b7d52da1d6631ccecde606a69aec9044d4a7d8ef5f4003b8337a9465b329295d3a86af6b14fa79b301002e7b4b1997b05d177595e5049
|
@@ -4,6 +4,7 @@ require 'diggit/developers_activity/activity_extractor/renames'
|
|
4
4
|
require 'diggit/developers_activity/activity_extractor/modules'
|
5
5
|
require 'diggit/developers_activity/activity_extractor/authors'
|
6
6
|
require 'diggit/developers_activity'
|
7
|
+
require 'set'
|
7
8
|
|
8
9
|
module Diggit
|
9
10
|
module DevelopersActivity
|
@@ -35,13 +36,13 @@ module Diggit
|
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
38
|
-
|
39
|
+
first_commit_date = commits[0].author[:time]
|
39
40
|
|
40
41
|
# compute metrics and write to result
|
41
42
|
developer_metrics = []
|
42
43
|
contributions.each do |key, value|
|
43
|
-
developer_metrics << { project: source, developer: key[:author], 'module' => key['module'],
|
44
|
-
touches: value[:touches], churn: value[:churn], releaseDate:
|
44
|
+
developer_metrics << { project: source.url, developer: key[:author], 'module' => key['module'],
|
45
|
+
touches: value[:touches], churn: value[:churn], releaseDate: first_commit_date,
|
45
46
|
commits_group_id: commits_group_id }
|
46
47
|
end
|
47
48
|
developer_metrics
|
@@ -12,15 +12,19 @@ module Diggit
|
|
12
12
|
MODULES_REGEXP = "modules"
|
13
13
|
FILE_FILTER = "file-filter"
|
14
14
|
|
15
|
-
def read_options(source,
|
15
|
+
def read_options(source, src_opt, db)
|
16
16
|
@source = source
|
17
17
|
@db = db
|
18
18
|
@release_files = files_from_cloc_analysis
|
19
|
-
@modules_regexp =
|
20
|
-
@file_filter = Regexp.new
|
19
|
+
@modules_regexp = src_opt.key?(MODULES_REGEXP) ? src_opt[MODULES_REGEXP].map { |m| Regexp.new m } : []
|
20
|
+
@file_filter = Regexp.new src_opt[FILE_FILTER]
|
21
21
|
@file_filter ||= //
|
22
22
|
end
|
23
23
|
|
24
|
+
def files_as_modules
|
25
|
+
@modules_regexp = []
|
26
|
+
end
|
27
|
+
|
24
28
|
def ignore_file?(path)
|
25
29
|
!@release_files.include?(path) || (@file_filter =~ path).nil?
|
26
30
|
end
|
@@ -43,9 +47,10 @@ module Diggit
|
|
43
47
|
|
44
48
|
def files_from_cloc_analysis
|
45
49
|
release_files = Set.new
|
46
|
-
|
47
|
-
|
48
|
-
|
50
|
+
@db['cloc-file'].find({ source: @source.url }).each do |cloc_source|
|
51
|
+
cloc_source["cloc"].each do |cloc_file|
|
52
|
+
release_files << cloc_file["path"]
|
53
|
+
end
|
49
54
|
end
|
50
55
|
release_files
|
51
56
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'diggit/developers_activity/activity_extractor'
|
4
|
+
require 'oj'
|
4
5
|
|
5
6
|
module Diggit
|
6
7
|
module DevelopersActivity
|
@@ -9,25 +10,26 @@ module Diggit
|
|
9
10
|
#
|
10
11
|
# @abstract
|
11
12
|
# @since 0.0.1
|
12
|
-
class ActivityAnalysis < Analysis
|
13
|
+
class ActivityAnalysis < Diggit::Analysis
|
13
14
|
include ActivityExtractor
|
15
|
+
require_addons 'db', 'src_opt'
|
14
16
|
|
15
|
-
def
|
16
|
-
super(*args)
|
17
|
+
def run
|
17
18
|
load_options
|
18
19
|
end
|
19
20
|
|
20
|
-
def source_options
|
21
|
-
@addons[:sources_options][@source]
|
22
|
-
end
|
23
|
-
|
24
21
|
def load_options
|
25
|
-
@releases =
|
22
|
+
@releases = src_opt[@source]["releases"]
|
26
23
|
@all_releases = false
|
27
24
|
@all_releases = @options["all_releases"] if @options.key? "all_releases"
|
28
25
|
|
29
|
-
Authors.read_options(
|
30
|
-
|
26
|
+
Authors.read_options(src_opt[@source])
|
27
|
+
|
28
|
+
source_options = src_opt[@source]
|
29
|
+
if @options.key? 'alternative_modules'
|
30
|
+
source_options['modules'] = Oj.load_file(@options['alternative_modules'])[@source.url]['modules']
|
31
|
+
end
|
32
|
+
Modules.read_options(@source, source_options, db.client)
|
31
33
|
|
32
34
|
@modules_metrics = @options.key?("modules_metrics") ? @options["modules_metrics"] : true
|
33
35
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'diggit/developers_activity/analyses/activity_analysis'
|
4
|
+
|
5
|
+
module Diggit
|
6
|
+
module DevelopersActivity
|
7
|
+
module Analyses
|
8
|
+
class CommitsFilesAnalysis < ActivityAnalysis
|
9
|
+
COL ||= "commits-files"
|
10
|
+
MONTH_SECONDS ||= 3600 * 24 * 30
|
11
|
+
def run
|
12
|
+
super
|
13
|
+
r_0 = repo.lookup(src_opt[@source]["cloc-commit-id"])
|
14
|
+
t_0 = r_0.author[:time]
|
15
|
+
|
16
|
+
walker = Rugged::Walker.new(repo)
|
17
|
+
walker.sorting(Rugged::SORT_DATE)
|
18
|
+
walker.push(r_0)
|
19
|
+
|
20
|
+
t_stop = t_0 - 12 * MONTH_SECONDS
|
21
|
+
commits_files = []
|
22
|
+
Modules.files_as_modules
|
23
|
+
walker.each do |commit|
|
24
|
+
next unless commit.parents.size == 1
|
25
|
+
Renames.extract_commit_renames(commit, true)
|
26
|
+
commit.parents.each do |parent|
|
27
|
+
diff = parent.diff(commit, DIFF_OPTIONS)
|
28
|
+
diff.find_similar!(DIFF_RENAME_OPTIONS)
|
29
|
+
diff.each do |patch|
|
30
|
+
maudule = Modules.get_patch_module(patch)
|
31
|
+
next if maudule.nil?
|
32
|
+
|
33
|
+
commits_files << { file: maudule, commit: commit.oid.to_s, project: @source.url }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
#break if commit.author[:time] < t_stop
|
37
|
+
end
|
38
|
+
db.insert(COL, commits_files)
|
39
|
+
end
|
40
|
+
|
41
|
+
def clean
|
42
|
+
db.client[COL].find({ project: @source.url }).delete_many
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -13,13 +13,14 @@ module Diggit
|
|
13
13
|
MODULES_METRICS_COL ||= "modules_metrics"
|
14
14
|
|
15
15
|
def run
|
16
|
+
super
|
16
17
|
puts('Extracting LoC and #BugFixes')
|
17
|
-
metrics = ModuleMetricsExtractor.extract_module_metrics(@source,
|
18
|
-
|
18
|
+
metrics = ModuleMetricsExtractor.extract_module_metrics(@source, src_opt[@source], db, repo)
|
19
|
+
db.insert(MODULES_METRICS_COL, metrics)
|
19
20
|
end
|
20
21
|
|
21
22
|
def clean
|
22
|
-
|
23
|
+
db.client[MODULES_METRICS_COL].find({ project: @source.url }).delete_many
|
23
24
|
end
|
24
25
|
end
|
25
26
|
end
|
@@ -22,25 +22,26 @@ module Diggit
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def run
|
25
|
+
super
|
25
26
|
extract_months_before unless @months_to_extract == :after
|
26
27
|
extract_months_after unless @months_to_extract == :before
|
27
28
|
end
|
28
29
|
|
29
30
|
def clean
|
30
|
-
|
31
|
-
|
31
|
+
db.client[MONTHS_BEFORE_COL].find({ project: @source.url }).delete_many unless @months_to_extract == :after
|
32
|
+
db.client[MONTHS_AFTER_COL].find({ project: @source.url }).delete_many unless @months_to_extract == :before
|
32
33
|
end
|
33
34
|
|
34
35
|
def extract_months_before
|
35
36
|
print("Extracting monthly activity (before S_0)")
|
36
37
|
STDOUT.flush
|
37
38
|
Renames.clear
|
38
|
-
r_0 =
|
39
|
-
t_first =
|
39
|
+
r_0 = repo.lookup(src_opt[@source]["cloc-commit-id"])
|
40
|
+
t_first = repo.lookup(src_opt[@source]["R_first"]).author[:time]
|
40
41
|
|
41
42
|
t_0 = r_0.author[:time]
|
42
43
|
|
43
|
-
walker = Rugged::Walker.new(
|
44
|
+
walker = Rugged::Walker.new(repo)
|
44
45
|
walker.sorting(Rugged::SORT_DATE)
|
45
46
|
walker.push(r_0)
|
46
47
|
|
@@ -55,7 +56,7 @@ module Diggit
|
|
55
56
|
print('.')
|
56
57
|
STDOUT.flush
|
57
58
|
m = extract_developers_activity(@source, commits, month_num)
|
58
|
-
|
59
|
+
db.insert(MONTHS_BEFORE_COL, m) unless m.empty?
|
59
60
|
month_num += 1
|
60
61
|
t_previous_month -= MONTH_SECONDS
|
61
62
|
commits = []
|
@@ -70,11 +71,11 @@ module Diggit
|
|
70
71
|
print("Extracting monthly activity (after S_0) ")
|
71
72
|
STDOUT.flush
|
72
73
|
Renames.clear
|
73
|
-
r_0 =
|
74
|
-
r_last =
|
74
|
+
r_0 = repo.lookup(src_opt[@source]["cloc-commit-id"])
|
75
|
+
r_last = repo.lookup(src_opt[@source]["R_last"])
|
75
76
|
t_0 = r_0.author[:time]
|
76
77
|
|
77
|
-
walker = Rugged::Walker.new(
|
78
|
+
walker = Rugged::Walker.new(repo)
|
78
79
|
walker.sorting(Rugged::SORT_DATE | Rugged::SORT_REVERSE)
|
79
80
|
walker.push(r_last)
|
80
81
|
t_next_month = t_0 + MONTH_SECONDS
|
@@ -89,7 +90,7 @@ module Diggit
|
|
89
90
|
print('.')
|
90
91
|
STDOUT.flush
|
91
92
|
m = ActivityExtractor.extract_developers_activity(@source, commits, month_num)
|
92
|
-
|
93
|
+
db.insert(MONTHS_AFTER_COL, m) unless m.empty?
|
93
94
|
month_num += 1
|
94
95
|
t_next_month += MONTH_SECONDS
|
95
96
|
commits = []
|
@@ -11,11 +11,12 @@ module Diggit
|
|
11
11
|
class ProjectDevelopersAnalysis < ActivityAnalysis
|
12
12
|
COL ||= "devs_commit_dates"
|
13
13
|
def run
|
14
|
+
super
|
14
15
|
puts('Extracting project-level activity')
|
15
|
-
r_last =
|
16
|
-
r_first_time =
|
16
|
+
r_last = repo.lookup(src_opt[@source]["R_last"])
|
17
|
+
r_first_time = repo.lookup(src_opt[@source]["R_first"]).author[:time]
|
17
18
|
|
18
|
-
walker = Rugged::Walker.new(
|
19
|
+
walker = Rugged::Walker.new(repo)
|
19
20
|
walker.sorting(Rugged::SORT_DATE)
|
20
21
|
walker.push(r_last)
|
21
22
|
|
@@ -23,16 +24,16 @@ module Diggit
|
|
23
24
|
walker.each do |commit|
|
24
25
|
t = commit.author[:time]
|
25
26
|
author = Authors.get_author(commit)
|
26
|
-
devs << { project: @source, author: author, time: t }
|
27
|
+
devs << { project: @source.url, author: author, time: t }
|
27
28
|
|
28
29
|
break if t < r_first_time
|
29
30
|
end
|
30
31
|
|
31
|
-
|
32
|
+
db.insert(COL, devs)
|
32
33
|
end
|
33
34
|
|
34
35
|
def clean
|
35
|
-
|
36
|
+
db.client[COL].find({ project: @source.url }).delete_many
|
36
37
|
end
|
37
38
|
end
|
38
39
|
end
|
@@ -11,11 +11,11 @@ module Diggit
|
|
11
11
|
COL_DEVELOPERS_RELEASE_ACTIVITY ||= "developer_activity_release"
|
12
12
|
|
13
13
|
def commits_between(new_commit, old_commit)
|
14
|
-
walker = Rugged::Walker.new(
|
14
|
+
walker = Rugged::Walker.new(repo)
|
15
15
|
walker.sorting(Rugged::SORT_DATE)
|
16
|
-
walker.push(
|
16
|
+
walker.push(repo.lookup(new_commit))
|
17
17
|
|
18
|
-
t_old =
|
18
|
+
t_old = repo.lookup(old_commit).author[:time]
|
19
19
|
commits = []
|
20
20
|
|
21
21
|
walker.each do |commit|
|
@@ -27,18 +27,19 @@ module Diggit
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def run
|
30
|
+
super
|
30
31
|
puts('Extract releases activity')
|
31
|
-
releases =
|
32
|
+
releases = src_opt[@source]["releases"]
|
32
33
|
(0..(releases.length - 2)).each do |i|
|
33
34
|
release_commits = commits_between(releases[i], releases[i + 1])
|
34
35
|
release_commits.each { |commit| Renames.extract_commit_renames(commit) }
|
35
36
|
m = extract_developers_activity(@source, release_commits, i)
|
36
|
-
|
37
|
+
db.insert(COL_DEVELOPERS_RELEASE_ACTIVITY, m) unless m.empty?
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
40
41
|
def clean
|
41
|
-
|
42
|
+
db.client[COL_DEVELOPERS_RELEASE_ACTIVITY].find({ project: @source.url }).delete_many
|
42
43
|
end
|
43
44
|
end
|
44
45
|
end
|
@@ -3,5 +3,5 @@ https://github.com/matthieu-foucault/jquery.git
|
|
3
3
|
https://github.com/rails/rails.git
|
4
4
|
https://github.com/jenkinsci/jenkins.git
|
5
5
|
https://github.com/ansible/ansible.git
|
6
|
-
https://github.com/mono/mono.git
|
7
|
-
https://github.com/sebastianbergmann/phpunit.git
|
6
|
+
# https://github.com/mono/mono.git
|
7
|
+
# https://github.com/sebastianbergmann/phpunit.git
|
File without changes
|
@@ -5,18 +5,23 @@ require 'fileutils'
|
|
5
5
|
module Diggit
|
6
6
|
module DevelopersActivity
|
7
7
|
module Analyses
|
8
|
-
class DeveloperTurnoverJoin < Join
|
9
|
-
|
10
|
-
|
8
|
+
class DeveloperTurnoverJoin < Diggit::Join
|
9
|
+
require_addons 'r'
|
10
|
+
require_analyses('module_metrics_analysis', 'months_activity_analysis',
|
11
|
+
'project_developers_analysis', 'releases_activity_analysis')
|
12
|
+
WORKING_DIR = './turnover/results/'
|
13
|
+
WEB_WORKING_DIR = './turnover/web_page_results/'
|
11
14
|
def run
|
12
|
-
@
|
13
|
-
|
15
|
+
db_match = @options[:mongo][:url].match(%r{^mongodb://(.+):27017/(.+)$})
|
16
|
+
r.database_host = db_match[1]
|
17
|
+
r.database_name = db_match[2]
|
18
|
+
r.working_dir = WORKING_DIR
|
14
19
|
FileUtils.mkdir_p(WORKING_DIR)
|
15
|
-
|
20
|
+
r.web_working_dir = WEB_WORKING_DIR
|
16
21
|
FileUtils.mkdir_p(WEB_WORKING_DIR)
|
17
22
|
puts('Running R sript...')
|
18
23
|
|
19
|
-
|
24
|
+
r.eval <<-EOS
|
20
25
|
options(warn=-1)
|
21
26
|
if (require(developerTurnover) == FALSE) {
|
22
27
|
if (require(devtools) == FALSE) {
|
@@ -28,7 +33,7 @@ module Diggit
|
|
28
33
|
library(developerTurnover)
|
29
34
|
}
|
30
35
|
|
31
|
-
developer_turnover(database_host, working_dir, web_working_dir)
|
36
|
+
developer_turnover(database_host, database_name, working_dir, web_working_dir)
|
32
37
|
print("R script finished")
|
33
38
|
options(warn=0)
|
34
39
|
EOS
|
@@ -17,7 +17,7 @@ module Diggit
|
|
17
17
|
|
18
18
|
modules_metrics = []
|
19
19
|
modules_loc.each do |maudule, loc|
|
20
|
-
modules_metrics << { project: source, 'module' => maudule, 'LoC' => loc,
|
20
|
+
modules_metrics << { project: source.url, 'module' => maudule, 'LoC' => loc,
|
21
21
|
'BugFixes' => modules_bugfixes[maudule].size }
|
22
22
|
end
|
23
23
|
modules_metrics
|
@@ -40,10 +40,11 @@ module Diggit
|
|
40
40
|
|
41
41
|
def extract_loc(source, db)
|
42
42
|
modules_loc = Hash.new(0)
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
43
|
+
db.client['cloc-file'].find({ source: source.url }).each do |cloc_source|
|
44
|
+
cloc_source['cloc'].each do |cloc_file|
|
45
|
+
maudule = ActivityExtractor::Modules.get_module(cloc_file['path'])
|
46
|
+
modules_loc[maudule] = modules_loc[maudule] + cloc_file['code'] unless maudule.nil?
|
47
|
+
end
|
47
48
|
end
|
48
49
|
modules_loc
|
49
50
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
|
+
require 'dgit'
|
4
5
|
|
5
6
|
module Diggit
|
6
7
|
module DevelopersActivity
|
@@ -10,25 +11,45 @@ module Diggit
|
|
10
11
|
module WorkspaceInit
|
11
12
|
extend self
|
12
13
|
|
13
|
-
DIGGIT_RC = '.dgitrc'
|
14
|
-
DIGGIT_SOURCES_OPTIONS = '.dgitsources-options'
|
15
14
|
SOURCES_LIST = 'sources.list'
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
SOURCES_OPTIONS_FILE = 'sources_options'
|
16
|
+
OPTIONS_FILE = 'options'
|
17
|
+
DGIT_FOLDER = '.dgit'
|
19
18
|
|
20
19
|
def init
|
21
|
-
|
20
|
+
link_analyses_folder
|
21
|
+
link_joins_folder
|
22
|
+
Dig.init_dir('.')
|
23
|
+
Dig.init('.')
|
24
|
+
Dig.it.config.add_analysis('cloc_per_file')
|
25
|
+
Dig.it.config.add_analysis('module_metrics_analysis')
|
26
|
+
Dig.it.config.add_analysis('months_activity_analysis')
|
27
|
+
Dig.it.config.add_analysis('project_developers_analysis')
|
28
|
+
Dig.it.config.add_analysis('releases_activity_analysis')
|
29
|
+
|
30
|
+
Dig.it.config.add_join('developer_turnover_join')
|
31
|
+
|
22
32
|
dataset_dir = File.expand_path('dataset', File.dirname(__FILE__))
|
23
33
|
|
24
|
-
|
25
|
-
|
26
|
-
|
34
|
+
IO.readlines(File.join(dataset_dir, SOURCES_LIST)).select { |l| !l.strip.empty? && !l.start_with?('#') }
|
35
|
+
.each { |url| Dig.it.journal.add_source(url.strip) }
|
36
|
+
|
37
|
+
FileUtils.cp(File.join(dataset_dir, OPTIONS_FILE), DGIT_FOLDER)
|
38
|
+
FileUtils.cp(File.join(dataset_dir, SOURCES_OPTIONS_FILE), DGIT_FOLDER)
|
39
|
+
end
|
27
40
|
|
41
|
+
def link_analyses_folder
|
28
42
|
analyses_dir = File.expand_path('analyses', File.dirname(__FILE__))
|
29
|
-
home = File.
|
43
|
+
home = File.join(Dir.home, DGIT_FOLDER, 'plugins', 'analysis')
|
44
|
+
FileUtils.mkdir_p(home)
|
45
|
+
FileUtils.ln_sf(analyses_dir, File.join(home, 'developers_activity'))
|
46
|
+
end
|
47
|
+
|
48
|
+
def link_joins_folder
|
49
|
+
analyses_dir = File.expand_path('joins', File.dirname(__FILE__))
|
50
|
+
home = File.join(Dir.home, DGIT_FOLDER, 'plugins', 'join')
|
30
51
|
FileUtils.mkdir_p(home)
|
31
|
-
FileUtils.
|
52
|
+
FileUtils.ln_sf(analyses_dir, File.join(home, 'developers_activity'))
|
32
53
|
end
|
33
54
|
end
|
34
55
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diggit-developers_activity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthieu Foucault
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '2.0'
|
55
55
|
description: |-
|
56
56
|
This gem contains a set of analyses extracting developers activity from git repositories,
|
57
57
|
using different granularities of time periods. It also includes a dataset of git repositories for which we extacted
|
@@ -77,14 +77,15 @@ files:
|
|
77
77
|
- lib/diggit/developers_activity/activity_extractor/renames.rb
|
78
78
|
- lib/diggit/developers_activity/analyses.rb
|
79
79
|
- lib/diggit/developers_activity/analyses/activity_analysis.rb
|
80
|
-
- lib/diggit/developers_activity/analyses/
|
80
|
+
- lib/diggit/developers_activity/analyses/commits_files_analysis.rb
|
81
81
|
- lib/diggit/developers_activity/analyses/module_metrics_analysis.rb
|
82
82
|
- lib/diggit/developers_activity/analyses/months_activity_analysis.rb
|
83
83
|
- lib/diggit/developers_activity/analyses/project_developers_analysis.rb
|
84
84
|
- lib/diggit/developers_activity/analyses/releases_activity_analysis.rb
|
85
|
-
- lib/diggit/developers_activity/dataset
|
86
|
-
- lib/diggit/developers_activity/dataset/.dgitsources-options
|
85
|
+
- lib/diggit/developers_activity/dataset/options
|
87
86
|
- lib/diggit/developers_activity/dataset/sources.list
|
87
|
+
- lib/diggit/developers_activity/dataset/sources_options
|
88
|
+
- lib/diggit/developers_activity/joins/developer_turnover_join.rb
|
88
89
|
- lib/diggit/developers_activity/module_metrics_extractor.rb
|
89
90
|
- lib/diggit/developers_activity/version.rb
|
90
91
|
- lib/diggit/developers_activity/workspace_init.rb
|
@@ -108,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
109
|
version: '0'
|
109
110
|
requirements: []
|
110
111
|
rubyforge_project:
|
111
|
-
rubygems_version: 2.4.
|
112
|
+
rubygems_version: 2.4.8
|
112
113
|
signing_key:
|
113
114
|
specification_version: 4
|
114
115
|
summary: Analyses and dataset for the diggit tool.
|
@@ -1,25 +0,0 @@
|
|
1
|
-
{
|
2
|
-
":addons": [
|
3
|
-
"Db",
|
4
|
-
"SourcesOptions",
|
5
|
-
"RWrapper"
|
6
|
-
],
|
7
|
-
":analyses": [
|
8
|
-
"ClocPerFileAnalysis",
|
9
|
-
"Diggit::DevelopersActivity::Analyses::ProjectDevelopersAnalysis",
|
10
|
-
"Diggit::DevelopersActivity::Analyses::ModuleMetricsAnalysis",
|
11
|
-
"Diggit::DevelopersActivity::Analyses::MonthsActivityAnalysis",
|
12
|
-
"Diggit::DevelopersActivity::Analyses::ReleasesActivityAnalysis"
|
13
|
-
],
|
14
|
-
":joins": [
|
15
|
-
"Diggit::DevelopersActivity::Analyses::DeveloperTurnoverJoin"
|
16
|
-
],
|
17
|
-
":options": {
|
18
|
-
"modules_metrics": true,
|
19
|
-
"months-to-extract": ":both",
|
20
|
-
"num-months-to-extract": "12",
|
21
|
-
":mongo": {
|
22
|
-
":database": "developers_activity"
|
23
|
-
}
|
24
|
-
}
|
25
|
-
}
|