4D Blog

Home Product Recursive Dependency Management: Smarter, Deeper, Safer

Recursive Dependency Management: Smarter, Deeper, Safer

July 16, 2025

Product

Following the launch of the Follow 4D version rule, we’re excited to introduce a new level of automation and reliability in 4D 20 R10: fully recursive dependency resolution.

Whether you’re adding, updating, or removing a component, the Dependency Manager now acts recursively, ensuring every action you take is reflected accurately throughout your entire dependency tree.

One Action, All Dependencies

When you add a primary dependency, from GitHub or a local folder, 4D:

  • Recursively loads all the dependencies it requires
  • Applies the version constraints defined in your dependencies.json.

No need to worry about missing pieces or version conflicts, your entire dependency tree is resolved and loaded automatically.

Recursive Version Handling

When multiple components require different versions of the same dependency:

  • The Dependency Manager checks the required ranges and chooses a version that satisfies all constraints, if possible.
  • If a version is declared directly as a primary dependency, it takes precedence over any indirectly required versions.

This approach keeps your environment stable and consistent, even as your project grows.

A UI That Reflects the Full Structure

The Project Dependencies interface has been updated to surface the recursive nature of your project’s dependencies:

  • “All” tab: Shows a flat list of all dependencies (both primary and secondary) used in your project.
  • “Declared” tab: A new view between “All” and “Active” that lists only the dependencies you’ve explicitly declared in dependencies.json.
  • Secondary dependencies are clearly marked, and when you hover over one, a tooltip reveals which component(s) require it. Everything is transparent.

Take One Action — 4D Handles the Rest

Every change you make, whether adding, removing, or updating a component, is now propagated recursively through your entire dependency graph.

You benefit from:

  • Automatic loading of required sub-dependencies
  • Smart version resolution with clear precedence rules
  • Safe removal with impact awareness
  • A UI that reflects the actual structure of your project

FOR COMPONENT DEVELOPERS

If you’re developing your own components, you might be wondering: how do I declare my dependencies? Each component must include its own dependencies.json file. This file specifies the dependencies required for the component to function properly, along with their version constraints.

This mechanism works both with local dependencies and those hosted on GitHub. However, for better portability and sharing, using GitHub is considered best practice. When building a component, make sure the dependencies.json file is included in the final package. Full support for this feature is available starting with 4D 20 R10. If you’re working with older components, you’ll need to rebuild them to take advantage of automatic recursive resolution.

Try it now to experience a smarter, time-saving way to manage dependencies, and spend less time troubleshooting.

 

Discuss

Tags 20 R10, 21, Component Manager

Latest related posts

  • December 3, 2025

    Give AI to a 30 years old 4D application

  • November 28, 2025

    ORDA – Handle an event-driven logic during database operations

  • November 27, 2025

    ORDA – Permissions – Restrict / allow web access to the resources in one click

David Azancot
David Azancot
– 4D for iOS Product Owner – David Azancot joined the 4D Product team as a Product Owner in 2017. He is responsible for writing user stories and translating them into functional specifications. His role also includes ensuring that feature implementations meet customer needs. David holds an MBA in Marketing, Internet, and Mobility from the Institut Léonard de Vinci. He began his career in 2011 at a mobile startup that was later acquired by Madvertise (a mobile marketing group). Passionate about mobile interfaces, he was a natural choice to develop interactive mobile ad formats for the group in 2015. In parallel, David has been developing his own iOS and Android applications since 2012.
  • Deutsch
  • Français
  • English
  • Português
  • Čeština
  • Español
  • Italiano
  • 日本語

Categories

Browse categories

  • AI
  • 4D View Pro
  • 4D Write Pro
  • 4D for Mobile
  • Email
  • Development Mode
  • 4D Language
  • ORDA
  • User Interface / GUI
  • Qodly Studio
  • Server
  • Maintenance
  • Deployment
  • 4D Tutorials
  • Generic
  • 4D Summit sessions and other online videos

Tags

4D AIKit 4D for Android 4D for iOS 4D NetKit 4D Qodly Pro 4D View Pro 4D Write Pro 20 R10 21 Administration AI Artificial Intelligence Build application Class Client/Server Code editor Collections Compatibility settings Formula Google Listbox Logs Mail Network Objects OpenAI ORDA PDF Pictures Preemptive Programming REST Scalability Security Session Source control Speed Spreadsheet Tutorial UI User Experience v20 vscode Web Word processor

Tags

4D AIKit 4D for Android 4D for iOS 4D NetKit 4D Qodly Pro 4D View Pro 4D Write Pro 20 R10 21 Administration AI Artificial Intelligence Build application Class Client/Server Code editor Collections Compatibility settings Formula Google Listbox Logs Mail Network Objects OpenAI ORDA PDF Pictures Preemptive Programming REST Scalability Security Session Source control Speed Spreadsheet Tutorial UI User Experience v20 vscode Web Word processor
Subscribe to 4D Newsletter

© 2025 4D SAS - All rights reserved
Terms & Conditions | Legal Notices | Data Policy | Cookie Policy | Contact us | Write for us


Subscribe to 4D Newsletter

* Your privacy is very important to us. Please click here to view our Policy

Contact us

Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!

* Your privacy is very important to us. Please click here to view our Policy