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.1 #101

Merged
merged 104 commits into from
Mar 1, 2018
Merged

v3.1 #101

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
3ca6063
Add commit count as vertex attribute
Nov 26, 2017
cafa3ab
Add further vertex attributes
Nov 27, 2017
32944cb
Add author classification attribute
Nov 27, 2017
fe2721c
Minor refactoring on vertex attributes
Nov 29, 2017
0371351
Fix implementation of active author range vertex attribute
Dec 4, 2017
39065fd
Rename util-covariates.R to util-networks-covariates.R
Dec 4, 2017
e3c6510
Rename what parameter to aggregation
Dec 4, 2017
cd261ad
Add comments to vertex attribute methods
Dec 4, 2017
a8ca406
Refactor code of vertex attributes
Dec 5, 2017
288c927
Extend add.vertex.attribute.first.activity to work on mail, commits a…
Dec 5, 2017
d7d8986
Add default value for missing vertex attributes
Dec 5, 2017
2549f2b
Improve author role classification
Dec 6, 2017
bca66be
Add explicit return
Dec 12, 2017
efd9b2d
Add test for splitting project data
Dec 17, 2017
06ec950
Add multiple tests for vertex attributes
Dec 17, 2017
df52ac7
Fix network attribute unit tests
Dec 19, 2017
8ae1abf
Fix artifact count attribute implementation
Dec 19, 2017
b9f0bd3
Add tests for network vertex attributes
Dec 19, 2017
3e20fb2
Comments for network-covariates tests
Dec 21, 2017
9f53875
Add more vertex attributes
Dec 29, 2017
a002dfa
Add tests for artifact vertex attributes
Dec 29, 2017
289196a
Refactor tests on network attributes
clhunsen Feb 14, 2018
c6418c5
Update core-peripheral module
clhunsen Feb 14, 2018
0eafcd0
Update networks-covariates module
clhunsen Feb 14, 2018
ac678f6
Fix section dividers in some files
clhunsen Feb 15, 2018
07c85db
Add additional FIXME items for the 'ProjectData$get.artifacts' problem
clhunsen Feb 15, 2018
217e41c
Add ability to the earliest and latest data timestamps
clhunsen Feb 15, 2018
52eae7f
Extend aggregation levels for data-splitting-by-network functionality
clhunsen Feb 15, 2018
5242e76
Add author-classification attributes based on classification result
clhunsen Feb 15, 2018
0c1868a
Add 'date.offset' to possible edge attributes
clhunsen Feb 15, 2018
4810ac5
Move 'get.commit.data' to the data module
clhunsen Feb 16, 2018
056cd22
Add example on vertex attributes to showcase file
clhunsen Feb 16, 2018
9684f39
Minor fixes from review in PR #93
clhunsen Feb 19, 2018
253433d
Merge branch 'dev' into vertex-attributes
clhunsen Feb 19, 2018
5e677d2
Merge pull request #93 from clhunsen/vertex-attributes
clhunsen Feb 19, 2018
35ea503
Fix some further sqldf queries
clhunsen Feb 16, 2018
c326969
Replace as.POSIXct with lubridate calls
clhunsen Feb 16, 2018
011ee6e
Merge pull request #94 from clhunsen/lubridate
clhunsen Feb 20, 2018
01bf6df
Add test for the network construction of the author-cochange network
Nov 13, 2017
5ad74ec
Add test for the cochange artifact network construction
Nov 20, 2017
d6f2243
Add test for the directed cochange author network construction
Nov 20, 2017
ed744ed
Change commits.list of the testing data for testing
Nov 27, 2017
00f8f82
Add test for reading the raw commit data with the file artifact
Nov 27, 2017
3086a37
Add test for the simplification of the undirected author-cochange net…
Nov 29, 2017
7897fda
Add network test for the bipartite relation
Dec 4, 2017
a539c0c
Add network tests for the bipartite relation
Dec 4, 2017
b38cc18
Add tests for the directed bipartite networks for all artifacts
Jan 15, 2018
edeb2da
Add test for the bipartite network with artifact.relation = issue
Jan 22, 2018
65b0451
Add file and first test for the multi networks (WIP)
Jan 23, 2018
e011782
Add 'issues.only.comments' to ProjectConf
Feb 12, 2018
3c9e371
Adapt tests to new issue getter
Feb 12, 2018
7fcca2a
Change author's real name to 'Björn' in the sample test data
Feb 12, 2018
7ff6b90
Adjust tests to new author name
clhunsen Feb 22, 2018
5a18997
Adapt multi network test
Feb 18, 2018
af87b6a
Add author-network tests for the issue relation with and without filt…
Feb 18, 2018
4154324
Change 'as.POSIXct' calls to utility-function calls
clhunsen Feb 22, 2018
e7e91cb
Adjust e-mail address in test data
clhunsen Feb 22, 2018
14f6fb6
Update author test data
clhunsen Feb 22, 2018
77f79bb
Use constants for vertex/edge types in tests
clhunsen Feb 23, 2018
22e1ba5
Merge pull request #95 from hechtlC/master
clhunsen Feb 23, 2018
cccdf84
Move range construction to misc module
clhunsen Feb 19, 2018
da8f851
Add possibility to get raw ranges
clhunsen Feb 19, 2018
9dd91f7
Update 'construct.ranges' to work more reliably on midnight datetimes
clhunsen Feb 19, 2018
8b14cc3
Implement function to construct overlapping ranges
clhunsen Feb 19, 2018
fc11886
Implement function to construct cumulative ranges
clhunsen Feb 20, 2018
f08d671
Implement function to aggregate ranges
clhunsen Feb 20, 2018
d96ed2f
Refactor 'split.data.by.networks'
clhunsen Feb 20, 2018
d9bcb80
Implement function to construct consecutive ranges
clhunsen Feb 21, 2018
7223a4f
Add utility function to generate date sequences
clhunsen Feb 21, 2018
335c2b5
Refactor 'construct.overlapping.ranges' to use 'generate.date.sequence'
clhunsen Feb 21, 2018
cbc1f3c
Fix range construction to properly include end date
clhunsen Feb 21, 2018
d421807
Refactor 'split.get.bins.time.based' to use 'generate.date.sequence'
clhunsen Feb 21, 2018
889af54
Add functions to split data and networks by ranges
clhunsen Feb 21, 2018
73da31b
Use 'split.data.time.based.by.ranges' in 'split.data.by.networks'
clhunsen Feb 21, 2018
23117c6
Tidy 'tests/test-split.R'
clhunsen Feb 21, 2018
843f8c7
Update splitting tests
clhunsen Feb 21, 2018
99e368b
Fix bug with end date when constructing overlapping ranges
clhunsen Feb 21, 2018
0ec4690
Check overlap for overlapping ranges
clhunsen Feb 21, 2018
db0cb14
Add test for consecutive and overlapping ranges
clhunsen Feb 21, 2018
41e8d56
Fix bug with project end when aggregating ranges
clhunsen Feb 21, 2018
87829a7
Add tests for cumulative and aggregated ranges
clhunsen Feb 21, 2018
dee0abb
Fix test for 'split.data.by.networks'
clhunsen Feb 22, 2018
afc96f4
Document exclicit bins in functions 'split.*.time.based' more precisely
clhunsen Feb 22, 2018
d97c889
Fix 'generate.date.sequence' to handle strings correctly
clhunsen Feb 22, 2018
28b4122
Add tests for date handling
clhunsen Feb 22, 2018
22124ee
Minor fixes from review in PR #96
clhunsen Feb 26, 2018
e9183bd
Merge pull request #96 from clhunsen/cumulative-ranges
bockthom Feb 27, 2018
c4dc3f4
Properly check the arguments for our class constructors
clhunsen Feb 23, 2018
d4b8ff9
Make removal of isolates in resulting split networks optional
clhunsen Feb 27, 2018
319de26
Add contribution guide and issue template
clhunsen Nov 20, 2017
bd9988d
Add a changelog file
clhunsen Nov 20, 2017
5a1add8
Add reference to changelog to contribution guide
clhunsen Nov 20, 2017
ce407cc
Specify commit policy more precisely
clhunsen Nov 28, 2017
c623237
Extend R coding conventions
clhunsen Nov 28, 2017
5321157
Fix typo in contribution guide
clhunsen Nov 29, 2017
1d026ef
Add sentence on return statements to contribution guide
clhunsen Dec 6, 2017
4503d90
Add branch and tag information to contribution guide and README
clhunsen Dec 18, 2017
bc65859
Add date handling to contribution guide
clhunsen Feb 19, 2018
7b74aa5
Update changelog
clhunsen Feb 28, 2018
e252fa2
Update README
clhunsen Feb 28, 2018
a36dafc
Enforce coding conventions
clhunsen Feb 28, 2018
65f78a5
Apply GPLv2 and adjust copyright headers
clhunsen Feb 28, 2018
f15d27f
Minor fixes from review in PR #100
clhunsen Mar 1, 2018
70a66fb
Merge pull request #100 from clhunsen/claus-updates
bockthom Mar 1, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
## This file is part of codeface-extraction-r, which is free software: you
## can redistribute it and/or modify it under the terms of the GNU General
## Public License as published by the Free Software Foundation, version 2.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
##
## Copyright 2017 by Claus Hunsen <[email protected]>
## All Rights Reserved.


language: r
r: 3.3

Expand Down
187 changes: 187 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
# Contributing to the Network Library

The following is a set of guidelines for contributing to the Network Library, which are hosted in the [se-passau](https://github.com/se-passau) organization on GitHub.
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.

#### Table Of Contents

[FAQ](#faq)

[How Can I Contribute?](#how-can-i-contribute)
* [Reporting Bugs](#reporting-bugs)
* [Suggesting Enhancements](#suggesting-enhancements)
* [Your First Code Contribution](#your-first-code-contribution)
* [Pull Requests](#pull-requests)

[Style Conventions](#style-conventions)
* [Commit Messages](#commit-messages)
* [R Coding Conventions](#r-coding-conventions)


## FAQ

1. **What is this project?**
Using the code in this project, you can use Codeface data to construct sophisticated developer networks for further analysis.
2. **How can I use the project in my project?**
A small introduction is given in our [README](README.md) file.


## How Can I Contribute?

### Reporting Bugs

This section guides you through submitting a bug report for our project. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.

Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible.

Note: If you find a `Closed` issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.

#### Before Submitting A Bug Report

* **Check the code.**
You might be able to find the cause of the problem and fix things yourself. Most importantly, check if you can reproduce the problem in the latest version of the library (see [branch `dev`](https://github.com/se-passau/codeface-extraction-r/tree/dev)).
* **Search for previous issues describing the same problem.**
If an old issue includes also a fix or a workaround for your problem, you do not need to file a new issue. Although, if the problem still persists after applying potential fixes, please file a new issue including detailed information to reproduce the problem. If there is an old issue that is still open, add a comment to the existing issue instead of opening a new one.
* **Run the test suite.**
If the test suite does not finish successfully, you may have changed some core code, so that the basic functionality of the library is not consistent anymore. Please reset your changes and try again.

#### How Do I Submit A (Good) Bug Report?

Bugs are tracked as GitHub issues. Create an issue and provide needed information by filling in the template.

Explain the problem and include additional details to help maintainers reproduce the problem:

* **Use a clear and descriptive title** for the issue to identify the problem.
* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you initalize the library in your code, e.g., which command exactly you used in in your script, or whether you modified the library code or not. Give also details on what your goal is, what you want to achieve by using the library.
* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, or even minimal working examples (MWEs) to reproduce the problem. Especially, include your project and network configurations so that we can understand your setting.
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
* **Explain which behavior you expected to see instead and why.**
* **If you're reporting that the library's code crashed somehow**, include the R stacktrace if available.

Provide more context by answering these questions:

* **Did the problem start happening recently** (e.g., after updating to a new version of the library) or was this always a problem?
* If the problem started happening recently, **can you reproduce the problem in an older version?** What's the most recent version in which the problem doesn't happen?
* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens.

Include details about your configuration and environment:

* **Which version of the library are you using?** You can get the exact version by running `git rev-parse HEAD` and `git rev-parse --abbrev-ref HEAD` in your terminal.
* **What's the name and version of the OS you're using**?
* **Are you running the library in a virtual machine?** If so, which VM software are you using and which operating systems and versions are used for the host and the guest?
* **Which R packages do you have installed and do you use [packrat](http://rstudio.github.io/packrat/)?**

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions.

Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](ISSUE_TEMPLATE.md), including the steps that you imagine you would take if the feature you're requesting existed.

#### Before Submitting An Enhancement Suggestion

* **Check the code if the functionality exists already somewhere.**
* **Search for previous suggestions describing the same thing.**
If an old issue already suggests the same enhancement, you do not need to file a new issue. Although, if the problem still persists after applying potential fixes, please file a new issue including detailed information to reproduce the problem. If there is an old issue that is still open, add a comment to the existing issue instead of opening a new one.

#### How Do I Submit A (Good) Enhancement Suggestion?

Enhancements are tracked as GitHub issues. Create an issue and provide the needed information:

* **Use a clear and descriptive title** for the issue to identify the suggestion.
* **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples.
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
* **Explain why this enhancement would be useful** to all users of the library and isn't something that can or should be implemented as a functionality in your code.
* **Which version of the library are you using?** You can get the exact version by running `git rev-parse HEAD` and `git rev-parse --abbrev-ref HEAD` in your terminal.

### Your First Code Contribution

#### Installation

Install the library using the guide in our [README](README.md) file. Start implementing your code additions. Please keep the [style conventions](#style-conventions) in mind when implementing.

#### Our branching and tagging system

In our development process, we pursue the following idea:
- Each version (i.e., a tag) contains, at least, a major and a minor version in the form `v{major}.{minor}[.{bugfix}]`.
- The branch `master` should always contain the most recent and complete version.
- For each version, we maintain a stable branch `v{major}.{minor}-fixes` (e.g., `v3.0-fixes`) containing backported fixes for this particular version. Sometimes, we will annotate such branches with continuous version numbers indicating bugfix releases (e.g., `v3.0.2`).
- The current development will be performed on the branch `dev`, i.e., all incoming pull requests are against this branch.

The current build status is as follows:
- `master`: [![Build Status](https://travis-ci.com/se-passau/codeface-extraction-r.svg?token=8VFPdy2kjPXtstT72yww&branch=master)](https://travis-ci.com/se-passau/codeface-extraction-r)
- `dev`: [![Build Status](https://travis-ci.com/se-passau/codeface-extraction-r.svg?token=8VFPdy2kjPXtstT72yww&branch=dev)](https://travis-ci.com/se-passau/codeface-extraction-r)


### Pull Requests

* Do not include issue numbers in the PR title, but rather in the PR message body.
* Follow the [style conventions](#style-conventions).
* Document new code and provide proper tests.
* Add your enhancements and fixes to the [changelog file](NEWS.md).
* Add yourself to the copyright headers in the files you changed/added.
* End all files with a newline.
* Merge policy:
* Tests must run successfully.
* Code must be reviewed by one other project member and, if needed, be properly adapted/fixed.
* We add the `Reviewed-by` tag only for the merge commit.


## Style Conventions

### Commit Messages

* Most importantly, **[sign off](https://developercertificate.org/) your changes.** This is required for legal reasons, and to give correct attribution to contributions.
* **Structure one logical change into a single commit.** The change can (and will often) encompass changes to multiple files.
* Use **present tense for commit messages** ("Add feature", not: "Added feature").
* **Break the commit message** at 80 characters at maximum. Limit the first line to 72 characters or less.
* The **commit message is composed of multiple parts**:
* The first line contains a concise summary of the changes in a single line.
* Then follows one empty line.
* Then follows a longer description of the change.
* Then follows an empty line.
* Then follows the signed-off tags.
* Configure git to use your **complete name**, not your username.
* **Do not commit incremental development**, that is, half-baked, really not working code. Please work until a change is complete, and then make one commit. Naturally, you will need to fix bugs in later commits, this is no problem. This means also that you do not need to squash all your changes to address an issue into one single commit.
* When you introduce new files, please make sure they have a correct copyright headers and stick to the current naming scheme.
* Reference GitHub issues by adding their identifier (e.g., #11) in the commit message.
* Here's an example commit message in the expected form:
```
Add functions 'get.author2mail' and 'get.author2thread'

Add the functions 'get.author2mail' and 'get.author2thread' to
CodefaceProjectData in order to allow similar data access for mail data
as for commit data.

This fixes #44.

Signed-off-by: Thomas Bock <[email protected]>
Reviewed-by: Claus Hunsen <[email protected]>
```

### R Coding Conventions

* Use [Google's style guide for R](https://google.github.io/styleguide/Rguide.xml) as a start.
* Additionally or, rather, in contrast, we settle on the following style:
* **indentation width**: 4 spaces,
* **line length**: more than 80 characters are allowed, 120 characters should be the maximum,
* **identifiers**: substrings in identifiers are separated only with `.` (and *not* camel-casing or `_`),
* **assignments**: only with `=`,
* **quoting** (e.g., of strings): always use double quotes instead of single quotes,
* **Booleans**: always write `TRUE` instead of `T` (analogously for `FALSE` and `F`),
* **square-brackets notation**: always access values in lists or data.frame using the square-brackets notation (e.g., `df["column1"]` or `list1[["item1"]]`, and
* **return statements**: always use the function `return()` to return a value from a function; do not use one when you intend to not return anything.
* To **include packages**, always use `requireNamespace` (and *not* `library`). Consequently, you need to use package prefixes (e.g., `igraph::`) when calling a package's functions.
* To handle dates and date objects (i.e. mainly, `POSIXct` objects in R), always use the functions `get.date.from.string`, `get.date.from.unix.timestamp`, and `get.date.string`. This ensures proper date handling in all parts of the code. If you need to modify dates (e.g., to add a week), always use the `lubridate` package.
* **Logging** is performed using the `logging` package.
* **Documentation**:
* Function, method, and class documentation is defined in **`roxygen2`** format (see [RStudio documentation](https://support.rstudio.com/hc/en-us/articles/200532317-Writing-Package-Documentation) for details).
* We use **networks**, not "graphs".
* We talk about **authors**, not developers.
* Also **add tests** to the test suite for each new functionality you add!
* Keep the code as simple as possible. So, for example, no complex computation inside the `return` statement.


## Disclaimer

This file is heavily based on the analogous file from the [Atom project](https://github.com/atom/atom), along with refinements from the [Codeface project](https://github.com/siemens/codeface).
25 changes: 25 additions & 0 deletions ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
### Description

[Description of the issue]

### Steps to Reproduce or Minimal Working Example (MWE)

1. [First Step]
2. [Second Step]
3. [and so on...]

Including the project and network configurations!

**Expected behavior:** [What you expect to happen]

**Actual behavior:** [What actually happens]

**Reproduces how often:** [What percentage of the time does it reproduce?]

### Versions

You can get this information from copy and pasting the output of `git rev-parse HEAD` and `git rev-parse --abbrev-ref HEAD` from the command line. Also, please include the OS and what version of the OS you're running.

### Additional Information

Any additional information, configuration or data that might be necessary to reproduce the issue.
Loading