-
Notifications
You must be signed in to change notification settings - Fork 7
/
packaging.R
108 lines (84 loc) · 3.33 KB
/
packaging.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#=============================================================================
# Put together the package
#=============================================================================
# WORKFLOW: UPDATE EXISTING PACKAGE
# 1) Modify package content and documentation.
# 2) Increase package number in "use_description" below.
# 3) Go through this script and carefully answer "no" if a "use_*" function
# asks to overwrite the existing files. Don't skip that function call.
# devtools::load_all()
library(usethis)
# Sketch of description file
use_description(
fields = list(
Title = "Kernel SHAP",
Version = "0.7.1",
Description = "Efficient implementation of Kernel SHAP, see Lundberg and Lee (2017),
and Covert and Lee (2021) <http://proceedings.mlr.press/v130/covert21a>.
Furthermore, for up to 14 features, exact permutation SHAP values can be calculated.
The package plays well together with meta-learning packages like 'tidymodels', 'caret' or 'mlr3'.
Visualizations can be done using the R package 'shapviz'.",
`Authors@R` =
"c(person('Michael', family='Mayer', role=c('aut', 'cre'), email='[email protected]', comment=c(ORCID='0009-0007-2540-9629')),
person('David', family='Watson', role='aut', email='[email protected]', comment=c(ORCID='0000-0001-9632-2159')),
person('Przemyslaw', family='Biecek', email='[email protected]', role='ctb', comment=c(ORCID='0000-0001-8423-1823'))
)",
Depends = "R (>= 3.2.0)",
LazyData = NULL
),
roxygen = TRUE
)
use_package("foreach", "Imports")
use_package("MASS", "Imports")
use_package("stats", "Imports")
use_package("utils", "Imports")
use_package("doFuture", "Suggests")
use_gpl_license(2)
# Your files that do not belong to the package itself (others are added by "use_* function")
use_build_ignore(c("^packaging.R$", "[.]Rproj$", "^compare_with_python.R$",
"^cran-comments.md$", "^logo.png$"), escape = FALSE)
# If your code uses the pipe operator %>%
# use_pipe()
# If your package contains data. Google how to document
# use_data()
# Add short docu in Markdown (without running R code)
use_readme_md()
# Longer docu in RMarkdown (with running R code). Often quite similar to readme.
# use_vignette("kernelshap")
# If you want to add unit tests
use_testthat()
# use_test("kernelshap.R")
# use_test("methods.R")
# On top of NEWS.md, describe changes made to the package
use_news_md()
# Add logo
use_logo("logo.png")
# If package goes to CRAN: infos (check results etc.) for CRAN
use_cran_comments()
use_github_links() # use this if this project is on github
# Github actions
use_github_action("check-standard")
use_github_action("test-coverage")
use_github_action("pkgdown")
# Revdep
use_revdep()
#=============================================================================
# Finish package building (can use fresh session)
#=============================================================================
library(devtools)
document()
test()
check(manual = TRUE, cran = TRUE)
build()
# build(binary = TRUE)
install(upgrade = FALSE)
# Run only if package is public(!) and should go to CRAN
if (FALSE) {
check_win_devel()
check_rhub()
# Takes long
revdepcheck::revdep_check(num_workers = 4L, bioc = FALSE)
# Wait until above checks are passed without relevant notes/warnings
# then submit to CRAN
release()
}