-
Notifications
You must be signed in to change notification settings - Fork 58
/
maintenance_curation.Rmd
218 lines (160 loc) · 9.34 KB
/
maintenance_curation.Rmd
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
---
aliases:
- curationpolicy.html
---
# Package Curation Policy {#curationpolicy}
```{block, type="summaryblock"}
This chapter summarizes a proposed curation policy for rOpenSci's
ongoing maintenance of packages developed as part of rOpenSci activities
and/or under the rOpenSci GitHub organization. This curation policy aims
to support these goals:
- Ensure packages provided by rOpenSci are up-to-date and high quality
- Provide clarity as to the development status and and review status
of any software in rOpenSci repositories
- Manage maintenance effort for rOpenSci staff, package authors, and
volunteer contributors
- Provide a mechanism to gracefully sunset packages while maintaining
peer-review badging
```
Elements of infrastructure described
below needed for implementation of the policy are in some cases partly
built and in other cases not yet begun. We aim to adopt this policy in
part to prioritize work on these components.
## The package registry {#the-package-registry}
- The rOpenSci package
[registry](https://github.com/ropensci/roregistry)
is a central listing of R packages currently or formerly
maintained or reviewed by rOpenSci. It contains essential package
metadata including development and review status, and will be the
source of data for display on websites, badges, etc. It will allow
this listing to be maintained independently of package or
infrastructure hosting platforms.
## Staff-maintained packages {#staff-maintained-packages}
Staff-maintained packages are developed and maintained by rOpenSci staff
as part of rOpenSci projects. These packages may also be peer-reviewed
packages, but are not necessarily peer reviewed. Many are infrastructure
packages that fall out of scope for peer review.
- Staff-maintained packages will be listed in the registry with tag
"staff\_maintained" and listed on rOpenSci's packages web page or similar
venues with tag "staff-maintained"
- These packages will be stored in the "ropensci" GitHub
organization
- Staff-maintained packages and their docs will be built by rOpenSci
[system](https://status.ropensci.org/). This system does not send notifications
but it outputs results as GitHub commit status (red check mark or red cross).
- When the packages fail checks, rOpenSci staff will endeavor to fix
changes, prioritizing packages based on user base (downloads),
reverse dependencies, or strategic goals.
- On a biannual or annual basis, rOpenSci will review all packages
that have been failing for over a month to determine whether to transfer them to the ["ropensci-archive" GitHub organization](https://github.com/ropensci-archive).
- Packages consistently failing and without an ongoing plan to return
to active maintenance will move to "archive" status. When
archived, staff packages will move to the "ropensci-archive"
repository (to be created) and and gain the "archived" type in
the registry. They will not be built on rOpenSci system.
- Archived packages will not be displayed by default on the packages
web page. A special tab of packages pages will display
these with `"type": "archived"`
that were either peer-reviewed or staff-maintained.
- Archived packages can be unarchived when the old or a new maintainer
is willing to address the problems and wants to revive the
package. For that please [contact rOpenSci](https://ropensci.org/contact/).
They are transferred to the ropenscilabs organization.
## Peer-reviewed packages {#peer-reviewed-packages}
Peer-reviewed packages are those contributed to the rOpenSci by the
community and have passed through peer review. They need to be
[in-scope](#aims-and-scope)
at the time of submission to be reviewed.
- Upon acceptance, these peer-reviewed packages are transferred from
the author's GitHub to the "ropensci" GitHub organization
- Peer-reviewed packages will be in the registry tagged as
"peer-reviewed" and have a peer-reviewed badge in their README.
- Peer-reviewed packages will be listed on rOpenSci's web page or
similar venues with tag "peer-reviewed"
- Peer-reviewed packages and their docs will be built by rOpenSci
[system](https://status.ropensci.org/). This system does not send notifications
but it outputs results as GitHub commit status (red check mark or red cross).
- Annually or bi-annually, rOpenSci staff will review packages in a
failing state or have been failing for extended periods, and
contact the authors to determine ongoing maintenance status and
expected updates. Based on this exchange, rOpenSci may opt to
retain the package's current status with the expectation of an
updates, contribute support or seek a new maintainer, or transfer
the package to "archived" status.
- Based on user base (measured by downloads), reverse dependencies, or
rOpenSci strategic goals, rOpenSci staff may support failing
packages via PRs reviewed by package authors, or direct changes
(if authors are unresponsive for approximately a month). rOpenSci
will also provide support to package authors on request, both by
staff and community volunteers, based on time available.
- At the author's request, or if authors are unresponsive to
inquiries for approximately a month, rOpenSci may seek a new
maintainer for select peer-reviewed packages it deems have high
community value based on user base/downloads, reverse
dependencies, or rOpenSci strategic goals.
- When archived, these packages will move from the "ropensci" GitHub
organization to the "ropensci-archive" organization (or author
GitHub accounts if desired), following [transfer guidance](#archivalguidance). They will gain the "archived" type
in the registry. They will retain "peer-reviewed" tags and
badges. They will not be built on rOpenSci system.
- Archived packages will not be displayed by default. A special tab of packages
pages will display these with `"type": "archived"`
that were either peer-reviewed or staff-maintained.
## Legacy acquired packages {#legacy-acquired-packages}
"Legacy" packages are packages not created or maintained by rOpenSci
staff and not peer reviewed, but are under the rOpenSci GitHub
organization(s) due to historical reasons. (Prior to establishing the
peer review process and its scope, rOpenSci absorbed packages from
various developers without well-defined criteria.)
- rOpenSci will transfer legacy packages back to author organizations
and repositories. If authors are uninterested, we will transfer
them to the "ropensci-archive" repository following [transfer guidance](#archivalguidance). If packages are
[in-scope](https://devguide.ropensci.org/policies.html#aims-and-scope),
rOpenSci will inquire if authors would like to submit them to the
Software Review process.
- Legacy packages will not be listed in the package registry.
- Exceptions may be made for packages that are vital parts of the R and/or rOpenSci package ecosystem which are actively monitored by staff.
## Incubator packages {#incubator-packages}
"Incubator" packages are in-development packages created by staff or
community members as part of community projects, such as those created
at unconferences
- Incubator packages will live in the "ropenscilabs" organization.
- Incubator packages will appear in the package registry with the
"incubator" tag
- Incubator packages will not appear on the website by default, but
packages pages will include an "experimental packages" tab.
- Incubator packages and their docs will be built by rOpenSci
[system](https://status.ropensci.org/). This system does not send notifications
but it outputs results as GitHub commit status (red check mark or red cross).
The docs will indicate clearly the package is experimental.
- Biannually or annually, rOpenSci will contact incubator maintainers
about repositories at least three months old, inquiring about
development status and author preferences for migration to
peer-review, ropensci-archive, or to author organizations. Based
on response, package will be migrated immediately, peer review
will be initiated, or migration will be deferred to the next
review. Incubator packages will be migrated to ropensci-archive by
default after one year, following [transfer guidance](#archivalguidance).
- Archived incubator packages will gain the "archived" type.
### Incubator non-R-packages {#incubator-non-r-packages}
- The "incubator" organization will also include non-R-package
projects.
- These projects will not be listed in the registry or appear on a web
page, and will not be automatically built.
- Migration policy will be the same as for R packages, with
appropriate migration locations (e.g., ropensci-books)
- If archived, non-R-packages will move to "ropensci-archive" following [transfer guidance](#archivalguidance).
## Books {#books}
rOpenSci books are long-form documentation, often bookdown-formatted,
related to rOpenSci packages, projects, or themes, created by both
rOpenSci staff and community members.
- Books will live in the "ropensci-books" organization
- Books will be hosted at books.ropensci.org
- Books may be mature or in-development, but must have minimal
outlines/content before migrating into "ropensci-books" (e.g.
from "ropenscilabs").
- The authorship and development status of a book should be clearly
described on its home page and README.
- rOpenSci may provide badges or templates (e.g., "In development,"
"Community Maintained,") for authors to use on book home pages
in the future