j2r2b

My notes on GitHub pages

Follow me on GitHub

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>