web-dev-qa-db-ja.com

R:install_github()で特定のリリースをインストールするにはどうすればよいですか?

パッケージの現在のバージョンでエラーが発生した場合、ユーザーは特定のリリース(バージョン1.0.1など)をインストールすることをお勧めします。それを実現するために、どのような[〜#〜] r [〜#〜]コードを使用できますか?

たとえば、最新のOhdsiRToolsRパッケージのリリースを考えてみましょう。

https://github.com/OHDSI/OhdsiRTools/tree/v1.0.1

次のようなコマンド:

install_github("OHDSI/OhdsiRTools", ref = 'v1.0.1')

上記のコードは正しくありません。ブランチ(例:masterまたはdevA)に対してのみ機能します。ただし、devtoolsパッケージには、リリースを参照する関数があります。

理想的には、リリースをタグで参照します(ただし、コミットIDを使用したソリューションでも機能します)。

追加ボーナス:「最新」リリースをインストールできるコード。 (ただし、これはボーナスの質問と考えてください。についての質問は主なものです)

16
userJT

リリースのタグをリポジトリ引数の名前に直接追加する必要があります。したがって、username/repo@releasetagは機能します。 gitリポジトリの特定のブランチを参照する必要がある場合にのみ、パラメータref = "devA"を使用してください。

あなたの例として、 OhdsiRTools v1.0.1 に関しては、

我々は持っています:

devtools::install_github("OHDSI/[email protected]")

編集

devtoolsソースをいじった後、次の方法で最新のソースをリクエストできることに気付きました。

username/repo@*release

したがって、次を使用できます。

devtools::install_github("OHDSI/OhdsiRTools@*release")

編集の終了

古い、編集を参照

残念ながら、最新のリリースタグを取得するには、GitHub APIからの応答を解析する必要があるため、その作業は少し複雑になります。タグ付けされたバージョンが本当に必要な場合の注意事項を次に示します...次の場所からJSONを解析する必要があります。

https://api.github.com/repos/<user>/<repo>/releases/latest

RJSONIOjsonliterjson のいずれかを使用します

"tag_name"を抽出するには:

{
  "url": "https://api.github.com/repos/OHDSI/OhdsiRTools/releases/2144150",
  "assets_url": "https://api.github.com/repos/OHDSI/OhdsiRTools/releases/2144150/assets",
  "upload_url": "https://uploads.github.com/repos/OHDSI/OhdsiRTools/releases/2144150/assets{?name,label}",
  "html_url": "https://github.com/OHDSI/OhdsiRTools/releases/tag/v1.0.1",
  "id": 2144150,
  "tag_name": "v1.0.1",
  "target_commitish": "master",
  "name": "Minor bug fix",
  "draft": false,
  "author": {
    "login": "schuemie",
    "id": 6713328,
    "avatar_url": "https://avatars.githubusercontent.com/u/6713328?v=3",
    "gravatar_id": "",
    "url": "https://api.github.com/users/schuemie",
    "html_url": "https://github.com/schuemie",
    "followers_url": "https://api.github.com/users/schuemie/followers",
    "following_url": "https://api.github.com/users/schuemie/following{/other_user}",
    "gists_url": "https://api.github.com/users/schuemie/gists{/Gist_id}",
    "starred_url": "https://api.github.com/users/schuemie/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/schuemie/subscriptions",
    "organizations_url": "https://api.github.com/users/schuemie/orgs",
    "repos_url": "https://api.github.com/users/schuemie/repos",
    "events_url": "https://api.github.com/users/schuemie/events{/privacy}",
    "received_events_url": "https://api.github.com/users/schuemie/received_events",
    "type": "User",
    "site_admin": false
  },
  "prerelease": false,
  "created_at": "2015-11-18T00:55:28Z",
  "published_at": "2015-11-18T06:35:57Z",
  "assets": [

  ],
  "tarball_url": "https://api.github.com/repos/OHDSI/OhdsiRTools/tarball/v1.0.1",
  "zipball_url": "https://api.github.com/repos/OHDSI/OhdsiRTools/zipball/v1.0.1",
  "body": "Fixed bug in `convertArgsToList ` function."
}

上記は https://api.github.com/repos/OHDSI/OhdsiRTools/releases/latest から取得されます

18
coatless