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

v3.3 #139

Merged
merged 102 commits into from
Aug 12, 2018
Merged

v3.3 #139

merged 102 commits into from
Aug 12, 2018

Conversation

clhunsen
Copy link
Collaborator

3.3

Changes in detail

v3.2...d4e2f26

Added

Changed/Improved

Fixed

  • Change the type of all commit count default values to Integer (62c0339)
  • Retain network attributes in simplify.network (in igraph language, graph attributes) (424b2bc)
  • Fix showcase file regarding outdated plotting parameters (29d5ac6)
  • Eliminate duplicated lines in the raw commit data (dec0005)
  • Fix the split.networks.time.based method by now splitting the networks from the earliest timestamp to the latest (1f65db3)
  • Fix TravisCI build regarding sudo commands (baca08e)
  • Fix direction of edges in exemplary network plot in README file (5c80c25)

Klara and others added 30 commits May 30, 2018 15:23
The function takes project data and returns a dataframe containing the commit
count per person counting commits, where the person is author and committer.
Works with SQL, analogous to other methods in the same file. It is used for the
adding the commit count as vertex attribute.

Signed-off-by: Klara Schlueter <[email protected]>
… attribute

The function adds the commit count per person (counting commits, where the
person is the author AND the committer) to the vertices of the networks given as
a list, analogous to already existing functions in the same class.

Signed-off-by: Klara Schlueter <[email protected]>
Signed-off-by: Klara Schlueter <[email protected]>
The function takes project data and returns a dataframe containing the commit
count per person (counting commits, where the person is author OR committer),
working wie SQL, analogous to already existing methods in the same file.
The function adds the commit count per person (counting the commits, where the
person is author OR commiter) as attributes to the vertices of the given
networks, working analogous to already existing methods in the same file.

Signed-off-by: Klara Schlueter <[email protected]>
The commit data in the test data is complemented by committer
information in addition to author information.

Signed-off-by: Klara Schlueter <[email protected]>
The functions for adding a commit count as vertex attribute set as default
value an Integer now.

Signed-off-by: Klara Schlueter <[email protected]>
As committer data was added to test commit data earlier, the tests
for reading and cutting the test project data expected incomplete data.
To resolve this, tests in test-data-cut.R, test-network-cut.R and
test-read.R are adapted to the new test data.

Signed-off-by: Klara Schlueter <[email protected]>
Signed-off-by: Klara Schlueter <[email protected]>
Signed-off-by: Klara Schlueter <[email protected]>
…andor

Complement commit count vertex attribute possibilities

Reviewed-by: Claus Hunsen <[email protected]>
Reviewed-by: Christian Hechtl <[email protected]>
To hopefully get predictable results under Windows and get rid of an
error message issued by the current code, we now set the locale to
"english-us" when Windows is detected. For all other operating systems,
the previous setting is preserved.

Signed-off-by: Claus Hunsen <[email protected]>
For clearer guidelines for the user/developer regarding issues and pull
requests, the corresponding templates are updated. We now distinguish
bug reports and feature requests for issues and represent a checklist
with prerequisites for pull requests.

The template files are now located in the folder '.github/' in the
project's root folder.

The contribution guide is updated accordingly.

Signed-off-by: Claus Hunsen <[email protected]>
In TravisCI, using a matrix build, we can run the test suite for several
versions of R. In this patch, we enable the matrix build for the R
versions 3.3, 3.4, and 3.5. This way, we may find incompatibility issues
early in the process.

Signed-off-by: Claus Hunsen <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
When using the editor Remarkable for Markdown editing, the second-level
lists are not rendered when using only two spaces of further
indentation. To fix this, all second-level lists are further indented.

Signed-off-by: Claus Hunsen <[email protected]>
For better comprehensibility, we add a section on the library's
functionality to the README file. This includes a short list of data
sources (grouped by type), very basic information on network
construction (igraph, network attributes, types of networks), and the
list of available files/modules.

The paragraph on  the various types of networks is not formulated yet,
so this is a work-in-progress patch.

Signed-off-by: Claus Hunsen <[email protected]>
For a better overview and to give more information to the interested
reader/user, the README section on mandatory vertex and edge attributes
is further extended. For each mandatory attribute, we now give
information on the attribute's name, the reasoning and information
stored in the attribute, and, if applicable, possible values.

This fixes #121.

Signed-off-by: Claus Hunsen <[email protected]>
After removing 'grayscale' as a parameter to the plotting functions, the
corresponding showcases need to be removed. Additionally, an additional
edge for the sample network now inherits all necessary edge attributes
('relation' and 'artifact.type').

Signed-off-by: Claus Hunsen <[email protected]>
Until now, all network attributes set on an igraph object have been
removed when calling 'simplify.network'. Now, these attributes are
preserved by saving the before simplification and re-setting the
attributes afterwards.

Signed-off-by: Claus Hunsen <[email protected]>
As the legends for the network plots can get really long, a complete
line-oriented layout for them is impractical, esepcially when there are
multiple relations present in the network to be plotted. To mitigate the
problem, the legend is now column-oriented by default. This means,
individually, the multiple sublegends/guides are presented in a column-
oriented way, while the sublegends are positioned next to each other in
a horizontal manner.

Signed-off-by: Claus Hunsen <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
clhunsen and others added 26 commits August 6, 2018 15:33
As pointed out in PR #135, the instructions on adding vertex attributes
to constructed networks get more and more confusing due to the
increasing number of helper functions in the file
`util-networks-covariates.R`. To be more precise, the functions to add
vertex attributes are now described with the pattern
"add.vertex.attribute.*" in the README file.

Additionally, some typos are fixed.

Props to @bockthom for pointing this out.

Signed-off-by: Claus Hunsen <[email protected]>
In this patch, we heavily update the README file regarding the feedback
of @SCPhantom:

- Re-order sections,
- add information on relations,
- add information on PaStA and synchronicity data,
- clarify on range/revision difference,
- clarify on (non-)dependency to packrat, and
- update how-to code to use sample data.

Signed-off-by: Claus Hunsen <[email protected]>
Signed-off-by: Barbara Eckl <[email protected]>
Signed-off-by: Thomas Bock <[email protected]>
As the bipartite edges in the exemplary plot has been directed from the
artifacts to the authors (which is wrong!), the plot is updated with all
edges reversed.

Additionally, the code to generate the plot and dump it to disk is added
to the showcase file.

Thanks to @ecklbarb and @bockthom for spotting this.

Signed-off-by: Claus Hunsen <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
Fix two typos with missing spaces.

Props to @bockthom for being that precise.

Signed-off-by: Claus Hunsen <[email protected]>
Various fixes to README and contribution guide

Reviewed-by: Thomas Bock <[email protected]>
…orithm

From now on, the 'author.directed' parameter in the network
configuration only affects the directedness of an author network, and
the newly introduced parameter 'respect.temporal.order' is responsible
for choosing the edge-construction algorithm.

Now, it is possible to build author networks which are directed but
don't respect the temporal order. That is, for two subsequent events,
there will be two edges between the corresponding nodes, one in each
direction.

In addition, it is also possible to build author networks which are
undirected but respect the temporal order. That is, only one edge
(annotated with the temporally later date) will be present between the
corresponding nodes of two subsequent events.

So, let there be an event of author A to common artifact at time 1 and
an event of B to the same artifact at time 2. Then, we are able to
construct the following networks (only the list of edges is presented
here):

author.directed=TRUE, respect.temporal.order=TRUE:   A<--2--B
author.directed=TRUE, respect.temporal.order=FALSE:  A--1-->B, A<--2--B
author.directed=FALSE, respect.temporal.order=TRUE:  A--2-- B
author.directed=FALSE, respect.temporal.order=FALSE: A--1--B, A--2--B

For more information, please see #6.

To keep the former behavior, the default value of the newly introduced
network configuration parameter 'respect.temporal.order' is NA. If the
default value this parameter is used, the edge-construction function
uses the 'directed' parameter for 'respect.temporal.order'.

This fixes #6.

Signed-off-by: Thomas Bock <[email protected]>
Add a test for constructing undirected networks which respect the
temporal order and add another test for constructing directed networks
without respecting the temporal order.

The tests test the functionality introduced in commit
4fc59a0.

Signed-off-by: Thomas Bock <[email protected]>
When working on the functions 'construct.edge.list.from.key.value.list'
and 'construct.network.from.edge.list', I recognized some inconsistent
uses of '#' in comments.

Comments which begin at the beginning of a line should start with '##'.
This commit fixes that in the above mentioned functions.

Signed-off-by: Thomas Bock <[email protected]>
Update README.md accordingly after introducing the new network configuration parameter 'respect.temporal.order'.

This updates the README.md regarding the changes in commit
4fc59a0.

Signed-off-by: Thomas Bock <[email protected]>
Signed-off-by: Thomas Bock <[email protected]>
In the course of PR #137, it occurred that the temporal order of edges
was broken in directed networks. The cause of this error is the
technical implementation to obtain all combinations of items in a
key-value set: The call 'combn(nodes, 2)' in the function
'construct.edge.list.from.key.value.list' does not care for the order of
the items, although we need to care.

To fix this problem, we need to extract the edge list for each item in
an item combination separately and use the second one as the receiver of
the edge.

Additionally, the function 'construct.edge.list.from.key.value.list' is
adapted to match the coding conventions:
- access the vertex column via its name 'data.vertices',
- use 'seq_len' instead of the ':' operator, and
- add curly braces for a single-line if-statement.

Note: This temporarily breaks some tests due to igraph's normalization
on undirected edge lists which reorders some edges (apparently)
randomly.

Signed-off-by: Claus Hunsen <[email protected]>
Also extend documentation in the source code for the edge-construction
algorithm for better comprehensibility.

Signed-off-by: Thomas Bock <[email protected]>
After a change of the edge-construction algorithm in
70b3c82, for some author networks in the
test suite, the internal representation of the corresponding igraph object
has changed: The igraph object now stores the edges in another order
(but the network itself has not changed). This commit fixes those tests.

Signed-off-by: Thomas Bock <[email protected]>
-Move the detailed information on how the  parameter works to an
 individual section.

-Add an example (taken from #6) and extend it by adding loop edges.

-Fix minor issues on README from review in PR #137.

Signed-off-by: Thomas Bock <[email protected]>
Signed-off-by: Thomas Bock <[email protected]>
Improve the section regarding edge construction for author networks in
the README.md file.

Signed-off-by: Thomas Bock <[email protected]>
Signed-off-by: Barbara Eckl <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
To clarify, that the network configuration parameter 'respect.temporal.order'
only applies for the construction of author networks, the parameter is
renamed to 'author.respect.temporal.order'.

Signed-off-by: Thomas Bock <[email protected]>
Escape arrow brackets.

Signed-off-by: Thomas Bock <[email protected]>
After getting feedback from @SCPhantom, improve the README section on
edge-construction algorithms for author networks again.

Signed-off-by: Thomas Bock <[email protected]>
Signed-off-by: Barbara Eckl <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
Distinguish directedness of author networks and edge-construction algorithm

Reviewed-by: Claus Hunsen <[email protected]>
Reviewed-by: Barbara Eckl <[email protected]>
Reviewed-by: Jakob Kronawitter <[email protected]>
Signed-off-by: Claus Hunsen <[email protected]>
@clhunsen clhunsen added this to the v3.3 milestone Aug 12, 2018
@clhunsen
Copy link
Collaborator Author

As we reviewed everything before, I will merge rightaway when the build checks finish successfully.

@clhunsen clhunsen merged commit 98de3e3 into master Aug 12, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants