Skip to content

Latest commit

 

History

History
85 lines (44 loc) · 3.42 KB

README.md

File metadata and controls

85 lines (44 loc) · 3.42 KB

Build status Quality Gate Status

Pathfinder

Author : Michele Sacchetti

Version : 0.1.0-SNAPSHOT (Yes, still work in progress!)

Please check project wiki for latest documentation

Intro

Every software projects starts its life with few lines of code, but as time passes, things grows up, classes becomes modules, then submodules, then external dependencies.

More developers are added to the team, dependencies list grows huge and you start suffering backward compatibility pains for your production code.

You start posing question like:

  • "If I modify this module, how many other teams/projects/modules are using it? They must inherit the modified code as wall, but how can I get a full list?"

  • "I have to estimate time spent to modify this module, but how many other module depends on it? I have to modify them as well before performing a release"

What is Pathfinder?

Pathfinder is a developer / release manager assistant which will help you:

  • Trace all you projects dependencies and cross-dependencies

  • Identify SNAPSHOT or branch-based dependencies at a glance

  • Create a "release path" to optimize your delivery time

  • Know every project your current code is actually included

  • ( Many other in the future..)

How Pathfinder works

Pathfinder analyzes your projects dependencies and store them as a relational graph.

Dependencies coming from different project are merged together to from a unique relation ecosystem to be analyzed.

Patterns are then extracted to retrieve only information relevant to the project you are working on and its impact on other projects into the graph.

Pathfinder UI

Getting started

To start using pathfinder:

Building the project

JDK 7 or newer and a recent version of Maven are the only requirements for building the project.

However, if ports 8080 or 8686 are occupied on your system, integration tests of pathfinder-server will be failing. You need to change these defaults in pom.xml. Find and change values of <server.port> and <neo4j.db.port> or pass new values from command line. For example, mvn clean install -Dserver.port=8081