tidyverse and r-lib: a year in review

It’s been a banner year for the tidyverse and r-lib teams, and, as we close out 2018, we wanted to take a look back at some of our achievements.

We added significant roster depth this year, with Davis Vaughan, Thomas Lin Pedersen, and Romain François all joining the squad.

By the numbers

Major accomplishments

After 6 years of development, pkgdown had its initial release on CRAN. pkgdown is designed to make it quick and easy to build a website for your package, and has already been used to make sites for over 2500 packages.

Several major tidyverse package releases have centered on the implementation of tidy evaluation. Notable among these was the 3.0.0 release of ggplot2, which has more than 2000 reverse dependencies. We continue to improve our tools for and skills with releases with large numbers of reverse dependencies.

devtools 2.0.0 split the functionality in devtools into a number of smaller packages which are simpler to develop, and also easier for other packages to depend on. Though devtools will remain the primary package with which developers interact, the functionality will come from its component packages (in what we’re calling a conscious uncoupling).

The tidymodels collection is the home of several new modelling packages, which follow opinionated but reasonable model implementation practices. This includes the parsnip package, which standardizes the interface for fitting models as well as their return values — separating model specification from model implementation (more detail here). In effect, when using parsnip, you don’t have to remember each interface and its unique set of argument names to easily move between R packages.

Consistency

Among the tidyverse development principles is the goal of being consistent. This has, perhaps, been most visible in our implementation of tidy evaluation across tidyverse packages. The fs r-lib package, first released at the beginning of the year, helps bring such consistency to file system operations. More recently, we’ve devised a consistent strategy for handling name repair that can be used to make name-handling more predictable. vctrs, which recently had its first CRAN release, will allow us to bring type- and size-stability to user-facing functions; a major focus as we head into the next year.

Tidyverse dev day

We hope that our first tidyverse developer day (held after rstudio::conf) will help us continue to nurture regular contributors of all skill levels. We have 100 developers (50 general admission + 50 URM) signed up to participate, and we’re looking forward to a fun and productive day!

Acknowledgements

A huge thank you goes out to the 568 people who submitted PRs to the tidyverse, r-lib, tidymodels, or r-dbi repos in 2018: @414theodore, @aaronrudkin, @aaronwolen, @aayala15, @abichat, @adam-gruer, @AdeelH, @adibender, @AdrianHordyk, @AEBilgrau, @aeklant, @aghaynes, @ahoho, @ajdamico, @akbertram, @AkhilGNair, @Alanocallaghan, @alecuba16, @alexpghayes, @alexwhan, @alistaire47, @amhrasmussen, @amilenkovic, @AmundsenJunior, @AndreaCirilloAC, @andrewjlm, @andrewpbray, @anhqle, @Anirudhsekar96, @ankane, @aoles, @apreshill, @ArtemSokolov, @artichaud1, @aryoda, @AshesITR, @asieira, @atheriel, @atusy, @atyre2, @austensen, @austin3dickey, @aviast, @Ax3man, @baogorek, @BarkleyBG, @Bart6114, @bastistician, @batpigandme, @bblette1, @bbolker, @bbrewington, @bcipolli, @bdemeshev, @beanumber, @benmarwick, @bensoltoff, @bfgray3, @bgreenwell, @bhive01, @billdenney, @Bisaloo, @bjreisman, @blairj09, @blakeboswell, @blakeyc, @bleemayer, @bleutner, @bmannakee, @boshek, @breichholf, @BrianDiggs, @brianwdavis, @briatte, @brodieG, @brunolucian, @bschneidr, @burchill, @buyske, @byapparov, @caijun, @calpan, @cathblatter, @cderv, @cfhammill, @CharlesNaylor, @chendaniely, @chiarapiccino, @chris-park, @ChrisMuir, @christophergandrud, @ChuliangXiao, @cimentadaj, @ck37, @clauswilke, @ClaytonJY, @coatless, @codetriage-readme-bot, @colearendt, @ColinFay, @comicfans, @ConorIA, @const-ae, @coolbutuseless, @corinne-riddell, @CorradoLanera, @corybrunson, @cosmomeese, @cpsievert, @crew102, @crossett, @cschroed-usgs, @csetraynor, @ctbrown, @ctrombley, @cwickham, @czeildi, @daattali, @dandermotj, @daniel-barnett, @daniellima123, @DataWookie, @davechilders, @davidkane9, @DavisVaughan, @dchiu911, @delferts, @devillemereuil, @dgkf, @dgromer, @dgrtwo, @diogocp, @dleutnant, @dmenne, @dominiklanger, @dongzhuoer, @doug-friedman, @dougmitarotonda, @Dpananos, @dpastoor, @dpocock, @dpprdan, @dpseidel, @dracodoc, @dragosmg, @drewabbot, @drkrynstrng, @drsimonj, @duckmayr, @duju211, @dvcv, @dveeden, @dvmlls, @dynamicwebpaige, @earowang, @echasnovski, @eclarke, @econandrew, @ecortens, @eddelbuettel, @edgararuiz, @edublancas, @EdwinTh, @edzer, @egnha, @elben10, @eliocamp, @EllaKaye, @ellessenne, @EmilHvitfeldt, @Enchufa2, @endore, @erleholgersen, @erocoar, @espinielli, @ethchr, @etiennebr, @evanhaldane, @evanmiller, @everron, @ewallace, @ezequielpaura, @fbchow, @fbreitwieser, @Felipe-Rubin, @filipefilardi, @flaviobarros, @flying-sheep, @fmichonneau, @foo-bar-baz-qux, @foundinblank, @frostell, @fxdlmatt, @gaborcsardi, @gadenbuie, @gavinsimpson, @GegznaV, @gergness, @gfiumara, @ghost, @gitter-badger, @GoldbergData, @goldingn, @gorcha, @grayskripko, @gregmacfarlane, @gregrs-uk, @Guillaume-Lombardo, @gutorc92, @gvelasq, @gvwilson, @haavardw, @hadley, @hannesmuehleisen, @haozhu233, @hardeepsjohar, @harrismcgehee, @harvey131, @has2k1, @helix123, @HenrikBengtsson, @hlynurhallgrims, @hmalmedal, @Hong-Revo, @hrbrmstr, @huftis, @hughjonesd, @HughParsonage, @ijlyttle, @ilarischeinin, @imanuelcostigan, @Ironholds, @IronistM, @ismayc, @isomorphisms, @isteves, @itsdalmo, @j450h1, @j6t, @jalsalam, @jameshowison, @jameslairdsmith, @jameslamb, @jan-glx, @jankislinger, @jaredhuling, @jarodmeng, @jarvisc1, @jasonmhoule, @javierluraschi, @jayhesselberth, @jbao, @jbiesanz, @jcheng5, @jdblischak, @jefferis, @jeffreyhanson, @jemus42, @jennybc, @jentjr, @jenzopr, @jepusto, @jeroen, @jfcharney, @jgabry, @JHonaker, @jiho, @jimhester, @jimrothstein, @jimvine, @jinzhen-lin, @jjchern, @jlegewie, @jmpsteen, @jmuhlenkamp, @jmwerner, @joelgombin, @jongbinjung, @jonmcalder, @jonocarroll, @jonthegeek, @joranE, @joshuaulrich, @josue-rodriguez, @jrnold, @jrosen48, @jschelbert, @jthurner, @jtr13, @junkka, @jwnorman, @kanishkamisra, @karawoo, @karissawhiting, @karldw, @katrinleinweber, @keithgw, @kenahoo, @kendonB, @kevinushey, @kevinykuo, @kforner, @khotilov, @kiendang, @kiwiroy, @KKulma, @kohske, @kopperud, @kos59125, @krivit, @krlmlr, @ktmud, @ktrask, @kwstat, @KZARCA, @l4u532, @lambiase, @landesbergn, @larmarange, @lawwu, @lbartnik, @lbusett, @ledell, @leerssej, @lemna, @lepennec, @lindbrook, @LiNk-NY, @lionel-, @llrs, @LluisRamon, @lmullen, @lorenzwalthert, @lpmi-13, @lselzer, @ltobalina, @LucyMcGowan, @luisDVA, @lukesonnet, @lwjohnst86, @m-sostero, @m0nhawk, @maelle, @malcolmbarrett, @MarcusWalz, @mariusbarth, @markdly, @MarkEdmondson1234, @martin-mfg, @martinjhnhadley, @matthieugomez, @MatthieuStigler, @mattle24, @maurolepore, @mawds, @maxheld83, @mb706, @mbjoseph, @mbojan, @mcol, @md0u80c9, @mdlincoln, @medinali, @mfansler, @mgirlich, @mhpedersen, @MichaelChirico, @michaellevy, @michaelquinn32, @michaelweylandt, @mikmart, @MilesMcBain, @mine-cetinkaya-rundel, @mingwandroid, @mitchelloharawild, @mjskay, @mkcor, @mkearney, @mkuehn10, @mllg, @mlysy, @moodymudskipper, @moslehi, @mpadge, @mpancia, @mrchypark, @mrtns, @mruessler, @mtmorgan, @Mullefa, @mundl, @muschellij2, @mvevans89, @mvkorpel, @mwaldstein, @nacnudus, @namelessjon, @nbenn, @nealrichardson, @neilmontgomery, @nfultz, @nhamilton1980, @Nick-Rivera, @nijibabulu, @njtierney, @nmattia, @noamross, @ntdef, @nuest, @nutterb, @nzxwang, @odeleongt, @oscardssmith, @osorensen, @overmar, @pachevalier, @pank, @pat-s, @patperry, @paul-buerkner, @paulponcet, @pavel-filatov, @Paxanator, @peterdesmet, @peterhartman, @petermeissner, @pgensler, @phaverty, @philmikejones, @pierreroudier, @PirateGrunt, @pitakakariki, @pjpaulpj, @pkq, @pkrog, @pmenzel, @PoGibas, @pohzipohzi, @privefl, @prosoitos, @puterleat, @pzingg, @quartin, @QuLogic, @r2evans, @raffscallion, @rajanand, @ramnathv, @randy3k, @ras44, @rasmusab, @rbloehm, @rcannood, @realAkhmed, @Rekyt, @RemkoDuursma, @renkun-ken, @renozao, @rensa, @rentrop, @riccardopinosio, @RichardJActon, @richardkunze, @richfitz, @richierocks, @rkahne, @RLesur, @rmatkins, @rmflight, @rnuske, @robertzk, @Robinlovelace, @robinsones, @robkar, @RolandASc, @romainfrancois, @romunov, @rorynolan, @rsaporta, @rstub, @rtaph, @rtobar, @ruaridhw, @rudeboybert, @ryanatanner, @ryapric, @s-fleck, @sachsmc, @saghirb, @salim-b, @samssann, @samzhang111, @sandan, @saurfang, @schloerke, @schoonees, @seaaan, @seanpor, @setempler, @sflippl, @shabbybanks, @shrektan, @ShreyasSingh, @siddharthab, @sinhrks, @sjackman, @slnovak, @slowkow, @smaakage85, @snaut, @sowla, @statist7, @statwonk, @stefanfritsch, @stillmatic, @stragu, @superchordate, @surmann, @suzanbaert, @sverchkov, @t-kalinowski, @talgalili, @tareefk, @tdsmith, @tereom, @terrytangyuan, @theGreatWhiteShark, @ThierryO, @thisisnic, @thomascwells, @thomasp85, @tigertoes, @timgoodman, @timtrice, @tmastny, @tnagler, @tonytonov, @topepo, @truemoid, @tstev, @tyluRp, @uribo, @vkapartzianis, @vnijs, @vsabarly, @washcycle, @wch, @wenjie2wang, @wibeasley, @wilkox, @wilsonfreitas, @wjakethompson, @wlandau, @xhdong-umd, @xvrdm, @yatharth, @yihui, @yiluheihei, @yiufung, @yonicd, @yutannihilation, @zachary-foster, @zappingseb, @zeehio, @zkamvar, @ZoidbergIII, @zozlak, and @Zsedo.

Upcoming events
Sydney, Australia
May 1-2
You should take this workshop if you have experience programming in R and want to learn how to tackle larger scale problems. The class is taught by Hadley Wickham, Chief Scientist at RStudio.
San Francisco, CA
Jan 27-30
rstudio::conf 2020 covers all things RStudio, including workshops to teach you the tidyverse, and talks to show you the latest and greatest features.