Skip to content

About the package manager #15

@xvw

Description

@xvw

This issue offers a discussion of how to describe the different Forge meta-data.
The "RMEPackage" directory will be changed to "forge-repository" (available here).

General architecture of forge-repository

  • mirror : a folder to store all "snapshots"
  • packages.json : The list of all available packages
  • README.md : How to and instruction

Describe a package (from forge perspective)

{
   "name": "package-name",
   "tags": ["battle-system", "event-making"],
   "changelog": "https://www.mychangelog.com",
   "remote": {
         "stable": "url of stable-version", 
         "develop": "url of developement version"
     },
    "snapshot": ["1.1.0" , "1.1.1", "1.1.2"]
}

The remote-field allow to have multiple version of a package (in the case of RME, for example : master is stable and dev is the developement version. The name of the remote-keys is free. The snapshot field lists all of the snapshots (mirror/package-name/1.1.x). Storing the snapshot allow to manage conflict in the dependancy graph.

Describe a package (as a remote/snapshot)

{
  "name": "package-name",
  "description": "A small description of the package",
  "version": "1.1.0",
  "license": "MIT",
  "authors": {
    "author1": "author1@gmail.com",
    "author2": "author2@gmail.com"
  },
  "components": ["file1.rb", "file2.rb", "file3.rb"],
  "assets": {
    "file1": "target1",
    "file2": "target2"
  },
  "deps": {
    "RME": ["~> 1.1.0"],
    "OtherScript": [">= 1.2 and < 2"]
  }, 
  "export": [
      ["variable_name", "variable_desc", "default_value"]
  ]
}

ref : https://hexdocs.pm/elixir/Version.html

Feel free to give a feed back about that :)

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions