-
-
Notifications
You must be signed in to change notification settings - Fork 574
Open
Labels
new featureNew feature or requestNew feature or request
Description
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.xmlfiles 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_pullclass - 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
Labels
new featureNew feature or requestNew feature or request