Dependency Management via Segmented Version Fields

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current dependency management approaches in JavaScript projects, particularly in multi-package projects, require updating all dependencies to a new version simultaneously, which can be inconvenient and lead to break-in changes, as the impact of updating a dependency version may differ across packages, making it difficult to identify and resolve issues.

Innovation Solution

The software tools introduce a package manager wrapper that modifies package configuration files to allow controlled updates of dependencies, enabling developers to manage third-party dependencies and release new versions behind feature flags, allowing for selective updates and maintaining consistency across packages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Stability of the object's composition

If all dependencies are updated to a new version simultaneously across all packages, then consistency across packages is maintained, but the risk of break-in changes increases and flexibility is reduced

Engineering Contradiction:
Improveconsistency across packagesVSAvoidrisk of break-in changes
Core Design Contradiction:
Stability of the object's compositionVSReliability

Solution Approach 1:

The patent segments the dependency update process by introducing separate fields (currentDependencies and nextDependencies) in package.json files. This allows different packages to be at different stages of dependency updates simultaneously, enabling gradual migration from current to next versions without forcing all packages to update together, thus reducing break-in changes while maintaining consistency where needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent makes the dependency versioning dynamic by allowing packages to independently transition between current and next dependency versions. The system supports dynamic switching where packages can remain on current versions while others move to next versions, and this state can change over time based on testing and validation, providing flexibility in managing update risks.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If all dependencies are updated to a new version simultaneously across all packages, then the update process is simplified, but flexibility and control are reduced

Engineering Contradiction:
Improvesimplicity of update processVSAvoidflexibility in dependency updates
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments dependency management into currentDependencies and nextDependencies fields, allowing developers to control which packages use which version. This segmentation provides both simplicity (through automated field management) and flexibility (through selective updating), resolving the contradiction between ease of operation and adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the dual-field system in package.json) that mediates between the simplicity of automated updates and the flexibility of selective control. Package managers can automatically manage the currentDependencies field while allowing controlled transitions to nextDependencies, providing both automated simplicity and manual flexibility where needed.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If dependency updates are performed manually package by package, then control and flexibility are improved, but time consumption and complexity increase

Engineering Contradiction:
Improvecontrol over updatesVSAvoidtime for identifying and resolving break-in changes
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent enables preliminary action by allowing developers to prepare nextDependencies in advance and test them before full deployment. The system supports staged rollouts where next versions can be tested in select packages while current versions remain active elsewhere, reducing the time needed for identifying and resolving break-in changes through early detection and controlled testing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback mechanisms through the dual-field system that provides visibility into which packages are using current versus next dependency versions. This feedback enables automated detection of update status and facilitates coordinated updates across packages, reducing the manual time investment while maintaining control and flexibility.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11442710B2Repository dependency management
Publication Date: 2022.09.13 ATLASSIAN US INC
  • US11442710B2 patent drawing
  • US11442710B2 patent drawing
  • US11442710B2 patent drawing

AI summary

Described herein is a computer implemented method for managing a repository that includes one or more component packages and a repository configuration file listing repository dependencies. Each component package has a package configuration file listing package dependencies. The method including the steps of: parsing the repository configuration file; aliasing a package dependency listed in the repository configuration file with at least two repository dependency aliases; parsing a package configuration file; and linking each repository dependency alias to a package dependency listed in the package configuration file.