Skip to content

Commit

Permalink
Merge pull request #224 from se-sic/dev
Browse files Browse the repository at this point in the history
Version 4.1

Merged-by: Thomas Bock <[email protected]>
  • Loading branch information
bockthom authored Apr 8, 2022
2 parents a656026 + 9520acc commit 59f4f3e
Show file tree
Hide file tree
Showing 17 changed files with 533 additions and 79 deletions.
71 changes: 34 additions & 37 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
## with this program; if not, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
##
## Copyright 2020-2021 by Thomas Bock <[email protected]>
## Copyright 2020-2022 by Thomas Bock <[email protected]>
## All Rights Reserved.

# Drone CI Setup
Expand All @@ -27,12 +27,17 @@ platform:

steps:
- name: R-latest
image: r-base:latest
image: rocker/r-ver:latest
commands: &runTests
# stop treating warnings as errors
- unset CI
# package dependencies
- apt install update -y && libudunits2-dev
# - apt install update -y && libudunits2-dev
- apt-get update -y
- apt-get install --assume-yes libxml2
- apt-get install --assume-yes libxml2-dev
- apt-get install --assume-yes libglpk-dev
- echo 'options(repos = c(CRAN = "https://cloud.r-project.org"))' >>"/usr/local/lib/R/etc/Rprofile.site"
# package installation
- Rscript install.R
# execute test suite
Expand All @@ -41,37 +46,31 @@ steps:

- name: R-4.1
pull: if-not-exists
image: r-base:4.1.1
image: rocker/r-ver:4.1.3
commands: *runTests
depends_on: [clone]

- name: R-4.0
pull: if-not-exists
image: r-base:4.0.5
image: rocker/r-ver:4.0.5
commands: *runTests
depends_on: [clone]

- name: R-3.6
pull: if-not-exists
image: r-base:3.6.3
image: rocker/r-ver:3.6.3
commands: *runTests
depends_on: [clone]

- name: R-3.5
pull: if-not-exists
image: r-base:3.5.3
image: rocker/r-ver:3.5.3
commands: *runTests
depends_on: [clone]

- name: R-3.4
pull: if-not-exists
image: r-base:3.4.4
commands: *runTests
depends_on: [clone]

- name: R-3.3
pull: if-not-exists
image: r-base:3.3.2
image: rocker/r-ver:3.4.4
commands: *runTests
depends_on: [clone]

Expand All @@ -87,12 +86,17 @@ platform:

steps:
- name: R-latest
image: r-base:latest
image: rocker/r-ver:latest
commands: &runShowcase
# stop treating warnings as errors
- unset CI
# package dependencies
- apt install update -y && libudunits2-dev
#- apt install update -y && libudunits2-dev
- apt-get update -y
- apt-get install --assume-yes libxml2
- apt-get install --assume-yes libxml2-dev
- apt-get install --assume-yes libglpk-dev
- echo 'options(repos = c(CRAN = "https://cloud.r-project.org"))' >>"/usr/local/lib/R/etc/Rprofile.site"
# package installation
- Rscript install.R
# execute showcase file
Expand All @@ -101,40 +105,33 @@ steps:

- name: R-4.1
pull: if-not-exists
image: r-base:4.1.0
image: rocker/r-ver:4.1.3
commands: *runShowcase
depends_on: [clone]

- name: R-4.0
pull: if-not-exists
image: r-base:4.0.5
image: rocker/r-ver:4.0.5
commands: *runShowcase
depends_on: [clone]

- name: R-3.6
pull: if-not-exists
image: r-base:3.6.3
commands: *runShowcase
depends_on: [clone]

- name: R-3.5
pull: if-not-exists
image: r-base:3.5.3
commands: *runShowcase
depends_on: [clone]

- name: R-3.4
pull: if-not-exists
image: r-base:3.4.4
commands: *runShowcase
depends_on: [clone]

- name: R-3.3
pull: if-not-exists
image: r-base:3.3.2
image: rocker/r-ver:3.6.3
commands: *runShowcase
depends_on: [clone]

#- name: R-3.5
# pull: if-not-exists
# image: rocker/r-ver:3.5.3
# commands: *runShowcase
# depends_on: [clone]
#
#- name: R-3.4
# pull: if-not-exists
# image: rocker/r-ver:3.4.4
# commands: *runShowcase
# depends_on: [clone]

#trigger:
# branch:
Expand Down
17 changes: 16 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@

# coronet – Changelog

## 4.1

### Added
- Incorporate gender data, i.e., add a configuration entry to the project configuration, add function `read.gender` for reading gender data, add functions `get.gender` and `set.gender` and corresponding utility functions to automatically merge gender data to the author data (PR #216, 8868ff47900cf804553ec98683b736b07350fc64, bfbe4deb9d14faeed56bdf37f9f732e01c41af57, 0a23862c6308c27fe4f93835c3a4480eac03ca91, a7744b548ac5ab697a4eb3d71987ddedef180d59, 6a50fd15bdd6382fa3d868a21a41a4b0a36ffce7, 413e24c18532d06144ef996184192594a0893ca3, 39db3158e931fa627e974451ae66c57bd0b77b12, 1e4026def1995a23b3f42eac5eb343ee5a518798)

### Changed/Improved
- Add `mode` parameter to `metrics.vertex.degrees` to allow choosing between indegree, outdegree, and total (#219, ae14eb4cb83c6ab8f387886228cdf7ea6f3258c4)
- Adjust `.drone.yml` CI config to prevent pipeline fails: `R` version `3.3` is not tested any more as some packages are not available any more for this `R` version (ca6b474d773c045dd88a19aee905283a373df0a6). Also another docker container in the CI pipeline is used as there are problems with the previously used docker instance (937f797ee04b78a087ea84043d075e7ca7558d70)

### Fixed
- Fix values in test for the eigenvector centrality as igraph has changed the calculation of this with version 1.2.7. Also put a warning that we recommend version 1.3.0 in `install.R` and document it in the `README.md` (25fb86277c7cc15b94ca0327bff4bb7e818ca09b, 1bcbca96d6dbaa2d4a28e830da963604682eac70)
- Fix the filtering of the deleted user in `util-read.R` to always be lowercase as the deleted user can appear with different spellings (#214, 1b4072c7ec0e33a595e31d9e9d27bb5c133b1556)
- Add check to `get.first.activity.data` to look for missing activity types. If no activities are in the RangeData, the function will print a warning and return an empty list (PR #220, #217, 5707517600c5579095c245b63c745d01cde02799, 42a4befb36e7fd9830924dc7fb2e04ecdf86e209, d6424c03baff05562448df1b6b87828ca9a37b88, ca8a1b4c628261dcb471e1da3603439e75e4cc56, f6553c6106e5fec3837c6edb906a4d0960c5c5fb)


## 4.0

### Announcement
Expand All @@ -15,7 +30,7 @@
- Add function `get.data.sources.from.relations` to `util-networks.R` which extracts the data sources of a network that were used when building it (PR #195, d1e4413a49ab83a115a7f26719592876371ab264)
- Add tests for the `get.data.sources.from.relations` function (PR #195, add0c746dde8279da41d180deecf52b91a46095c)
- Add logo directory containing several logo variants (PR #196, 82f99719b8a43b0a44914b67b26bf1a34bb076c6, dc4659ea354e97159f8ee6167811db544f0b7087, fdc5e677325225f92d1f99948cb9441bfe1d150d, 752a9b376ffeffd5d6b380b4fdba838a890e3ef7)
- Add function `preprocess.issue.data`, which implements common issue data filtering operations. (fcf5cee64c809d62a33275cbd3272b8087869eea, a566caec6d7e649cc495d292a19eca8a7ffccde8, 5ba6feb988c44e2ba398bccce6c88e69d3bb552e)
- Add function `preprocess.issue.data`, which implements common issue data filtering operations (fcf5cee64c809d62a33275cbd3272b8087869eea, a566caec6d7e649cc495d292a19eca8a7ffccde8, 5ba6feb988c44e2ba398bccce6c88e69d3bb552e)
- Add function `get.issues.uncached`, which gets the issues filtered without poisoning or using the cache. (eb919fad9519d6e1a23261977bb3bfa2b899aaf9)
- Add function `get.issues.unfiltered` to get the unfiltered issues so that these methods follow the naming scheme known from the respective methods for commits (b9dd94c8575b8cab40d0d1185368854f84299d87, e05f3448e1e2e8faaac219ed4ac818f82f3d8ff7)
- Add per-author vertex attributes regarding counting of issues, issue-creations, issue-comments, mails, mail-threads, ... (like mail thread count, issue creation count) (PR #194, issue #188, 9f9150a97ffbb64607df0ddcbce299e16c2580da, 7260d62cf6f1470584753f76970d19664638eeed, 139f70b67903909bcd4c57e26afa458681a869f2, eb4f649c04155e22195627072e0f08bb8fe65dc4, 627873c641410182ca8fee0e78b95d7bda1e8e6b, 1e1406f4a0898cac3e61a7bc9a5aa665dceef79f, 98e11abc651b5fe0ec994eddea078635b0d6f0b2, a566caec6d7e649cc495d292a19eca8a7ffccde8)
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ While using the package, we require the following infrastructure.

#### [`R`](https://www.r-project.org/)

Minimum requirement is `R` version `3.3.1`. Hence, later `R` versions also work.
Minimum requirement is `R` version `3.4.4`. Hence, later `R` versions also work. (Earlier `R` versions beginning from version `3.3.1` on should also work, but some packages are not available any more for these versions, so we do not test them any more in our CI pipeline.)

We currently recommend version `4.1.1` or `3.6.3` for reliability reasons and `packrat` compatibility, but also later `R` versions should work (and are tested using our CI script).
We currently *recommend* `R` version `4.1.1` or `3.6.3` for reliability reasons and `packrat` compatibility, but also later `R` versions should work (and are tested using our CI script).

#### [`packrat`](http://rstudio.github.io/packrat/) (recommended)

Expand Down Expand Up @@ -125,7 +125,7 @@ Alternatively, you can run `Rscript install.R` to install the packages.

- `yaml`: To read YAML configuration files (i.e., Codeface configuration files)
- `R6`: For proper classes
- `igraph`: For the construction of networks
- `igraph`: For the construction of networks (package version `1.3.0` or higher is recommended)
- `plyr`: For the `dlply` splitting-function and `rbind.fill`
- `parallel`: For parallelization
- `logging`: Logging
Expand Down Expand Up @@ -192,6 +192,7 @@ There are two distinguishable types of data sources that are both handled by the
1. `none` is the default value and does not impact the configuration at all.
2. `title` merges the commit message titles (i.e. the first non white space line of a commit message) to the commit data. This gives the data frame an additional column `title`.
3. `messages` merges both titles and message bodies to the commit data frame. This adds two new columns `title` and `message`.
* Gender data of authors (see also the parameter `gender` in the [`ProjectConf`](#configurable-data-retrieval-related-parameters) class)))
* [PaStA](https://github.com/lfd/PaStA/) data (patch-stack analysis, see also the parameter `pasta` in the [`ProjectConf`](#configurable-data-retrieval-related-parameters) class))
* Patch-stack analysis to link patches sent to mailing lists and upstream commits
* Synchronicity information on commits (see also the parameter `synchronicity` in the [`ProjectConf`](#configurable-data-retrieval-related-parameters) class)
Expand Down Expand Up @@ -557,6 +558,9 @@ There is no way to update the entries, except for the revision-based parameters.
- `filter.bots`
* Remove all commits, issues, and mails made by bots. Bots are identified using the `bots.list` file.
* [`TRUE`, *`FALSE`*]
- `gender`
* Read and add gender data to authors (column `gender`)
* [`TRUE`, *`FALSE`*]
- `issues.only.comments`
* Only use comments from the issue data on disk and no further events such as references and label changes
* [*`TRUE`*, `FALSE`]
Expand Down
7 changes: 7 additions & 0 deletions install.R
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
## Copyright 2015 by Wolfgang Mauerer <[email protected]>
## Copyright 2015-2017 by Claus Hunsen <[email protected]>
## Copyright 2017 by Thomas Bock <[email protected]>
## Copyright 2022 by Thomas Bock <[email protected]>
## Copyright 2020-2021 by Thomas Bock <[email protected]>
## Copyright 2019 by Anselm Fehnker <[email protected]>
## Copyright 2021 by Christian Hechtl <[email protected]>
## All Rights Reserved.
##
## Adapted from https://github.com/siemens/codeface/blob/be382e9171fb91b4aa99b99b09b2ef64a6dba0d5/packages.r
Expand Down Expand Up @@ -62,4 +64,9 @@ if (length(p) > 0) {

## set dependencies to 'NA' to install only necessary dependencies (i.e., "Depends", "Imports", "LinkingTo")
install.packages(p, dependencies = NA, verbose = TRUE, quiet = TRUE)

igraph.version = installed.packages()[rownames(installed.packages()) == "igraph", "Version"]
if (compareVersion(igraph.version, "1.3.0") == -1) {
print("WARNING: igraph version 1.3.0 or higher is recommended for using coronet.")
}
}
6 changes: 6 additions & 0 deletions sample/results/testing/sample_gender/gender
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
D1;male
D2;female
D3;male
D4;male
D5;female
D6;female
1 change: 1 addition & 0 deletions tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ We have two test projects you can use when writing your tests:
* Issues
* Authors
* Bots
* Gender
* Commit messages
* Pasta
* Synchronicity
Expand Down
Empty file.
9 changes: 9 additions & 0 deletions tests/codeface-data/results/testing/test_gender/gender.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Thomas;male
Olaf;female
Karl;male
Max;male
udo;female
Björn;male
georg;male
Hans;male
Fritz [email protected];unknown
Loading

0 comments on commit 59f4f3e

Please sign in to comment.