tic

Tasks Integrating Continuously: CI-Agnostic Workflow Definitions

https://github.com/ropensci/tic

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 17 committers (11.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.4%) to scientific vocabulary

Keywords

appveyor continuous-integration deployment githubactions r r-package rstats travis-ci

Keywords from Contributors

ropensci genome visualisation reproducibility geocode climate temperature exploratory-data-analysis rmarkdown pandoc
Last synced: 6 months ago · JSON representation

Repository

Tasks Integrating Continuously: CI-Agnostic Workflow Definitions

Basic Info
Statistics
  • Stars: 153
  • Watchers: 3
  • Forks: 18
  • Open Issues: 14
  • Releases: 19
Topics
appveyor continuous-integration deployment githubactions r r-package rstats travis-ci
Created over 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Codemeta

README.md

tic

tic CircleCI CRAN status codecov Lifecycle: stable tic status badge <!-- badges: end -->

The goal of tic is to enhance and simplify working with continuous integration (CI) systems.

The following providers are supported:

| Provider | R package | Platforms | Info | | -------------- | --------------------------------------------- | --------------------- | --------------------------------------------------------------------- | | Circle CI | {circle} | Linux | via Docker images from rocker | | Github Actions | {ghactions} | Linux, macOS, Windows | |

In addition there is partial support for Drone CI via class DRONE_CI. This means that {tic} recognizes Drone CI as a CI platform and does not exit early or requires setting a fake env var to mimic another CI provider. However, there is neither an R client package for Drone CI currently nor {tic} templates available for bootstrapping CI configuration via tic::use_tic().

To learn more about CI, read our Getting Started vignette.

The most important improvements over existing solutions are:

  1. Deployment to a Git repository is greatly simplified. Update your repository with results from the CI build.

  2. Support for R packages and other kinds of projects (bookdown, blogdown, etc.), with predefined templates. Set up your project to deploy rendered versions of your book or blog with a single push to Git.

  3. Workflow specification in a single .R file, regardless of CI system used. Forget about .yml files or web browser configurations.

Installation

{tic} can be installed from GitHub with:

r remotes::install_github("ropensci/tic")

Setup

By calling tic::use_tic() a production ready CI setup is initialized, tailored to your specific R project. The created templates will use the providers Circle CI and Github Actions.

If only the CI YAML templates from {tic} are desired, the use_<provider>_yml() functions can be used. Refer to the complete list of options.

For an R package, the following steps will be set up for the CI workflow:

  • Installation of required dependencies for the project (dependencies are scraped from the DESCRIPTION file*)
  • Satisfying build-time dependencies of steps to be run in all CI stages (by scraping pkg::fun calls in tic.R)
  • Checking of package via rcmdcheck::rcmdcheck()
  • Creation of a pkgdown site including Github deployment
  • Running a code coverage and upload to codecov.io

See the Getting Started vignette for more information and links to minimal example repositories for various R projects (package, blogdown, bookdown and more).

Quickstart

If you are a new user, run

r tic::use_tic()

If you already use {tic} and want to configure a new CI provider, do one of the following (depending on your preferred CI provider)

```r

Circle CI ------------------------------------------------------------------

circle::usecircledeploy() # (optional for deployment) tic::usecircleyml() # optional: Change type arg to your liking tic::useticr("package", deploy_on = "circle")

(all of the above in one call)

tic::use_tic(wizard = FALSE, linux = "circle", mac = "none", windows = "none",

matrix = "circle", deploy = "circle")

tic::useupdatetic()

GitHub Actions -------------------------------------------------------------

tic::useghactionsdeploy() # (optional for deployment) tic::useghactionsyml() # optional: Change type arg to your liking tic::useticr("package", deploy_on = "ghactions")

(all of the above in one call)

tic::use_tic(wizard = FALSE, linux = "ghactions", mac = "ghactions",

windows = "ghactions", matrix = "ghactions", deploy = "ghactions")

tic::useticbadge("ghactions") tic::useupdatetic() ```

Good to know

We would like to mention that {tic} is a choice and sits on top of existing community efforts providing R support for various CI providers. While {tic} will prevent you from dealing/learning every CIs YAML syntax, you will have to learn {tic}'s way of specifying your tasks on CI systems.

Also, there is no way around familiarizing yourself with the basics of CI systems in general. Without this knowledge, you will also have a hard way understanding {tic}.

We also recommend to take a look at the projects providing the direct R support for each CI system (which {tic} builds upon) to gain a deeper understanding of the whole concept.

Keeping CI templates up-to-date

{tic} is refreshing its template every few months. There are two ways to stay up-to-date and have a functional CI YAML definition:

  1. Manual updates: You can keep {tic} up-to-date by rerunning the use_*_() function which you have used to init {tic} the first time. If you have forgotten which settings you have chosen back then, you can have a look at the first line of your YAML file.

  2. Automatic updates via GHA: If you're using GitHub actions, you can use tic::use_update_tic(). This will initialize a new workflow which checks daily for new template updates. Important: This workflow requires a personal access token with "workflow" scopes. After creation, you can add it via tic::gha_add_secret() to your repo account. Hint: If you're operating in an organization, you can set this GHA secret organization-wide which saves you adding it to multiple single repos.

See vignette "Updating Templates" for more information.

Vignettes

Limitations

The setup functions in this package assume Git as version control system, and GitHub as platform. Automated setup works best if the project under test is located in the root of the Git repository. Multi-project repositories are not supported, see the comment by @jwijffels for guidance to work around this limitation.

The DESCRIPTION files needs to live in the project root. To simplify its creation have a look at usethis::use_package() or usethis::use_description().

Owner

  • Name: rOpenSci
  • Login: ropensci
  • Kind: organization
  • Email: info@ropensci.org
  • Location: Berkeley, CA

CodeMeta (codemeta.json)

{
  "@context": [
    "https://doi.org/10.5063/schema/codemeta-2.0",
    "http://schema.org"
  ],
  "@type": "SoftwareSourceCode",
  "identifier": "tic",
  "description": "Provides a way to describe common build and deployment\n    workflows for R-based projects: packages, websites (e.g.  blogdown,\n    pkgdown), or data processing (e.g. research compendia). The recipe is\n    described independent of the continuous integration tool used for\n    processing the workflow (e.g. 'GitHub Actions' or 'Circle CI').  This\n    package has been peer-reviewed by rOpenSci (v0.3.0.9004).",
  "name": "tic: Tasks Integrating Continuously: CI-Agnostic Workflow Definitions",
  "codeRepository": "https://github.com/ropensci/tic",
  "issueTracker": "https://github.com/ropensci/tic/issues",
  "license": "https://spdx.org/licenses/GPL-2.0",
  "version": "0.9.0.9008",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.0.3 Patched (2020-11-27 r79522)",
  "author": [
    {
      "@type": "Person",
      "givenName": "Kirill",
      "familyName": "Mller",
      "email": "krlmlr+r@mailbox.org",
      "@id": "https://orcid.org/0000-0002-1416-3412"
    },
    {
      "@type": "Person",
      "givenName": "Patrick",
      "familyName": "Schratz",
      "email": "patrick.schratz@gmail.com",
      "@id": "https://orcid.org/0000-0003-0748-6624"
    },
    {
      "@type": "Person",
      "givenName": "Mika",
      "familyName": "Braginsky",
      "email": "mika.br@gmail.com"
    },
    {
      "@type": "Person",
      "givenName": "Karthik",
      "familyName": "Ram",
      "email": "karthik.ram@gmail.com"
    },
    {
      "@type": "Person",
      "givenName": "Jeroen",
      "familyName": "Ooms",
      "email": "jeroen.ooms@stat.ucla.edu"
    }
  ],
  "contributor": {},
  "copyrightHolder": {},
  "funder": [
    {
      "@type": "Organization",
      "name": "rOpenSci"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Kirill",
      "familyName": "Mller",
      "email": "krlmlr+r@mailbox.org",
      "@id": "https://orcid.org/0000-0002-1416-3412"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "base64enc",
      "name": "base64enc",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=base64enc"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "blogdown",
      "name": "blogdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=blogdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "bookdown",
      "name": "bookdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=bookdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "callr",
      "name": "callr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=callr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "circle",
      "name": "circle",
      "sameAs": "https://github.com/ropenscilabs/circle"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "desc",
      "name": "desc",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=desc"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "devtools",
      "name": "devtools",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=devtools"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "drat",
      "name": "drat",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=drat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "fansi",
      "name": "fansi",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=fansi"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "gh",
      "name": "gh",
      "version": ">= 1.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=gh"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "openssl",
      "name": "openssl",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=openssl"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "pkgdown",
      "name": "pkgdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=pkgdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "purrr",
      "name": "purrr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=purrr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rcmdcheck",
      "name": "rcmdcheck",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rcmdcheck"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rprojroot",
      "name": "rprojroot",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rprojroot"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "sodium",
      "name": "sodium",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=sodium"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "stats",
      "name": "stats"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "stringr",
      "name": "stringr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=stringr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 2.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    }
  ],
  "softwareRequirements": [
    {
      "@type": "SoftwareApplication",
      "identifier": "R",
      "name": "R",
      "version": ">= 3.2.0"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "cli",
      "name": "cli",
      "version": ">= 2.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cli"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "crayon",
      "name": "crayon",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=crayon"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "git2r",
      "name": "git2r",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=git2r"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "lifecycle",
      "name": "lifecycle",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lifecycle"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "magrittr",
      "name": "magrittr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=magrittr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "memoise",
      "name": "memoise",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=memoise"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "methods",
      "name": "methods"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "R6",
      "name": "R6",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=R6"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "remotes",
      "name": "remotes",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=remotes"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rlang",
      "name": "rlang",
      "version": ">= 0.4.1.9000",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rlang"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "usethis",
      "name": "usethis",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=usethis"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "withr",
      "name": "withr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=withr"
    }
  ],
  "releaseNotes": "https://github.com/ropensci/tic/blob/master/NEWS.md",
  "readme": "https://github.com/ropensci/tic/blob/master/README.md",
  "contIntegration": [
    "https://travis-ci.org/ropensci/tic",
    "https://circleci.com/gh/ropensci/tic",
    "https://codecov.io/gh/ropensci/tic"
  ],
  "developmentStatus": "https://www.tidyverse.org/lifecycle/#maturing",
  "keywords": [
    "r",
    "travis-ci",
    "appveyor",
    "continuous-integration",
    "deployment",
    "r-package",
    "rstats",
    "githubactions"
  ],
  "fileSize": "2411.816KB"
}

GitHub Events

Total
  • Issues event: 4
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 278
  • Pull request event: 2
  • Create event: 1
Last Year
  • Issues event: 4
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 278
  • Pull request event: 2
  • Create event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 1,884
  • Total Committers: 17
  • Avg Commits per committer: 110.824
  • Development Distribution Score (DDS): 0.493
Past Year
  • Commits: 10
  • Committers: 2
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.1
Top Committers
Name Email Commits
pat-s p****z@g****m 956
Kirill Müller k****r@m****g 842
Kirill Müller k****r 33
GitHub n****y@g****m 17
Mika Braginsky m****r@s****u 13
Jeroen Ooms j****s@g****m 4
Maëlle Salmon m****n@y****e 4
github-actions[bot] 4****] 3
Garrick Aden-Buie g****e@m****u 2
Matthias Grenié m****e@e****r 2
Robin R****e 2
Adam H. Sparks a****s@g****m 1
Christophe Dervieux c****x@g****m 1
Sébastien Rochette s****p 1
kapsner l****r@g****m 1
muschellij2 m****2@g****m 1
Karthik Ram k****m@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 3 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • maelle (1)
Pull Request Authors
  • maelle (1)
  • elimillera (1)
Top Labels
Issue Labels
help wanted (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 19
proxy.golang.org: github.com/ropensci/tic
  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

Dependencies

.github/workflows/main.yml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v2 composite
  • pat-s/always-upload-cache v3 composite
  • r-lib/actions/setup-pandoc v2 composite
  • r-lib/actions/setup-r v2 composite
  • r-lib/actions/setup-tinytex v2 composite
.github/workflows/update-tic.yml actions
  • actions/checkout v3 composite
  • peter-evans/create-pull-request v4 composite
  • r-lib/actions/setup-r v2 composite
DESCRIPTION cran
  • R >= 3.2.0 depends
  • R6 * imports
  • cli >= 3.2.0 imports
  • crayon * imports
  • git2r * imports
  • lifecycle * imports
  • magrittr * imports
  • memoise * imports
  • methods * imports
  • pak * imports
  • remotes * imports
  • rlang >= 1.0.0 imports
  • usethis * imports
  • withr * imports
  • base64enc * suggests
  • blogdown * suggests
  • bookdown * suggests
  • callr * suggests
  • circle * suggests
  • covr * suggests
  • desc * suggests
  • devtools * suggests
  • drat * suggests
  • fansi * suggests
  • gh >= 1.1.0 suggests
  • knitr * suggests
  • openssl * suggests
  • pkgdepends * suggests
  • pkgdown * suggests
  • purrr * suggests
  • rcmdcheck * suggests
  • rmarkdown * suggests
  • rprojroot * suggests
  • sodium * suggests
  • stats * suggests
  • stringr * suggests
  • testthat >= 2.1.0 suggests
  • utils * suggests