{"id":14067469,"url":"https://github.com/ijlyttle/projthis","last_synced_at":"2025-03-23T06:31:08.063Z","repository":{"id":53505747,"uuid":"283879355","full_name":"ijlyttle/projthis","owner":"ijlyttle","description":"Lightweight Framework for Analysis Development","archived":false,"fork":false,"pushed_at":"2022-08-14T03:18:45.000Z","size":310,"stargazers_count":12,"open_issues_count":5,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-14T23:53:34.155Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ijlyttle.github.io/projthis/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ijlyttle.png","metadata":{"files":{"readme":"README.Rmd","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-30T21:23:35.000Z","updated_at":"2024-06-12T11:20:20.000Z","dependencies_parsed_at":"2022-08-13T21:30:31.868Z","dependency_job_id":null,"html_url":"https://github.com/ijlyttle/projthis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlyttle%2Fprojthis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlyttle%2Fprojthis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlyttle%2Fprojthis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ijlyttle%2Fprojthis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ijlyttle","download_url":"https://codeload.github.com/ijlyttle/projthis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245066496,"owners_count":20555402,"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":[],"created_at":"2024-08-13T07:05:36.822Z","updated_at":"2025-03-23T06:31:07.506Z","avatar_url":"https://github.com/ijlyttle.png","language":"R","funding_links":[],"categories":["R"],"sub_categories":[],"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  out.width = \"100%\"\n)\n```\n\n# projthis\n\n\u003c!-- badges: start --\u003e\n\n[![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) [![R build status](https://github.com/ijlyttle/projthis/workflows/R-CMD-check/badge.svg)](https://github.com/ijlyttle/projthis/actions) [![Codecov test coverage](https://codecov.io/gh/ijlyttle/projthis/branch/master/graph/badge.svg)](https://codecov.io/gh/ijlyttle/projthis?branch=master)\n[![R-CMD-check](https://github.com/ijlyttle/projthis/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/ijlyttle/projthis/actions/workflows/R-CMD-check.yaml)\n\u003c!-- badges: end --\u003e\n\nThe projthis package offers a framework for analysis-based project workflows.\nYou can use it to:\n\n-   manage the dependencies among files in your workflows; projthis provides tools to support a directory structure and a naming convention.\n\n-   manage your project's package-dependencies; projthis helps you use a `DESCRIPTION` file.\n\n-   automate the rendering of your workflow using GitHub Actions; projthis provides a template for an Action.\n\nThe [getting-started article](https://ijlyttle.github.io/projthis/articles/projthis.html) provides a bottom-up treatment of what this package does; for a top-down overview, see the [design-philosophy article](https://ijlyttle.github.io/projthis/articles/design-phlosophy.html).\n\nTo see the projthis framework in action, here's a [repository that puts it to use](https://github.com/ijlyttle/covidStates).\n\n## Installation\n\nYou can install the GitHub version of projthis with:\n\n``` r\n# install.packages(\"remotes\")\nremotes::install_github(\"ijlyttle/projthis\")\n```\n\n## Acknowledgments\n\nThere is precious little original to this package, which is a good thing.\nThis package rests heavily on the foundation laid by RStudio's [**usethis**](https://usethis.r-lib.org/) package, and also relies on their [**renv**](https://rstudio.github.io/renv/), [**desc**](https://github.com/r-lib/desc), [**remotes**](https://remotes.r-lib.org/), and [**actions**](https://github.com/r-lib/actions) packages.\nOf course, the gold-standard for managing dependencies within a workflow is William Landau's [**drake**](https://docs.ropensci.org/drake/), now superseded by [**targets**](https://docs.ropensci.org/targets/).\nFor managing package-dependencies, you may also be interested in ThinkR's [**attachment**](https://thinkr-open.github.io/attachment/) package.\n\nThe idea to put some structure on analysis development in R is not new:\n\n-   I learned the term \"analysis development\" from Hilary Parker, who has published a [pre-print](https://peerj.com/preprints/3210/), and given an [rstudio::conf() presentation](https://rstudio.com/resources/rstudioconf-2017/opinionated-analysis-development/) on the topic.\n\n-   Jenny Bryan has long been an advocate for more-humane organization of R workflows.\n    Perhaps her most famous \"hot take\" is included in this [blog post](https://www.tidyverse.org/blog/2017/12/workflow-vs-script/), which has served as a foundation for this work.\n\n-   Sharla Gelfand has discussed her implementation in a [blog post](https://sharla.party/post/usethis-for-reporting/) and an [rstudio::conf() presentation](https://rstudio.com/resources/rstudioconf-2020/don-t-repeat-yourself-talk-to-yourself-repeated-reporting-in-the-r-universe/).\n\n-   As well, Emily Reiderer discussed her approach in a [blog post](https://emilyriederer.netlify.app/post/rmarkdown-driven-development/) and an [rstudio::conf() presentation](https://rstudio.com/resources/rstudioconf-2020/rmarkdown-driven-development/).\n\n-   Steph Locke and Maëlle Salmon offer the [**starters**](https://itsalocke.com/starters/) package, to help you set up R projects for a variety of use cases.\n\n## Code of Conduct\n\nPlease note that the projthis project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/0/CODE_OF_CONDUCT.html).\nBy contributing to this project, you agree to abide by its terms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fijlyttle%2Fprojthis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fijlyttle%2Fprojthis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fijlyttle%2Fprojthis/lists"}