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

Introduce a network-configuration object #8

Closed
clhunsen opened this issue Apr 22, 2017 · 1 comment
Closed

Introduce a network-configuration object #8

clhunsen opened this issue Apr 22, 2017 · 1 comment

Comments

@clhunsen
Copy link
Collaborator

clhunsen commented Apr 22, 2017

Essentially, we should use two configuration objects:

  • the project configuration, holding data paths, revisions etc. (right now CodefaceConf), and
  • the network configuration, holding vertex and edge configuration details (i.e., artifact types etc.), edge and vertex attributes, ... (right now passed as repetitive method parameters).

This way, we are able to initialize data objects by just replacing the network configuration and remove tons of delegated attributes to almost all data-object methods. Additionally, the configuration just need to be done once -- by passing the configuration object to the constructor.

The list of network configuration options should be the following, at least:

  • vertices and vertex attributes,
  • edges and edge attributes,
  • vertex relations for all parts of the networks ("mail", "cochange", "callgraph"),
  • synchronicity data (yes or no), synchronicity time-window,
  • directedness (see issue Distinguish directedness of networks and edge-construction algorithm #6 on this),
  • network simplification (contract edges: yes or no),
  • network-construction details (naming not fixed):
    • filter.artifact (only the exact artifact, e.g., filter feature expressions when using features as artifacts) [default: yes],
    • artifact.filter.base (remove BASE_FEATURE and FILE_LEVEL) [default: yes],
    • artifact.filter.empty (remove the "empty" artifact, i.e., remove all commits which does not changed a tracked artifact),
  • skip.threshold from function construct.dependency.network.from.list,
  • ...

Of course, all possibilites should be documented properly.

@clhunsen
Copy link
Collaborator Author

See pull request #20.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant