Skip to content

Feature Request: Batch Pull Dependencies with APACK Integration #7371

@kartefact

Description

@kartefact

Problem Statement

Currently, abapGit requires manual coordination when importing repositories with dependencies:

  • Users must manually determine dependency order
  • Each repository must be pulled individually
  • No automatic resolution of APACK-declared dependencies
  • Complex dependency chains require careful manual orchestration
  • ZIP imports don't support batch processing with dependency awareness

Proposed Solution

Enhance the existing pull functionality to automatically resolve and import dependencies in the correct order using APACK manifests.

Key Features

1. Automatic Dependency Detection

  • Parse .apack-manifest.xml files to identify dependencies
  • Build dependency graphs from APACK declarations
  • Topological sorting for correct import order

2. Multiple Import Modes

  • Online repositories: Automatic dependency resolution across Git repositories
  • Multiple ZIP files: Batch import with dependency ordering
  • ZIP-of-ZIPs: Support nested ZIP structures for complex scenarios

3. Smart Package Management

  • Automatic package name generation from APACK metadata
  • Conflict resolution for existing packages
  • User-configurable package mapping
  • Skip already installed dependencies

4. Enhanced User Experience

  • Dependency tree visualization in pull UI
  • Manual override options for advanced users
  • Graceful handling of missing dependencies
  • Integration with existing transport request workflow

Use Cases

Enterprise Development Teams

Scenario: Team maintains 5 interdependent utility libraries
Current: Manual coordination, frequent import order mistakes
With Feature: Single operation imports all dependencies correctly

Package Distribution

Scenario: Distributing complex applications with multiple dependencies like for add-ons
Current: Detailed installation instructions, error-prone manual process  
With Feature: ZIP-of-ZIPs with automatic dependency resolution
e.g. abap2ui5 add-ons that require the main abap2ui5 repo as a mandatory dependency. 

Development Environment Setup

Scenario: New developer setting up local environment
Current: Step-by-step manual repository imports
With Feature: One-click dependency resolution and import

Technical Approach

  • Extend existing zcl_abapgit_gui_page_pull class
  • Leverage existing APACK infrastructure (zcl_abapgit_apack_reader)
  • Integrate with current package creation services
  • Maintain backward compatibility with existing pull workflows

Acceptance Criteria

  • Detect APACK dependencies in online repositories
  • Support multiple ZIP file selection and processing
  • Handle ZIP-of-ZIPs scenarios
  • Automatic package name generation with conflict resolution
  • User options to skip dependencies or installed packages
  • Dependency tree visualization in UI
  • Graceful error handling for missing dependencies
  • Full backward compatibility with existing pull functionality

Benefits

  • Reduced Complexity: Eliminates manual dependency coordination
  • Error Prevention: Automatic ordering prevents import failures
  • Time Savings: Single operation replaces multiple manual steps
  • Better UX: Clear visualization of dependency relationships
  • Enterprise Ready: Supports complex multi-repository scenarios

Metadata

Metadata

Assignees

No one assigned

    Labels

    new featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions