Project

Profile

Help

Story #854

Updated by mhrivnak over 6 years ago

Create an initial framework for supporting syncing uploading & publishing maven artifacts from within Pulp. This issue is an ok place for planning and gathering comments and information, but that should be broken up into smaller stories if/when implemented. 

 h2. Deliverables 

 Deliverables: 
 * A plugin module for maven artifacts 
 ** The plugin supports creating maven repositories 
 ** As a user, I can provide a URL, and possibly some additional information about how to discover specific content, that Pulp will use to sync a remote repository. 
 ** The plugin supports deleting maven repositories 
 ** As The plugin supports publishing a user syncing from a remote Pulp, I only need to provide a URL to sync. Additional information about how to discover content should not be necessary. maven repository 
 ** The plugin supports uploading of maven modules to a repository 
 ** The plugin DOES NOT support lazy loading or syncing content from maven central 
 * CLI support for creating maven repositories 
 * CLI support for deleting maven repositories 
 * CLI support for uploading a maven artifact 
 * CLI support for deleting a maven artifact 

 h2. Questions 

 h3. archetype-catalog.xml 

 Some maven repositories appear to have an index of content named "archetype-catalog.xml":https://repository.jboss.org/nexus/content/repositories/releases/archetype-catalog.xml, and some "do not":http://jcenter.bintray.com/. What are the expectations around that file? When is/should it be present? 

 When Pulp does a sync, if that catalog is not present, we will need some other way for a user to specify what content to get. Should they provide a pom.xml file to the importer? Or perhaps csv/json that enumerates the content to get? 

 When Pulp does a publish, is it always safe for it to create an archetype-catalog.xml file? It is handy to have so that other Pulp deployments can sync from it and duplicate the exact same content. 

 h3. SNAPSHOT 

 Should Pulp support "snapshot" repositories? 

 https://blog.packagecloud.io/eng/2017/03/09/how-does-a-maven-repository-work/#snapshot-repositories 

 The challenge is that the content with a given unique identifier that includes "-SNAPSHOT" can change from one sync to the next, and there's no way to know if it did. So it would need to be downloaded every time. We would also have to accept that if the content had been promoted into an additional repository, it could get updated in-place without another promote operation. 

 h3. Upload 

 Is there a use case for upload? What does that look like? In what format would data get uploaded? 

 h2. References 

 * https://blog.packagecloud.io/eng/2017/03/09/how-does-a-maven-repository-work/ 

Back