Skip to content

v4.0

Compare
Choose a tag to compare
@bockthom bockthom released this 01 Sep 14:13
· 307 commits to master since this release
a656026

4.0

Changes in detail

v3.7...a656026

Announcement

Added

  • Add functionality to read and process commit messages in order to merge them to the commit data (see issue #180). Three values are available for the new attribute commit.messages in ProjectConf: none, title and messages (PR #193, 85b1d05, fdc414a, 43e1894)
  • Add functions cleanup.commit.message.data and cleanup.synchronicity.data to remove commit hashes that are not any more present in the commit data from the commit message data or synchronicity data (PR #193, 98e83b0)
  • Add function metrics.is.smallworld to the metrics module in order to unify checks for smallworldness (similar to scalefreeness) (PR #195, ce1f812)
  • Add function metrics.vertex.centralities to metrics module in order to simplify getting a data frame containing author names and their respective centrality values (d3cd528, e7182e7)
  • 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, d1e4413)
  • Add tests for the get.data.sources.from.relations function (PR #195, add0c74)
  • Add logo directory containing several logo variants (PR #196, 82f9971, dc4659e, fdc5e67, 752a9b3)
  • Add function preprocess.issue.data, which implements common issue data filtering operations. (fcf5cee, a566cae, 5ba6feb)
  • Add function get.issues.uncached, which gets the issues filtered without poisoning or using the cache. (eb919fa)
  • 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 (b9dd94c, e05f344)
  • 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, 9f9150a, 7260d62, 139f70b, eb4f649, 627873c, 1e1406f, 98e11ab, a566cae)
  • Add functionality that allows to read any data source at any point in time, even after splitting. In this case, the read data is automatically cut to the corresponding range on the RangeData object (PR #201, 7f9394f). Additionally, when changing the configuration parameters concerning additional data sources, the environment of a ProjectData object is no longer reset (PR #201, eed45ac)
  • Add new configuration parameters commits.locked, mails.locked and issues.locked to ProjectConf which, when set to TRUE, prevent the respective getters from triggering the read of the data if it is not present yet (PR #201, 3821677)
  • Add support for classifying developers on the basis of more count-based classification metrics, including mail-count, mail-thread count, issue-count, issue-comment count, issue-commented-in count, and issue-created count (issue #70, PR #209, d7b2455, 6f737c8)
  • Add bot filtering mechanism, which allows removing issues/mails/commits made by bots (838855f, dcce82d)
  • Ignore the "deleted user", as well as the author having an empty name "" (1a08140, 24c222a)

Changed/Improved

  • Breaking Change: Rename getters for main data sources: Unfiltered date is now acquired using get.<datasource>.unfiltered, filtered data is acquired using get.<datasource> (edf19cf, e05f344)
  • Add check for empty network in metrics.hub.degree function. In the case of an empty network, a warning is being printed and NA is returned (PR #195, 4b164be)
  • Adjust the function ProjectData$get.artifacts: Rename its single parameter to data.sources and change the function so that it can extract the artifacts for multiple data sources at once. The default is still that only artifacts from the commit data are extracted. (PR #195, cf795f2, 70c05ec, 5a46ff4, fd767bb)
  • Change the internal representation of empty data from NULL to empty data frames and adapt function get.cached.data.sources() of ProjectData which returns a vector of all data sources that are cached (including additional and filtered data sources) (PR #201, aec898e, e55d088, 24c222a); additionally, introduce new function is.data.source.cached() in util-data.R that returns a logical vector indicating which of the given data sources are cached (PR #201, b49cc5d, 491e70c, 24c222a)
  • Change the threshold calculation for the classification of developers to use a quantile approach when classifying on the basis of network centrality metrics (issue #205, PR #209, PR #210, 5128252, 0d6a3a1)
  • Update documentation in util-network-metrics.R and util.conf.R (PR #195, f929248, de9988c, PR #199, 059b286)
  • Splitting no longer loads all (additional) data sources, but only the ones that have already been cached in the ProjectData (PR #201, 52a3014, aec898e, de1bbfe)
  • Improve the documentation in util-core-peripheral.R by adding roxygen skeleton documentation to undocumented functions (issue #70, PR #209, a3d5ca7, 6f737c8)
  • Change the $ notation to the bracket notation in util-core-peripehral.R (issue #70, PR #209, 6f737c8)
  • Add .drone.yml to enable running our CI pipelines on drone.io (PR #191, 1c5804b)
  • Not only run test suite in our CI pipeline, but also run the showcase file in our CI pipeline using test data (719a4f0, 3eb31d8)
  • Add R version 4.1 to test suite and adjust missing time-zone attributes on NA vectors or empty POSIXct vectors which are correctly added as of R version 4.1 (PR #203, 6b7fb36, 98c5671, 09d11ab)

Fixed

  • Fix fencing issue timing data so that issue events "happen" after the issue was created. Since only commit_added events are affected, that only happens for these. (issue #185, 627873c, 6ff585d)
  • Fix the function reset.environment() of both the ProjectData and NetworkBuilder class; they now reset all the data (PR #199, de091a5, fc4c086)
  • Adjust the functions update.commit.message.data(), update.pasta.data(), and update.synchronicity.data(): no warning is being printed anymore when being called by the corresponding cleanup function (PR #199, e5c60a5)
  • Fix issue where the data path on RangeData objects was wrong in special cases. Introduce the (private) flag built.from.range.data.read that is set according to how the object has been created (splitting manually or reading codeface ranges) and calculating the data path accordingly (PR #199, cce9527, 917bf64, 169c034). Also add tests for this new behaviour (PR #199, ef5bac6, 3aa8e7d, d454e5a, 66ad127)
  • Make splitting no longer modify the original ProjectConf, instead create a copy (e82d056)
  • Fix and update outdated examples in the showcase file (473c094, 287fbfa, 0a5cce4, PR #207)
  • Fix generation of Codeface range directory names from commit hashes (5c90d1c)
  • Fix plotting an empty network via plot.network (03f986d)
  • Fix behavior of construct.ranges when only one range has to bee constructed and sliding.window = TRUE (000314b)
  • Add package reshape2 to the install script as this package is used in module util-plot-evolution.R for quite a while but never has been added to the list of packages to install (7bb4e7b)
  • Fix data tests in test-data.R to use deep clones of ProjectData objects (PR #209, d75373a)
  • Fix the update.values() function in util-conf.R to delete the value field if the new value is equal to the default value as the comparison of two otherwise equal Conf objects fails without this (PR #209, d75373a)