{"id":15059464,"url":"https://github.com/gdotdesign/elm-github-install","last_synced_at":"2025-04-12T18:52:57.921Z","repository":{"id":57143431,"uuid":"65536775","full_name":"gdotdesign/elm-github-install","owner":"gdotdesign","description":"An alternative decentralized package manager for Elm","archived":false,"fork":false,"pushed_at":"2018-08-24T14:32:30.000Z","size":150,"stargazers_count":205,"open_issues_count":12,"forks_count":24,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-10-30T00:37:16.457Z","etag":null,"topics":["elm","package-manager"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gdotdesign.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-12T08:25:47.000Z","updated_at":"2024-01-04T15:47:53.000Z","dependencies_parsed_at":"2022-09-03T18:41:18.007Z","dependency_job_id":null,"html_url":"https://github.com/gdotdesign/elm-github-install","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdotdesign%2Felm-github-install","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdotdesign%2Felm-github-install/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdotdesign%2Felm-github-install/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gdotdesign%2Felm-github-install/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gdotdesign","download_url":"https://codeload.github.com/gdotdesign/elm-github-install/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618243,"owners_count":21134200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elm","package-manager"],"created_at":"2024-09-24T22:44:10.925Z","updated_at":"2025-04-12T18:52:57.899Z","avatar_url":"https://github.com/gdotdesign.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# elm-install\n\n[![Gem Version](https://badge.fury.io/rb/elm_install.svg)](https://badge.fury.io/rb/elm_install)\n[![Npm version](https://badge.fury.io/js/elm-github-install.svg)](https://badge.fury.io/js/elm-github-install)\n[![Code Climate](https://codeclimate.com/github/gdotdesign/elm-github-install/badges/gpa.svg)](https://codeclimate.com/github/gdotdesign/elm-github-install)\n[![Test Coverage](https://codeclimate.com/github/gdotdesign/elm-github-install/badges/coverage.svg)](https://codeclimate.com/github/gdotdesign/elm-github-install/coverage)\n[![Inline docs](http://inch-ci.org/github/gdotdesign/elm-github-install.svg?branch=master)](http://inch-ci.org/github/gdotdesign/elm-github-install)\n[![Build Status](https://travis-ci.org/gdotdesign/elm-github-install.svg?branch=master)](https://travis-ci.org/gdotdesign/elm-github-install)\n\n----------------------\n\n### This only works with Elm 0.18 and has not been updated to work with Elm 0.19\n\nIn Elm 0.19 how native works has changed and also how packages are installed and resolved, because of this it might not be possible to install third party native packages ever.\n\nFor more information check this issue: https://github.com/gdotdesign/elm-github-install/issues/62\n\n----------------------\n\nThis gem/npm-package allows you to install Elm packages **in a decentralized way from Git repositories**, this allows:\n* installing of **effect manager** and **native** packages\n* installing **forks of packages** for testing or unreleased features\n* using packages from **local directories**\n* installing **private packages** using private git repositories\n* installing packages **offline** (packages are cached)\n\n## Installation\n\nIf you have ruby installed on your machine then you can install it directly from\n[rubygems.org](https://rubygems.org/gems/elm_install):\n```\ngem install elm_install\n```\n\nIf you have node.js installed on your machine then you can install it directly from\n[npm](https://www.npmjs.com/package/elm-github-install):\n\n```\nnpm install elm-github-install -g\n```\n\nor with [yarn](https://yarnpkg.com/en/):\n\n```\nyarn global add elm-github-install\n```\n\nIf you are experiencing `EACCES: permission denied` errors during installation\nusing NPM then you can try:\n\n```\nsudo npm i -g elm-github-install --unsafe-perm=true --allow-root\n```\n\nThere are also dependency free versions available for every release in the\n[releases page](https://github.com/gdotdesign/elm-github-install/releases).\n\n## Basic Usage\nOnce installed `elm-install` can be used instead of `elm-package` as a\nreplacement:\n\n`elm-package.json`:\n```\n{\n  ...\n  \"dependencies\": {\n    \"elm-lang/core\": \"5.0.0 \u003c= v \u003c 6.0.0\",\n    \"elm-lang/svg\": \"2.0.0 \u003c= v \u003c 3.0.0\",\n    \"elm-lang/dom\": \"1.1.1 \u003c= v \u003c 2.0.0\"\n  }\n  ...\n}\n```\n\nCommand:\n```\n$ elm-install\n\nResolving packages...\n  ▶ Package: https://github.com/elm-lang/core not found in cache, cloning...\n  ▶ Package: https://github.com/elm-lang/svg not found in cache, cloning...\n  ▶ Package: https://github.com/elm-lang/html not found in cache, cloning...\n  ▶ Package: https://github.com/elm-lang/virtual-dom not found in cache, cloning...\n  ▶ Package: https://github.com/elm-lang/dom not found in cache, cloning...\nSolving dependencies...\n  ● elm-lang/core - https://github.com/elm-lang/core (5.1.1)\n  ● elm-lang/svg - https://github.com/elm-lang/svg (2.0.0)\n  ● elm-lang/dom - https://github.com/elm-lang/dom (1.1.1)\n  ● elm-lang/html - https://github.com/elm-lang/html (2.0.0)\n  ● elm-lang/virtual-dom - https://github.com/elm-lang/virtual-dom (2.0.4)\nPackages configured successfully!\n```\n\n## Advanced Usage\nSources can be defined in the `dependency-sources` field in `elm-package.json`\nfor any package defined in the `dependencies` field.\n\nThe source can be defined as:\n* an URL pointing to a Git repository:\n  ```\n  \"elm-lang/core\": \"git@github.com:someuser/core\"\n  ```\n* a hash containing the URL and the reference (tag, commit hash, branch) to use:\n  ```\n  \"gdotdesign/elm-install-test\": {\n    \"url\": \"gdotdesign@bitbucket.org:gdotdesign/elm-install-test\",\n    \"ref\": \"master\"\n  }\n  ```\n* an absolute or relative path to the package in your hard drive:\n  ```\n  \"elm-lang/dom\": \"../elm-lang/dom\"\n  ```\n\nIf a reference or a path is defined then the version in the `dependencies` field is\nignored and the **version will be used from the `elm-package.json` at that source**.\n\nExamples:\n```\n  ...\n  \"dependencies\": {\n    \"gdotdesign/elm-install-test\": \"1.0.0 \u003c= v \u003c 2.0.0\",\n    \"elm-lang/core\": \"5.0.0 \u003c= v \u003c 6.0.0\",\n    \"elm-lang/svg\": \"2.0.0 \u003c= v \u003c 3.0.0\",\n    \"elm-lang/dom\": \"1.1.1 \u003c= v \u003c 2.0.0\"\n  },\n  \"dependency-sources\": {\n    \"elm-lang/core\": \"git@github.com:someuser/core\",\n    \"elm-lang/dom\": \"../elm-lang/dom\",\n    \"gdotdesign/elm-install-test\": {\n      \"url\": \"gdotdesign@bitbucket.org:gdotdesign/elm-install-test\",\n      \"ref\": \"master\"\n    }\n  }\n  ...\n```\n\n### CLI\nHelp for the `elm-install` command:\n```\nNAME:\n\n  elm-install\n\nDESCRIPTION:\n\n  Install Elm packages from Git repositories.\n\nCOMMANDS:\n\n  help    Display global or [command] help documentation\n  install Install Elm packages from the elm-package.json file.\n\nGLOBAL OPTIONS:\n\n  -h, --help\n      Display help documentation\n\n  -v, --version\n      Display version information\n\n  -t, --trace\n      Display backtrace when an error occurs\n```\n\nHelp for the `elm-install install` command.\n```\nNAME:\n\n  install\n\nSYNOPSIS:\n\n  elm-install install\n\nDESCRIPTION:\n\n  Install Elm packages from the elm-package.json file.\n\nOPTIONS:\n\n  --cache-directory STRING\n      Specifies where the cache is stored\n\n  --skip-update\n      Skips the update stage of packages\n\n  --only-update STRING\n      Only updates the given package\n\n  --verbose\n```\n\n## Known Issues\n* Using the NPM package or the released binaries in windows while specifing a\n  relative directory as a package will fail because of the 2.2 travelling\n  ruby dependency. Using the \u003eRuby 2.3 with the gem installed works properly.\n  More #36\n\n## FAQ\n\n#### Do I need to use SSH keys?\n\nIt depends on your use case, but for public repositories in Github or Bitbucket\nit's not needed.\n\n#### What url protocols are supported?\nThe following protocols can be used:\n\n* ssh://[user@]host.xz[:port]/path/to/repo.git/\n* git://host.xz[:port]/path/to/repo.git/\n* http[s]://host.xz[:port]/path/to/repo.git/\n* [user@]host.xz:path/to/repo.git/\n\n#### Can I install from private repositories?\nYes private repositories are supported provided you have authentication\n(for example SSH keys).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdotdesign%2Felm-github-install","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdotdesign%2Felm-github-install","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdotdesign%2Felm-github-install/lists"}