Author : Michele Sacchetti
Version : 0.1.0-SNAPSHOT (Yes, still work in progress!)
Please check project wiki for latest documentation
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.
To start using pathfinder:
Checkout git repository and build the project
Learn how to start pathfinder-server
Integrate pathfinder-maven-plugin into your build chain to start collecting data
Deploy pathfinder-web over a path accessible by your favorite web browser (Apache or even local path will fit)
Read Pathfinder User Guide to start analyzing your projects
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
<neo4j.db.port> or pass new values from
command line. For example,
mvn clean install -Dserver.port=8081