Beta: PyPI virtual registry
## Overview
This epic covers the implementation of the PyPI virtual registry feature in GitLab. The PyPI virtual registry will leverage our existing virtual registry architecture to provide a complete solution with multiple upstream sources, UI management, and cache clearing capabilities. The beta phase will focus on validating performance and reliability with real-world Python package usage patterns.
## Goals
- Beta implementation of a PyPI virtual registry with full feature parity to our Maven and npm virtual registries
- Provide comprehensive UI and API interfaces for creating, configuring, and managing PyPI virtual registries
- Ensure seamless package resolution and proxying from multiple upstream sources
- Validate performance and reliability with real-world usage patterns
## Scope
### In Scope
- Create a PyPI virtual registry with multiple upstream sources
- Configure and manage shareable upstream configurations
- Full UI integration for registry management
- List and search virtual registries
- Deleting a virtual registry
- Package resolution and proxying from configured upstreams
- Cache clearing capabilities
- Comprehensive error handling and logging
- Performance monitoring and optimization
### Out of Scope
- Package publishing to virtual registries (planned for post-beta)
- Advanced caching policies beyond those already implemented for Maven and npm
## User Stories
1. As a DevOps engineer, I want to create a PyPI virtual registry via UI and API so that I can start aggregating packages from multiple upstream sources.
2. As a developer, I want to configure multiple upstream sources for my virtual registry so that I can specify the order and priority of package resolution.
3. As a project maintainer, I want to share upstream configurations across multiple registries so that I can ensure consistency and reduce configuration overhead.
4. As a system administrator, I want to clear the cache for specific packages or entire registries so that I can ensure my teams have access to the latest versions.
5. As a developer, I want to resolve and download Python packages through the virtual registry so that I can use it as a single source for my project dependencies.
6. As an administrator, I want to monitor the performance and usage of my PyPI virtual registries so that I can optimize them for my organization's needs.
## Acceptance Criteria
- UI and API interfaces are fully implemented and functional
- Virtual registries correctly proxy packages from multiple configured upstreams
- Shareable upstream configurations work correctly across registries
- Cache clearing functions operate as expected
- Error scenarios are properly handled and logged
- Documentation clearly explains all features and configuration options
- Performance meets established benchmarks for high-volume Python package usage
- Test coverage meets GitLab standards
## Metrics for Success
- Successful creation and configuration of registries via UI and API
- Correct package resolution and download through virtual registries
- Response times within acceptable thresholds under load
- Error rates below defined thresholds
- Cache hit ratios meeting or exceeding targets
- Positive feedback from beta customers regarding usability and reliability
## Adoption Tracking and Analytics
- Implement instrumentation to track the adoption and usage of virtual registries, including:
* Total number of groups with the feature enabled
* Number of packages pulled from virtual registries
* Cache hit ratio
* UI usage data (e.g., number of virtual registries per group, number of upstream sources per virtual registry)
## Beta Customer Engagement Plan
- **Recruitment**: Target 5-10 key customers with high Python package usage for beta participation
- **Onboarding**: Provide detailed documentation and dedicated support for initial setup
- **Feedback Collection**:
* Bi-weekly check-ins with beta participants
* Structured feedback form for feature usability and performance
* Bug reporting channel for immediate technical issues
- **Success Tracking**:
* Monitor usage metrics across beta participants
* Track package resolution success rates and performance
* Document customer use cases for future marketing materials
- **Graduation Criteria**:
* Zero P1 bugs reported for two consecutive weeks
* Performance metrics meeting or exceeding targets
* 80%+ of beta participants actively using the feature
epic