
1. We propose a data-based contribution evaluation model,
which can dynamically measure developers’ contributions
based on changes in data.
2. We address the challenge of how to improve developers’
contribution, which is an extremely rare and significant work
at present.
3. It is the first time that the presented framework explores
deep reinforcement learning techniques to manage open source
software, which enables us to design a more robust framework
to improve developers’ contributions.
4. We have performed extensive experiments, proving the
remarkable success of our proposed framework.
The main structure of the paper is as follows: In chapter
2 we focuses on our proposed framework OSS Mentor. In
Chapter 3 we validate our model. In Chapter 4 we present the
related work, and the discussion and summary sections are
presented in Chapters 5 and 6.
II. OSS MENTOR FRAMEWORK
In this section, firstly, we give a framework for contribution
assessment and show the overall architectural diagram of
the proposed model. Immediately afterward, we quantify the
essential elements of reinforcement learning in the context of
practical problems. After that, we illustrate the algorithmic
flow of the model based on the previous foundation. Finally,
we describe the training process of the model.
A. Overview
Definition of contribution. Previously, the work
on measuring developers’ contribution was basically at the
visual level, and the method of quantification was basically to
directly count the number of issues, issue comment, PR, PR
comment, etc., and to quantify the contribution by adding up
the empirical empowerment [16]. But this method is unreliable
because there is no analysis of the project’s data to obtain
results that conform to objective laws, and it does not reflect
the characteristics of the respective projects and changes over
time. However, in our work, we first introduced the concept of
entropy to measure how recognizable the developer’s actions
are to the developer, and then analyzed project-wide data to
determine the weighting relationship between actions from an
objective perspective. The entropy is calculated as shown in
the formula:
H(X) = −
n
X
i=1
P(xi)logP (xi)(1)
P(xi)represents the probability of the event xi. In infor-
mation theory, entropy represents the degree of discrete infor-
mation, and the higher the degree of discrete, the greater the
entropy and the greater the amount of information represented.
So entropy is greatest with the discrete degree presenting
an average distribution. In our work, action events actually
executed by developers in open source projects are selected,
and the discrete degree of action is measured by calculating
the entropy value of the action event. If the higher the entropy
value of H(X) on the i-th action dimension, the greater the
amount of information, then the less discernible the i-th action
is to the developer, which means that everyone is more inclined
to perform it. Next, we use the entropy method to determine
the degree of importance of each action in an open source
project.
However, a prerequisite for information entropy is the
assumption of independence between actions. And in practice,
because of the inter-information problem between actions (e.g.
there is a strong correlation between issue and issue comment),
it does not directly satisfy the entropy-weighted computational
system. To solve the inter-information problem, we replace
information entropy with conditional entropy. The formula is
shown in the figure:
Hi(Y|X) = −X
x∈X,y∈Y
pi(x, y)log pi(x, y)
pi(x)(2)
We overcome the problem of the assumption that actions in
open source projects are not independent between each other
by introducing conditional probabilities, e.g., issue and issue
comment are not independent between two actions. With the
above method, we can calculate the weight vector Wifor each
action dimension of the project. Finally, we get the calculation
of the contribution:
C(i,k)=
T
X
t=1
W(i,k)∗At
(i,k)(3)
where At
(i,k)denotes how many times the action is executed
on the t-th step of the k-th episode of the i-th project. W(i,k)
is computed from the conditional entropy model, and it has
been normalized, which means PT
t=1 Wt= 1.
Our work on the determination of the weights is extremely
significant. First of all, the determination of the weights is
based entirely on data, unlike previous work [16] which is
artificially determined through expert experience. Second, and
most importantly, the weights are dynamic. That is, changes
in project data over time and changes in project status, among
other factors, can cause the weights to be updated. Therefore,
we define weights that reflect not only the mutual importance
relationships between actions over time, but also the important
relationships that are specific to the actions between different
projects.
P roposed model. This is the first time that deep
reinforcement learning has been explored in the field of open
source project governance. The goal of the model is to max-
imize the cumulative contribution of the developer after mul-
tiple executions of the action. The detailed flow of the model
is given in Figure 1. First, the environment section is a pre-
trained model that uses the contribution quantification method
(Equation 3) to pre-train the weight vector Wi, and contains
the contributors’ action dataset Ei=e1
i, e2
i, e3
i,· · · , en
i.
Developer as an Agent selects action at
d,i in state st
iaccording
to its own policy. At this point, at
d,i matches the sequence of
actions at
e,i with the corresponding contributor that matches
the current state of the developer’s ability from a project Pi