/
NEWS
500 lines (338 loc) · 18.5 KB
/
NEWS
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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
devtools 0.8.0.99
-----------------
NEW FEATURES
* Rcpp attributes are now automatically compiled during build.
* Packages listed in depends are `require()`d (Fixes #161, #178, #192)
* `load_all()` now inserts a special version of `system.file` into the package's
imports environment. This tries to simulate the behavior of
`base::system.file` but gives modified results because the directory structure
of installed packages and uninstalled source packages is different. (Fixes
#179)
MINOR FEATURES
* `check_cran` now downloads packages from cran.rstudio.com.
* `check()` now makes the CRAN version check optional, and off by default. The
`release()` function still checks the version number against CRAN.
* In `check()`, it is optional to require suggested packages, using the
`force_suggests` option.
* `install_bitbucket()` now always uses lowercase repo names. (Thanks to mnel)
* New function `with_lib()`, which runs an expression code with a library path
prepended to the existing libpaths. It differs slightly from
`with_libpaths()`, which replaces the existing libpaths.
* New function `install_git()` installs a package directly from a git
repository. (Thanks to David Coallier)
* If `pdflatex` isn't available, don't try to build vignettes with `install()`
or `check()`. (Fixes #173)
BUG FIXES
* Fixed path issue when looking for Rtools on windows when registry entry is not present. (Fixes #201)
* Reloading a package that requires a forced-unload of the namespace now works.
* When reloading a package that another loaded package depends on, if there
was an error loading the code, devtools would print out something about an
error in `unloadNamespace`, which was confusing. It now gives more useful
errors.
* An intermittent error in `clear_topic_index` related to using `rm()` has
been fixed. (Thanks to Gregory Jefferis)
* `revdep()` now lists "Suggests" packages, in addition to "Depends" and
"Imports".
* `revdep_check()` now correctly passes the `recursive` argument to `revdep()`.
* The collection of check results at the end of `check_cran()` previously did
not remove existing results, but now it does.
* When a package is loaded with `load_all()`, it now passes the name of the
package to the `.onLoad()` function. (Thanks to Andrew Redd)
devtools 0.8.0
--------------
NEW FEATURES
* `create` function makes it easier to create a package skeleton using
devtools standards.
* `install_github()` can now install from a pull request -- it installs
the branch referenced in the pull request.
* `install_github` now accepts `auth_user` and `password` arguments if you
want to install a package in a private github repo. You only need to specify
`auth_user` if it's not your package (i.e. it's not your `username`) (Fixes
#116)
* new `dev_help` function replaces `show_rd` and makes it easy to get help on
any topic in a development package (i.e. a package loaded with `load_all`)
(Fixes #110)
* `dev_example` runs the examples for one in-development package. (Fixes #108)
* `build_vignettes` now looks in modern location for vignettes (`vignettes/`)
and warn if vignettes found in old location (`inst/doc`). Building now
occurs in a temporary directory (to avoid polluting the package with
build artefacts) and only final pdf files are copied over.
* new `clean_vignettes` function to remove pdfs in `inst/doc` that were built
from vignettes in `vignettes/`
* `load_all` does a much much better job at simulating package loading (see
LOADING section). It also compiles and loads C/C++/Fortran code.
* `unload()` is now an exported function, which unloads a package, trying
harder than just `detach`. It now also unloads DLLs. (Winston Chang. Fixes
#119)
* `run_examples` now has parameters `show`, `test`, `run` to control which of
`\dontrun{}`, `\dontshow{}`, `\donttest{}` and `\testonly{}` are commented
out. The `strict` parameter has been removed since it is no longer necessary
because `load_all` can respect namespaces. (Fixes #118)
* `build()`, `check()`, `install()` etc now run R in `--vanilla` mode which
prevents it from reading any of your site or personal configuration files.
This should prevent inconsistencies between the environment in which the
package is run between your computer and other computers (e.g. the CRAN
server) (Fixes #145)
* All system R command now print the full command used to make it easier to
understand what's going on.
PACKAGE PATHS
* `as.package` no longer uses `~/.Rpackages`.
* `as.package` provides more informative error messages when path does not
exist, isn't a directory, or doesn't contain a `DESCRIPTION` file.
* New function `inst()` takes the name of a package and returns the installed
path of that package. (Winston Chang. Fixes #130). This makes it possible to
use `devtools` functions (e.g. `unload`) with regular installed packages,
not just in-development source packages.
* New function `devtest()` returns paths to an internal testing packages
in devtools.
LOADING
* Development packages are now loaded into a namespace environment,
<namespace:xxxx>, and then the objects namespace are copied to the
package environment, <package:xxxx>. This more accurately simulates
how packages are normally loaded. However, all of the objects (not
just the exported ones) are still copied to the package environment.
(Winston Chang. Fixes #3, #60, and #125)
* Packages listed in Imports and Depends are now loaded into an imports
environment, with name attribute "imports:xxxx", which is the parent
of the namespace environment. The imports environment is in turn a
child of the <namespace:base> environment, which is a child of the
global environment. This more accurately simulates how packages are
normally loaded. These packages previously were loaded and attached.
(Winston Chang. Fixes #85)
* The NAMESPACE file is now used for loading imports, instead of the
DESCRIPTION file. Previously, `load_all` loaded all objects from the
packages listed in DESCRIPTION. Now it loads packages (and, when
when 'importfrom' is used, specific objects from packages) listed in
NAMESPACE. This more closely simulates normal package loading. It
still checks version numbers of packages listed in DESCRIPTION.
(Winston Chang)
* `load_all` can now be used to properly reload devtools. It does this
by creating a copy of the devtools namespace environment, and calling
`load_all` from that environment. (Winston Chang)
* The `.onLoad` and `.onAttach` functions for a development package are
now both called when loading a package for the first time, or with
`reset=TRUE`, and the order more correctly simulates normal package
loading (create the namespace, call `.onLoad`, copy objects to the
package environment, and then call `.onAttach`). (Winston Chang)
* `load_all` will now throw a warning if a dependency package does not
satisfy the version requirement listed in DESCRIPTION. (Winston Chang.
Fixes #109)
* The package environment now has a 'path' attribute, similar to a
package loaded the normal way. (Winston Chang)
* `load_all` now has an option `export_all`. When set to TRUE, only the
objects listed as exports in NAMESPACE are exported. (Winston Chang)
* `load_all` now compiles C files in the /src directory. (Winston Chang)
* New functions `compile_dll()` and `clean_dll()`, which compile C/C++/
Fortan source code, and clean up the compiled objects, respectively.
(Winston Chang. Fixes #131)
BUG FIXES
* `load_code` now properly skips missing files. (Winston Chang)
* Add `--no-resave-data` to default build command.
* The subject line of the email created by `release` is now "CRAN submission
[package] [version]", per CRAN repository policy.
* `install_bitbucket` properly installs zip files of projects stored
in Mercurial repositories. (Winston Chang. Fixes #148)
* `build` now builds vignettes because `install` does not. (Fixes #155)
INTROSPECTION
* New function `loaded_packages()`, which returns the names of packages
that are loaded and attached.
* Packages loaded with `load_all` now store devtools metadata in their
namespace environment, in a variable called `.__DEVTOOLS__`. This can
be accessed with the `dev_meta` function. (Winston Chang. Fixes #128)
* `dev_mode` now stores the path it uses in option `dev_path`. That makes it
easy for other applications to detect when it is on and to act accordingly.
* New function `parse_ns_file()`, which parses a NAMESPACE file for a
package.
* New function `parenvs()`, which parents the parent environments
of an object. (Winston Chang)
devtools 0.7.1
--------------
* bump dependency to R 2.15
* `load_code` now also looks for files ending in `.q` - this is not
recommended, but is needed for some older packages
devtools 0.7
------------
INSTALLATION
* `install_bitbucket` installs R packages on bitbucket.
* `install` now uses `--with-keep.source` to make debugging a little easier.
* All remote install functions give better error messages in the case of http
errors (Fixes #82).
* `install` has new quick option to make package installation faster, by
sacrificing documentation, demos and multi-architecture binaries. (Fixes
#77)
* `install_url`, `install_github` and `install_gitorious` gain a subdir
argument which makes it possible to install packages that are contained
within a sub-directory of a repository or compressed file. (Fixes #64)
CHECKING
* `with_debug` function temporarily sets env vars so that compilation is
performed with the appropriate debugging flags set. Contributed by Andrew
Redd.
* `revdep`, `revdep_maintainers` and `revdep_check` for calculating reverse
dependencies, finding their maintainers and running `R CMD check`.
(Fixes #78)
* `check_cran` has received a massive overhaul: it now checks multiple
packages, installs dependencies (in user specified library), and parse check
output to extract errors and warnings
* `check` uses new `--as-cran` option to make checking as close to CRAN as
possible (fixes #68)
OTHER NEW FEATURES
* devtools now uses options `devtools.path` to set the default path to use
with devmode, and `github.user` to set the default user when installing
packages from github.
* if no package supplied, and no package has been worked with previously, all
functions now will try the working directory. (Fixes #87)
* on windows, devtools now looks in the registry to find where Rtools is
installed, and does a better a job of locating gcc. (Contributed by Andrew
Redd)
* `show_rd` passes `...` on to `Rd2txt` - this is useful if you're checking
how build time `\Sexpr`s are generated.
* A suite of `with` functions that allow you to temporarily alter the
environment in which code is run: `in_dir`, `with_collate`, `with_locale`,
`with_options`, `with_path`, ... (Fixes #89)
* `release` ask more questions and randomises correct answers so you really
need to read them (Fixes #79)
* `source_gist` now accepts default url such as "https://gist.github.com/nnn"
* New system path manipulation functions, `get_path`, `set_path`, `add_path`
and `on_path`, contributed by Andrew Redd.
* If you're on windows, `devtools` now suppresses the unimportant warning from
CYGWIN about the dos style file paths
BUG FIXES
* `decompress` now uses target directory as defined in the function call
when expanding a compressed file. (Fixes #84)
* `document` is always run in a C locale so that `NAMESPACE` sort order is
consistent across platforms.
* `install` now quotes `libpath` and build path so paths with embedded spaces
work (Fixes #73 and #76)
* `load_data` now also loads `.RData` files (Fixes #81)
* `install` now has `args` argument to pass additional command line arguments
on to `R CMD install` (replaces `...` which didn't actually do anything).
(Fixes #69)
* `load_code` does a better job of reconciling files in DESCRIPTION collate
with files that actually exist in the R directory. (Fixes #14)
devtools 0.6
------------
NEW FEATURES
* `test` function takes `filter` argument which allows you to restrict which
tests are to be run
* `check` runs with example timings, as is done on CRAN. Run with new param
`cleanup = F` to access the timings.
* `missing_s3` function to help figure out if you've forgotten to export any
s3 methods
* `check_cran` downloads and checks a CRAN package - this is useful to run as
part of the testing process of your package if you want to check the
dependencies of your package
* `strict` mode for `run_examples` which runs each example in a clean
environment. This is much slower than the default (running in the current
environment), but ensures that each example works standalone.
* `dev_mode` now updates prompt to indicate that it's active (Thanks to Kohske
Takahashi)
* new `source_url` function for sourcing script on a remote server via
protocols other than http (e.g. https or ftp). (Thanks to Kohske Takahashi)
* new `source_gist` function to source R code stored in a github gist. (Thanks
to Kohske Takahashi)
* `load_all` now also loads all package dependencies (including suggestions) -
this works around some bugs in the way that devtools attaches the
development environment into the search path in a way that fails to recreate
what happens normally during package loading.
INSTALLATION
* remote installation will ensure the configure file is executable.
* all external package installation functions are vectorised so you can
install multiple packages at time
* new `install_gitorious` function install packages in gitorious repos.
* new `install_url` function for installing package from an arbitrary url
* include `install_version` function from Jeremy Stephens for installing a
specific version of a CRAN package from the archive.
BETTER WINDOWS BEHAVIOUR
* better check for OS type (thanks to Brian Ripley)
* better default paths for 64-bit R on windows (Fixes #35)
* check to see if Rtools is already available before trying to mess with the
paths. (Fixes #55)
BUG FIXES
* if an error occurs when calling loading R files, the cache will be
automatically cleared so that all files are loaded again next time you try
(Fixes #55)
* functions that run R now do so with `R_LIBS` set to the current
`.libPaths()` - this will ensure that checking uses the development library
if you are in development mode. `R_ENVIRON_USER` is set to an empty file to
avoid your existing settings overriding this.
* `load_data` (called by `load_all`) will also load data defined in R files in
the data directory. (Fixes #45)
* `dev_mode` performs some basic tests to make sure you're not setting your
development library to a directory that's not already an R library. (Fixes
#25)
devtools 0.5.1
--------------
* Fix error in that was causing R commands to fail on windows.
devtools 0.5
--------------
NEW FUNCTIONS
* new `show_rd` function that will show the development version of a help
file.
IMPROVEMENTS AND BUG FIXES
* external R commands always run in locale `C`, because that's what the CRAN
severs do.
* `clean_source` sources an R script into a fresh R environment, ensuring that
it can run independently of your current working environment. Optionally
(`vanilla = T`), it will source in a vanilla R environment which ignores all
local environment settings.
* On windows, `devtools` will also add the path to `mingw` on startup. (Thanks
to pointer from Dave Lovell)
devtools 0.4
------------
NEW FUNCTIONS
* new `wd` function to change the working directory to a package subdirectory.
* `check_doc` now checks package documentation as a whole, in the same way
that `R CMD check` does, rather than low-level syntax checking, which is
done by `roxygen2. DESCRIPTION checking has been moved into `load_all`.
`check_rd` has been removed.
* `build` is now exported, and defaults to building in the package's parent
directory. It also gains a new `binary` parameter controls whether a binary
or a source version (with no vignettes or manuals) is built. Confusingly,
binary packages are built with `R CMD INSTALL`.
* `build_win` sends your package to the R windows builder, allowing you to
make a binary version of your package for windows users if you're using
linux or a max (if you're using windows already, use `build(binary = T)`)
IMPROVEMENTS AND BUG FIXES
* if using `.Rpackages` config file, default function is used last, not first.
* on Windows, `devtools` now checks for the presence of `Rtools` on startup,
and will automatically add it to the path if needed.
* `document` uses `roxygen2` instead of `roxygen`. It now loads package
dependency so that they're available when roxygen executes the package
source code.
* `document` has new parameter `clean` which clears all roxygen caches and
removes all existing man files. `check` now runs `document` in this mode.
* `dev_mode` will create directories recursively, and complain if it can't
create them. It should also work better on windows.
* `install_github` now allows you to specify which branch to download, and
automatically reloads package if needed.
* `reload` now will only reload if the package is already loaded.
* `release` gains `check` parameter that allows you to skip package check (if
you've just done it.)
* `test` automatically reloads code so you never run tests on old code
devtools 0.3
------------
* new `bash()` function that starts bash shell in package directory. Useful if
you want to use git etc.
* removed inelegant `update_src()` since now superseded by `bash()`
* fix bug in ftp upload that was adding extraneous space
* `build` function builds package in specified directory. `install`, `check`
and `release` now all use this function.
* `build`, `install`, `check` and `release` better about cleaning up after
themselves - always try to both work in session temporary directory and
delete any files/directories that they create
devtools 0.2
------------
* `install_github` now uses `RCurl` instead of external `wget` to retrieve
package. This should make it more robust wrt external dependencies.
* `load_all` will skip missing files with a warning (thanks to suggestion from Jeff Laake)
* `check` automatically deletes `.Rcheck` directory on successful completion
* Quote the path to R so it works even if there are spaces in the path.
devtools 0.1
------------
* Check for presence of `DESCRIPTION` when loading packages to avoid false
positives
* `install` now works correctly with `devel_mode` to install packages in your
development library
* `release` prints news so you can more easily check it
* All `R CMD xxx` functions now use the current R, not the first R found on
the system path.