From 2ebcd7b8872307ebae2aaa612ca77e2b6d90e1f9 Mon Sep 17 00:00:00 2001
From: MurielleDelmotte <38312934+MurielleDelmotte@users.noreply.github.com>
Date: Mon, 22 Jan 2024 13:11:08 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20ThinkR-o?=
=?UTF-8?q?pen/attachment@78f97a7cdb7ce8637ca3a5d2138af973e8936a23=20?=
=?UTF-8?q?=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
dev/CODE_OF_CONDUCT.html | 2 +-
dev/CONTRIBUTING.html | 2 +-
dev/LICENSE.html | 2 +-
dev/apple-touch-icon-120x120.png | Bin 12432 -> 12432 bytes
dev/apple-touch-icon-152x152.png | Bin 16874 -> 16874 bytes
dev/apple-touch-icon-180x180.png | Bin 20641 -> 20641 bytes
dev/apple-touch-icon-60x60.png | Bin 5128 -> 5128 bytes
dev/apple-touch-icon-76x76.png | Bin 6918 -> 6918 bytes
dev/apple-touch-icon.png | Bin 20641 -> 20641 bytes
dev/articles/a-fill-pkg-description.html | 6 +++---
dev/articles/b-bookdown-and-scripts.html | 4 ++--
dev/articles/create-dependencies-file.html | 2 +-
dev/articles/index.html | 2 +-
dev/articles/use_renv.html | 2 +-
dev/authors.html | 6 +++---
dev/favicon-16x16.png | Bin 1233 -> 1233 bytes
dev/favicon-32x32.png | Bin 2441 -> 2441 bytes
dev/index.html | 2 +-
dev/news/index.html | 9 ++++++---
dev/pkgdown.yml | 2 +-
dev/reference/att_amend_desc.html | 2 +-
dev/reference/att_from_description.html | 2 +-
dev/reference/att_from_namespace.html | 2 +-
dev/reference/att_from_rmd.html | 2 +-
dev/reference/att_from_rmds.html | 4 ++--
dev/reference/att_from_rscript.html | 2 +-
dev/reference/att_from_rscripts.html | 2 +-
dev/reference/att_to_desc_from_is.html | 2 +-
dev/reference/attachment-deprecated.html | 2 +-
dev/reference/attachment-package.html | 8 ++++----
dev/reference/create_dependencies_file.html | 2 +-
dev/reference/create_renv_for_dev.html | 6 +++---
dev/reference/find_remotes.html | 2 +-
dev/reference/index.html | 4 ++--
dev/reference/install_from_description.html | 2 +-
dev/reference/install_if_missing.html | 2 +-
dev/reference/pipe.html | 2 +-
dev/reference/set_remotes_to_desc.html | 2 +-
dev/search.json | 2 +-
39 files changed, 48 insertions(+), 45 deletions(-)
diff --git a/dev/CODE_OF_CONDUCT.html b/dev/CODE_OF_CONDUCT.html
index 6a0cd94..b80b165 100644
--- a/dev/CODE_OF_CONDUCT.html
+++ b/dev/CODE_OF_CONDUCT.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/CONTRIBUTING.html b/dev/CONTRIBUTING.html
index 98c2b96..1c19487 100644
--- a/dev/CONTRIBUTING.html
+++ b/dev/CONTRIBUTING.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/LICENSE.html b/dev/LICENSE.html
index a2bcb2f..e01386d 100644
--- a/dev/LICENSE.html
+++ b/dev/LICENSE.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/apple-touch-icon-120x120.png b/dev/apple-touch-icon-120x120.png
index 50e1c55172bd5c105b6e5cace9f6089f0b5b3278..37195515a4ee4d2d22a1ced83187ffff006889e5 100644
GIT binary patch
delta 69
zcmbP`I3aOD6^9rvmr`V#M&rh&NPQ6_qYy)5D?fjZK>!L=4SB3@oh-jjRj}wG9lc3=FDo-<<5}D2pk<
L)s{H9%CP_dD}fbH
diff --git a/dev/apple-touch-icon-180x180.png b/dev/apple-touch-icon-180x180.png
index 4a7abcf6dfbf310ab839ea0c31027f7e02d39584..d02bbe25aa6b53a2fa153087d9b76c15bdfdb867 100644
GIT binary patch
delta 73
zcmZ3uka6Kc#tBs%V!T|c#~nAe?$Y9D?
M=T!?&HVViG07?WECIA2c
diff --git a/dev/apple-touch-icon-60x60.png b/dev/apple-touch-icon-60x60.png
index 012b5cf6f37e36929117b4ed93e8e094227eee08..70e99d41a11031464a015bae70f2d8441aa0f939 100644
GIT binary patch
delta 71
zcmeCs=+Kx@#UaMarLeujbM3~ai$bDCMj?jAR)z*v#zxu(237_JIub2=CT9rCV9Lb0
L+AvI>DVz@gP;@3`iT9
diff --git a/dev/apple-touch-icon.png b/dev/apple-touch-icon.png
index f4d8ce517c69f31f0e45caac7bb4c9e0015f1083..1910f7fa7aa1be43dbf263af80df3a1ccf3013e4 100644
GIT binary patch
delta 73
zcmZ3uka6Kc#tBs%V!T{xaj)OZ*w~ciFKT2IVrXn-XkcY*p>1GbWnj>ear@I`#sC>i
NnV+V~ev^#?@&SB#7V!W8
delta 73
zcmZ3uka6Kc#tBs%0-QX&ZTYTo8=JEHMGehD3@oh-jjRlfwG9lc3=H15oRFT(7$Acw
NGgq=;`DCMjd;l6y6y*Q_
diff --git a/dev/articles/a-fill-pkg-description.html b/dev/articles/a-fill-pkg-description.html
index 8e7f727..e4d907e 100644
--- a/dev/articles/a-fill-pkg-description.html
+++ b/dev/articles/a-fill-pkg-description.html
@@ -34,7 +34,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -86,7 +86,7 @@
Sébastien
Rochette
- 2024-01-16
+ 2024-01-22
Source: vignettes/a-fill-pkg-description.Rmd
a-fill-pkg-description.Rmd
@@ -187,7 +187,7 @@ I have a Rmark
---
title: "My Super template"
author: "John Doe"
-date: "2024-01-16"
+date: "2024-01-22"
output: bookdown::html_document2
---
diff --git a/dev/articles/b-bookdown-and-scripts.html b/dev/articles/b-bookdown-and-scripts.html
index 176ce56..8441ce5 100644
--- a/dev/articles/b-bookdown-and-scripts.html
+++ b/dev/articles/b-bookdown-and-scripts.html
@@ -34,7 +34,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -86,7 +86,7 @@
Sébastien
Rochette
- 2024-01-16
+ 2024-01-22
Source: vignettes/b-bookdown-and-scripts.Rmd
b-bookdown-and-scripts.Rmd
diff --git a/dev/articles/create-dependencies-file.html b/dev/articles/create-dependencies-file.html
index 16333eb..a57b451 100644
--- a/dev/articles/create-dependencies-file.html
+++ b/dev/articles/create-dependencies-file.html
@@ -34,7 +34,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/articles/index.html b/dev/articles/index.html
index 6420319..369db32 100644
--- a/dev/articles/index.html
+++ b/dev/articles/index.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/articles/use_renv.html b/dev/articles/use_renv.html
index 8f9ba9b..fa85ddc 100644
--- a/dev/articles/use_renv.html
+++ b/dev/articles/use_renv.html
@@ -34,7 +34,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/authors.html b/dev/authors.html
index c2fa0c3..433c4d0 100644
--- a/dev/authors.html
+++ b/dev/authors.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -83,14 +83,14 @@ Citation
Rochette S, Guyader V, Delmotte M, Floc'hlay S (2024).
attachment: Deal with Dependencies .
-R package version 0.4.0.9001,
+R package version 0.4.1.9000,
https://github.com/ThinkR-open/attachment, https://thinkr-open.github.io/attachment/ .
@Manual{,
title = {attachment: Deal with Dependencies},
author = {Sébastien Rochette and Vincent Guyader and Murielle Delmotte and Swann Floc'hlay},
year = {2024},
- note = {R package version 0.4.0.9001,
+ note = {R package version 0.4.1.9000,
https://github.com/ThinkR-open/attachment},
url = {https://thinkr-open.github.io/attachment/},
}
diff --git a/dev/favicon-16x16.png b/dev/favicon-16x16.png
index dd92b717138a27af7f97cf5fdb8ef6ec0861a8fd..4c1afb9aada2d0e4e8cd3ce700ec9533ca037f05 100644
GIT binary patch
delta 73
zcmcb}d69F&Vft7)QEANi^lV5VkV9J;T
LFep!!;>-sCr>PP1
delta 71
zcmeAa?i8L-#Ua4SBgCEVv3g@u5QnItS%`t9m7$T9p@p`Aft7*5JLfqMC%@#7!IYUV
LrxH6^iZdSozZVl>
diff --git a/dev/index.html b/dev/index.html
index d397f6b..a4883c6 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -48,7 +48,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/news/index.html b/dev/news/index.html
index d4007e4..c2673a9 100644
--- a/dev/news/index.html
+++ b/dev/news/index.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -54,9 +54,12 @@
-
attachment 0.4.0.9001
+
attachment (development version)
+
+
+
attachment 0.4.1 CRAN release: 2024-01-22
-
Bug fixes
+
Bug fixes
Modification of unit tests following {roxygen2} changes. att_amend_desc
and att_from_namespace
return messages instead of warnings. (@MurielleDelmotte )
diff --git a/dev/pkgdown.yml b/dev/pkgdown.yml
index 955deb3..3186243 100644
--- a/dev/pkgdown.yml
+++ b/dev/pkgdown.yml
@@ -6,7 +6,7 @@ articles:
b-bookdown-and-scripts: b-bookdown-and-scripts.html
create-dependencies-file: create-dependencies-file.html
use_renv: use_renv.html
-last_built: 2024-01-16T09:12Z
+last_built: 2024-01-22T13:10Z
urls:
reference: https://thinkr-open.github.io/attachment/reference
article: https://thinkr-open.github.io/attachment/articles
diff --git a/dev/reference/att_amend_desc.html b/dev/reference/att_amend_desc.html
index 57f3744..d2cdd39 100644
--- a/dev/reference/att_amend_desc.html
+++ b/dev/reference/att_amend_desc.html
@@ -16,7 +16,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/att_from_description.html b/dev/reference/att_from_description.html
index 2a338d6..6ea303c 100644
--- a/dev/reference/att_from_description.html
+++ b/dev/reference/att_from_description.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/att_from_namespace.html b/dev/reference/att_from_namespace.html
index 1dd5b23..b90064c 100644
--- a/dev/reference/att_from_namespace.html
+++ b/dev/reference/att_from_namespace.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/att_from_rmd.html b/dev/reference/att_from_rmd.html
index c950334..8024f33 100644
--- a/dev/reference/att_from_rmd.html
+++ b/dev/reference/att_from_rmd.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/att_from_rmds.html b/dev/reference/att_from_rmds.html
index be2e198..2c0e489 100644
--- a/dev/reference/att_from_rmds.html
+++ b/dev/reference/att_from_rmds.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -111,7 +111,7 @@ Value Character vector of packages called with library or require.
-knitr and rmarkdown are added by default to allow building the vignettes
+knitr and rmarkdown are added by default to allow building the vignettes
if the directory contains "vignettes" in the path
diff --git a/dev/reference/att_from_rscript.html b/dev/reference/att_from_rscript.html
index 784248d..409e6a8 100644
--- a/dev/reference/att_from_rscript.html
+++ b/dev/reference/att_from_rscript.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/att_from_rscripts.html b/dev/reference/att_from_rscripts.html
index 210f30f..f2c1312 100644
--- a/dev/reference/att_from_rscripts.html
+++ b/dev/reference/att_from_rscripts.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/att_to_desc_from_is.html b/dev/reference/att_to_desc_from_is.html
index 1ef367a..45cf487 100644
--- a/dev/reference/att_to_desc_from_is.html
+++ b/dev/reference/att_to_desc_from_is.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/attachment-deprecated.html b/dev/reference/attachment-deprecated.html
index d98b6b8..64f6a5e 100644
--- a/dev/reference/attachment-deprecated.html
+++ b/dev/reference/attachment-deprecated.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/attachment-package.html b/dev/reference/attachment-package.html
index 54112b4..fac6afe 100644
--- a/dev/reference/attachment-package.html
+++ b/dev/reference/attachment-package.html
@@ -12,7 +12,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -71,9 +71,9 @@ See also
diff --git a/dev/reference/create_dependencies_file.html b/dev/reference/create_dependencies_file.html
index a1f2d7f..263e856 100644
--- a/dev/reference/create_dependencies_file.html
+++ b/dev/reference/create_dependencies_file.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/create_renv_for_dev.html b/dev/reference/create_renv_for_dev.html
index 749cc1e..a241bff 100644
--- a/dev/reference/create_renv_for_dev.html
+++ b/dev/reference/create_renv_for_dev.html
@@ -18,7 +18,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -57,7 +57,7 @@
@@ -66,7 +66,7 @@
Tool to create and maintain renv.lock files.
The idea is to have 2 distinct files, one for development and the other for deployment.
-Indeed, although packages like attachment or pkgload must be installed to develop,
+Indeed, although packages like attachment or pkgload must be installed to develop,
they are not necessary in your project, package or Shiny application.
diff --git a/dev/reference/find_remotes.html b/dev/reference/find_remotes.html
index 8438375..a299f24 100644
--- a/dev/reference/find_remotes.html
+++ b/dev/reference/find_remotes.html
@@ -10,7 +10,7 @@
attachment
-
0.4.0.9001
+
0.4.1.9000
diff --git a/dev/reference/index.html b/dev/reference/index.html
index c4d49f1..a422aa2 100644
--- a/dev/reference/index.html
+++ b/dev/reference/index.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
@@ -112,7 +112,7 @@ All functionscreate_renv_for_dev() create_renv_for_prod()
- Create reproducible environments for your R projects with renv
+ Create reproducible environments for your R projects with renv
find_remotes()
diff --git a/dev/reference/install_from_description.html b/dev/reference/install_from_description.html
index 891e20a..e941631 100644
--- a/dev/reference/install_from_description.html
+++ b/dev/reference/install_from_description.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/install_if_missing.html b/dev/reference/install_if_missing.html
index 74bb316..5f569f6 100644
--- a/dev/reference/install_if_missing.html
+++ b/dev/reference/install_if_missing.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/pipe.html b/dev/reference/pipe.html
index 1756520..57e2a6b 100644
--- a/dev/reference/pipe.html
+++ b/dev/reference/pipe.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/reference/set_remotes_to_desc.html b/dev/reference/set_remotes_to_desc.html
index 428e6ca..1e19a2b 100644
--- a/dev/reference/set_remotes_to_desc.html
+++ b/dev/reference/set_remotes_to_desc.html
@@ -10,7 +10,7 @@
attachment
- 0.4.0.9001
+ 0.4.1.9000
diff --git a/dev/search.json b/dev/search.json
index 954babf..d2c3100 100644
--- a/dev/search.json
+++ b/dev/search.json
@@ -1 +1 @@
-[{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"members, contributors, leaders pledge make participation community harassment-free experience everyone, regardless age, body size, visible invisible disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, sexual identity orientation. pledge act interact ways contribute open, welcoming, diverse, inclusive, healthy community.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes positive environment community include: Demonstrating empathy kindness toward people respectful differing opinions, viewpoints, experiences Giving gracefully accepting constructive feedback Accepting responsibility apologizing affected mistakes, learning experience Focusing best just us individuals, overall community Examples unacceptable behavior include: use sexualized language imagery, sexual attention advances kind Trolling, insulting derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical email address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"enforcement-responsibilities","dir":"","previous_headings":"","what":"Enforcement Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Community leaders responsible clarifying enforcing standards acceptable behavior take appropriate fair corrective action response behavior deem inappropriate, threatening, offensive, harmful. Community leaders right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, communicate reasons moderation decisions appropriate.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within community spaces, also applies individual officially representing community public spaces. Examples representing community include using official e-mail address, posting via official social media account, acting appointed representative online offline event.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported community leaders responsible enforcement codeofconduct@thinkr.fr. complaints reviewed investigated promptly fairly. community leaders obligated respect privacy security reporter incident.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"enforcement-guidelines","dir":"","previous_headings":"","what":"Enforcement Guidelines","title":"Contributor Covenant Code of Conduct","text":"Community leaders follow Community Impact Guidelines determining consequences action deem violation Code Conduct:","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_1-correction","dir":"","previous_headings":"Enforcement Guidelines","what":"1. Correction","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Use inappropriate language behavior deemed unprofessional unwelcome community. Consequence: private, written warning community leaders, providing clarity around nature violation explanation behavior inappropriate. public apology may requested.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_2-warning","dir":"","previous_headings":"Enforcement Guidelines","what":"2. Warning","title":"Contributor Covenant Code of Conduct","text":"Community Impact: violation single incident series actions. Consequence: warning consequences continued behavior. interaction people involved, including unsolicited interaction enforcing Code Conduct, specified period time. includes avoiding interactions community spaces well external channels like social media. Violating terms may lead temporary permanent ban.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_3-temporary-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"3. Temporary Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: serious violation community standards, including sustained inappropriate behavior. Consequence: temporary ban sort interaction public communication community specified period time. public private interaction people involved, including unsolicited interaction enforcing Code Conduct, allowed period. Violating terms may lead permanent ban.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_4-permanent-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"4. Permanent Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Demonstrating pattern violation community standards, including sustained inappropriate behavior, harassment individual, aggression toward disparagement classes individuals. Consequence: permanent ban sort public interaction within community.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 2.1, available https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines inspired [Mozilla’s code conduct enforcement ladder][https://github.com/mozilla/inclusion]. answers common questions code conduct, see FAQ https://www.contributor-covenant.org/faq. Translations available https://www.contributor-covenant.org/translations.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing to attachment","title":"Contributing to attachment","text":"outlines propose change attachment. detailed info contributing , tidyverse packages, please see development contributing guide.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"all-contribution-welcomed","dir":"","previous_headings":"","what":"All contribution welcomed","title":"Contributing to attachment","text":"open contribution, typos new features. guide throughout process make safe position contribute, whatever level R programming.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"package-versions-required-to-develop","dir":"","previous_headings":"","what":"Package versions required to develop","title":"Contributing to attachment","text":"roxygen2: Version > 7.1.2 required.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"fixing-typos","dir":"","previous_headings":"","what":"Fixing typos","title":"Contributing to attachment","text":"can fix typos, spelling mistakes, grammatical errors documentation directly using GitHub web interface, long changes made source file. generally means ’ll need edit roxygen2 comments .R, .Rd file. can find .R file generates .Rd reading comment first line.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"bigger-changes","dir":"","previous_headings":"","what":"Bigger changes","title":"Contributing to attachment","text":"want make bigger change, ’s good idea first file issue make sure someone team agrees ’s needed. ’ve found bug, please file issue illustrates bug minimal reprex (also help write unit test, needed).","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"pull-request-process","dir":"","previous_headings":"Bigger changes","what":"Pull request process","title":"Contributing to attachment","text":"Fork package clone onto computer. haven’t done , recommend using usethis::create_from_github(\"ThinkR-open/attachment\", fork = TRUE). Install development dependencies devtools::install_dev_deps(), make sure package passes R CMD check running devtools::check(). R CMD check doesn’t pass cleanly, ’s good idea ask help continuing. Create Git branch pull request (PR). recommend using usethis::pr_init(\"brief-description--change\"). Make changes, commit git, create PR running usethis::pr_push(), following prompts browser. title PR briefly describe change. body PR contain Fixes #issue-number. user-facing changes, add bullet top NEWS.md (.e. just first header). Follow style described https://style.tidyverse.org/news.html.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"code-style","dir":"","previous_headings":"Bigger changes","what":"Code style","title":"Contributing to attachment","text":"New code follow tidyverse style guide. can use styler package apply styles, please don’t restyle code nothing PR. use roxygen2, Markdown syntax, documentation. use testthat unit tests. Contributions test cases included easier accept.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contributing to attachment","text":"Please note attachment project released Contributor Code Conduct. contributing project agree abide terms.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"GNU General Public License","title":"GNU General Public License","text":"Version 3, 29 June 2007Copyright © 2007 Free Software Foundation, Inc. Everyone permitted copy distribute verbatim copies license document, changing allowed.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"preamble","dir":"","previous_headings":"","what":"Preamble","title":"GNU General Public License","text":"GNU General Public License free, copyleft license software kinds works. licenses software practical works designed take away freedom share change works. contrast, GNU General Public License intended guarantee freedom share change versions program–make sure remains free software users. , Free Software Foundation, use GNU General Public License software; applies also work released way authors. can apply programs, . speak free software, referring freedom, price. General Public Licenses designed make sure freedom distribute copies free software (charge wish), receive source code can get want , can change software use pieces new free programs, know can things. protect rights, need prevent others denying rights asking surrender rights. Therefore, certain responsibilities distribute copies software, modify : responsibilities respect freedom others. example, distribute copies program, whether gratis fee, must pass recipients freedoms received. must make sure , , receive can get source code. must show terms know rights. Developers use GNU GPL protect rights two steps: (1) assert copyright software, (2) offer License giving legal permission copy, distribute /modify . developers’ authors’ protection, GPL clearly explains warranty free software. users’ authors’ sake, GPL requires modified versions marked changed, problems attributed erroneously authors previous versions. devices designed deny users access install run modified versions software inside , although manufacturer can . fundamentally incompatible aim protecting users’ freedom change software. systematic pattern abuse occurs area products individuals use, precisely unacceptable. Therefore, designed version GPL prohibit practice products. problems arise substantially domains, stand ready extend provision domains future versions GPL, needed protect freedom users. Finally, every program threatened constantly software patents. States allow patents restrict development use software general-purpose computers, , wish avoid special danger patents applied free program make effectively proprietary. prevent , GPL assures patents used render program non-free. precise terms conditions copying, distribution modification follow.","code":""},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_0-definitions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"0. Definitions","title":"GNU General Public License","text":"“This License†refers version 3 GNU General Public License. “Copyright†also means copyright-like laws apply kinds works, semiconductor masks. “The Program†refers copyrightable work licensed License. licensee addressed “youâ€. “Licensees†“recipients†may individuals organizations. “modify†work means copy adapt part work fashion requiring copyright permission, making exact copy. resulting work called “modified version†earlier work work “based on†earlier work. “covered work†means either unmodified Program work based Program. “propagate†work means anything , without permission, make directly secondarily liable infringement applicable copyright law, except executing computer modifying private copy. Propagation includes copying, distribution (without modification), making available public, countries activities well. “convey†work means kind propagation enables parties make receive copies. Mere interaction user computer network, transfer copy, conveying. interactive user interface displays “Appropriate Legal Notices†extent includes convenient prominently visible feature (1) displays appropriate copyright notice, (2) tells user warranty work (except extent warranties provided), licensees may convey work License, view copy License. interface presents list user commands options, menu, prominent item list meets criterion.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_1-source-code","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"1. Source Code","title":"GNU General Public License","text":"“source code†work means preferred form work making modifications . “Object code†means non-source form work. “Standard Interface†means interface either official standard defined recognized standards body, , case interfaces specified particular programming language, one widely used among developers working language. “System Libraries†executable work include anything, work whole, () included normal form packaging Major Component, part Major Component, (b) serves enable use work Major Component, implement Standard Interface implementation available public source code form. “Major Componentâ€, context, means major essential component (kernel, window system, ) specific operating system () executable work runs, compiler used produce work, object code interpreter used run . “Corresponding Source†work object code form means source code needed generate, install, (executable work) run object code modify work, including scripts control activities. However, include work’s System Libraries, general-purpose tools generally available free programs used unmodified performing activities part work. example, Corresponding Source includes interface definition files associated source files work, source code shared libraries dynamically linked subprograms work specifically designed require, intimate data communication control flow subprograms parts work. Corresponding Source need include anything users can regenerate automatically parts Corresponding Source. Corresponding Source work source code form work.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_2-basic-permissions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"2. Basic Permissions","title":"GNU General Public License","text":"rights granted License granted term copyright Program, irrevocable provided stated conditions met. License explicitly affirms unlimited permission run unmodified Program. output running covered work covered License output, given content, constitutes covered work. License acknowledges rights fair use equivalent, provided copyright law. may make, run propagate covered works convey, without conditions long license otherwise remains force. may convey covered works others sole purpose make modifications exclusively , provide facilities running works, provided comply terms License conveying material control copyright. thus making running covered works must exclusively behalf, direction control, terms prohibit making copies copyrighted material outside relationship . Conveying circumstances permitted solely conditions stated . Sublicensing allowed; section 10 makes unnecessary.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_3-protecting-users-legal-rights-from-anti-circumvention-law","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"3. Protecting Users’ Legal Rights From Anti-Circumvention Law","title":"GNU General Public License","text":"covered work shall deemed part effective technological measure applicable law fulfilling obligations article 11 WIPO copyright treaty adopted 20 December 1996, similar laws prohibiting restricting circumvention measures. convey covered work, waive legal power forbid circumvention technological measures extent circumvention effected exercising rights License respect covered work, disclaim intention limit operation modification work means enforcing, work’s users, third parties’ legal rights forbid circumvention technological measures.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_4-conveying-verbatim-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"4. Conveying Verbatim Copies","title":"GNU General Public License","text":"may convey verbatim copies Program’s source code receive , medium, provided conspicuously appropriately publish copy appropriate copyright notice; keep intact notices stating License non-permissive terms added accord section 7 apply code; keep intact notices absence warranty; give recipients copy License along Program. may charge price price copy convey, may offer support warranty protection fee.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_5-conveying-modified-source-versions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"5. Conveying Modified Source Versions","title":"GNU General Public License","text":"may convey work based Program, modifications produce Program, form source code terms section 4, provided also meet conditions: ) work must carry prominent notices stating modified , giving relevant date. b) work must carry prominent notices stating released License conditions added section 7. requirement modifies requirement section 4 “keep intact noticesâ€. c) must license entire work, whole, License anyone comes possession copy. License therefore apply, along applicable section 7 additional terms, whole work, parts, regardless packaged. License gives permission license work way, invalidate permission separately received . d) work interactive user interfaces, must display Appropriate Legal Notices; however, Program interactive interfaces display Appropriate Legal Notices, work need make . compilation covered work separate independent works, nature extensions covered work, combined form larger program, volume storage distribution medium, called “aggregate†compilation resulting copyright used limit access legal rights compilation’s users beyond individual works permit. Inclusion covered work aggregate cause License apply parts aggregate.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_6-conveying-non-source-forms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"6. Conveying Non-Source Forms","title":"GNU General Public License","text":"may convey covered work object code form terms sections 4 5, provided also convey machine-readable Corresponding Source terms License, one ways: ) Convey object code , embodied , physical product (including physical distribution medium), accompanied Corresponding Source fixed durable physical medium customarily used software interchange. b) Convey object code , embodied , physical product (including physical distribution medium), accompanied written offer, valid least three years valid long offer spare parts customer support product model, give anyone possesses object code either (1) copy Corresponding Source software product covered License, durable physical medium customarily used software interchange, price reasonable cost physically performing conveying source, (2) access copy Corresponding Source network server charge. c) Convey individual copies object code copy written offer provide Corresponding Source. alternative allowed occasionally noncommercially, received object code offer, accord subsection 6b. d) Convey object code offering access designated place (gratis charge), offer equivalent access Corresponding Source way place charge. need require recipients copy Corresponding Source along object code. place copy object code network server, Corresponding Source may different server (operated third party) supports equivalent copying facilities, provided maintain clear directions next object code saying find Corresponding Source. Regardless server hosts Corresponding Source, remain obligated ensure available long needed satisfy requirements. e) Convey object code using peer--peer transmission, provided inform peers object code Corresponding Source work offered general public charge subsection 6d. separable portion object code, whose source code excluded Corresponding Source System Library, need included conveying object code work. “User Product†either (1) “consumer productâ€, means tangible personal property normally used personal, family, household purposes, (2) anything designed sold incorporation dwelling. determining whether product consumer product, doubtful cases shall resolved favor coverage. particular product received particular user, “normally used†refers typical common use class product, regardless status particular user way particular user actually uses, expects expected use, product. product consumer product regardless whether product substantial commercial, industrial non-consumer uses, unless uses represent significant mode use product. “Installation Information†User Product means methods, procedures, authorization keys, information required install execute modified versions covered work User Product modified version Corresponding Source. information must suffice ensure continued functioning modified object code case prevented interfered solely modification made. convey object code work section , , specifically use , User Product, conveying occurs part transaction right possession use User Product transferred recipient perpetuity fixed term (regardless transaction characterized), Corresponding Source conveyed section must accompanied Installation Information. requirement apply neither third party retains ability install modified object code User Product (example, work installed ROM). requirement provide Installation Information include requirement continue provide support service, warranty, updates work modified installed recipient, User Product modified installed. Access network may denied modification materially adversely affects operation network violates rules protocols communication across network. Corresponding Source conveyed, Installation Information provided, accord section must format publicly documented (implementation available public source code form), must require special password key unpacking, reading copying.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_7-additional-terms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"7. Additional Terms","title":"GNU General Public License","text":"“Additional permissions†terms supplement terms License making exceptions one conditions. Additional permissions applicable entire Program shall treated though included License, extent valid applicable law. additional permissions apply part Program, part may used separately permissions, entire Program remains governed License without regard additional permissions. convey copy covered work, may option remove additional permissions copy, part . (Additional permissions may written require removal certain cases modify work.) may place additional permissions material, added covered work, can give appropriate copyright permission. Notwithstanding provision License, material add covered work, may (authorized copyright holders material) supplement terms License terms: ) Disclaiming warranty limiting liability differently terms sections 15 16 License; b) Requiring preservation specified reasonable legal notices author attributions material Appropriate Legal Notices displayed works containing ; c) Prohibiting misrepresentation origin material, requiring modified versions material marked reasonable ways different original version; d) Limiting use publicity purposes names licensors authors material; e) Declining grant rights trademark law use trade names, trademarks, service marks; f) Requiring indemnification licensors authors material anyone conveys material (modified versions ) contractual assumptions liability recipient, liability contractual assumptions directly impose licensors authors. non-permissive additional terms considered “further restrictions†within meaning section 10. Program received , part , contains notice stating governed License along term restriction, may remove term. license document contains restriction permits relicensing conveying License, may add covered work material governed terms license document, provided restriction survive relicensing conveying. add terms covered work accord section, must place, relevant source files, statement additional terms apply files, notice indicating find applicable terms. Additional terms, permissive non-permissive, may stated form separately written license, stated exceptions; requirements apply either way.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_8-termination","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"8. Termination","title":"GNU General Public License","text":"may propagate modify covered work except expressly provided License. attempt otherwise propagate modify void, automatically terminate rights License (including patent licenses granted third paragraph section 11). However, cease violation License, license particular copyright holder reinstated () provisionally, unless copyright holder explicitly finally terminates license, (b) permanently, copyright holder fails notify violation reasonable means prior 60 days cessation. Moreover, license particular copyright holder reinstated permanently copyright holder notifies violation reasonable means, first time received notice violation License (work) copyright holder, cure violation prior 30 days receipt notice. Termination rights section terminate licenses parties received copies rights License. rights terminated permanently reinstated, qualify receive new licenses material section 10.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_9-acceptance-not-required-for-having-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"9. Acceptance Not Required for Having Copies","title":"GNU General Public License","text":"required accept License order receive run copy Program. Ancillary propagation covered work occurring solely consequence using peer--peer transmission receive copy likewise require acceptance. However, nothing License grants permission propagate modify covered work. actions infringe copyright accept License. Therefore, modifying propagating covered work, indicate acceptance License .","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_10-automatic-licensing-of-downstream-recipients","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"10. Automatic Licensing of Downstream Recipients","title":"GNU General Public License","text":"time convey covered work, recipient automatically receives license original licensors, run, modify propagate work, subject License. responsible enforcing compliance third parties License. “entity transaction†transaction transferring control organization, substantially assets one, subdividing organization, merging organizations. propagation covered work results entity transaction, party transaction receives copy work also receives whatever licenses work party’s predecessor interest give previous paragraph, plus right possession Corresponding Source work predecessor interest, predecessor can get reasonable efforts. may impose restrictions exercise rights granted affirmed License. example, may impose license fee, royalty, charge exercise rights granted License, may initiate litigation (including cross-claim counterclaim lawsuit) alleging patent claim infringed making, using, selling, offering sale, importing Program portion .","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_11-patents","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"11. Patents","title":"GNU General Public License","text":"“contributor†copyright holder authorizes use License Program work Program based. work thus licensed called contributor’s “contributor versionâ€. contributor’s “essential patent claims†patent claims owned controlled contributor, whether already acquired hereafter acquired, infringed manner, permitted License, making, using, selling contributor version, include claims infringed consequence modification contributor version. purposes definition, “control†includes right grant patent sublicenses manner consistent requirements License. contributor grants non-exclusive, worldwide, royalty-free patent license contributor’s essential patent claims, make, use, sell, offer sale, import otherwise run, modify propagate contents contributor version. following three paragraphs, “patent license†express agreement commitment, however denominated, enforce patent (express permission practice patent covenant sue patent infringement). “grant†patent license party means make agreement commitment enforce patent party. convey covered work, knowingly relying patent license, Corresponding Source work available anyone copy, free charge terms License, publicly available network server readily accessible means, must either (1) cause Corresponding Source available, (2) arrange deprive benefit patent license particular work, (3) arrange, manner consistent requirements License, extend patent license downstream recipients. “Knowingly relying†means actual knowledge , patent license, conveying covered work country, recipient’s use covered work country, infringe one identifiable patents country reason believe valid. , pursuant connection single transaction arrangement, convey, propagate procuring conveyance , covered work, grant patent license parties receiving covered work authorizing use, propagate, modify convey specific copy covered work, patent license grant automatically extended recipients covered work works based . patent license “discriminatory†include within scope coverage, prohibits exercise , conditioned non-exercise one rights specifically granted License. may convey covered work party arrangement third party business distributing software, make payment third party based extent activity conveying work, third party grants, parties receive covered work , discriminatory patent license () connection copies covered work conveyed (copies made copies), (b) primarily connection specific products compilations contain covered work, unless entered arrangement, patent license granted, prior 28 March 2007. Nothing License shall construed excluding limiting implied license defenses infringement may otherwise available applicable patent law.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_12-no-surrender-of-others-freedom","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"12. No Surrender of Others’ Freedom","title":"GNU General Public License","text":"conditions imposed (whether court order, agreement otherwise) contradict conditions License, excuse conditions License. convey covered work satisfy simultaneously obligations License pertinent obligations, consequence may convey . example, agree terms obligate collect royalty conveying convey Program, way satisfy terms License refrain entirely conveying Program.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_13-use-with-the-gnu-affero-general-public-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"13. Use with the GNU Affero General Public License","title":"GNU General Public License","text":"Notwithstanding provision License, permission link combine covered work work licensed version 3 GNU Affero General Public License single combined work, convey resulting work. terms License continue apply part covered work, special requirements GNU Affero General Public License, section 13, concerning interaction network apply combination .","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_14-revised-versions-of-this-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"14. Revised Versions of this License","title":"GNU General Public License","text":"Free Software Foundation may publish revised /new versions GNU General Public License time time. new versions similar spirit present version, may differ detail address new problems concerns. version given distinguishing version number. Program specifies certain numbered version GNU General Public License “or later version†applies , option following terms conditions either numbered version later version published Free Software Foundation. Program specify version number GNU General Public License, may choose version ever published Free Software Foundation. Program specifies proxy can decide future versions GNU General Public License can used, proxy’s public statement acceptance version permanently authorizes choose version Program. Later license versions may give additional different permissions. However, additional obligations imposed author copyright holder result choosing follow later version.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_15-disclaimer-of-warranty","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"15. Disclaimer of Warranty","title":"GNU General Public License","text":"WARRANTY PROGRAM, EXTENT PERMITTED APPLICABLE LAW. EXCEPT OTHERWISE STATED WRITING COPYRIGHT HOLDERS /PARTIES PROVIDE PROGRAM “AS IS†WITHOUT WARRANTY KIND, EITHER EXPRESSED IMPLIED, INCLUDING, LIMITED , IMPLIED WARRANTIES MERCHANTABILITY FITNESS PARTICULAR PURPOSE. ENTIRE RISK QUALITY PERFORMANCE PROGRAM . PROGRAM PROVE DEFECTIVE, ASSUME COST NECESSARY SERVICING, REPAIR CORRECTION.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_16-limitation-of-liability","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"16. Limitation of Liability","title":"GNU General Public License","text":"EVENT UNLESS REQUIRED APPLICABLE LAW AGREED WRITING COPYRIGHT HOLDER, PARTY MODIFIES /CONVEYS PROGRAM PERMITTED , LIABLE DAMAGES, INCLUDING GENERAL, SPECIAL, INCIDENTAL CONSEQUENTIAL DAMAGES ARISING USE INABILITY USE PROGRAM (INCLUDING LIMITED LOSS DATA DATA RENDERED INACCURATE LOSSES SUSTAINED THIRD PARTIES FAILURE PROGRAM OPERATE PROGRAMS), EVEN HOLDER PARTY ADVISED POSSIBILITY DAMAGES.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_17-interpretation-of-sections-15-and-16","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"17. Interpretation of Sections 15 and 16","title":"GNU General Public License","text":"disclaimer warranty limitation liability provided given local legal effect according terms, reviewing courts shall apply local law closely approximates absolute waiver civil liability connection Program, unless warranty assumption liability accompanies copy Program return fee. END TERMS CONDITIONS","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"how-to-apply-these-terms-to-your-new-programs","dir":"","previous_headings":"","what":"How to Apply These Terms to Your New Programs","title":"GNU General Public License","text":"develop new program, want greatest possible use public, best way achieve make free software everyone can redistribute change terms. , attach following notices program. safest attach start source file effectively state exclusion warranty; file least “copyright†line pointer full notice found. Also add information contact electronic paper mail. program terminal interaction, make output short notice like starts interactive mode: hypothetical commands show w show c show appropriate parts General Public License. course, program’s commands might different; GUI interface, use “about boxâ€. also get employer (work programmer) school, , sign “copyright disclaimer†program, necessary. information , apply follow GNU GPL, see . GNU General Public License permit incorporating program proprietary programs. program subroutine library, may consider useful permit linking proprietary applications library. want , use GNU Lesser General Public License instead License. first, please read .","code":" Copyright (C) 2018 Vincent Guyader This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . attachment Copyright (C) 2018 Vincent Guyader This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details."},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"load-package-attachment","dir":"Articles","previous_headings":"","what":"Load package {attachment}","title":"a-Help during package development","text":"","code":"library(attachment)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"use-devdev_history-r","dir":"Articles","previous_headings":"","what":"Use “dev/dev_history.R”","title":"a-Help during package development","text":"building package, create file called “dev_history.R” “dev/” directory. store “manual” calls devtools::xxx usethis::xxx script. first line : can call {attachment} file help build description file.","code":"usethis::use_build_ignore(\"dev\")"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"fill-your-description-file","dir":"Articles","previous_headings":"","what":"Fill your DESCRIPTION file","title":"a-Help during package development","text":"really want fill update description file along modifications documentation. Indeed, function really called “dev/dev_history.R”. Run attachment::att_amend_desc() time devtools::check(), save warnings errors !","code":"att_amend_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"change-default-parameters","dir":"Articles","previous_headings":"","what":"Change default parameters","title":"a-Help during package development","text":"recommend store {attachment} command “dev/dev_history.R” file package, can update parameters using default ones.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"use-the-configuration-file","dir":"Articles","previous_headings":"Change default parameters","what":"Use the configuration file","title":"a-Help during package development","text":"run att_amend_desc() directly console, use last set parameters run last time updated configuration file. Hence, can change command “dev/dev_history.R” update.config = TRUE, next time, can run attachment::att_amend_desc() directly console using updated parameters.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"ignore-some-of-the-dependencies-automatically-detected","dir":"Articles","previous_headings":"Change default parameters","what":"Ignore some of the dependencies automatically detected","title":"a-Help during package development","text":"","code":"att_amend_desc(pkg_ignore = c(\"fakepackage.to_ignore\", \"other.package\"), update.config = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"add-extra-suggests-dependencies","dir":"Articles","previous_headings":"Change default parameters","what":"Add extra Suggests dependencies","title":"a-Help during package development","text":"","code":"att_amend_desc(extra.suggests = c(\"suggested.package.not.detected\"), update.config = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"move-detected-dependencies-from-imports-to-suggests","dir":"Articles","previous_headings":"Change default parameters","what":"Move detected dependencies from Imports to Suggests","title":"a-Help during package development","text":"Next time, can run attachment::att_amend_desc() without parameters, use config file.","code":"att_amend_desc(pkg_ignore = c(\"package.to.move\"), extra.suggests = c(\"package.to.move\"), update.config = TRUE)"},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"i-have-a-rmarkdown-file-quarto-file-in-my-inst-directory","dir":"Articles","previous_headings":"A package was not detected by att_amend_desc","what":"I have a Rmarkdown file / Quarto file in my “inst/” directory","title":"a-Help during package development","text":"package, can wrapper around knitr::knit() specific template store “inst/”. case, {attachment} detect important dependencies used inside notebook file necessary package work properly. Indeed, can anticipate dependencies listed files “inst/” need “Imports”, “Suggests”, listed, depending use files. instance, notebook file “inst/my_template.Rmd” follows, {bookdown} used package: Suggests - want present template example , {bookdown} listed “Suggests”. can run : Imports - want knit inside major function package, recommended declare dependency ‘roxygen’ documentation function. can directly run att_amend_desc(). Imports case, reason decide delete my_knit() function, {bookdown} dependency won’t needed anymore, {attachment} automatically remove next att_amend_desc()","code":"--- title: \"My Super template\" author: \"John Doe\" date: \"2024-01-16\" output: bookdown::html_document2 --- # First title My text here. att_amend_desc(extra.suggests = c(\"bookdown\"), update.config = TRUE) #' Knit my internal template #' #' @importFrom bookdown html_document2 #' @export #' my_knit <- function() { rmarkdown::render(system.file(\"my_template.Rmd\", package = \"my.package\")) }"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"example-on-a-fake-package","dir":"Articles","previous_headings":"","what":"Example on a fake package","title":"a-Help during package development","text":"running inside Rmd like , may need parameter inside_rmd = TRUE.","code":"# Copy package in a temporary directory tmpdir <- tempfile(pattern = \"insidermd\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) att_amend_desc(path = dummypackage, inside_rmd = TRUE, update.config = TRUE) #> 'update.config' was set to TRUE, hence, 'use.config' was forced to FALSE #> Saving attachment parameters to yaml config file #> Loading required namespace: rstudioapi #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> #> [-] 1 package(s) removed: utils. #> #> [+] 2 package(s) added: stats, glue. # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"propose-content-for-remotes-field","dir":"Articles","previous_headings":"","what":"Propose content for “Remotes” field","title":"a-Help during package development","text":"set_remotes_to_desc() adds packages installed source CRAN Remotes: field DESCRIPTION. instance: GitHub: Remotes: thinkr-open/attachment GitLab: Remotes: gitlab::jimhester/covr Git: Remotes: git::https://theurl/package_git.git local package: Remotes: local::c:\\mylocalpackage Remotes: local::subdir/mylocalpackage Bioconductor: Remotes: bioc::3.3/package_bioc r-universe: Show message inform use r-universe options, like r-universe: need set options repos=\"https://thinkr-open.r-universe.dev\" may want run att_amend_desc(). want find packages installed source CRAN, without amending DESCRIPTION, can use find_remotes(). can use vector packages names may also want combine att_from_description() want get complete list packages installed computer non-CRAN repositories: can test install {fusen} GitHub r-universe:","code":"att_amend_desc(dummypackage) %>% set_remotes_to_desc() find_remotes(pkg = c(\"attachment\", \"desc\", \"glue\")) #> $attachment #> local maybe ? #> NA att_from_description() %>% find_remotes() find_remotes(list.dirs(.libPaths(), full.names = FALSE, recursive = FALSE)) # From GitHub remotes::install_github(\"ThinkR-open/fusen\", quiet = TRUE, upgrade = \"never\") attachment::find_remotes(\"fusen\") #> $fusen #> [1] \"ThinkR-open/fusen\" # From r-universe as default repos install.packages(\"fusen\", repos = \"https://thinkr-open.r-universe.dev\") attachment::find_remotes(\"fusen\") #> r-universe: need to set options to repos=\"https://thinkr-open.r-universe.dev\""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"create-a-file-for-package-installation","dir":"Articles","previous_headings":"","what":"Create a file for package installation","title":"a-Help during package development","text":"package finished. Well, package ever finished ? Let’s say, want release version package, may want deliver list dependencies users install. little script like install.packages(c(...dep...)) nice : file placed inst/dependencies.R contains :","code":"create_dependencies_file() # No Remotes ---- # remotes::install_github(\"ThinkR-open/fcuk\") # Attachments ---- to_install <- c(\"covr\", \"desc\", \"devtools\", \"glue\", \"knitr\", \"magrittr\", \"rmarkdown\", \"stats\", \"stringr\", \"testthat\", \"utils\") for (i in to_install) { message(paste(\"looking for \", i)) if (!requireNamespace(i)) { message(paste(\" installing\", i)) install.packages(i) } }"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"other-possibilities","dir":"Articles","previous_headings":"","what":"Other possibilities","title":"a-Help during package development","text":"course, can also use {attachment} package list package dependencies R scripts using att_from_rscripts() Rmd files using att_from_rmds().","code":"dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_rscripts(path = file.path(dummypackage, \"R\")) #> [1] \"stats\" att_from_rmds(path = file.path(dummypackage, \"vignettes\"), inside_rmd = TRUE) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"load-package-attachment","dir":"Articles","previous_headings":"","what":"Load package {attachment}","title":"Bookdown, quarto and other scripts dependencies","text":"","code":"library(attachment)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"use-devdev_history-r","dir":"Articles","previous_headings":"","what":"Use “dev/dev_history.R”","title":"Bookdown, quarto and other scripts dependencies","text":"building package, create file called “dev_history.R” “dev/” directory. store “manual” calls devtools::xxx usethis::xxx script. first line : can call {attachment} file help build description file.","code":"usethis::use_build_ignore(\"dev\")"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"use-attachment-with-bookdown-pagedown-quarto-dependencies","dir":"Articles","previous_headings":"","what":"Use {attachment} with {bookdown} / {pagedown} / {quarto} dependencies","title":"Bookdown, quarto and other scripts dependencies","text":"Dependencies Bookdown can automatically installed use “DESCRIPTION” file. Indeed, can use procedure create DESCRIPTION file local installation Continuous Integration GitLab Pages GitHub Actions. See instance, GitLab CI workflows {gitlabr}: https://github.com/ThinkR-open/gitlabr/tree/main/inst/gitlab-ci Create “DESCRIPTION” file Fill “DESCRIPTION” file using attachment::att_to_desc_from_is(). Note include directly CI (proposed {gitlabr} templates), may need set att_to_desc_from_is(must.exist = FALSE).Note att_from_rmds() also works “.qmd” documents. can use att_from_qmds() want, although now difference also parse “.Rmd” documents. Install dependencies DESCRIPTION file Build {bookdown} / {pagedown} / {quarto}","code":"usethis::use_description() # bookdown Imports are in Rmds imports <- c(\"bookdown\", attachment::att_from_rmds(\".\")) attachment::att_to_desc_from_is( path.d = \"DESCRIPTION\", imports = imports, suggests = NULL, must.exist = FALSE ) # install.packages(\"remotes\") remotes::install_deps()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"propose-content-for-remotes-field","dir":"Articles","previous_headings":"Use {attachment} with {bookdown} / {pagedown} / {quarto} dependencies","what":"Propose content for “Remotes” field","title":"Bookdown, quarto and other scripts dependencies","text":"interest using DESCRIPTION list bookdown dependencies use packages sources CRAN list ‘Remotes’ field. comes set_remotes_to_desc(), adds packages installed source CRAN Remotes: field DESCRIPTION. can run att_to_desc_from_is().","code":"attachment::att_to_desc_from_is( path.d = \"DESCRIPTION\", imports = imports, suggests = NULL, must.exist = FALSE ) %>% set_remotes_to_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-listed-in-namespace","dir":"Articles","previous_headings":"","what":"Get all packages listed in “namespace”","title":"Bookdown, quarto and other scripts dependencies","text":"can get list packages package att_from_namespace()","code":"att_from_namespace()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-added-using-pkgfunction-or-libraryrequire","dir":"Articles","previous_headings":"","what":"Get all packages added using pkg::function or library/require","title":"Bookdown, quarto and other scripts dependencies","text":"reads files directories R scripts (default R directory package)","code":"att_from_rscripts()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-called-in-your-rmd","dir":"Articles","previous_headings":"","what":"Get all packages called in your Rmd","title":"Bookdown, quarto and other scripts dependencies","text":"vignette, may want list extra libraries, listed “Depends” list. function applies Rmd file, course.","code":"att_from_rmds()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-called-in-your-rmd-and-show-them-in-this-same-rmd","dir":"Articles","previous_headings":"","what":"Get all packages called in your Rmd and show them in this same Rmd","title":"Bookdown, quarto and other scripts dependencies","text":"course, can also use {attachment} package list package dependencies R scripts using att_from_rscripts() Rmd files using att_from_rmds(). want run att_from_rmds() inside Rmd vignette, need set att_from_rmds(inside_rmd = TRUE)","code":"dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_rmds(path = file.path(dummypackage, \"vignettes\"), inside_rmd = TRUE) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/create-dependencies-file.html","id":"write-instructions-to-install-all-dependencies-from-a-description-file","dir":"Articles","previous_headings":"","what":"Write instructions to install all dependencies from a “DESCRIPTION” file","title":"Create dependencies file","text":"create_dependencies_file() creates “inst/dependencies.R” file instructions install dependencies listed “DESCRIPTION”. accounts “Remotes” field write instructions accordingly. Use create_dependencies_file(= NULL) retrieve output list character save “inst/dependencies.R” file project. can used Readme.Rmd file instance, get full list dependency install , “DESCRIPTION” file.","code":"# Create a fake package tmpdir <- tempfile(pattern = \"depsfile\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Create the dependencies commands but no file create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = NULL, open_file = FALSE) #> $remotes_content #> [1] \"# No Remotes ----\" #> #> $attachment_content #> # Attachments ---- #> to_install <- c(\"magrittr\") #> for (i in to_install) { #> message(paste(\"looking for \", i)) #> if (!requireNamespace(i, quietly = TRUE)) { #> message(paste(\" installing\", i)) #> install.packages(i) #> } #> } # Create the dependencies files in the package create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = file.path(dummypackage, \"inst/dependencies.R\"), open_file = FALSE) list.files(file.path(dummypackage, \"inst\")) #> [1] \"dependencies.R\" # browseURL(dummypackage) # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/use_renv.html","id":"create-reproducible-environments-for-your-r-projects-with-renv","dir":"Articles","previous_headings":"","what":"Create reproducible environments for your R projects with {renv}","title":"Use {renv} with developers tools","text":"Tool create maintain “renv.lock” files. idea 2 distinct files, one development deployment. Indeed, although package like {attachment}, {fusen} {pkgload} must installed develop, necessary project, package Shiny application. Hence, create update “renv.lock” file development project everything needed work conditions collaborators allow Continuous Integration work properly. currently includes: thus, run create_renv_for_dev() sending commit remote git server. Use _default (underscore), use default list. Later , want create R project can use package developed {renv}, run create_renv_for_prod(). Indeed, users need install packages listed “DESCRIPTION” file, packages versions used development.","code":"#> [1] \"renv\" \"fusen\" \"devtools\" \"roxygen2\" \"usethis\" #> [6] \"pkgload\" \"testthat\" \"remotes\" \"covr\" \"attachment\" #> [11] \"pak\" \"dockerfiler\" \"pkgdown\" create_renv_for_dev() # with all default above create_renv_for_dev(dev_pkg = \"attachment\") # with {attachment} only create_renv_for_dev(dev_pkg = c(\"_default\", \"DT\")) # for all default and {DT} create_renv_for_prod(output = \"renv.lock.prod\")"},{"path":"https://thinkr-open.github.io/attachment/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Sébastien Rochette. Maintainer, author. Vincent Guyader. Author. previous maintainer Murielle Delmotte. Author. Swann Floc'hlay. Author. ThinkR. Copyright holder, funder.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Rochette S, Guyader V, Delmotte M, Floc'hlay S (2024). attachment: Deal Dependencies. R package version 0.4.0.9001, https://github.com/ThinkR-open/attachment, https://thinkr-open.github.io/attachment/.","code":"@Manual{, title = {attachment: Deal with Dependencies}, author = {Sébastien Rochette and Vincent Guyader and Murielle Delmotte and Swann Floc'hlay}, year = {2024}, note = {R package version 0.4.0.9001, https://github.com/ThinkR-open/attachment}, url = {https://thinkr-open.github.io/attachment/}, }"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"attachment-","dir":"","previous_headings":"","what":"Deal with Dependencies","title":"Deal with Dependencies","text":"goal attachment help deal package dependencies package development. also gives useful tools install list missing packages used inside Rscripts Rmds. building package, add @importFrom documentation pkg::fun R code. important forget add list dependencies “Imports” “Suggests” package lists DESCRIPTION file. repeat twice thing ? happens remove dependency one functions ? really want run “Find files” verify need package anymore ? Let {attachment} help ! reads NAMESPACE, functions R directory vignettes, update DESCRIPTION file accordingly. ready lazy ? See full documentation realized using {pkgdown} https://thinkr-open.github.io/attachment/","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Deal with Dependencies","text":"CRAN version Development version","code":"install.packages(\"attachment\") install.packages('attachment', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"declare-all-dependencies-in-description-during-package-development","dir":"","previous_headings":"","what":"Declare all dependencies in DESCRIPTION during package development","title":"Deal with Dependencies","text":"really want fill update description file along modifications documentation. Indeed, following function really called. Use abuse development package ! {attachment} detects calls library(pkg), @importFrom pkg fun, pkg::fun() different classical directories R package, list correct “Imports” “Suggests” category DESCRIPTION file, according position package.","code":"attachment::att_amend_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"declare-extra-dependencies-for-extra-uses","dir":"","previous_headings":"Declare all dependencies in DESCRIPTION during package development","what":"Declare extra dependencies for extra uses","title":"Deal with Dependencies","text":"want add extra packages like {pkgdown} {covr} listed script package, call development packages : Note update.config = TRUE parameter save parameters used call att_amend_desc() package configuration file: “dev/config_attachment.yaml”. run att_amend_desc() second time afterwards, directly console, use last set parameters extracted configuration file. Indeed, recommend store complete command line “dev/dev_history.R” file update run needed. parameters change, can run attachment::att_amend_desc() directly console, wherever , use configuration file.","code":"attachment::att_amend_desc(extra.suggests = c(\"pkgdown\", \"covr\"), update.config = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"automatically-fill-the-remotes-field","dir":"","previous_headings":"Declare all dependencies in DESCRIPTION during package development","what":"Automatically fill the “Remotes” field","title":"Deal with Dependencies","text":"like detect sources installations can add dependencies “Remotes” field DESCRIPTION file, mimic local installation, use:","code":"attachment::set_remotes_to_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"example-on-a-fake-package","dir":"","previous_headings":"","what":"Example on a fake package","title":"Deal with Dependencies","text":"","code":"# Copy example package in a temporary directory tmpdir <- tempfile(pattern = \"fakepkg\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) # Fill the DESCRIPTION file automatically # `inside_rmd` is specifically designed here to allow to run this command line in the \"Readme.Rmd\" file desc_file <- attachment::att_amend_desc(path = dummypackage, inside_rmd = TRUE, update.config = TRUE) #> 'update.config' was set to TRUE, hence, 'use.config' was forced to FALSE #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> #> Setting `RoxygenNote` to \"7.2.2\" #> ℹ Loading dummypackage #> Writing ']8;;file:///tmp/Rtmp3Dpn4h/fakepkg3538450e5c49/dummypackage/NAMESPACENAMESPACE]8;;' #> Writing ']8;;file:///tmp/Rtmp3Dpn4h/fakepkg3538450e5c49/dummypackage/NAMESPACENAMESPACE]8;;' #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> #> [-] 1 package(s) removed: utils. #> #> [+] 2 package(s) added: stats, glue. # Add Remotes if you have some installed attachment::set_remotes_to_desc(path.d = desc_file) #> There are no remote packages installed on your computer to add to description #> NULL # Clean state unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"more-on-finding-remotes-repositories-non-installed-from-cran","dir":"","previous_headings":"","what":"More on finding Remotes repositories (non installed from CRAN)","title":"Deal with Dependencies","text":"Find packages installed CRAN. helps fill “Remotes” field DESCRIPTION file set_remotes_to_desc(). Behind scene, uses find_remotes(). Also works GitLab, Bioconductor, Git, Local installations","code":"# From GitHub remotes::install_github(\"ThinkR-open/fusen\", quiet = TRUE, upgrade = \"never\") attachment::find_remotes(\"fusen\") #> $fusen #> [1] \"ThinkR-open/fusen\""},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"find-and-install-missing-dependencies-required-for-your-r-scripts","dir":"","previous_headings":"","what":"Find and install missing dependencies required for your R scripts","title":"Deal with Dependencies","text":"quickly install missing packages DESCRIPTION file, use: quickly install missing packages needed compile Rmd files run R scripts, use: Function attachment::create_dependencies_file() create dependencies.R file inst/ directory. R script contains procedure quickly install missing dependencies:","code":"attachment::install_from_description() #> All required packages are installed attachment::att_from_rmds(path = \".\") |> attachment::install_if_missing() attachment::att_from_rscripts(path = \".\") |> attachment::install_if_missing() # Remotes ---- # remotes::install_github(\"ThinkR-open/fcuk\") # Attachments ---- to_install <- c(\"covr\", \"desc\", \"devtools\", \"glue\", \"knitr\", \"magrittr\", \"rmarkdown\", \"stats\", \"stringr\", \"testthat\", \"utils\") for (i in to_install) { message(paste(\"looking for \", i)) if (!requireNamespace(i)) { message(paste(\" installing\", i)) install.packages(i) } }"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"allow-the-ci-to-install-all-dependencies-required-for-your-bookdown-pagedown-quarto-","dir":"","previous_headings":"","what":"Allow the CI to install all dependencies required for your bookdown, pagedown, quarto, …","title":"Deal with Dependencies","text":"write {bookdown} want publish Github using GitHub Actions GitLab CI instance, need DESCRIPTION file list dependencies just like package. case, can use function description import/suggest: att_to_desc_from_is(). , install dependencies ","code":"usethis::use_description() # bookdown Imports are in Rmds imports <- c(\"bookdown\", attachment::att_from_rmds(\".\")) attachment::att_to_desc_from_is(path.d = \"DESCRIPTION\", imports = imports, suggests = NULL) remotes::install_deps()"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"list-packages-required-in-any-script-or-notebook","dir":"","previous_headings":"","what":"List packages required in any script or notebook","title":"Deal with Dependencies","text":"course, can also use {attachment} package list package dependencies R scripts using att_from_rscripts() Rmd/qmd files using att_from_rmds(). running inside Rmd, may need parameter inside_rmd = TRUE.","code":"library(attachment) dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_rscripts(path = dummypackage) #> [1] \"stats\" \"testthat\" \"dummypackage\" att_from_rmds(path = file.path(dummypackage, \"vignettes\"), inside_rmd = TRUE) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"vignettes-included","dir":"","previous_headings":"","what":"Vignettes included","title":"Deal with Dependencies","text":"Package {attachment} vignettes present different functions available. also recommendation dev_history.R root directory package. (look dev_history.R present package) vignettes available {pkgdown} page, “Articles” menu: https://thinkr-open.github.io/attachment/","code":"vignette(\"a-fill-pkg-description\", package = \"attachment\") vignette(\"b-bookdown-and-scripts\", package = \"attachment\") vignette(\"use_renv\", package = \"attachment\") vignette(\"create-dependencies-file\", package = \"attachment\")"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Deal with Dependencies","text":"Please note attachment project released Contributor Code Conduct. contributing project, agree abide terms","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":null,"dir":"Reference","previous_headings":"","what":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"Amend package DESCRIPTION file list dependencies extracted R, tests, vignettes files. att_to_desc_from_pkg() alias att_amend_desc(), correspondence att_to_desc_from_is().","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"","code":"att_amend_desc( path = \".\", path.n = \"NAMESPACE\", path.d = \"DESCRIPTION\", dir.r = \"R\", dir.v = \"vignettes\", dir.t = \"tests\", extra.suggests = NULL, pkg_ignore = NULL, document = TRUE, normalize = TRUE, inside_rmd = FALSE, must.exist = TRUE, check_if_suggests_is_installed = TRUE, update.config = FALSE, use.config = TRUE, path.c = \"dev/config_attachment.yaml\" ) att_to_desc_from_pkg( path = \".\", path.n = \"NAMESPACE\", path.d = \"DESCRIPTION\", dir.r = \"R\", dir.v = \"vignettes\", dir.t = \"tests\", extra.suggests = NULL, pkg_ignore = NULL, document = TRUE, normalize = TRUE, inside_rmd = FALSE, must.exist = TRUE, check_if_suggests_is_installed = TRUE, update.config = FALSE, use.config = TRUE, path.c = \"dev/config_attachment.yaml\" )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"path path root package directory. Default current directory. path.n path namespace file. path.d path description file. dir.r path directory R scripts. dir.v path vignettes directory. Set empty (dir.v = \"\") ignore. dir.t path tests directory. Set empty (dir.t = \"\") ignore. extra.suggests vector packages added Suggests (pkgdown, covr instance) pkg_ignore vector packages names ignore. document Run function roxygenise roxygen2 package normalize Logical. Whether normalize DESCRIPTION file. See desc::desc_normalize() inside_rmd Logical. Whether function run inside Rmd, case must executed external R session must.exist Logical. TRUE error given packages exist within installed packages. NA, warning. check_if_suggests_is_installed Logical. Whether require packages Suggests section installed. update.config logical. parameters used call saved config file package use.config logical. command use parameters config file run path.c character Path yaml config file parameters saved","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"Update DESCRIPTION file.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"daily use run att_amend_desc(), . want run function sometimes extra information like att_amend_desc(pkg_ignore = \"x\", update.config = TRUE) update configuration file. Next time att_amend_desc() use parameters configuration file directly.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"","code":"# Run on an external \"dummypackage\" as an example # For your local use, you do not have to specify the `path` as below # By default, `att_amend_desc()` will run on the current working directory # Create a fake package for the example tmpdir <- tempfile(pattern = \"description\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Update documentation and dependencies att_amend_desc(path = dummypackage) #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 1 package(s) removed: utils. #> [+] 2 package(s) added: stats, glue. # You can look at the content of this external package #' # browseURL(dummypackage) # Update the config file with extra parameters # We recommend that you store this code in a file in your \"dev/\" directory # to run it when needed att_amend_desc(path = dummypackage, extra.suggests = \"testthat\", update.config = TRUE) #> 'update.config' was set to TRUE, hence, 'use.config' was forced to FALSE #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. # Next time, in your daily development att_amend_desc(path = dummypackage) #> Documentation parameters were restored from attachment config file. #> Updating dummypackage documentation #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. # Clean after examples unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":null,"dir":"Reference","previous_headings":"","what":"Return all package dependencies from current package — att_from_description","title":"Return all package dependencies from current package — att_from_description","text":"Return package dependencies current package","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Return all package dependencies from current package — att_from_description","text":"","code":"att_from_description( path = \"DESCRIPTION\", dput = FALSE, field = c(\"Depends\", \"Imports\", \"Suggests\") )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Return all package dependencies from current package — att_from_description","text":"path path DESCRIPTION file dput FALSE return vector instead dput output field DESCRIPTION field parse, Import, Suggests Depends default","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Return all package dependencies from current package — att_from_description","text":"character vector packages names","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Return all package dependencies from current package — att_from_description","text":"","code":"dummypackage <- system.file(\"dummypackage\", package = \"attachment\") # browseURL(dummypackage) att_from_description(path = file.path(dummypackage, \"DESCRIPTION\")) #> [1] \"knitr\" \"magrittr\" \"rmarkdown\" \"testthat\" \"utils\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":null,"dir":"Reference","previous_headings":"","what":"return package dependencies from NAMESPACE file — att_from_namespace","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"return package dependencies NAMESPACE file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"","code":"att_from_namespace(path = \"NAMESPACE\", document = TRUE, clean = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"path path NAMESPACE file document Run function roxygenise roxygen2 package clean Logical. Whether remove original NAMESPACE updating","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"vector","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"","code":"tmpdir <- tempfile(pattern = \"namespace\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) att_from_namespace(path = file.path(dummypackage, \"NAMESPACE\")) #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> [1] \"magrittr\" # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all dependencies from a Rmd file — att_from_rmd","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"Get dependencies Rmd file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"","code":"att_from_rmd( path, temp_dir = tempdir(), warn = -1, encoding = getOption(\"encoding\"), inside_rmd = FALSE, inline = TRUE ) att_from_qmd( path, temp_dir = tempdir(), warn = -1, encoding = getOption(\"encoding\"), inside_rmd = FALSE, inline = TRUE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"path Path Rmd file temp_dir Path temporary script purl vignette warn -1 quiet warnings purl, 0 see warnings encoding Encoding input file; always assumed UTF-8 (.e., argument effectively ignored). inside_rmd Logical. Whether function run inside Rmd, case must executed external R session inline Logical. Default TRUE. Whether explore inline code dependencies.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"vector character packages names found Rmd","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rmd(path = file.path(dummypackage,\"vignettes/demo.Rmd\")) #> [1] \"glue\" \"knitr\" \"rmarkdown\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all packages called in vignettes folder — att_from_rmds","title":"Get all packages called in vignettes folder — att_from_rmds","text":"Get packages called vignettes folder","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all packages called in vignettes folder — att_from_rmds","text":"","code":"att_from_rmds( path = \"vignettes\", pattern = \"*.[.](Rmd|rmd|qmd)$\", recursive = TRUE, warn = -1, inside_rmd = FALSE, inline = TRUE ) att_from_qmds( path = \"vignettes\", pattern = \"*.[.](Rmd|rmd|qmd)$\", recursive = TRUE, warn = -1, inside_rmd = FALSE, inline = TRUE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all packages called in vignettes folder — att_from_rmds","text":"path path directory Rmds vector Rmd files pattern pattern detect Rmd files recursive logical. listing recurse directories? warn -1 quiet warnings purl, 0 see warnings inside_rmd Logical. Whether function run inside Rmd, case must executed external R session inline Logical. Default TRUE. Whether explore inline code dependencies.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all packages called in vignettes folder — att_from_rmds","text":"Character vector packages called library require. knitr rmarkdown added default allow building vignettes directory contains \"vignettes\" path","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all packages called in vignettes folder — att_from_rmds","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rmds(path = file.path(dummypackage,\"vignettes\")) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":null,"dir":"Reference","previous_headings":"","what":"Look for functions called with :: and library/requires in one script — att_from_rscript","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"Look functions called :: library/requires one script","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"","code":"att_from_rscript(path)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"path path R script file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"vector","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"Calls pkg::fun roxygen skeleton comments ignored","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rscript(path = file.path(dummypackage,\"R\",\"my_mean.R\")) #> [1] \"stats\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":null,"dir":"Reference","previous_headings":"","what":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"Look functions called :: library/requires folder scripts","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"","code":"att_from_rscripts(path = \"R\", pattern = \"*.[.](r|R)$\", recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"path directory R scripts inside vector R scripts pattern pattern detect R script files recursive logical. listing recurse directories?","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"vector character packages names found R script","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rscripts(path = file.path(dummypackage, \"R\")) #> [1] \"stats\" att_from_rscripts(path = list.files(file.path(dummypackage, \"R\"), full.names = TRUE)) #> [1] \"stats\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":null,"dir":"Reference","previous_headings":"","what":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"Amend DESCRIPTION dependencies imports suggests package list","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"","code":"att_to_desc_from_is( path.d = \"DESCRIPTION\", imports = NULL, suggests = NULL, check_if_suggests_is_installed = TRUE, normalize = TRUE, must.exist = TRUE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"path.d path description file. imports character vector package names add Imports section suggests character vector package names add Suggests section check_if_suggests_is_installed Logical. Whether require packages Suggests section installed. normalize Logical. Whether normalize DESCRIPTION file. See desc::desc_normalize() must.exist Logical. TRUE error given packages exist within installed packages. NA, warning.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"Fill Description file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"must.exist better set TRUE package development. stops process package exists system. avoids check errors typos package names DESCRIPTION. used CI discover dependencies, bookdown instance, may want set FALSE (message ) NA (warning installed).","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"","code":"tmpdir <- tempfile(pattern = \"descfromis\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) att_to_desc_from_is(path.d = file.path(dummypackage, \"DESCRIPTION\"), imports = c(\"magrittr\", \"attachment\"), suggests = c(\"knitr\")) #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 3 package(s) removed: utils, rmarkdown, testthat. #> [+] 1 package(s) added: attachment. # In combination with other functions att_to_desc_from_is(path.d = file.path(dummypackage, \"DESCRIPTION\"), imports = att_from_rscripts(file.path(dummypackage, \"R\")), suggests = att_from_rmds(file.path(dummypackage, \"vignettes\"))) #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 2 package(s) removed: attachment, magrittr. #> [+] 3 package(s) added: stats, glue, rmarkdown. # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated functions — attachment-deprecated","title":"Deprecated functions — attachment-deprecated","text":"List functions deprecated. removed future release.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated functions — attachment-deprecated","text":"","code":"att_to_description( path = \".\", path.n = \"NAMESPACE\", path.d = \"DESCRIPTION\", dir.r = \"R\", dir.v = \"vignettes\", dir.t = \"tests\", extra.suggests = NULL, pkg_ignore = NULL, document = TRUE, normalize = TRUE, inside_rmd = FALSE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deprecated functions — attachment-deprecated","text":"path path root package directory. Default current directory. path.n path namespace file. path.d path description file. dir.r path directory R scripts. dir.v path vignettes directory. Set empty (dir.v = \"\") ignore. dir.t path tests directory. Set empty (dir.t = \"\") ignore. extra.suggests vector packages added Suggests (pkgdown, covr instance) pkg_ignore vector packages names ignore. document Run function roxygenise roxygen2 package normalize Logical. Whether normalize DESCRIPTION file. See desc::desc_normalize() inside_rmd Logical. Whether function run inside Rmd, case must executed external R session","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Deprecated functions — attachment-deprecated","text":"List functions used deprecation side effects. Output depends deprecated function.","code":""},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-package.html","id":null,"dir":"Reference","previous_headings":"","what":"attachment: Deal with Dependencies — attachment-package","title":"attachment: Deal with Dependencies — attachment-package","text":"Manage dependencies package development. can retrieve dependencies used \".R\" files \"R/\" directory, \".Rmd\" files \"vignettes/\" directory 'roxygen2' documentation functions. function update \"DESCRIPTION\" file package 'CRAN' packages remote package. functions retrieve dependencies \".R\" scripts \".Rmd\" \".qmd\" files can used independently package development.","code":""},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"attachment: Deal with Dependencies — attachment-package","text":"Maintainer: Sébastien Rochette sebastien@thinkr.fr (ORCID) Authors: Vincent Guyader vincent@thinkr.fr (ORCID) (previous maintainer) Murielle Delmotte murielle@thinkr.fr (ORCID) Swann Floc'hlay swann@thinkr.fr (ORCID) contributors: ThinkR [copyright holder, funder]","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"Outputs list instructions \"dependencies.R\" file instructions \"inst/\" directory","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"","code":"create_dependencies_file( path = \"DESCRIPTION\", field = c(\"Depends\", \"Imports\"), to = \"inst/dependencies.R\", open_file = TRUE, ignore_base = TRUE, install_only_if_missing = FALSE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"path path DESCRIPTION file field DESCRIPTION field parse, \"Import\" \"Depends\" default. Can add \"Suggests\" path save dependencies file. Set \"inst/dependencies.R\" default. Set NULL want file, instructions list character. open_file Logical. Open file created editor ignore_base Logical. Whether ignore package coming base, installed (default TRUE) install_only_if_missing Logical Modify installation instructions check, beforehand, packages missing . (default FALSE)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"List R instructions install dependencies DESCRIPTION file. Side effect: creates R file containing instructions.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"","code":"# Create a fake package tmpdir <- tempfile(pattern = \"depsfile\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Create the dependencies commands but no file create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = NULL, open_file = FALSE) #> $remotes_content #> [1] \"# No Remotes ----\" #> #> $attachment_content #> # Attachments ---- #> to_install <- c(\"magrittr\") #> for (i in to_install) { #> message(paste(\"looking for \", i)) #> if (!requireNamespace(i, quietly = TRUE)) { #> message(paste(\" installing\", i)) #> install.packages(i) #> } #> } #> #> # Create the dependencies files in the package create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = file.path(dummypackage, \"inst/dependencies.R\"), open_file = FALSE) list.files(file.path(dummypackage, \"inst\")) #> [1] \"dependencies.R\" # browseURL(dummypackage) # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":null,"dir":"Reference","previous_headings":"","what":"Create reproducible environments for your R projects with renv — create_renv_for_dev","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"Tool create maintain renv.lock files. idea 2 distinct files, one development deployment. Indeed, although packages like attachment pkgload must installed develop, necessary project, package Shiny application.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"","code":"create_renv_for_dev( path = \".\", dev_pkg = \"_default\", folder_to_include = c(\"dev\", \"data-raw\"), output = \"renv.lock\", install_if_missing = TRUE, document = TRUE, pkg_ignore = NULL, check_if_suggests_is_installed = TRUE, ... ) create_renv_for_prod( path = \".\", output = \"renv.lock.prod\", dev_pkg = \"remotes\", check_if_suggests_is_installed = FALSE, ... )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"path Path current package source folder dev_pkg Vector packages need development. Use _default (underscore avoid confusing package name), use default list. Use NULL extra package. Use attachment:::extra_dev_pkg list. folder_to_include Folder scan detect development packages output Path name file created, default ./renv.lock install_if_missing Logical. Install missing packages. TRUE default document Logical. Whether run att_amend_desc() detecting packages DESCRIPTION. pkg_ignore Vector packages ignore discovered files. prevent \"renv.lock\" recursive dependencies. check_if_suggests_is_installed Logical. Whether require packages Suggests section installed. ... arguments pass renv::snapshot()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"renv.lock file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"","code":"if (FALSE) { # Writes a renv.lock a file in the user directory create_renv_for_dev() create_renv_for_dev(dev_pkg = \"attachment\") create_renv_for_prod() }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":null,"dir":"Reference","previous_headings":"","what":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"Proposes values Remotes field DESCRIPTION file based installation","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"","code":"find_remotes(pkg)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"pkg Character. Packages test potential non-CRAN installation","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"List non-CRAN packages code add Remotes field DESCRIPTION. NULL otherwise.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"","code":"# Find from vector of packages find_remotes(pkg = c(\"attachment\", \"desc\", \"glue\")) #> $attachment #> local maybe ? #> NA #> # Find from Description file dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_description( path = file.path(dummypackage, \"DESCRIPTION\")) %>% find_remotes() #> NULL if (FALSE) { # For the current package directory att_from_description() %>% find_remotes() } # \\donttest{ # For a specific package name find_remotes(\"attachment\") #> $attachment #> local maybe ? #> NA #> # Find remotes from all installed packages find_remotes(list.dirs(.libPaths(), full.names = FALSE, recursive = FALSE)) #> Warning: DESCRIPTION file of package '_cache' is missing or broken #> _cache does not seem to be a package. It is removed from exploration. #> $attachment #> local maybe ? #> NA #> #> $pak #> local maybe ? #> NA #> #> $thinkrtemplate #> [1] \"ThinkR-open/thinkrtemplate\" #> #> $translations #> local maybe ? #> NA #> # }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":null,"dir":"Reference","previous_headings":"","what":"Install missing package from DESCRIPTION — install_from_description","title":"Install missing package from DESCRIPTION — install_from_description","text":"Install missing package DESCRIPTION","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Install missing package from DESCRIPTION — install_from_description","text":"","code":"install_from_description( path = \"DESCRIPTION\", field = c(\"Depends\", \"Imports\", \"Suggests\"), ... )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Install missing package from DESCRIPTION — install_from_description","text":"path path DESCRIPTION file field DESCRIPTION fields parse, \"Depends\", \"Imports\", \"Suggests\" default ... Arguments passed utils::install.packages()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Install missing package from DESCRIPTION — install_from_description","text":"Used side effect. Installs R packages DESCRIPTION file missing.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Install missing package from DESCRIPTION — install_from_description","text":"","code":"if (FALSE) { # This will install packages on your system dummypackage <- system.file(\"dummypackage\", package = \"attachment\") # browseURL(dummypackage) install_from_description(path = file.path(dummypackage, \"DESCRIPTION\")) }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":null,"dir":"Reference","previous_headings":"","what":"install packages if missing — install_if_missing","title":"install packages if missing — install_if_missing","text":"install packages missing","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"install packages if missing — install_if_missing","text":"","code":"install_if_missing(to_be_installed, ...)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"install packages if missing — install_if_missing","text":"to_be_installed character vector containing required packages names ... Arguments passed utils::install.packages()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"install packages if missing — install_if_missing","text":"Used side effect. Install missing packages character vector input.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"install packages if missing — install_if_missing","text":"","code":"if (FALSE) { # This will install packages on your system install_if_missing(c(\"dplyr\", \"fcuk\", \"rusk\")) }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":null,"dir":"Reference","previous_headings":"","what":"Pipe operator — %>%","title":"Pipe operator — %>%","text":"See magrittr::[\\%>\\%][magrittr::pipe] details.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pipe operator — %>%","text":"","code":"lhs %>% rhs"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pipe operator — %>%","text":"lhs value magrittr placeholder. rhs function call using magrittr semantics.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pipe operator — %>%","text":"result calling rhs(lhs).","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"Add Remotes field DESCRIPTION based local installation","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"","code":"set_remotes_to_desc(path.d = \"DESCRIPTION\", stop.local = FALSE, clean = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"path.d path description file. stop.local Logical. Whether stop package installed local source. Message otherwise. clean Logical. Whether clean existing remotes run.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"Used side effect. Adds Remotes field DESCRIPTION file.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"","code":"tmpdir <- tempfile(pattern = \"setremotes\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\", package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Add remotes field if there are Remotes locally att_amend_desc(dummypackage) %>% set_remotes_to_desc() #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 1 package(s) removed: utils. #> [+] 2 package(s) added: stats, glue. #> There are no remote packages installed on your computer to add to description #> NULL # Clean temp files after this example unlink(tmpdir, recursive = TRUE) if (FALSE) { # For your current package att_amend_desc() %>% set_remotes_to_desc() }"},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-4-0-9001","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.4.0.9001","text":"Modification unit tests following {roxygen2} changes. att_amend_desc att_from_namespace return messages instead warnings. (@MurielleDelmotte)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-040","dir":"Changelog","previous_headings":"","what":"attachment 0.4.0","title":"attachment 0.4.0","text":"CRAN release: 2023-05-31","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"breaking-changes-0-4-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"attachment 0.4.0","text":"using att_amend_desc() without default parameters, like pkg_ignore = \"x\" now require att_amend_desc(pkg_ignore = \"x\", update.config = TRUE), otherwise, fail. allows use parameters stored config file running att_amend_desc() directly console. Recommendation: Run att_amend_desc(pkg_ignore = \"x\", update.config = TRUE) update config, run att_amend_desc() daily ’ll want use stored config file. create_dependencies_file() gets parameter install_only_if_missing = FALSE default complete installation instructions packages missing. (@MurielleDelmotte)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"new-features-0-4-0","dir":"Changelog","previous_headings":"","what":"New features","title":"attachment 0.4.0","text":"att_amend_desc() can run last set parameters stored configuration file, without call time. See vignettes documentation parameters update.config = FALSE, use.config = FALSE path.c = \"dev/config_attachment.yaml\". (@dagousket) create_dependencies_file() now takes sources account (git, gitlab, github, bioc, local). (@MurielleDelmotte) Use create_dependencies_file(= NULL) get output character create file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-4-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.4.0","text":"att_amend_desc() modify user options(\"warn\") level anymore (#94) att_amend_desc() allows “Remotes” field contain @ref (#67)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-031","dir":"Changelog","previous_headings":"","what":"attachment 0.3.1","title":"attachment 0.3.1","text":"CRAN release: 2023-01-27","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"new-features-0-3-1","dir":"Changelog","previous_headings":"","what":"New features","title":"attachment 0.3.1","text":"find_remotes() now informs using “r-universe” repositories.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-3-1","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.3.1","text":"new parameters check_if_suggests_is_installed att_amend_desc() allow check suggested package installed. (thanks @yogat3ch) create_renv_for_prod() don’t look anymore suggested packages Clean maximum temp directories examples unit tests","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-030","dir":"Changelog","previous_headings":"","what":"attachment 0.3.0","title":"attachment 0.3.0","text":"CRAN release: 2022-09-19","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"new-features-0-3-0","dir":"Changelog","previous_headings":"","what":"New features","title":"attachment 0.3.0","text":"find_remotes() set_remotes_to_desc() now detects github, gitlab, git, bitbucket, local installations add “Remotes:” part DESCRIPTION file (@MurielleDelmotte) Quarto documents can parsed att_from_qmds() alias att_from_rmds().","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-3-0","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.3.0","text":"Documentation bookdown quarto dependencies extraction updated","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-3-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.3.0","text":"Allow use dependencies att_amend_desc() #52 Fix HTML5 issues update {roxygen2}","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-025","dir":"Changelog","previous_headings":"","what":"attachment 0.2.5","title":"attachment 0.2.5","text":"CRAN release: 2022-05-15","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"major-changes-0-2-5","dir":"Changelog","previous_headings":"","what":"Major changes","title":"attachment 0.2.5","text":"add create_renv_for_dev() create_renv_for_prod() function create renv.lock file based development project (@VincentGuyader @statnmap). Quarto documents can parsed att_from_rmds(). Documentation bookdown quarto dependencies extraction updated","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-2-5","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.2.5","text":"att_amend_desc() now saves file processing Newline escape code \\n interfere package discovery","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-024","dir":"Changelog","previous_headings":"","what":"attachment 0.2.4","title":"attachment 0.2.4","text":"CRAN release: 2021-11-16","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"breaking-changes-0-2-4","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"attachment 0.2.4","text":"(broken 0.2.3) - att_to_desc_from_is() can now run must.exist = FALSE used fill DESCRIPTION file bookdown CI process. CI YAML files must updated parameter.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"major-changes-0-2-4","dir":"Changelog","previous_headings":"","what":"Major changes","title":"attachment 0.2.4","text":"Split vignette two: package development dependencies management","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-2-4","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.2.4","text":"Allow clean remotes list updating set_remotes_to_desc(clean = TRUE)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-023","dir":"Changelog","previous_headings":"","what":"attachment 0.2.3","title":"attachment 0.2.3","text":"CRAN release: 2021-11-10","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"major-changes-0-2-3","dir":"Changelog","previous_headings":"","what":"Major changes","title":"attachment 0.2.3","text":"Allow add Remotes field DESCRIPTION set_remotes_to_desc()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-2-3","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.2.3","text":"Check packages names misspelled filling DESCRIPTION. Allow vector R files att_from_rscripts() Move default git branch master main","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-2-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.2.3","text":"Add NAMESPACE missing att_amend_desc(document = TRUE) Add DESCRIPTION empty skeleton missing att_amend_desc() Default remove NAMESPACE updating get rid corrupted ones att_from_namespace() Fix detection multiple render outputs Rmd YAML att_from_rmd()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-021","dir":"Changelog","previous_headings":"","what":"attachment 0.2.1","title":"attachment 0.2.1","text":"CRAN release: 2021-01-21 Check older pandoc version tests","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-020","dir":"Changelog","previous_headings":"","what":"attachment 0.2.0","title":"attachment 0.2.0","text":"CRAN release: 2021-01-19 Breaking changes * att_to_description() deprecated favor att_amend_desc() first autocompletion list, used function package. * att_from_rmd() gets parameter inline = TRUE default explore calls packages inline R code. * att_from_rmd() att_from_rmds() anymore executed separate R session default. must set inside_rmd = TRUE . Minor * Add find_remotes() help fill Remotes field DESCRIPTION * att_to_desc_from_is() add parameter normalize avoid problem {desc}. (See https://github.com/r-lib/desc/issues/80)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-010","dir":"Changelog","previous_headings":"","what":"attachment 0.1.0","title":"attachment 0.1.0","text":"CRAN release: 2020-03-15 att_amend_desc() alias att_to_description() att_desc_from_is() amends DESCRIPTION file imports/suggests vector packages att_to_desc_from_pkg() alias att_to_description() Removed dependency {devtools}, replace {roxygen} att_to_description() shows packages added/removed DESCRIPTION att_to_description() deals dependencies tests/ directory att_from_rmds() allows user defined regex detect Rmd files","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-009","dir":"Changelog","previous_headings":"","what":"attachment 0.0.9","title":"attachment 0.0.9","text":"CRAN release: 2019-05-05 att_from_rmd adds temporary encoding parameter knitr::purl deal UTF-8 future. Parameter added att_from_rmds. att_to_description {covr} needed, added parameter extra.suggests att_to_description parameter ‘dir.t’ extract suggests dependencies test directory Available default","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-008","dir":"Changelog","previous_headings":"","what":"attachment 0.0.8","title":"attachment 0.0.8","text":"att_to_description allows ‘LinkingTo’ field DESCRIPTION message att_from_rmd now reads yaml header att_from_rmd use purl extract R code R session using system(\"Rscript -e ''\") att_from_rmd: add warn option allow hide messages purl()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-007","dir":"Changelog","previous_headings":"","what":"attachment 0.0.7","title":"attachment 0.0.7","text":"att_to_description accept parameter path package current project att_to_description error NAMESPACE empty create_dependencies_file filters base packages installed","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-006","dir":"Changelog","previous_headings":"","what":"attachment 0.0.6","title":"attachment 0.0.6","text":"Prepare examples CRAN","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-005","dir":"Changelog","previous_headings":"","what":"attachment 0.0.5","title":"attachment 0.0.5","text":"att_to_description deals Remote dependencies att_to_description deals Depends dependencies att_to_description keeps versions packages previously added att_to_description removes option automatic pkg version create_dependencies_file deals github Remotes att_from_rmds now accept vector Rmd filenames","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-004","dir":"Changelog","previous_headings":"","what":"attachment 0.0.4","title":"attachment 0.0.4","text":"Add examples functions","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-003","dir":"Changelog","previous_headings":"","what":"attachment 0.0.3","title":"attachment 0.0.3","text":"att_to_description(add_version = TRUE) adds version package DESCRIPTION att_to_description(pkg_ignore) adds possibility ignore packages","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-003-1","dir":"Changelog","previous_headings":"","what":"attachment 0.0.3","title":"attachment 0.0.3","text":"Get ready CRAN Add tests.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-002","dir":"Changelog","previous_headings":"","what":"attachment 0.0.2","title":"attachment 0.0.2","text":"New function install_from_description install missing packages listed description file Add hex @statnmap ! Allow absence vignette folder att_to_description Add create_dependencies_file create file listing packages dependencies install package Allow pkg::fun calls R scripts att_from_functions Add option run devtools::document() att_from_description","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-0009000","dir":"Changelog","previous_headings":"","what":"attachment 0.0.0.9000","title":"attachment 0.0.0.9000","text":"Added NEWS.md file track changes package.","code":""}]
+[{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"our-pledge","dir":"","previous_headings":"","what":"Our Pledge","title":"Contributor Covenant Code of Conduct","text":"members, contributors, leaders pledge make participation community harassment-free experience everyone, regardless age, body size, visible invisible disability, ethnicity, sex characteristics, gender identity expression, level experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, sexual identity orientation. pledge act interact ways contribute open, welcoming, diverse, inclusive, healthy community.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"our-standards","dir":"","previous_headings":"","what":"Our Standards","title":"Contributor Covenant Code of Conduct","text":"Examples behavior contributes positive environment community include: Demonstrating empathy kindness toward people respectful differing opinions, viewpoints, experiences Giving gracefully accepting constructive feedback Accepting responsibility apologizing affected mistakes, learning experience Focusing best just us individuals, overall community Examples unacceptable behavior include: use sexualized language imagery, sexual attention advances kind Trolling, insulting derogatory comments, personal political attacks Public private harassment Publishing others’ private information, physical email address, without explicit permission conduct reasonably considered inappropriate professional setting","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"enforcement-responsibilities","dir":"","previous_headings":"","what":"Enforcement Responsibilities","title":"Contributor Covenant Code of Conduct","text":"Community leaders responsible clarifying enforcing standards acceptable behavior take appropriate fair corrective action response behavior deem inappropriate, threatening, offensive, harmful. Community leaders right responsibility remove, edit, reject comments, commits, code, wiki edits, issues, contributions aligned Code Conduct, communicate reasons moderation decisions appropriate.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"scope","dir":"","previous_headings":"","what":"Scope","title":"Contributor Covenant Code of Conduct","text":"Code Conduct applies within community spaces, also applies individual officially representing community public spaces. Examples representing community include using official e-mail address, posting via official social media account, acting appointed representative online offline event.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"enforcement","dir":"","previous_headings":"","what":"Enforcement","title":"Contributor Covenant Code of Conduct","text":"Instances abusive, harassing, otherwise unacceptable behavior may reported community leaders responsible enforcement codeofconduct@thinkr.fr. complaints reviewed investigated promptly fairly. community leaders obligated respect privacy security reporter incident.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"enforcement-guidelines","dir":"","previous_headings":"","what":"Enforcement Guidelines","title":"Contributor Covenant Code of Conduct","text":"Community leaders follow Community Impact Guidelines determining consequences action deem violation Code Conduct:","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_1-correction","dir":"","previous_headings":"Enforcement Guidelines","what":"1. Correction","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Use inappropriate language behavior deemed unprofessional unwelcome community. Consequence: private, written warning community leaders, providing clarity around nature violation explanation behavior inappropriate. public apology may requested.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_2-warning","dir":"","previous_headings":"Enforcement Guidelines","what":"2. Warning","title":"Contributor Covenant Code of Conduct","text":"Community Impact: violation single incident series actions. Consequence: warning consequences continued behavior. interaction people involved, including unsolicited interaction enforcing Code Conduct, specified period time. includes avoiding interactions community spaces well external channels like social media. Violating terms may lead temporary permanent ban.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_3-temporary-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"3. Temporary Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: serious violation community standards, including sustained inappropriate behavior. Consequence: temporary ban sort interaction public communication community specified period time. public private interaction people involved, including unsolicited interaction enforcing Code Conduct, allowed period. Violating terms may lead permanent ban.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"id_4-permanent-ban","dir":"","previous_headings":"Enforcement Guidelines","what":"4. Permanent Ban","title":"Contributor Covenant Code of Conduct","text":"Community Impact: Demonstrating pattern violation community standards, including sustained inappropriate behavior, harassment individual, aggression toward disparagement classes individuals. Consequence: permanent ban sort public interaction within community.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CODE_OF_CONDUCT.html","id":"attribution","dir":"","previous_headings":"","what":"Attribution","title":"Contributor Covenant Code of Conduct","text":"Code Conduct adapted Contributor Covenant, version 2.1, available https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines inspired [Mozilla’s code conduct enforcement ladder][https://github.com/mozilla/inclusion]. answers common questions code conduct, see FAQ https://www.contributor-covenant.org/faq. Translations available https://www.contributor-covenant.org/translations.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":null,"dir":"","previous_headings":"","what":"Contributing to attachment","title":"Contributing to attachment","text":"outlines propose change attachment. detailed info contributing , tidyverse packages, please see development contributing guide.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"all-contribution-welcomed","dir":"","previous_headings":"","what":"All contribution welcomed","title":"Contributing to attachment","text":"open contribution, typos new features. guide throughout process make safe position contribute, whatever level R programming.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"package-versions-required-to-develop","dir":"","previous_headings":"","what":"Package versions required to develop","title":"Contributing to attachment","text":"roxygen2: Version > 7.1.2 required.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"fixing-typos","dir":"","previous_headings":"","what":"Fixing typos","title":"Contributing to attachment","text":"can fix typos, spelling mistakes, grammatical errors documentation directly using GitHub web interface, long changes made source file. generally means ’ll need edit roxygen2 comments .R, .Rd file. can find .R file generates .Rd reading comment first line.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"bigger-changes","dir":"","previous_headings":"","what":"Bigger changes","title":"Contributing to attachment","text":"want make bigger change, ’s good idea first file issue make sure someone team agrees ’s needed. ’ve found bug, please file issue illustrates bug minimal reprex (also help write unit test, needed).","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"pull-request-process","dir":"","previous_headings":"Bigger changes","what":"Pull request process","title":"Contributing to attachment","text":"Fork package clone onto computer. haven’t done , recommend using usethis::create_from_github(\"ThinkR-open/attachment\", fork = TRUE). Install development dependencies devtools::install_dev_deps(), make sure package passes R CMD check running devtools::check(). R CMD check doesn’t pass cleanly, ’s good idea ask help continuing. Create Git branch pull request (PR). recommend using usethis::pr_init(\"brief-description--change\"). Make changes, commit git, create PR running usethis::pr_push(), following prompts browser. title PR briefly describe change. body PR contain Fixes #issue-number. user-facing changes, add bullet top NEWS.md (.e. just first header). Follow style described https://style.tidyverse.org/news.html.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"code-style","dir":"","previous_headings":"Bigger changes","what":"Code style","title":"Contributing to attachment","text":"New code follow tidyverse style guide. can use styler package apply styles, please don’t restyle code nothing PR. use roxygen2, Markdown syntax, documentation. use testthat unit tests. Contributions test cases included easier accept.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/CONTRIBUTING.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Contributing to attachment","text":"Please note attachment project released Contributor Code Conduct. contributing project agree abide terms.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"GNU General Public License","title":"GNU General Public License","text":"Version 3, 29 June 2007Copyright © 2007 Free Software Foundation, Inc. Everyone permitted copy distribute verbatim copies license document, changing allowed.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"preamble","dir":"","previous_headings":"","what":"Preamble","title":"GNU General Public License","text":"GNU General Public License free, copyleft license software kinds works. licenses software practical works designed take away freedom share change works. contrast, GNU General Public License intended guarantee freedom share change versions program–make sure remains free software users. , Free Software Foundation, use GNU General Public License software; applies also work released way authors. can apply programs, . speak free software, referring freedom, price. General Public Licenses designed make sure freedom distribute copies free software (charge wish), receive source code can get want , can change software use pieces new free programs, know can things. protect rights, need prevent others denying rights asking surrender rights. Therefore, certain responsibilities distribute copies software, modify : responsibilities respect freedom others. example, distribute copies program, whether gratis fee, must pass recipients freedoms received. must make sure , , receive can get source code. must show terms know rights. Developers use GNU GPL protect rights two steps: (1) assert copyright software, (2) offer License giving legal permission copy, distribute /modify . developers’ authors’ protection, GPL clearly explains warranty free software. users’ authors’ sake, GPL requires modified versions marked changed, problems attributed erroneously authors previous versions. devices designed deny users access install run modified versions software inside , although manufacturer can . fundamentally incompatible aim protecting users’ freedom change software. systematic pattern abuse occurs area products individuals use, precisely unacceptable. Therefore, designed version GPL prohibit practice products. problems arise substantially domains, stand ready extend provision domains future versions GPL, needed protect freedom users. Finally, every program threatened constantly software patents. States allow patents restrict development use software general-purpose computers, , wish avoid special danger patents applied free program make effectively proprietary. prevent , GPL assures patents used render program non-free. precise terms conditions copying, distribution modification follow.","code":""},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_0-definitions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"0. Definitions","title":"GNU General Public License","text":"“This License†refers version 3 GNU General Public License. “Copyright†also means copyright-like laws apply kinds works, semiconductor masks. “The Program†refers copyrightable work licensed License. licensee addressed “youâ€. “Licensees†“recipients†may individuals organizations. “modify†work means copy adapt part work fashion requiring copyright permission, making exact copy. resulting work called “modified version†earlier work work “based on†earlier work. “covered work†means either unmodified Program work based Program. “propagate†work means anything , without permission, make directly secondarily liable infringement applicable copyright law, except executing computer modifying private copy. Propagation includes copying, distribution (without modification), making available public, countries activities well. “convey†work means kind propagation enables parties make receive copies. Mere interaction user computer network, transfer copy, conveying. interactive user interface displays “Appropriate Legal Notices†extent includes convenient prominently visible feature (1) displays appropriate copyright notice, (2) tells user warranty work (except extent warranties provided), licensees may convey work License, view copy License. interface presents list user commands options, menu, prominent item list meets criterion.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_1-source-code","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"1. Source Code","title":"GNU General Public License","text":"“source code†work means preferred form work making modifications . “Object code†means non-source form work. “Standard Interface†means interface either official standard defined recognized standards body, , case interfaces specified particular programming language, one widely used among developers working language. “System Libraries†executable work include anything, work whole, () included normal form packaging Major Component, part Major Component, (b) serves enable use work Major Component, implement Standard Interface implementation available public source code form. “Major Componentâ€, context, means major essential component (kernel, window system, ) specific operating system () executable work runs, compiler used produce work, object code interpreter used run . “Corresponding Source†work object code form means source code needed generate, install, (executable work) run object code modify work, including scripts control activities. However, include work’s System Libraries, general-purpose tools generally available free programs used unmodified performing activities part work. example, Corresponding Source includes interface definition files associated source files work, source code shared libraries dynamically linked subprograms work specifically designed require, intimate data communication control flow subprograms parts work. Corresponding Source need include anything users can regenerate automatically parts Corresponding Source. Corresponding Source work source code form work.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_2-basic-permissions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"2. Basic Permissions","title":"GNU General Public License","text":"rights granted License granted term copyright Program, irrevocable provided stated conditions met. License explicitly affirms unlimited permission run unmodified Program. output running covered work covered License output, given content, constitutes covered work. License acknowledges rights fair use equivalent, provided copyright law. may make, run propagate covered works convey, without conditions long license otherwise remains force. may convey covered works others sole purpose make modifications exclusively , provide facilities running works, provided comply terms License conveying material control copyright. thus making running covered works must exclusively behalf, direction control, terms prohibit making copies copyrighted material outside relationship . Conveying circumstances permitted solely conditions stated . Sublicensing allowed; section 10 makes unnecessary.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_3-protecting-users-legal-rights-from-anti-circumvention-law","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"3. Protecting Users’ Legal Rights From Anti-Circumvention Law","title":"GNU General Public License","text":"covered work shall deemed part effective technological measure applicable law fulfilling obligations article 11 WIPO copyright treaty adopted 20 December 1996, similar laws prohibiting restricting circumvention measures. convey covered work, waive legal power forbid circumvention technological measures extent circumvention effected exercising rights License respect covered work, disclaim intention limit operation modification work means enforcing, work’s users, third parties’ legal rights forbid circumvention technological measures.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_4-conveying-verbatim-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"4. Conveying Verbatim Copies","title":"GNU General Public License","text":"may convey verbatim copies Program’s source code receive , medium, provided conspicuously appropriately publish copy appropriate copyright notice; keep intact notices stating License non-permissive terms added accord section 7 apply code; keep intact notices absence warranty; give recipients copy License along Program. may charge price price copy convey, may offer support warranty protection fee.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_5-conveying-modified-source-versions","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"5. Conveying Modified Source Versions","title":"GNU General Public License","text":"may convey work based Program, modifications produce Program, form source code terms section 4, provided also meet conditions: ) work must carry prominent notices stating modified , giving relevant date. b) work must carry prominent notices stating released License conditions added section 7. requirement modifies requirement section 4 “keep intact noticesâ€. c) must license entire work, whole, License anyone comes possession copy. License therefore apply, along applicable section 7 additional terms, whole work, parts, regardless packaged. License gives permission license work way, invalidate permission separately received . d) work interactive user interfaces, must display Appropriate Legal Notices; however, Program interactive interfaces display Appropriate Legal Notices, work need make . compilation covered work separate independent works, nature extensions covered work, combined form larger program, volume storage distribution medium, called “aggregate†compilation resulting copyright used limit access legal rights compilation’s users beyond individual works permit. Inclusion covered work aggregate cause License apply parts aggregate.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_6-conveying-non-source-forms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"6. Conveying Non-Source Forms","title":"GNU General Public License","text":"may convey covered work object code form terms sections 4 5, provided also convey machine-readable Corresponding Source terms License, one ways: ) Convey object code , embodied , physical product (including physical distribution medium), accompanied Corresponding Source fixed durable physical medium customarily used software interchange. b) Convey object code , embodied , physical product (including physical distribution medium), accompanied written offer, valid least three years valid long offer spare parts customer support product model, give anyone possesses object code either (1) copy Corresponding Source software product covered License, durable physical medium customarily used software interchange, price reasonable cost physically performing conveying source, (2) access copy Corresponding Source network server charge. c) Convey individual copies object code copy written offer provide Corresponding Source. alternative allowed occasionally noncommercially, received object code offer, accord subsection 6b. d) Convey object code offering access designated place (gratis charge), offer equivalent access Corresponding Source way place charge. need require recipients copy Corresponding Source along object code. place copy object code network server, Corresponding Source may different server (operated third party) supports equivalent copying facilities, provided maintain clear directions next object code saying find Corresponding Source. Regardless server hosts Corresponding Source, remain obligated ensure available long needed satisfy requirements. e) Convey object code using peer--peer transmission, provided inform peers object code Corresponding Source work offered general public charge subsection 6d. separable portion object code, whose source code excluded Corresponding Source System Library, need included conveying object code work. “User Product†either (1) “consumer productâ€, means tangible personal property normally used personal, family, household purposes, (2) anything designed sold incorporation dwelling. determining whether product consumer product, doubtful cases shall resolved favor coverage. particular product received particular user, “normally used†refers typical common use class product, regardless status particular user way particular user actually uses, expects expected use, product. product consumer product regardless whether product substantial commercial, industrial non-consumer uses, unless uses represent significant mode use product. “Installation Information†User Product means methods, procedures, authorization keys, information required install execute modified versions covered work User Product modified version Corresponding Source. information must suffice ensure continued functioning modified object code case prevented interfered solely modification made. convey object code work section , , specifically use , User Product, conveying occurs part transaction right possession use User Product transferred recipient perpetuity fixed term (regardless transaction characterized), Corresponding Source conveyed section must accompanied Installation Information. requirement apply neither third party retains ability install modified object code User Product (example, work installed ROM). requirement provide Installation Information include requirement continue provide support service, warranty, updates work modified installed recipient, User Product modified installed. Access network may denied modification materially adversely affects operation network violates rules protocols communication across network. Corresponding Source conveyed, Installation Information provided, accord section must format publicly documented (implementation available public source code form), must require special password key unpacking, reading copying.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_7-additional-terms","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"7. Additional Terms","title":"GNU General Public License","text":"“Additional permissions†terms supplement terms License making exceptions one conditions. Additional permissions applicable entire Program shall treated though included License, extent valid applicable law. additional permissions apply part Program, part may used separately permissions, entire Program remains governed License without regard additional permissions. convey copy covered work, may option remove additional permissions copy, part . (Additional permissions may written require removal certain cases modify work.) may place additional permissions material, added covered work, can give appropriate copyright permission. Notwithstanding provision License, material add covered work, may (authorized copyright holders material) supplement terms License terms: ) Disclaiming warranty limiting liability differently terms sections 15 16 License; b) Requiring preservation specified reasonable legal notices author attributions material Appropriate Legal Notices displayed works containing ; c) Prohibiting misrepresentation origin material, requiring modified versions material marked reasonable ways different original version; d) Limiting use publicity purposes names licensors authors material; e) Declining grant rights trademark law use trade names, trademarks, service marks; f) Requiring indemnification licensors authors material anyone conveys material (modified versions ) contractual assumptions liability recipient, liability contractual assumptions directly impose licensors authors. non-permissive additional terms considered “further restrictions†within meaning section 10. Program received , part , contains notice stating governed License along term restriction, may remove term. license document contains restriction permits relicensing conveying License, may add covered work material governed terms license document, provided restriction survive relicensing conveying. add terms covered work accord section, must place, relevant source files, statement additional terms apply files, notice indicating find applicable terms. Additional terms, permissive non-permissive, may stated form separately written license, stated exceptions; requirements apply either way.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_8-termination","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"8. Termination","title":"GNU General Public License","text":"may propagate modify covered work except expressly provided License. attempt otherwise propagate modify void, automatically terminate rights License (including patent licenses granted third paragraph section 11). However, cease violation License, license particular copyright holder reinstated () provisionally, unless copyright holder explicitly finally terminates license, (b) permanently, copyright holder fails notify violation reasonable means prior 60 days cessation. Moreover, license particular copyright holder reinstated permanently copyright holder notifies violation reasonable means, first time received notice violation License (work) copyright holder, cure violation prior 30 days receipt notice. Termination rights section terminate licenses parties received copies rights License. rights terminated permanently reinstated, qualify receive new licenses material section 10.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_9-acceptance-not-required-for-having-copies","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"9. Acceptance Not Required for Having Copies","title":"GNU General Public License","text":"required accept License order receive run copy Program. Ancillary propagation covered work occurring solely consequence using peer--peer transmission receive copy likewise require acceptance. However, nothing License grants permission propagate modify covered work. actions infringe copyright accept License. Therefore, modifying propagating covered work, indicate acceptance License .","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_10-automatic-licensing-of-downstream-recipients","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"10. Automatic Licensing of Downstream Recipients","title":"GNU General Public License","text":"time convey covered work, recipient automatically receives license original licensors, run, modify propagate work, subject License. responsible enforcing compliance third parties License. “entity transaction†transaction transferring control organization, substantially assets one, subdividing organization, merging organizations. propagation covered work results entity transaction, party transaction receives copy work also receives whatever licenses work party’s predecessor interest give previous paragraph, plus right possession Corresponding Source work predecessor interest, predecessor can get reasonable efforts. may impose restrictions exercise rights granted affirmed License. example, may impose license fee, royalty, charge exercise rights granted License, may initiate litigation (including cross-claim counterclaim lawsuit) alleging patent claim infringed making, using, selling, offering sale, importing Program portion .","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_11-patents","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"11. Patents","title":"GNU General Public License","text":"“contributor†copyright holder authorizes use License Program work Program based. work thus licensed called contributor’s “contributor versionâ€. contributor’s “essential patent claims†patent claims owned controlled contributor, whether already acquired hereafter acquired, infringed manner, permitted License, making, using, selling contributor version, include claims infringed consequence modification contributor version. purposes definition, “control†includes right grant patent sublicenses manner consistent requirements License. contributor grants non-exclusive, worldwide, royalty-free patent license contributor’s essential patent claims, make, use, sell, offer sale, import otherwise run, modify propagate contents contributor version. following three paragraphs, “patent license†express agreement commitment, however denominated, enforce patent (express permission practice patent covenant sue patent infringement). “grant†patent license party means make agreement commitment enforce patent party. convey covered work, knowingly relying patent license, Corresponding Source work available anyone copy, free charge terms License, publicly available network server readily accessible means, must either (1) cause Corresponding Source available, (2) arrange deprive benefit patent license particular work, (3) arrange, manner consistent requirements License, extend patent license downstream recipients. “Knowingly relying†means actual knowledge , patent license, conveying covered work country, recipient’s use covered work country, infringe one identifiable patents country reason believe valid. , pursuant connection single transaction arrangement, convey, propagate procuring conveyance , covered work, grant patent license parties receiving covered work authorizing use, propagate, modify convey specific copy covered work, patent license grant automatically extended recipients covered work works based . patent license “discriminatory†include within scope coverage, prohibits exercise , conditioned non-exercise one rights specifically granted License. may convey covered work party arrangement third party business distributing software, make payment third party based extent activity conveying work, third party grants, parties receive covered work , discriminatory patent license () connection copies covered work conveyed (copies made copies), (b) primarily connection specific products compilations contain covered work, unless entered arrangement, patent license granted, prior 28 March 2007. Nothing License shall construed excluding limiting implied license defenses infringement may otherwise available applicable patent law.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_12-no-surrender-of-others-freedom","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"12. No Surrender of Others’ Freedom","title":"GNU General Public License","text":"conditions imposed (whether court order, agreement otherwise) contradict conditions License, excuse conditions License. convey covered work satisfy simultaneously obligations License pertinent obligations, consequence may convey . example, agree terms obligate collect royalty conveying convey Program, way satisfy terms License refrain entirely conveying Program.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_13-use-with-the-gnu-affero-general-public-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"13. Use with the GNU Affero General Public License","title":"GNU General Public License","text":"Notwithstanding provision License, permission link combine covered work work licensed version 3 GNU Affero General Public License single combined work, convey resulting work. terms License continue apply part covered work, special requirements GNU Affero General Public License, section 13, concerning interaction network apply combination .","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_14-revised-versions-of-this-license","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"14. Revised Versions of this License","title":"GNU General Public License","text":"Free Software Foundation may publish revised /new versions GNU General Public License time time. new versions similar spirit present version, may differ detail address new problems concerns. version given distinguishing version number. Program specifies certain numbered version GNU General Public License “or later version†applies , option following terms conditions either numbered version later version published Free Software Foundation. Program specify version number GNU General Public License, may choose version ever published Free Software Foundation. Program specifies proxy can decide future versions GNU General Public License can used, proxy’s public statement acceptance version permanently authorizes choose version Program. Later license versions may give additional different permissions. However, additional obligations imposed author copyright holder result choosing follow later version.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_15-disclaimer-of-warranty","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"15. Disclaimer of Warranty","title":"GNU General Public License","text":"WARRANTY PROGRAM, EXTENT PERMITTED APPLICABLE LAW. EXCEPT OTHERWISE STATED WRITING COPYRIGHT HOLDERS /PARTIES PROVIDE PROGRAM “AS IS†WITHOUT WARRANTY KIND, EITHER EXPRESSED IMPLIED, INCLUDING, LIMITED , IMPLIED WARRANTIES MERCHANTABILITY FITNESS PARTICULAR PURPOSE. ENTIRE RISK QUALITY PERFORMANCE PROGRAM . PROGRAM PROVE DEFECTIVE, ASSUME COST NECESSARY SERVICING, REPAIR CORRECTION.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_16-limitation-of-liability","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"16. Limitation of Liability","title":"GNU General Public License","text":"EVENT UNLESS REQUIRED APPLICABLE LAW AGREED WRITING COPYRIGHT HOLDER, PARTY MODIFIES /CONVEYS PROGRAM PERMITTED , LIABLE DAMAGES, INCLUDING GENERAL, SPECIAL, INCIDENTAL CONSEQUENTIAL DAMAGES ARISING USE INABILITY USE PROGRAM (INCLUDING LIMITED LOSS DATA DATA RENDERED INACCURATE LOSSES SUSTAINED THIRD PARTIES FAILURE PROGRAM OPERATE PROGRAMS), EVEN HOLDER PARTY ADVISED POSSIBILITY DAMAGES.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"id_17-interpretation-of-sections-15-and-16","dir":"","previous_headings":"TERMS AND CONDITIONS","what":"17. Interpretation of Sections 15 and 16","title":"GNU General Public License","text":"disclaimer warranty limitation liability provided given local legal effect according terms, reviewing courts shall apply local law closely approximates absolute waiver civil liability connection Program, unless warranty assumption liability accompanies copy Program return fee. END TERMS CONDITIONS","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/LICENSE.html","id":"how-to-apply-these-terms-to-your-new-programs","dir":"","previous_headings":"","what":"How to Apply These Terms to Your New Programs","title":"GNU General Public License","text":"develop new program, want greatest possible use public, best way achieve make free software everyone can redistribute change terms. , attach following notices program. safest attach start source file effectively state exclusion warranty; file least “copyright†line pointer full notice found. Also add information contact electronic paper mail. program terminal interaction, make output short notice like starts interactive mode: hypothetical commands show w show c show appropriate parts General Public License. course, program’s commands might different; GUI interface, use “about boxâ€. also get employer (work programmer) school, , sign “copyright disclaimer†program, necessary. information , apply follow GNU GPL, see . GNU General Public License permit incorporating program proprietary programs. program subroutine library, may consider useful permit linking proprietary applications library. want , use GNU Lesser General Public License instead License. first, please read .","code":" Copyright (C) 2018 Vincent Guyader This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . attachment Copyright (C) 2018 Vincent Guyader This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free software, and you are welcome to redistribute it under certain conditions; type 'show c' for details."},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"load-package-attachment","dir":"Articles","previous_headings":"","what":"Load package {attachment}","title":"a-Help during package development","text":"","code":"library(attachment)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"use-devdev_history-r","dir":"Articles","previous_headings":"","what":"Use “dev/dev_history.R”","title":"a-Help during package development","text":"building package, create file called “dev_history.R” “dev/” directory. store “manual” calls devtools::xxx usethis::xxx script. first line : can call {attachment} file help build description file.","code":"usethis::use_build_ignore(\"dev\")"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"fill-your-description-file","dir":"Articles","previous_headings":"","what":"Fill your DESCRIPTION file","title":"a-Help during package development","text":"really want fill update description file along modifications documentation. Indeed, function really called “dev/dev_history.R”. Run attachment::att_amend_desc() time devtools::check(), save warnings errors !","code":"att_amend_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"change-default-parameters","dir":"Articles","previous_headings":"","what":"Change default parameters","title":"a-Help during package development","text":"recommend store {attachment} command “dev/dev_history.R” file package, can update parameters using default ones.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"use-the-configuration-file","dir":"Articles","previous_headings":"Change default parameters","what":"Use the configuration file","title":"a-Help during package development","text":"run att_amend_desc() directly console, use last set parameters run last time updated configuration file. Hence, can change command “dev/dev_history.R” update.config = TRUE, next time, can run attachment::att_amend_desc() directly console using updated parameters.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"ignore-some-of-the-dependencies-automatically-detected","dir":"Articles","previous_headings":"Change default parameters","what":"Ignore some of the dependencies automatically detected","title":"a-Help during package development","text":"","code":"att_amend_desc(pkg_ignore = c(\"fakepackage.to_ignore\", \"other.package\"), update.config = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"add-extra-suggests-dependencies","dir":"Articles","previous_headings":"Change default parameters","what":"Add extra Suggests dependencies","title":"a-Help during package development","text":"","code":"att_amend_desc(extra.suggests = c(\"suggested.package.not.detected\"), update.config = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"move-detected-dependencies-from-imports-to-suggests","dir":"Articles","previous_headings":"Change default parameters","what":"Move detected dependencies from Imports to Suggests","title":"a-Help during package development","text":"Next time, can run attachment::att_amend_desc() without parameters, use config file.","code":"att_amend_desc(pkg_ignore = c(\"package.to.move\"), extra.suggests = c(\"package.to.move\"), update.config = TRUE)"},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"i-have-a-rmarkdown-file-quarto-file-in-my-inst-directory","dir":"Articles","previous_headings":"A package was not detected by att_amend_desc","what":"I have a Rmarkdown file / Quarto file in my “inst/” directory","title":"a-Help during package development","text":"package, can wrapper around knitr::knit() specific template store “inst/”. case, {attachment} detect important dependencies used inside notebook file necessary package work properly. Indeed, can anticipate dependencies listed files “inst/” need “Imports”, “Suggests”, listed, depending use files. instance, notebook file “inst/my_template.Rmd” follows, {bookdown} used package: Suggests - want present template example , {bookdown} listed “Suggests”. can run : Imports - want knit inside major function package, recommended declare dependency ‘roxygen’ documentation function. can directly run att_amend_desc(). Imports case, reason decide delete my_knit() function, {bookdown} dependency won’t needed anymore, {attachment} automatically remove next att_amend_desc()","code":"--- title: \"My Super template\" author: \"John Doe\" date: \"2024-01-22\" output: bookdown::html_document2 --- # First title My text here. att_amend_desc(extra.suggests = c(\"bookdown\"), update.config = TRUE) #' Knit my internal template #' #' @importFrom bookdown html_document2 #' @export #' my_knit <- function() { rmarkdown::render(system.file(\"my_template.Rmd\", package = \"my.package\")) }"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"example-on-a-fake-package","dir":"Articles","previous_headings":"","what":"Example on a fake package","title":"a-Help during package development","text":"running inside Rmd like , may need parameter inside_rmd = TRUE.","code":"# Copy package in a temporary directory tmpdir <- tempfile(pattern = \"insidermd\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) att_amend_desc(path = dummypackage, inside_rmd = TRUE, update.config = TRUE) #> 'update.config' was set to TRUE, hence, 'use.config' was forced to FALSE #> Saving attachment parameters to yaml config file #> Loading required namespace: rstudioapi #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> #> [-] 1 package(s) removed: utils. #> #> [+] 2 package(s) added: stats, glue. # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"propose-content-for-remotes-field","dir":"Articles","previous_headings":"","what":"Propose content for “Remotes” field","title":"a-Help during package development","text":"set_remotes_to_desc() adds packages installed source CRAN Remotes: field DESCRIPTION. instance: GitHub: Remotes: thinkr-open/attachment GitLab: Remotes: gitlab::jimhester/covr Git: Remotes: git::https://theurl/package_git.git local package: Remotes: local::c:\\mylocalpackage Remotes: local::subdir/mylocalpackage Bioconductor: Remotes: bioc::3.3/package_bioc r-universe: Show message inform use r-universe options, like r-universe: need set options repos=\"https://thinkr-open.r-universe.dev\" may want run att_amend_desc(). want find packages installed source CRAN, without amending DESCRIPTION, can use find_remotes(). can use vector packages names may also want combine att_from_description() want get complete list packages installed computer non-CRAN repositories: can test install {fusen} GitHub r-universe:","code":"att_amend_desc(dummypackage) %>% set_remotes_to_desc() find_remotes(pkg = c(\"attachment\", \"desc\", \"glue\")) #> $attachment #> local maybe ? #> NA att_from_description() %>% find_remotes() find_remotes(list.dirs(.libPaths(), full.names = FALSE, recursive = FALSE)) # From GitHub remotes::install_github(\"ThinkR-open/fusen\", quiet = TRUE, upgrade = \"never\") attachment::find_remotes(\"fusen\") #> $fusen #> [1] \"ThinkR-open/fusen\" # From r-universe as default repos install.packages(\"fusen\", repos = \"https://thinkr-open.r-universe.dev\") attachment::find_remotes(\"fusen\") #> r-universe: need to set options to repos=\"https://thinkr-open.r-universe.dev\""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"create-a-file-for-package-installation","dir":"Articles","previous_headings":"","what":"Create a file for package installation","title":"a-Help during package development","text":"package finished. Well, package ever finished ? Let’s say, want release version package, may want deliver list dependencies users install. little script like install.packages(c(...dep...)) nice : file placed inst/dependencies.R contains :","code":"create_dependencies_file() # No Remotes ---- # remotes::install_github(\"ThinkR-open/fcuk\") # Attachments ---- to_install <- c(\"covr\", \"desc\", \"devtools\", \"glue\", \"knitr\", \"magrittr\", \"rmarkdown\", \"stats\", \"stringr\", \"testthat\", \"utils\") for (i in to_install) { message(paste(\"looking for \", i)) if (!requireNamespace(i)) { message(paste(\" installing\", i)) install.packages(i) } }"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/a-fill-pkg-description.html","id":"other-possibilities","dir":"Articles","previous_headings":"","what":"Other possibilities","title":"a-Help during package development","text":"course, can also use {attachment} package list package dependencies R scripts using att_from_rscripts() Rmd files using att_from_rmds().","code":"dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_rscripts(path = file.path(dummypackage, \"R\")) #> [1] \"stats\" att_from_rmds(path = file.path(dummypackage, \"vignettes\"), inside_rmd = TRUE) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"load-package-attachment","dir":"Articles","previous_headings":"","what":"Load package {attachment}","title":"Bookdown, quarto and other scripts dependencies","text":"","code":"library(attachment)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"use-devdev_history-r","dir":"Articles","previous_headings":"","what":"Use “dev/dev_history.R”","title":"Bookdown, quarto and other scripts dependencies","text":"building package, create file called “dev_history.R” “dev/” directory. store “manual” calls devtools::xxx usethis::xxx script. first line : can call {attachment} file help build description file.","code":"usethis::use_build_ignore(\"dev\")"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"use-attachment-with-bookdown-pagedown-quarto-dependencies","dir":"Articles","previous_headings":"","what":"Use {attachment} with {bookdown} / {pagedown} / {quarto} dependencies","title":"Bookdown, quarto and other scripts dependencies","text":"Dependencies Bookdown can automatically installed use “DESCRIPTION” file. Indeed, can use procedure create DESCRIPTION file local installation Continuous Integration GitLab Pages GitHub Actions. See instance, GitLab CI workflows {gitlabr}: https://github.com/ThinkR-open/gitlabr/tree/main/inst/gitlab-ci Create “DESCRIPTION” file Fill “DESCRIPTION” file using attachment::att_to_desc_from_is(). Note include directly CI (proposed {gitlabr} templates), may need set att_to_desc_from_is(must.exist = FALSE).Note att_from_rmds() also works “.qmd” documents. can use att_from_qmds() want, although now difference also parse “.Rmd” documents. Install dependencies DESCRIPTION file Build {bookdown} / {pagedown} / {quarto}","code":"usethis::use_description() # bookdown Imports are in Rmds imports <- c(\"bookdown\", attachment::att_from_rmds(\".\")) attachment::att_to_desc_from_is( path.d = \"DESCRIPTION\", imports = imports, suggests = NULL, must.exist = FALSE ) # install.packages(\"remotes\") remotes::install_deps()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"propose-content-for-remotes-field","dir":"Articles","previous_headings":"Use {attachment} with {bookdown} / {pagedown} / {quarto} dependencies","what":"Propose content for “Remotes” field","title":"Bookdown, quarto and other scripts dependencies","text":"interest using DESCRIPTION list bookdown dependencies use packages sources CRAN list ‘Remotes’ field. comes set_remotes_to_desc(), adds packages installed source CRAN Remotes: field DESCRIPTION. can run att_to_desc_from_is().","code":"attachment::att_to_desc_from_is( path.d = \"DESCRIPTION\", imports = imports, suggests = NULL, must.exist = FALSE ) %>% set_remotes_to_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-listed-in-namespace","dir":"Articles","previous_headings":"","what":"Get all packages listed in “namespace”","title":"Bookdown, quarto and other scripts dependencies","text":"can get list packages package att_from_namespace()","code":"att_from_namespace()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-added-using-pkgfunction-or-libraryrequire","dir":"Articles","previous_headings":"","what":"Get all packages added using pkg::function or library/require","title":"Bookdown, quarto and other scripts dependencies","text":"reads files directories R scripts (default R directory package)","code":"att_from_rscripts()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-called-in-your-rmd","dir":"Articles","previous_headings":"","what":"Get all packages called in your Rmd","title":"Bookdown, quarto and other scripts dependencies","text":"vignette, may want list extra libraries, listed “Depends” list. function applies Rmd file, course.","code":"att_from_rmds()"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/b-bookdown-and-scripts.html","id":"get-all-packages-called-in-your-rmd-and-show-them-in-this-same-rmd","dir":"Articles","previous_headings":"","what":"Get all packages called in your Rmd and show them in this same Rmd","title":"Bookdown, quarto and other scripts dependencies","text":"course, can also use {attachment} package list package dependencies R scripts using att_from_rscripts() Rmd files using att_from_rmds(). want run att_from_rmds() inside Rmd vignette, need set att_from_rmds(inside_rmd = TRUE)","code":"dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_rmds(path = file.path(dummypackage, \"vignettes\"), inside_rmd = TRUE) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/articles/create-dependencies-file.html","id":"write-instructions-to-install-all-dependencies-from-a-description-file","dir":"Articles","previous_headings":"","what":"Write instructions to install all dependencies from a “DESCRIPTION” file","title":"Create dependencies file","text":"create_dependencies_file() creates “inst/dependencies.R” file instructions install dependencies listed “DESCRIPTION”. accounts “Remotes” field write instructions accordingly. Use create_dependencies_file(= NULL) retrieve output list character save “inst/dependencies.R” file project. can used Readme.Rmd file instance, get full list dependency install , “DESCRIPTION” file.","code":"# Create a fake package tmpdir <- tempfile(pattern = \"depsfile\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Create the dependencies commands but no file create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = NULL, open_file = FALSE) #> $remotes_content #> [1] \"# No Remotes ----\" #> #> $attachment_content #> # Attachments ---- #> to_install <- c(\"magrittr\") #> for (i in to_install) { #> message(paste(\"looking for \", i)) #> if (!requireNamespace(i, quietly = TRUE)) { #> message(paste(\" installing\", i)) #> install.packages(i) #> } #> } # Create the dependencies files in the package create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = file.path(dummypackage, \"inst/dependencies.R\"), open_file = FALSE) list.files(file.path(dummypackage, \"inst\")) #> [1] \"dependencies.R\" # browseURL(dummypackage) # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/articles/use_renv.html","id":"create-reproducible-environments-for-your-r-projects-with-renv","dir":"Articles","previous_headings":"","what":"Create reproducible environments for your R projects with {renv}","title":"Use {renv} with developers tools","text":"Tool create maintain “renv.lock” files. idea 2 distinct files, one development deployment. Indeed, although package like {attachment}, {fusen} {pkgload} must installed develop, necessary project, package Shiny application. Hence, create update “renv.lock” file development project everything needed work conditions collaborators allow Continuous Integration work properly. currently includes: thus, run create_renv_for_dev() sending commit remote git server. Use _default (underscore), use default list. Later , want create R project can use package developed {renv}, run create_renv_for_prod(). Indeed, users need install packages listed “DESCRIPTION” file, packages versions used development.","code":"#> [1] \"renv\" \"fusen\" \"devtools\" \"roxygen2\" \"usethis\" #> [6] \"pkgload\" \"testthat\" \"remotes\" \"covr\" \"attachment\" #> [11] \"pak\" \"dockerfiler\" \"pkgdown\" create_renv_for_dev() # with all default above create_renv_for_dev(dev_pkg = \"attachment\") # with {attachment} only create_renv_for_dev(dev_pkg = c(\"_default\", \"DT\")) # for all default and {DT} create_renv_for_prod(output = \"renv.lock.prod\")"},{"path":"https://thinkr-open.github.io/attachment/dev/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Sébastien Rochette. Maintainer, author. Vincent Guyader. Author. previous maintainer Murielle Delmotte. Author. Swann Floc'hlay. Author. ThinkR. Copyright holder, funder.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Rochette S, Guyader V, Delmotte M, Floc'hlay S (2024). attachment: Deal Dependencies. R package version 0.4.1.9000, https://github.com/ThinkR-open/attachment, https://thinkr-open.github.io/attachment/.","code":"@Manual{, title = {attachment: Deal with Dependencies}, author = {Sébastien Rochette and Vincent Guyader and Murielle Delmotte and Swann Floc'hlay}, year = {2024}, note = {R package version 0.4.1.9000, https://github.com/ThinkR-open/attachment}, url = {https://thinkr-open.github.io/attachment/}, }"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"attachment-","dir":"","previous_headings":"","what":"Deal with Dependencies","title":"Deal with Dependencies","text":"goal attachment help deal package dependencies package development. also gives useful tools install list missing packages used inside Rscripts Rmds. building package, add @importFrom documentation pkg::fun R code. important forget add list dependencies “Imports” “Suggests” package lists DESCRIPTION file. repeat twice thing ? happens remove dependency one functions ? really want run “Find files” verify need package anymore ? Let {attachment} help ! reads NAMESPACE, functions R directory vignettes, update DESCRIPTION file accordingly. ready lazy ? See full documentation realized using {pkgdown} https://thinkr-open.github.io/attachment/","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"installation","dir":"","previous_headings":"","what":"Installation","title":"Deal with Dependencies","text":"CRAN version Development version","code":"install.packages(\"attachment\") install.packages('attachment', repos = c('https://thinkr-open.r-universe.dev', 'https://cloud.r-project.org'))"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"declare-all-dependencies-in-description-during-package-development","dir":"","previous_headings":"","what":"Declare all dependencies in DESCRIPTION during package development","title":"Deal with Dependencies","text":"really want fill update description file along modifications documentation. Indeed, following function really called. Use abuse development package ! {attachment} detects calls library(pkg), @importFrom pkg fun, pkg::fun() different classical directories R package, list correct “Imports” “Suggests” category DESCRIPTION file, according position package.","code":"attachment::att_amend_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"declare-extra-dependencies-for-extra-uses","dir":"","previous_headings":"Declare all dependencies in DESCRIPTION during package development","what":"Declare extra dependencies for extra uses","title":"Deal with Dependencies","text":"want add extra packages like {pkgdown} {covr} listed script package, call development packages : Note update.config = TRUE parameter save parameters used call att_amend_desc() package configuration file: “dev/config_attachment.yaml”. run att_amend_desc() second time afterwards, directly console, use last set parameters extracted configuration file. Indeed, recommend store complete command line “dev/dev_history.R” file update run needed. parameters change, can run attachment::att_amend_desc() directly console, wherever , use configuration file.","code":"attachment::att_amend_desc(extra.suggests = c(\"pkgdown\", \"covr\"), update.config = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"automatically-fill-the-remotes-field","dir":"","previous_headings":"Declare all dependencies in DESCRIPTION during package development","what":"Automatically fill the “Remotes” field","title":"Deal with Dependencies","text":"like detect sources installations can add dependencies “Remotes” field DESCRIPTION file, mimic local installation, use:","code":"attachment::set_remotes_to_desc()"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"example-on-a-fake-package","dir":"","previous_headings":"","what":"Example on a fake package","title":"Deal with Dependencies","text":"","code":"# Copy example package in a temporary directory tmpdir <- tempfile(pattern = \"fakepkg\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) # Fill the DESCRIPTION file automatically # `inside_rmd` is specifically designed here to allow to run this command line in the \"Readme.Rmd\" file desc_file <- attachment::att_amend_desc(path = dummypackage, inside_rmd = TRUE, update.config = TRUE) #> 'update.config' was set to TRUE, hence, 'use.config' was forced to FALSE #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> #> Setting `RoxygenNote` to \"7.2.2\" #> ℹ Loading dummypackage #> Writing ']8;;file:///tmp/Rtmp3Dpn4h/fakepkg3538450e5c49/dummypackage/NAMESPACENAMESPACE]8;;' #> Writing ']8;;file:///tmp/Rtmp3Dpn4h/fakepkg3538450e5c49/dummypackage/NAMESPACENAMESPACE]8;;' #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> #> [-] 1 package(s) removed: utils. #> #> [+] 2 package(s) added: stats, glue. # Add Remotes if you have some installed attachment::set_remotes_to_desc(path.d = desc_file) #> There are no remote packages installed on your computer to add to description #> NULL # Clean state unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"more-on-finding-remotes-repositories-non-installed-from-cran","dir":"","previous_headings":"","what":"More on finding Remotes repositories (non installed from CRAN)","title":"Deal with Dependencies","text":"Find packages installed CRAN. helps fill “Remotes” field DESCRIPTION file set_remotes_to_desc(). Behind scene, uses find_remotes(). Also works GitLab, Bioconductor, Git, Local installations","code":"# From GitHub remotes::install_github(\"ThinkR-open/fusen\", quiet = TRUE, upgrade = \"never\") attachment::find_remotes(\"fusen\") #> $fusen #> [1] \"ThinkR-open/fusen\""},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"find-and-install-missing-dependencies-required-for-your-r-scripts","dir":"","previous_headings":"","what":"Find and install missing dependencies required for your R scripts","title":"Deal with Dependencies","text":"quickly install missing packages DESCRIPTION file, use: quickly install missing packages needed compile Rmd files run R scripts, use: Function attachment::create_dependencies_file() create dependencies.R file inst/ directory. R script contains procedure quickly install missing dependencies:","code":"attachment::install_from_description() #> All required packages are installed attachment::att_from_rmds(path = \".\") |> attachment::install_if_missing() attachment::att_from_rscripts(path = \".\") |> attachment::install_if_missing() # Remotes ---- # remotes::install_github(\"ThinkR-open/fcuk\") # Attachments ---- to_install <- c(\"covr\", \"desc\", \"devtools\", \"glue\", \"knitr\", \"magrittr\", \"rmarkdown\", \"stats\", \"stringr\", \"testthat\", \"utils\") for (i in to_install) { message(paste(\"looking for \", i)) if (!requireNamespace(i)) { message(paste(\" installing\", i)) install.packages(i) } }"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"allow-the-ci-to-install-all-dependencies-required-for-your-bookdown-pagedown-quarto-","dir":"","previous_headings":"","what":"Allow the CI to install all dependencies required for your bookdown, pagedown, quarto, …","title":"Deal with Dependencies","text":"write {bookdown} want publish Github using GitHub Actions GitLab CI instance, need DESCRIPTION file list dependencies just like package. case, can use function description import/suggest: att_to_desc_from_is(). , install dependencies ","code":"usethis::use_description() # bookdown Imports are in Rmds imports <- c(\"bookdown\", attachment::att_from_rmds(\".\")) attachment::att_to_desc_from_is(path.d = \"DESCRIPTION\", imports = imports, suggests = NULL) remotes::install_deps()"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"list-packages-required-in-any-script-or-notebook","dir":"","previous_headings":"","what":"List packages required in any script or notebook","title":"Deal with Dependencies","text":"course, can also use {attachment} package list package dependencies R scripts using att_from_rscripts() Rmd/qmd files using att_from_rmds(). running inside Rmd, may need parameter inside_rmd = TRUE.","code":"library(attachment) dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_rscripts(path = dummypackage) #> [1] \"stats\" \"testthat\" \"dummypackage\" att_from_rmds(path = file.path(dummypackage, \"vignettes\"), inside_rmd = TRUE) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"vignettes-included","dir":"","previous_headings":"","what":"Vignettes included","title":"Deal with Dependencies","text":"Package {attachment} vignettes present different functions available. also recommendation dev_history.R root directory package. (look dev_history.R present package) vignettes available {pkgdown} page, “Articles” menu: https://thinkr-open.github.io/attachment/","code":"vignette(\"a-fill-pkg-description\", package = \"attachment\") vignette(\"b-bookdown-and-scripts\", package = \"attachment\") vignette(\"use_renv\", package = \"attachment\") vignette(\"create-dependencies-file\", package = \"attachment\")"},{"path":"https://thinkr-open.github.io/attachment/dev/index.html","id":"code-of-conduct","dir":"","previous_headings":"","what":"Code of Conduct","title":"Deal with Dependencies","text":"Please note attachment project released Contributor Code Conduct. contributing project, agree abide terms","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":null,"dir":"Reference","previous_headings":"","what":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"Amend package DESCRIPTION file list dependencies extracted R, tests, vignettes files. att_to_desc_from_pkg() alias att_amend_desc(), correspondence att_to_desc_from_is().","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"","code":"att_amend_desc( path = \".\", path.n = \"NAMESPACE\", path.d = \"DESCRIPTION\", dir.r = \"R\", dir.v = \"vignettes\", dir.t = \"tests\", extra.suggests = NULL, pkg_ignore = NULL, document = TRUE, normalize = TRUE, inside_rmd = FALSE, must.exist = TRUE, check_if_suggests_is_installed = TRUE, update.config = FALSE, use.config = TRUE, path.c = \"dev/config_attachment.yaml\" ) att_to_desc_from_pkg( path = \".\", path.n = \"NAMESPACE\", path.d = \"DESCRIPTION\", dir.r = \"R\", dir.v = \"vignettes\", dir.t = \"tests\", extra.suggests = NULL, pkg_ignore = NULL, document = TRUE, normalize = TRUE, inside_rmd = FALSE, must.exist = TRUE, check_if_suggests_is_installed = TRUE, update.config = FALSE, use.config = TRUE, path.c = \"dev/config_attachment.yaml\" )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"path path root package directory. Default current directory. path.n path namespace file. path.d path description file. dir.r path directory R scripts. dir.v path vignettes directory. Set empty (dir.v = \"\") ignore. dir.t path tests directory. Set empty (dir.t = \"\") ignore. extra.suggests vector packages added Suggests (pkgdown, covr instance) pkg_ignore vector packages names ignore. document Run function roxygenise roxygen2 package normalize Logical. Whether normalize DESCRIPTION file. See desc::desc_normalize() inside_rmd Logical. Whether function run inside Rmd, case must executed external R session must.exist Logical. TRUE error given packages exist within installed packages. NA, warning. check_if_suggests_is_installed Logical. Whether require packages Suggests section installed. update.config logical. parameters used call saved config file package use.config logical. command use parameters config file run path.c character Path yaml config file parameters saved","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"Update DESCRIPTION file.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"daily use run att_amend_desc(), . want run function sometimes extra information like att_amend_desc(pkg_ignore = \"x\", update.config = TRUE) update configuration file. Next time att_amend_desc() use parameters configuration file directly.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_amend_desc.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Amend DESCRIPTION with dependencies read from package code parsing — att_amend_desc","text":"","code":"# Run on an external \"dummypackage\" as an example # For your local use, you do not have to specify the `path` as below # By default, `att_amend_desc()` will run on the current working directory # Create a fake package for the example tmpdir <- tempfile(pattern = \"description\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Update documentation and dependencies att_amend_desc(path = dummypackage) #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 1 package(s) removed: utils. #> [+] 2 package(s) added: stats, glue. # You can look at the content of this external package #' # browseURL(dummypackage) # Update the config file with extra parameters # We recommend that you store this code in a file in your \"dev/\" directory # to run it when needed att_amend_desc(path = dummypackage, extra.suggests = \"testthat\", update.config = TRUE) #> 'update.config' was set to TRUE, hence, 'use.config' was forced to FALSE #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. # Next time, in your daily development att_amend_desc(path = dummypackage) #> Documentation parameters were restored from attachment config file. #> Updating dummypackage documentation #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. # Clean after examples unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":null,"dir":"Reference","previous_headings":"","what":"Return all package dependencies from current package — att_from_description","title":"Return all package dependencies from current package — att_from_description","text":"Return package dependencies current package","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Return all package dependencies from current package — att_from_description","text":"","code":"att_from_description( path = \"DESCRIPTION\", dput = FALSE, field = c(\"Depends\", \"Imports\", \"Suggests\") )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Return all package dependencies from current package — att_from_description","text":"path path DESCRIPTION file dput FALSE return vector instead dput output field DESCRIPTION field parse, Import, Suggests Depends default","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Return all package dependencies from current package — att_from_description","text":"character vector packages names","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_description.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Return all package dependencies from current package — att_from_description","text":"","code":"dummypackage <- system.file(\"dummypackage\", package = \"attachment\") # browseURL(dummypackage) att_from_description(path = file.path(dummypackage, \"DESCRIPTION\")) #> [1] \"knitr\" \"magrittr\" \"rmarkdown\" \"testthat\" \"utils\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":null,"dir":"Reference","previous_headings":"","what":"return package dependencies from NAMESPACE file — att_from_namespace","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"return package dependencies NAMESPACE file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"","code":"att_from_namespace(path = \"NAMESPACE\", document = TRUE, clean = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"path path NAMESPACE file document Run function roxygenise roxygen2 package clean Logical. Whether remove original NAMESPACE updating","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"vector","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_namespace.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"return package dependencies from NAMESPACE file — att_from_namespace","text":"","code":"tmpdir <- tempfile(pattern = \"namespace\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) att_from_namespace(path = file.path(dummypackage, \"NAMESPACE\")) #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> [1] \"magrittr\" # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all dependencies from a Rmd file — att_from_rmd","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"Get dependencies Rmd file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"","code":"att_from_rmd( path, temp_dir = tempdir(), warn = -1, encoding = getOption(\"encoding\"), inside_rmd = FALSE, inline = TRUE ) att_from_qmd( path, temp_dir = tempdir(), warn = -1, encoding = getOption(\"encoding\"), inside_rmd = FALSE, inline = TRUE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"path Path Rmd file temp_dir Path temporary script purl vignette warn -1 quiet warnings purl, 0 see warnings encoding Encoding input file; always assumed UTF-8 (.e., argument effectively ignored). inside_rmd Logical. Whether function run inside Rmd, case must executed external R session inline Logical. Default TRUE. Whether explore inline code dependencies.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"vector character packages names found Rmd","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmd.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all dependencies from a Rmd file — att_from_rmd","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rmd(path = file.path(dummypackage,\"vignettes/demo.Rmd\")) #> [1] \"glue\" \"knitr\" \"rmarkdown\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":null,"dir":"Reference","previous_headings":"","what":"Get all packages called in vignettes folder — att_from_rmds","title":"Get all packages called in vignettes folder — att_from_rmds","text":"Get packages called vignettes folder","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get all packages called in vignettes folder — att_from_rmds","text":"","code":"att_from_rmds( path = \"vignettes\", pattern = \"*.[.](Rmd|rmd|qmd)$\", recursive = TRUE, warn = -1, inside_rmd = FALSE, inline = TRUE ) att_from_qmds( path = \"vignettes\", pattern = \"*.[.](Rmd|rmd|qmd)$\", recursive = TRUE, warn = -1, inside_rmd = FALSE, inline = TRUE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get all packages called in vignettes folder — att_from_rmds","text":"path path directory Rmds vector Rmd files pattern pattern detect Rmd files recursive logical. listing recurse directories? warn -1 quiet warnings purl, 0 see warnings inside_rmd Logical. Whether function run inside Rmd, case must executed external R session inline Logical. Default TRUE. Whether explore inline code dependencies.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get all packages called in vignettes folder — att_from_rmds","text":"Character vector packages called library require. knitr rmarkdown added default allow building vignettes directory contains \"vignettes\" path","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rmds.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get all packages called in vignettes folder — att_from_rmds","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rmds(path = file.path(dummypackage,\"vignettes\")) #> [1] \"knitr\" \"rmarkdown\" \"glue\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":null,"dir":"Reference","previous_headings":"","what":"Look for functions called with :: and library/requires in one script — att_from_rscript","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"Look functions called :: library/requires one script","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"","code":"att_from_rscript(path)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"path path R script file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"vector","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"Calls pkg::fun roxygen skeleton comments ignored","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscript.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Look for functions called with :: and library/requires in one script — att_from_rscript","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rscript(path = file.path(dummypackage,\"R\",\"my_mean.R\")) #> [1] \"stats\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":null,"dir":"Reference","previous_headings":"","what":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"Look functions called :: library/requires folder scripts","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"","code":"att_from_rscripts(path = \"R\", pattern = \"*.[.](r|R)$\", recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"path directory R scripts inside vector R scripts pattern pattern detect R script files recursive logical. listing recurse directories?","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"vector character packages names found R script","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_from_rscripts.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Look for functions called with :: and library/requires in folder of scripts — att_from_rscripts","text":"","code":"dummypackage <- system.file(\"dummypackage\",package = \"attachment\") # browseURL(dummypackage) att_from_rscripts(path = file.path(dummypackage, \"R\")) #> [1] \"stats\" att_from_rscripts(path = list.files(file.path(dummypackage, \"R\"), full.names = TRUE)) #> [1] \"stats\""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":null,"dir":"Reference","previous_headings":"","what":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"Amend DESCRIPTION dependencies imports suggests package list","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"","code":"att_to_desc_from_is( path.d = \"DESCRIPTION\", imports = NULL, suggests = NULL, check_if_suggests_is_installed = TRUE, normalize = TRUE, must.exist = TRUE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"path.d path description file. imports character vector package names add Imports section suggests character vector package names add Suggests section check_if_suggests_is_installed Logical. Whether require packages Suggests section installed. normalize Logical. Whether normalize DESCRIPTION file. See desc::desc_normalize() must.exist Logical. TRUE error given packages exist within installed packages. NA, warning.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"Fill Description file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"must.exist better set TRUE package development. stops process package exists system. avoids check errors typos package names DESCRIPTION. used CI discover dependencies, bookdown instance, may want set FALSE (message ) NA (warning installed).","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/att_to_desc_from_is.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Amend DESCRIPTION with dependencies from imports and suggests package list — att_to_desc_from_is","text":"","code":"tmpdir <- tempfile(pattern = \"descfromis\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # browseURL(dummypackage) att_to_desc_from_is(path.d = file.path(dummypackage, \"DESCRIPTION\"), imports = c(\"magrittr\", \"attachment\"), suggests = c(\"knitr\")) #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 3 package(s) removed: utils, rmarkdown, testthat. #> [+] 1 package(s) added: attachment. # In combination with other functions att_to_desc_from_is(path.d = file.path(dummypackage, \"DESCRIPTION\"), imports = att_from_rscripts(file.path(dummypackage, \"R\")), suggests = att_from_rmds(file.path(dummypackage, \"vignettes\"))) #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 2 package(s) removed: attachment, magrittr. #> [+] 3 package(s) added: stats, glue, rmarkdown. # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":null,"dir":"Reference","previous_headings":"","what":"Deprecated functions — attachment-deprecated","title":"Deprecated functions — attachment-deprecated","text":"List functions deprecated. removed future release.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Deprecated functions — attachment-deprecated","text":"","code":"att_to_description( path = \".\", path.n = \"NAMESPACE\", path.d = \"DESCRIPTION\", dir.r = \"R\", dir.v = \"vignettes\", dir.t = \"tests\", extra.suggests = NULL, pkg_ignore = NULL, document = TRUE, normalize = TRUE, inside_rmd = FALSE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Deprecated functions — attachment-deprecated","text":"path path root package directory. Default current directory. path.n path namespace file. path.d path description file. dir.r path directory R scripts. dir.v path vignettes directory. Set empty (dir.v = \"\") ignore. dir.t path tests directory. Set empty (dir.t = \"\") ignore. extra.suggests vector packages added Suggests (pkgdown, covr instance) pkg_ignore vector packages names ignore. document Run function roxygenise roxygen2 package normalize Logical. Whether normalize DESCRIPTION file. See desc::desc_normalize() inside_rmd Logical. Whether function run inside Rmd, case must executed external R session","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-deprecated.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Deprecated functions — attachment-deprecated","text":"List functions used deprecation side effects. Output depends deprecated function.","code":""},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-package.html","id":null,"dir":"Reference","previous_headings":"","what":"attachment: Deal with Dependencies — attachment-package","title":"attachment: Deal with Dependencies — attachment-package","text":"Manage dependencies package development. can retrieve dependencies used \".R\" files \"R/\" directory, \".Rmd\" files \"vignettes/\" directory 'roxygen2' documentation functions. function update \"DESCRIPTION\" file package 'CRAN' packages remote package. functions retrieve dependencies \".R\" scripts \".Rmd\" \".qmd\" files can used independently package development.","code":""},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/reference/attachment-package.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"attachment: Deal with Dependencies — attachment-package","text":"Maintainer: Murielle Delmotte murielle@thinkr.fr (ORCID) Authors: Sébastien Rochette sebastien@thinkr.fr (ORCID) Vincent Guyader vincent@thinkr.fr (ORCID) (previous maintainer) Swann Floc'hlay swann@thinkr.fr (ORCID) contributors: ThinkR [copyright holder, funder]","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":null,"dir":"Reference","previous_headings":"","what":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"Outputs list instructions \"dependencies.R\" file instructions \"inst/\" directory","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"","code":"create_dependencies_file( path = \"DESCRIPTION\", field = c(\"Depends\", \"Imports\"), to = \"inst/dependencies.R\", open_file = TRUE, ignore_base = TRUE, install_only_if_missing = FALSE )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"path path DESCRIPTION file field DESCRIPTION field parse, \"Import\" \"Depends\" default. Can add \"Suggests\" path save dependencies file. Set \"inst/dependencies.R\" default. Set NULL want file, instructions list character. open_file Logical. Open file created editor ignore_base Logical. Whether ignore package coming base, installed (default TRUE) install_only_if_missing Logical Modify installation instructions check, beforehand, packages missing . (default FALSE)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"List R instructions install dependencies DESCRIPTION file. Side effect: creates R file containing instructions.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_dependencies_file.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create the list of instructions to install dependencies from a DESCRIPTION file — create_dependencies_file","text":"","code":"# Create a fake package tmpdir <- tempfile(pattern = \"depsfile\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\",package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Create the dependencies commands but no file create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = NULL, open_file = FALSE) #> $remotes_content #> [1] \"# No Remotes ----\" #> #> $attachment_content #> # Attachments ---- #> to_install <- c(\"magrittr\") #> for (i in to_install) { #> message(paste(\"looking for \", i)) #> if (!requireNamespace(i, quietly = TRUE)) { #> message(paste(\" installing\", i)) #> install.packages(i) #> } #> } #> #> # Create the dependencies files in the package create_dependencies_file( path = file.path(dummypackage,\"DESCRIPTION\"), to = file.path(dummypackage, \"inst/dependencies.R\"), open_file = FALSE) list.files(file.path(dummypackage, \"inst\")) #> [1] \"dependencies.R\" # browseURL(dummypackage) # Clean temp files after this example unlink(tmpdir, recursive = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":null,"dir":"Reference","previous_headings":"","what":"Create reproducible environments for your R projects with renv — create_renv_for_dev","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"Tool create maintain renv.lock files. idea 2 distinct files, one development deployment. Indeed, although packages like attachment pkgload must installed develop, necessary project, package Shiny application.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"","code":"create_renv_for_dev( path = \".\", dev_pkg = \"_default\", folder_to_include = c(\"dev\", \"data-raw\"), output = \"renv.lock\", install_if_missing = TRUE, document = TRUE, pkg_ignore = NULL, check_if_suggests_is_installed = TRUE, ... ) create_renv_for_prod( path = \".\", output = \"renv.lock.prod\", dev_pkg = \"remotes\", check_if_suggests_is_installed = FALSE, ... )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"path Path current package source folder dev_pkg Vector packages need development. Use _default (underscore avoid confusing package name), use default list. Use NULL extra package. Use attachment:::extra_dev_pkg list. folder_to_include Folder scan detect development packages output Path name file created, default ./renv.lock install_if_missing Logical. Install missing packages. TRUE default document Logical. Whether run att_amend_desc() detecting packages DESCRIPTION. pkg_ignore Vector packages ignore discovered files. prevent \"renv.lock\" recursive dependencies. check_if_suggests_is_installed Logical. Whether require packages Suggests section installed. ... arguments pass renv::snapshot()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"renv.lock file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/create_renv_for_dev.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Create reproducible environments for your R projects with renv — create_renv_for_dev","text":"","code":"if (FALSE) { # Writes a renv.lock a file in the user directory create_renv_for_dev() create_renv_for_dev(dev_pkg = \"attachment\") create_renv_for_prod() }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":null,"dir":"Reference","previous_headings":"","what":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"Proposes values Remotes field DESCRIPTION file based installation","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"","code":"find_remotes(pkg)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"pkg Character. Packages test potential non-CRAN installation","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"List non-CRAN packages code add Remotes field DESCRIPTION. NULL otherwise.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/find_remotes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Proposes values for Remotes field for DESCRIPTION file based on your installation — find_remotes","text":"","code":"# Find from vector of packages find_remotes(pkg = c(\"attachment\", \"desc\", \"glue\")) #> $attachment #> local maybe ? #> NA #> # Find from Description file dummypackage <- system.file(\"dummypackage\", package = \"attachment\") att_from_description( path = file.path(dummypackage, \"DESCRIPTION\")) %>% find_remotes() #> NULL if (FALSE) { # For the current package directory att_from_description() %>% find_remotes() } # \\donttest{ # For a specific package name find_remotes(\"attachment\") #> $attachment #> local maybe ? #> NA #> # Find remotes from all installed packages find_remotes(list.dirs(.libPaths(), full.names = FALSE, recursive = FALSE)) #> Warning: DESCRIPTION file of package '_cache' is missing or broken #> _cache does not seem to be a package. It is removed from exploration. #> $attachment #> local maybe ? #> NA #> #> $pak #> local maybe ? #> NA #> #> $thinkrtemplate #> [1] \"ThinkR-open/thinkrtemplate\" #> #> $translations #> local maybe ? #> NA #> # }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":null,"dir":"Reference","previous_headings":"","what":"Install missing package from DESCRIPTION — install_from_description","title":"Install missing package from DESCRIPTION — install_from_description","text":"Install missing package DESCRIPTION","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Install missing package from DESCRIPTION — install_from_description","text":"","code":"install_from_description( path = \"DESCRIPTION\", field = c(\"Depends\", \"Imports\", \"Suggests\"), ... )"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Install missing package from DESCRIPTION — install_from_description","text":"path path DESCRIPTION file field DESCRIPTION fields parse, \"Depends\", \"Imports\", \"Suggests\" default ... Arguments passed utils::install.packages()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Install missing package from DESCRIPTION — install_from_description","text":"Used side effect. Installs R packages DESCRIPTION file missing.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_from_description.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Install missing package from DESCRIPTION — install_from_description","text":"","code":"if (FALSE) { # This will install packages on your system dummypackage <- system.file(\"dummypackage\", package = \"attachment\") # browseURL(dummypackage) install_from_description(path = file.path(dummypackage, \"DESCRIPTION\")) }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":null,"dir":"Reference","previous_headings":"","what":"install packages if missing — install_if_missing","title":"install packages if missing — install_if_missing","text":"install packages missing","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"install packages if missing — install_if_missing","text":"","code":"install_if_missing(to_be_installed, ...)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"install packages if missing — install_if_missing","text":"to_be_installed character vector containing required packages names ... Arguments passed utils::install.packages()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"install packages if missing — install_if_missing","text":"Used side effect. Install missing packages character vector input.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/install_if_missing.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"install packages if missing — install_if_missing","text":"","code":"if (FALSE) { # This will install packages on your system install_if_missing(c(\"dplyr\", \"fcuk\", \"rusk\")) }"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":null,"dir":"Reference","previous_headings":"","what":"Pipe operator — %>%","title":"Pipe operator — %>%","text":"See magrittr::[\\%>\\%][magrittr::pipe] details.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Pipe operator — %>%","text":"","code":"lhs %>% rhs"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Pipe operator — %>%","text":"lhs value magrittr placeholder. rhs function call using magrittr semantics.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/pipe.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Pipe operator — %>%","text":"result calling rhs(lhs).","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"Add Remotes field DESCRIPTION based local installation","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"","code":"set_remotes_to_desc(path.d = \"DESCRIPTION\", stop.local = FALSE, clean = TRUE)"},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"path.d path description file. stop.local Logical. Whether stop package installed local source. Message otherwise. clean Logical. Whether clean existing remotes run.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"Used side effect. Adds Remotes field DESCRIPTION file.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/reference/set_remotes_to_desc.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Remotes field to DESCRIPTION based on your local installation — set_remotes_to_desc","text":"","code":"tmpdir <- tempfile(pattern = \"setremotes\") dir.create(tmpdir) file.copy(system.file(\"dummypackage\", package = \"attachment\"), tmpdir, recursive = TRUE) #> [1] TRUE dummypackage <- file.path(tmpdir, \"dummypackage\") # Add remotes field if there are Remotes locally att_amend_desc(dummypackage) %>% set_remotes_to_desc() #> Saving attachment parameters to yaml config file #> Updating dummypackage documentation #> ──────────────────────────────────────────────────────────────────────────────── #> Changes in roxygen2 7.0.0: #> * `%` is now escaped automatically in Markdown mode. #> Please carefully check .Rd files for changes #> ──────────────────────────────────────────────────────────────────────────────── #> Setting `RoxygenNote` to \"7.3.0\" #> Writing NAMESPACE #> ℹ Loading dummypackage #> Writing NAMESPACE #> ℹ Loading dummypackage #> Package(s) Rcpp is(are) in category 'LinkingTo'. Check your Description file to be sure it is really what you want. #> [-] 1 package(s) removed: utils. #> [+] 2 package(s) added: stats, glue. #> There are no remote packages installed on your computer to add to description #> NULL # Clean temp files after this example unlink(tmpdir, recursive = TRUE) if (FALSE) { # For your current package att_amend_desc() %>% set_remotes_to_desc() }"},{"path":[]},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-041","dir":"Changelog","previous_headings":"","what":"attachment 0.4.1","title":"attachment 0.4.1","text":"CRAN release: 2024-01-22","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-4-1","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.4.1","text":"Modification unit tests following {roxygen2} changes. att_amend_desc att_from_namespace return messages instead warnings. (@MurielleDelmotte)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-040","dir":"Changelog","previous_headings":"","what":"attachment 0.4.0","title":"attachment 0.4.0","text":"CRAN release: 2023-05-31","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"breaking-changes-0-4-0","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"attachment 0.4.0","text":"using att_amend_desc() without default parameters, like pkg_ignore = \"x\" now require att_amend_desc(pkg_ignore = \"x\", update.config = TRUE), otherwise, fail. allows use parameters stored config file running att_amend_desc() directly console. Recommendation: Run att_amend_desc(pkg_ignore = \"x\", update.config = TRUE) update config, run att_amend_desc() daily ’ll want use stored config file. create_dependencies_file() gets parameter install_only_if_missing = FALSE default complete installation instructions packages missing. (@MurielleDelmotte)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"new-features-0-4-0","dir":"Changelog","previous_headings":"","what":"New features","title":"attachment 0.4.0","text":"att_amend_desc() can run last set parameters stored configuration file, without call time. See vignettes documentation parameters update.config = FALSE, use.config = FALSE path.c = \"dev/config_attachment.yaml\". (@dagousket) create_dependencies_file() now takes sources account (git, gitlab, github, bioc, local). (@MurielleDelmotte) Use create_dependencies_file(= NULL) get output character create file","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-4-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.4.0","text":"att_amend_desc() modify user options(\"warn\") level anymore (#94) att_amend_desc() allows “Remotes” field contain @ref (#67)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-031","dir":"Changelog","previous_headings":"","what":"attachment 0.3.1","title":"attachment 0.3.1","text":"CRAN release: 2023-01-27","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"new-features-0-3-1","dir":"Changelog","previous_headings":"","what":"New features","title":"attachment 0.3.1","text":"find_remotes() now informs using “r-universe” repositories.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-3-1","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.3.1","text":"new parameters check_if_suggests_is_installed att_amend_desc() allow check suggested package installed. (thanks @yogat3ch) create_renv_for_prod() don’t look anymore suggested packages Clean maximum temp directories examples unit tests","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-030","dir":"Changelog","previous_headings":"","what":"attachment 0.3.0","title":"attachment 0.3.0","text":"CRAN release: 2022-09-19","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"new-features-0-3-0","dir":"Changelog","previous_headings":"","what":"New features","title":"attachment 0.3.0","text":"find_remotes() set_remotes_to_desc() now detects github, gitlab, git, bitbucket, local installations add “Remotes:” part DESCRIPTION file (@MurielleDelmotte) Quarto documents can parsed att_from_qmds() alias att_from_rmds().","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-3-0","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.3.0","text":"Documentation bookdown quarto dependencies extraction updated","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-3-0","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.3.0","text":"Allow use dependencies att_amend_desc() #52 Fix HTML5 issues update {roxygen2}","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-025","dir":"Changelog","previous_headings":"","what":"attachment 0.2.5","title":"attachment 0.2.5","text":"CRAN release: 2022-05-15","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"major-changes-0-2-5","dir":"Changelog","previous_headings":"","what":"Major changes","title":"attachment 0.2.5","text":"add create_renv_for_dev() create_renv_for_prod() function create renv.lock file based development project (@VincentGuyader @statnmap). Quarto documents can parsed att_from_rmds(). Documentation bookdown quarto dependencies extraction updated","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-2-5","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.2.5","text":"att_amend_desc() now saves file processing Newline escape code \\n interfere package discovery","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-024","dir":"Changelog","previous_headings":"","what":"attachment 0.2.4","title":"attachment 0.2.4","text":"CRAN release: 2021-11-16","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"breaking-changes-0-2-4","dir":"Changelog","previous_headings":"","what":"Breaking changes","title":"attachment 0.2.4","text":"(broken 0.2.3) - att_to_desc_from_is() can now run must.exist = FALSE used fill DESCRIPTION file bookdown CI process. CI YAML files must updated parameter.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"major-changes-0-2-4","dir":"Changelog","previous_headings":"","what":"Major changes","title":"attachment 0.2.4","text":"Split vignette two: package development dependencies management","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-2-4","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.2.4","text":"Allow clean remotes list updating set_remotes_to_desc(clean = TRUE)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-023","dir":"Changelog","previous_headings":"","what":"attachment 0.2.3","title":"attachment 0.2.3","text":"CRAN release: 2021-11-10","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"major-changes-0-2-3","dir":"Changelog","previous_headings":"","what":"Major changes","title":"attachment 0.2.3","text":"Allow add Remotes field DESCRIPTION set_remotes_to_desc()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"minor-changes-0-2-3","dir":"Changelog","previous_headings":"","what":"Minor changes","title":"attachment 0.2.3","text":"Check packages names misspelled filling DESCRIPTION. Allow vector R files att_from_rscripts() Move default git branch master main","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"bug-fixes-0-2-3","dir":"Changelog","previous_headings":"","what":"Bug fixes","title":"attachment 0.2.3","text":"Add NAMESPACE missing att_amend_desc(document = TRUE) Add DESCRIPTION empty skeleton missing att_amend_desc() Default remove NAMESPACE updating get rid corrupted ones att_from_namespace() Fix detection multiple render outputs Rmd YAML att_from_rmd()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-021","dir":"Changelog","previous_headings":"","what":"attachment 0.2.1","title":"attachment 0.2.1","text":"CRAN release: 2021-01-21 Check older pandoc version tests","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-020","dir":"Changelog","previous_headings":"","what":"attachment 0.2.0","title":"attachment 0.2.0","text":"CRAN release: 2021-01-19 Breaking changes * att_to_description() deprecated favor att_amend_desc() first autocompletion list, used function package. * att_from_rmd() gets parameter inline = TRUE default explore calls packages inline R code. * att_from_rmd() att_from_rmds() anymore executed separate R session default. must set inside_rmd = TRUE . Minor * Add find_remotes() help fill Remotes field DESCRIPTION * att_to_desc_from_is() add parameter normalize avoid problem {desc}. (See https://github.com/r-lib/desc/issues/80)","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-010","dir":"Changelog","previous_headings":"","what":"attachment 0.1.0","title":"attachment 0.1.0","text":"CRAN release: 2020-03-15 att_amend_desc() alias att_to_description() att_desc_from_is() amends DESCRIPTION file imports/suggests vector packages att_to_desc_from_pkg() alias att_to_description() Removed dependency {devtools}, replace {roxygen} att_to_description() shows packages added/removed DESCRIPTION att_to_description() deals dependencies tests/ directory att_from_rmds() allows user defined regex detect Rmd files","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-009","dir":"Changelog","previous_headings":"","what":"attachment 0.0.9","title":"attachment 0.0.9","text":"CRAN release: 2019-05-05 att_from_rmd adds temporary encoding parameter knitr::purl deal UTF-8 future. Parameter added att_from_rmds. att_to_description {covr} needed, added parameter extra.suggests att_to_description parameter ‘dir.t’ extract suggests dependencies test directory Available default","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-008","dir":"Changelog","previous_headings":"","what":"attachment 0.0.8","title":"attachment 0.0.8","text":"att_to_description allows ‘LinkingTo’ field DESCRIPTION message att_from_rmd now reads yaml header att_from_rmd use purl extract R code R session using system(\"Rscript -e ''\") att_from_rmd: add warn option allow hide messages purl()","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-007","dir":"Changelog","previous_headings":"","what":"attachment 0.0.7","title":"attachment 0.0.7","text":"att_to_description accept parameter path package current project att_to_description error NAMESPACE empty create_dependencies_file filters base packages installed","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-006","dir":"Changelog","previous_headings":"","what":"attachment 0.0.6","title":"attachment 0.0.6","text":"Prepare examples CRAN","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-005","dir":"Changelog","previous_headings":"","what":"attachment 0.0.5","title":"attachment 0.0.5","text":"att_to_description deals Remote dependencies att_to_description deals Depends dependencies att_to_description keeps versions packages previously added att_to_description removes option automatic pkg version create_dependencies_file deals github Remotes att_from_rmds now accept vector Rmd filenames","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-004","dir":"Changelog","previous_headings":"","what":"attachment 0.0.4","title":"attachment 0.0.4","text":"Add examples functions","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-003","dir":"Changelog","previous_headings":"","what":"attachment 0.0.3","title":"attachment 0.0.3","text":"att_to_description(add_version = TRUE) adds version package DESCRIPTION att_to_description(pkg_ignore) adds possibility ignore packages","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-003-1","dir":"Changelog","previous_headings":"","what":"attachment 0.0.3","title":"attachment 0.0.3","text":"Get ready CRAN Add tests.","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-002","dir":"Changelog","previous_headings":"","what":"attachment 0.0.2","title":"attachment 0.0.2","text":"New function install_from_description install missing packages listed description file Add hex @statnmap ! Allow absence vignette folder att_to_description Add create_dependencies_file create file listing packages dependencies install package Allow pkg::fun calls R scripts att_from_functions Add option run devtools::document() att_from_description","code":""},{"path":"https://thinkr-open.github.io/attachment/dev/news/index.html","id":"attachment-0009000","dir":"Changelog","previous_headings":"","what":"attachment 0.0.0.9000","title":"attachment 0.0.0.9000","text":"Added NEWS.md file track changes package.","code":""}]