redun-pendancy is a tool for analyzing and managing dependencies in software projects.
It identifies issues, offers actionable recommendations, and simplifies project maintenance with an intuitive interface.
- Getting Started
- Preview
- Features
- Supported Files
- Planned Features
- Developer Reference
- Contributing
- License
-
Navigate to the releases section of this repository.
You can also find the latest release on the right-hand side of the repository page. -
Download the latest version of the
redun-pendancyexecutable for your platform.
No installation is required, as the application is portable.
-
Drag & drop a supported file onto the executable or into the main window (after startup).
Alternatively, use the command line for a CLI-only experience(*):./redun-pendancy <project-file>
-
Click the Analyze button to detect issues and improvements.
-
Review the results:
- Check the "Suggestions section" for improvements.
- Inspect the "Actions section" for a list of actions to apply.
-
Click on the "Apply actions" to execute the selected actions.
-
Review the modified project file(s).

(To be enhanced in the future)
redun-pendancy includes a suite of analyzers to handle various aspects of dependency management.
-
Bubble-Up Analyzer
- Detects dependencies shared across multiple projects.
- Suggests moving them up to common ancestors to reduce duplication.
-
Redundancy Analyzer
- Detects redundant dependencies that are indirectly included through others.
- Recommends removal with detailed reasoning and version considerations.
-
Unsorted Dependencies Analyzer
- Flags projects with unsorted dependencies.
- Recommends sorting based on dependency group (projects vs packages).
-
Unused Global Packages Analyzer
- Identifies global packages not referenced by any projects.
- Recommends their removal to simplify and maintain a clean setup.
- Upgrade Analyzer
- Highlights "skipped" (outdated) packages.
- Suggests dependency upgrades to stay up to date and ensure stability.
-
Dependency Tree
Visualize dependencies in a collapsible tree format. -
Search & Filter
Easily find specific packages in the dependency tree. -
Action Management
Apply analyzer suggested actions with just a few clicks. -
Dependency Information
View details about a selected dependency - version, framework & total references. -
Overview Report
Displays dependencies ordered by reference count, from most to least referenced.
(Might be enhanced in the future)
redun-pendancy currently supports the following files:
.sln(.NET solution files)
The following features are planned for future updates to redun-pendancy:
- CLI mode
- Maven support (
pom.xml) - NPM support (
package.json) - Python support (
requirements.txt) - Support for "Legacy .NET project files" (< Visual Studio 2017)
redun-pendancy follows a modular & extensible architecture based on clearly defined components.
-
Package Info
Contains package details such as - name, version, framework, dependencies & type.
This is the core data structure used throughout the application. -
Project Handlers
Objects that load "project collections" and provide functionality to manage project dependencies. -
Project Readers
Objects that parse project files intoPackageInfoinstances. -
Package Loaders
Objects that parse package files to identify their dependencies. -
Package Container
Repository that handles registration & lookup ofPackageInfoinstances. -
Analyzers
Objects that examine projects & packages to generateProjectActionsand written suggestions. -
Project Actions - (Command pattern)
Executable tasks generated by analyzers. They contain the task's description, reasoning and execution logic.
Actions are applied by interacting with aProjectHandler.
/analysis/- Contains analysis specific data structures and helpers./actions/- Contains the definition of executable project tasks./analyzers/- Includes the implementation of available project analyzers.
/gui/- Contains custom widgets and utility functions for Fyne./handlers/– Includes project-specific handlers (e.g., .NET, Maven)./models/– Defines core/main data models used across the application./helpers/- Contains specialized collections and helpers for handling files, packages, and dependencies./utils/– Contains general-purpose utilities, collections, and application helper functions.
Contributions to improve the tool or its documentation are welcome. Feel free to:
- Fork the repository.
- Make your changes.
- Submit a pull request.
This project is licensed under the MIT License.
For more details, open the LICENSE file in the repository.
