Software dependencies coordinates
I need create the list of our software dependencies.
If this task is easy when you are using a specific build tool (npm, maven, gradle, …) because they provide a way to identify libraries in the remote repository. I was looking for a coordinate system that works with several repositories (Maven Central, Npm, CocoaPods, GitHub, …)
The ClearlyDefined project has proposed something based on 5 attributes:
- type
- provider
- namespace
- name
- revision
Their idea is to map the coordinates of other repositories to those values.
Maven Central:
- type :
"maven"
- provider :
"mavencentral"
- namespace :
<groupId>
- name :
<artifactId>
- revision :
<version>
NPM:
- type :
"npm"
- provider :
"npmjs"
- namespace :
"-"
- name :
<id>
- revision :
<version>
CocoaPods:
- type :
"pod"
- provider :
"cocoapods"
- namespace :
"-"
- name :
<id>
- revision :
<version>
GitHub:
- type :
"git"
- provider :
"github"
- namespace :
<owner-name>
- name :
<repository-name>
- revision :
<commit-sha>