rversions/0000755000176200001440000000000013571464012012307 5ustar liggesusersrversions/NAMESPACE0000644000176200001440000000071613571456555013547 0ustar liggesusers# Generated by roxygen2: do not edit by hand export(r_oldrel) export(r_release) export(r_release_macos) export(r_release_tarball) export(r_release_win) export(r_versions) importFrom(curl,curl_fetch_memory) importFrom(curl,handle_setheaders) importFrom(curl,handle_setopt) importFrom(curl,new_handle) importFrom(utils,tail) importFrom(xml2,read_xml) importFrom(xml2,xml_find_all) importFrom(xml2,xml_find_first) importFrom(xml2,xml_ns) importFrom(xml2,xml_text) rversions/LICENSE0000644000176200001440000000006113571443361013315 0ustar liggesusersYEAR: 2015-2019 COPYRIGHT HOLDER: Gábor Csárdi rversions/man/0000755000176200001440000000000013475715275013077 5ustar liggesusersrversions/man/r_release_win.Rd0000644000176200001440000000143513571456556016210 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/win.R \name{r_release_win} \alias{r_release_win} \title{Latest R release with a Windows installer available for download} \usage{ r_release_win() } \value{ A one row data frame, with columns \sQuote{version}, \sQuote{date}, \sQuote{URL} and \sQuote{nickname}. } \description{ \code{\link[=r_release]{r_release()}} works based on the SVN tags in the main R source code repository. However, an SVN tag does not mean that the same version is available for download. \code{r_release_win} returns the latest version for which a Windows installer is available. } \examples{ r_release() r_release_win() } \seealso{ Other R downloads: \code{\link{r_release_macos}()}, \code{\link{r_release_tarball}()} } \concept{R downloads} rversions/man/r_release_tarball.Rd0000644000176200001440000000146113571456556017033 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/tarball.R \name{r_release_tarball} \alias{r_release_tarball} \title{Latest release for which a source tarball is available for download} \usage{ r_release_tarball() } \value{ A one row data frame, with columns \sQuote{version}, \sQuote{date}, \sQuote{URL} and \sQuote{nickname}. } \description{ \code{\link[=r_release]{r_release()}} works based on the SVN tags in the main R source code repository. However, an SVN tag does not mean that the same version is available for download. \code{r_release_tarball} returns the latest version for which a source tarball is available. } \examples{ r_release() r_release_tarball() } \seealso{ Other R downloads: \code{\link{r_release_macos}()}, \code{\link{r_release_win}()} } \concept{R downloads} rversions/man/r_versions.Rd0000644000176200001440000000113313571456556015556 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/rversions.R \name{r_versions} \alias{r_versions} \title{Query R's past and present versions} \usage{ r_versions(dots = TRUE) } \arguments{ \item{dots}{Whether to use dots instead of dashes in the version number.} } \value{ A data frame with three columns: \sQuote{version}, \sQuote{date} and \sQuote{nickname}. } \description{ R version numbers consist of three numbers (since version 1.4.1): major, minor and patch. } \details{ We extract the version numbers from the tags in the SVN repository. } \examples{ r_versions() } rversions/man/figures/0000755000176200001440000000000013444130635014526 5ustar liggesusersrversions/man/figures/logo.png0000644000176200001440000007170113475715341016211 0ustar liggesusersPNG  IHDRޫhgAMA a cHRMz&u0`:pQ<bKGD pHYs B(xtIME 2TrIDATxyeUwOwϾeB! ;vD@QAţ砲h "(a }2oU~Tg23I澮$3S]V><0TuFPί}]|F0Q\\p袋6&PF  dY .?"'xB,ZHX, ;w#A 8q;ž}Dw466KL<؍@Ō`G?QZZ*ZvZq(_^\ ^࿀p*C,]TK"LɤxW/NAUp8 xK$͛'z!ovG0??$I 9#=hرcw!v=hvG]]O~"ƍgG0Z{@~qW+W ML#o&VZ%-[& "nF{1F0/E`l6q駋{N7DB⬳v]e V3@ fDkkkΉmmmG}ǀhZX#A!a:+ 555ؾ};v)QFDnEJ`3 W\!}jbŊ+^ V[@uq#jKbO>YW\/K.rskwqVPפw$DJeV-fBmF~O>SN9UUٱc3Co PlGz!pQ\ |fzছnb̘1Ht(H,O76eE^$+pʼQrwj>l͛Gss3{)4d dĬF|hXЫnϚ5KwG:4W>n@´,I4E,uq촊!”)S8s?~<{? }7>k/y`}c}'555믿ロ3<5d'O6@6ä́ $g?&yp\{챜s9x<on BӀ@vKGF3*;4 ,x d!.6:yO_s5s=wyxҒ|&+=,]4t{p,\3<H(q%ܖ'dW\.y=òe˨̟)^_YϪ-9#&F9qDYY~:-" k׮T*8 zڎtÑ]^Ym ,&\pEEE>urnlX-E^ŋ3o1ϱ|rVX1SӴ_B#18܃o\s W]uչ BTU%Jxȩi+Ic &%UIMXYz8ab|q|-NsA}SZZ?\s-&N#Pٽ'8nn-EݡiTT*E2$Ji6TNvb¬Cu-`׾--g\k=6cy_g}6n;vXCttxT8\.8̯,ɤG+G ҐeAu.p8eY<ϒcj):D")!@tn0eM_ǒyCDJYǦh%I-U8+))SOeDQCxky 5: K7ESLk+Sp!rJD)diGqQVTE 0α;v6h s`vTU`rqExbq~˦M>?^ADžlBO]淨ܾl2?>e~Bfy &PQ`&C #X 6n?/}7gf.x<.\gfcǎH$2 ?DVl1NP( 媽袋xꩧ{1c!iSAA4V!032Db)L^xB!o6mwuO=pqu!D!tt?w$I p7X'CS&HC.Y,2)I'ļy}ݗ)[ݬ~-  XlW]u>,KX,2B jY1"Khڅ=v?+%K#Zo~*zLt'Yoh 痿e^>C$I4͙,I0yR e !bh]>p,{'՜hS{^/^i;v8bei@0_w\ny}\wuu#I>wvY3+(Fj v 5H&sg3}\qǪ3d{n'@אC}g/$I3w\?1~;Gui$I 2?$ŬX Ќ>%ʇL4M0i/Ϥbaĉ,]ɓ'SWW'566Vg-芧!K; ==zM7_SN9i~槒$IbrF 0\,IPszILMNs~oL[-sz'Xá5u23}>/{ _BΦɲ&goTb p&1 J} ̓骚`RcL}{3 K,!J;ݬΩl1wWl6[ْ%KƎ; PHY2󏩡0w_^$qUN6jgWc$gB[/α3CtXWWW9m$r,[ŝ9 0sLo?1s4?!hH$J4&SHʜwt5!9u(t' vj]tt >pMKA!G_iGaXƁ )lNMhʴl@n .䦛nU+hF(""r'y~h-FQ5ݗAz9Vjj8jz95ՅhkkCQ>;@ M^{x=A±魀d BUSYh'̪ӭ9A*"Jp:|b/bZ![\@>8L׿uJt4M# ŰX,|>RBňECl6 r7jT 2{(TFmP-@r7c*q(4J@QN'~HwL477cqyfw%[ '_j˹+7/PU`0H<bq8M4I%-LYeK޻UdB%@k$@EQp\|`/o8~ C D^Ƽ)ÜNl\t٢^d]wn/>3Le#wQ!$H n;/1^D^(.[<묳?>mmmٳǐ-.RDN?o }M$9̙_ϥ^3@`T)V>"KW8SwIRg宿/IBÎ"aȝ_6Ua77^hQhFQQEE4o{:@O!`['^Λ6p٩cpQ^'^/oe#?dI"|cqExt%IJ1vHTaͺVvt6|5M=ΜY̚Qa<'R*&~:N~h`(}f3B#F06 MG_=3Id͆V@H\Ոh348루ɵAKdIB9o}7wsI;\lKwݮ]Ėmm e̚ooXR*#}crA!o⽵YP}GuS:JVm_rC"+t_LK@J X )HDk0Ϯ#yF(dæSJ 6nn1eʊZQǧ[[L2%}-QxeacInhT=:LNس7@{GMH,]o|=s:bXA&SZ-bHV5 /c՘Hi#9F0$P`z̈́$A,Pߐ=(}!6jXHYhh&y@!@.fU1ml1>ˊjAB/4AJ(FJш%!qM)B$HHL!MO*(jj(Kk>sL~5E$#N{&MM"l&ֺ:ƒtu;ڸd|0 N?_\O}"ݕbAQ)U#WD M|~?Z"C@ KƧ 4&'/\#IHf8诅P8I2fU5AUupꛣ(6[f I9@^Ɨ$)'nUzi£^׶7vF75 ')~"j+LA3#Mԏh<{8AB(w6icޗk0ڃf'K{ٽ?ƚ Ir"I˄c;OpjqQ4RIplr \.+,'] W{s3ȒĄZﰟ-̎wG> ?3cfYh Vb9IBTU%Ht95KK\Y$, p9̝Rn435zl[,;g?&kNڂ.4d2I$VIs'ʰZej?`q3+6}L 3{R {{"ofy*{٥ ;`U>I(R(i+Aev;4'4[RUU4mVN%MKXd?fXQ dn*J\YqE0-OC4YZgH$V+6-eZNn!no35jLZӄaYsXxeij+9{lX6nR#4GJՆ܄4 EQH&i⪪ϕ$, Nݞ&lO},9*ijd''4 `b&+6Z"nd6֚:U7~6UC|@2U9fQ\\hUid1 JrL AX8`_a锖L5﾿xYB*=;͜w{Z?X45Mu[©,3wqC1WJ/V0fAbcX,Z1C$q32͔;*~qB~OXUkUΝYCx÷=6ҟ~ STA"}-1)54Vkz,2[妬 m45Gҟ۟cX&/昣\Vj+*[7ܻzO.S։s⣘3G  ҰK!G$ UU B]|R'TƻƆ}A4TU=,4sΓHAн?離Ieؾ@0!?p&vLES;gj3;Pkk9q]|}-IE;f)/vr2;q<'ϭI7B(Ob օ4BEQD^@$I[0{1{'EF)L ]L-=nsgW1eR){;ػh\CU%4Mov)-qR]UDy {V}t'f9aVUIckA4i%Є3äQ>FWaiwB0 (y4 YxkYhF$Y͋졥#nZjX|t(h^*BQ"0~K$6"3?ħ[Z(/vbj8"aZcZ4i$S 1-$[%^Ёp[dg˜5Ԅ`Le{>, |0 ]ID[˲۫Xˊfn%|+NdJAQ4T!R4UoHi$Sj]l"q ;|/_A^#}$s$0 q 8I,I:‰^urUTAUKL+4`0H,4yt7-"$uꂇ]xfO,vHf aN`8H\P5 |I^!ɤ/( Bٌʾۢ0е|P$8N~?,DBæp`Z39c|`>y;"pXFv⡇z/=; eרL3#L&By+Nb!b7ج|T9irE^!T* P\.AbI(**!P5A/UvX |2s&&#>rCY8fj97^:SɤCW Gv G[̈́@;åN'S[i:y /t-,&0Fh4)C8m=q_=w3Ǘh(ț),Þ{@ Fh6qpΕsq0,E)3}TH/!Ihf4{=YpC W7T’vC`ȎXʞ:*l61sz}HaR?0lZBvd^-=aIGwDVoٷv"dJo}Yǝ8OK(E^Sim1>XgK]`a%n㪽;s<߯ C~*QWd6Z"$v6G)AZ/S'RQK0nwccXڜ$ S $=RA7?7;Z0d?ñ9rvI^8P>m?Pg_^ֺ&XIlkPU𥳦0ulqq>]̇>*- 0}j9fq?,,-ΜӓYveB v41~n,wDJքDJm`2Znu盼pͦ|rݎ6z|5on չح$Z'y3G|=t. Q?#Kc֍ü4y WvŔb&I0N8N(r:|>JKK)--rq|>0HdP=D"T%kw聰o\ts&=F~qi,Mu;ںw0eP4/X˓mG9J`joFtttJ[[`D"Á르2JJJx<Ƚ%N^$g+=9xmH4~a iXB^Ȯ|=WgE^$kYgEX権m }ÏAhkk#҅4a^/#'Kb!ppX/$);3:K;>sL _[x{ui:iY@,vf$ޑ`,ʆ-RuH$fq[[[,6|,.++,,Jblȝ#_^.z YZdz4Ue)rK )u(Jv=5Go׶R̕ʒ;YL #%صh,(ewH A*$ŚQg Hv:M^Y#F{BE/ͶM1ӎ׶sr_<߿c7H`5]ld}r&LR"Iu|nOk CoɤƎ]-ttt5B ǃ׫1fdęQo=$ p܌J;I]$lkR"ya4!`>fIO8oIBdNgC v޿0}>ߐŃEO$(Ӑee/92͔eu?p,fp y3/ Ieos$|HD)R$=^nwA$D"'oعsPM׶g I׊:xe{A^8P7o4$ IX%ށIմUCUw$BH4k`(\)% H**>| &ɂ#/ f`2Li9@XBIDF:5XM(Vflnbݴ"O+;ӟ&Aǎf݇#zk$o(hsQ^+U{w_?M($,\B<.+㫽9P OW  AHv@S{"15\qʱ|쩘[$5lӞ Yw[-2NBK*ug[U%W&QhkkKBGo҅;p5.95榖x:vOtCvϩӣ [l2;C53~"&PU塼܍i]j[[[ ߀m6$ĺ{ zVZz}{wla 5^XPk!jƗpʼ.k&eFʜ(/bn7VUUb1dqap="0މR7?7 ӼRJC,= 5^BisSwt2gL+kqd^NuUQZlri)QeXPH$EF ]:m zy22IlR K詝!~I'OS&"h@Һ~!`Oc^P?|nN$aBM߼d&^)$eM걩AkyֶeS&2kfE)*YT"ju#HYY!)2`Z==ur)n,KzDIW" #r6<3EEE&Ip{xRrhP`t'k {"$jN*@XB(DUU\.'~FS-l9-4DH$8tC Y)xV~Zti#UxV>$nt6e~g?׫_QfX;I$[ L\:莊Ǝktub̪lj]za_Ht'`{bI[ĬpI\8ëbeCvim8^|~<||xf)&Mnۍ5nJy;^.˺i>Ldx<U%?wTfhzSAfliC4\pxv4w̚gaZ.nYLІ;$iW6vbkp$q&yeÑƵڥ Lw?hؓ;P薡,[Lp5[g"6bI$Hi"XQ$0l8Jс(Þ4M#F\flGC$U% ز,cwIRts$jx4ܥYO-$N&޻B ֹB*+?ir3'E=+??0:G$cph>I {#Qt26o>hZzwLW =Iy6?_U&L8|N=Hcn~pޣͬzLqbANl+v-*"HJbtAIwB<N$J,J2@ 2J3`: w Q6ȫi^s29awP .g#ňb W3nVoB'y%ֱH9_*zWCk_>zp8F70Cn#YPb: *$Btݲᇂ~43HfG ii;TAIf wo%׋$Iw'vm|j%ӍF6jaOx-Mޞ[AI\2 Abr . 7-ks6g:k9Kwy =QIh4% f95FӥFM|O\#s`ۇ v6ȫjA'dϠxcޡ 0fN$N1"q4Mjvq\^CfP<3y{ԲX,idO%V5=wP5ELsvg3P8lH$5ÙHL&|ء( 4~7ti9&Ñs{C9;To"`vX8Atxނ$|>Ng%x<ݐء3@pX3#?7\LfŒv}ap')b#ŔYPt:NO%-K,-4 4g{>RkC H` S7L̊$M@ &>A_f飡y>k Ӝ6H,IG߭|rp82 J740CI_52L\cXH%Yz*% $q5|\PMaǑ; UAIfݲױ|2/aGӼWd4OڰS0j,ޫ Ϫi U# ~GSc1h˱%.&4UU@rFQPbY"no##d Eߏ6Mir!aEBI{7ǴnXG%AGq ޱ(yshXA7=G?E'2߮#kF٧?)FYt((-bwj ;y;) ];*t0^z|;]dv=CZ2y`f !Y,h$; o Yuɵ9B5 DR%RI$tVTަ0vw>Hk0NJp;Ԗ6)c=N,LlIs&Ldͷ* 1'B eyaIB,4n63fPi#NCc(pGm6MPa8p SƇx͝n?M1)UԎ>/bp;LqƂ\px&`O e1BT/<'g< D4 ˕.0*zK1 gH kVO{-1|Ra4M`TH wF3nji唕t5yoۻh%$}z,I;Gb v{gΛFE 1qwLJw,VwvS@9Dޞ8,:-KbݷYXa: TY R>#)6nnao}9*L%mxSm$&m ?|̪ |Ty;gyyʪj\hJxK J,_Aߥi'Yªr}A__YmąBb6;EF<WE@{#?/mO=I'0veͪ>d[i{'L"Nz$]m#Di^l?$q{,K$*OU~"5P`!SU Q\4m7{%}á]H}j-y>,iAE d-%1K^Ou MUHvswlO_goן Xq͘[t2S>8X7Rxe[yE`fdY☣XM!pS{zxɛyB31at)^83!m6^Ex3ʪ.v7ѧO~_DM+?! a}zv>D`(]% $XDbXB`x8jי,+zVβreT-8ɟ<O=Hbmj2/S*i, xS6niM7[hBnc3N&OEjG^B6I҃`=MY43Njqwy3aq8|ɥ̽N2}L?,|m BQR]$(A;+77߼ ߄w}LJi$ͯ]SJc|J4@ @,K) m1ohN`YD8K4koS@3aA$DJ٠s:s/_$1K:CKD*$:$IiHt=C)ԯT5F-9_yXŬ.}=e,ظҴft蠭6 xK; 歭#IS'JD[{:>VV a_k;OLxgM#w_0PH2ۊ{YHhB*keoQрRJ>=݆tRRRjo)V)%.G]s-z1Jv>( Bp8(--׋D$$pvhooׇ'hJ(>H. !صDB8Y8IF3F I`w7CY#@SFSUZ׭ES.j C\TTDqq1eeeiB/31AݻS9G.Iٍ\͊Mv7L} MOM%C giv_~VNހ&AQ8rgR\. "Fј8K' $1j)ؽ^L$B{v z-4:8^/%%%RRRBQQQC5 J[* ]! ]9L$^UDK[dJJ*ax.I-4OM-[6$DPlݓ*RP !DցM蔚QP4E25v>ڽs ͆5%Lcu=pkbB!DZ0 ɌS,X"֟tѣ)$)1lϪUx'n\6l&u{(P-0C),4Ibm9Ȳӑ{˕1+Ֆq;9ۅrW0 Dдۚ(J'FK,Nݞub0,}v""FWZđ IYKqXH2ujHQls;X?L8?lضD[k0!Xu5Psca nҒ솷guv^; gU};fWe ֙Ѧ,1$F>*H,ݿ%ֿGi4!=˝ueUYfW",I,=a,~ q3+=XP(t}l2!2uv hkkK zrφĒ,ؾm[}}>#?łLl߲naĒ6 S&ffO*Ǚ Evt.14~_A  #PZVhifߛo+jY#X"$ome_D1d=4gfR ㊩)2uB0~\155/)펬 l|̞TjZՊ$eMfs;7*$Y:Q3K_[@Cc+֯WQEq:YX$vM̪J]|)|~h$ =^/cN?Q$YF 42"/MQ4b`KxQ@'IBU4} 㮮FF6'D{;BS}WLU~l9m,YuI]otژ4Y3+\oz %{"^p/O5[ (8hGdjK=<ϟ6Sʐ%P(D8NU qg/ec :GU%N,21 1} D:/2)/K+)_d*Ӧ}%./Nh U2byT1qB >W9 l\ y`Vh =N+ef+)ev uv!1xnjaƗßHdؓ"ĉddryG Bwg# C2}j]eTMh`(I8ܑȁg崦:M\ `83c#E@90t#ĒĤK>Gii@63 5Rpw;bx( IE;Ef^ z?@bEfNix4-ݻHi,V&,:%sPB^(aX|l|ʥvSXt/@2Ge6D"'|BMF"nGl !H$tttQ;y?OO\4*βrJ0P&AnӿKePC'|׿un>+p, ^#\},[q$I' )T*E4l٪qݸ/c3%ڿ.B :GzV;7BU|q)~Rs"F}T6>m[iW,N'-dU_eigǨ2Nسg==uuumV`3Mg?uK/8`XVHdʰ.MUD;GwBC頻ܫcH7&(XV\.n;xjjY1ϲٿ{Di:Mlœ2xkhYMQ;i?u;VhbڗBɟadzO ܁~ϑ$.JøΡv8MȜPPtmva]zqWĒITÁt0FJс&e=ցB"{$[لTE! H$~V+,z,ihSΟ4M EQ(---mźuo~ÓO>I[[^!?ݓ %,[QF"8c3vDMjxL15!hkmEQ*#N&:N&aX(++&tCC?0> ;tihݭXI/zZF_@eGG_;r0aB^F^5M#LJlC˄AP($I$O$X,<OZ,` ( iZy(!2vEQH$(n7`xD"upr-<裴7Y <WdڵTUU1f̘!B^Mӈu TJ*2s 04$F(VhEQxw۸{صkBO;}C֨ƀOQEQ&mڴsϱo>ƏOEEŐ.$VTp88X MVKzS0p8=4'9P(D$A4>Ǔr +ɤ$6oy͛;Q-K\k@є)S׿ΕW^IU4-ZB/`Ǿi`&v5ta&xY0GW3%ܝ^Gvj=N|8' lz Bc0c)d Tz]YX6JJrL477cqyftSy0 l.p6ppb.\nK2c&wwc^9:(Ha"1 gLfteQȫ*X,mY,n톅H`I66{hc3 -IUlee\㦗rQ̝VX,Ƌ/ywQ /۬YZ`sod…CfTU5]niL3^M^{#K3M$1{R)^1S|D"ϛ81Lh4J3%t:?+TLoW>'I"9ڵmBPYsL3*- i|w}7[4efmQte@IR֯_yhnnf„ ~*]2|bIy1ExZKbho~n0uC=JRR)TUf҇|+xw~Rwt$(B"Wds+w1c|1%A;vp]w{d2?Vt9b}g[W_8{^}U&Ms;UEO]Ik >6$)I̘RpPgjT2 ߣ߯'aoSc뻻1꭭̙\ם~[n~P(C܊NwL @mss_~Y)--eܸq&M*wײ%uG㍿!¢Y8, ϕe|`Q9v>X=\A6^du/ַ~Gcc^|;3taW)`ެiĝ;w>l۶1cPSS]e$Dn>(֨8| = ,}g}^ˌ3yJ(ļ<+E¥Т ÚX1͛yijjţV(cb񖖖k.c{EIm\腀QJ|CߑP$ !@U,V e-Ydj,_ /_W455E'ПR䅡^Dikkꫯ^ &qd6֖ Nϩ7Xw#I5ٶm;G~_fnm$hl}99P\`ө*ıX{[o?455{+vR~n_(D'Ā/z;3O?U(I_^߮GM9ivޜ<Ϧj `˶6v  %:w9Xd|>3eR.cUPQ좩=jiB0}\1kz !)-Q;pwDAĉˋ]ζSwaM>3ODUR ,)UUmG;ˮq=g/)%b aμ|Ev6`îv-$,7ܹ}{2?I2p#C}ݴlqĉnVo~@$2AՄͷ0Q.D"tNq$)EXv?j$MرX} !$$s4/Xdb?gj \-Mk#<-_WBP=-AL :@OlF777׾G}-#!bCjgAʭW͹mc"}huJd6̀ VkbͺΖ@?$I)"SY򝸺M8MͦOc/1So/?444h9ہ;%-!3 $9 [l-dO;aڠTMv ^x_]: UFeV+ӉH TU%Ju!i9+P^Ht(;).ځq,1c| ز'՚6~pT$V;'?!;P7T8l .[| ]8iծ^xh$ĥǨJ6j'49qPſ~_;o:$aX GiAfcwN&iy;s0{D옒ʂ7|;osܬj?m>qBckD wh+KYd8NN'6 Yݽ?;Ma+IX FUen5=s¬j4!ض7@,"qh^Gc/%yp-?ِ_nVyDa?z2!q\:eykM3ni=F4iY8T;YU]"@UUdzɲ&A}4/ԋJg6 #?FVVlh#'JT"QUpgZK/L"X>) 60}W1%\~e\oP;v b$R*R2e>GND"&'d6V u!^y}WD6̙M(g vƾ(ф팭.b޴ YIS4?7˫Rh(pظcЧI\ &L5\}UTU4MKwi4Qb`ز#국98p(1#rBJш'U)I݊ii??l۾tYi~ >p_h@ }_or8qbƔfA0=ݣv [U !NF*)YavZq;1yin[MD+z{8H#0'+_|E֮]Kuu5Gkwނ`D{PRdXޮ7{mwΝ;Bl@Cכ&8 l njDƴƍ7{7l )G-[|GRo[TwH&vuľ'NXb_&J1i$|c:z:e_}U2~ ] $IL\JyB2?2еGDP!pW(Ft"7!&ٳ^`ӦM5QFM>ih9R ʜYx,Ɂӧ?g?[nEӴρ2m[ #T*5iݺu]d%%%C~RvpYBPSUČC2;v=mݖ){a**o([|}b|\bQ59UT YhooG[o婧2d~/o0BCCCy=4 b.-f[d%JĶBƌ1wN!겙L&:e~2f #?ZݡMӴ;v(yپ};cǎ:*S䱳!L2e]!x,:~!h'`i~ׯGӴ=  PaG!3dWZz L4 ?yԢ";N4B\. IU]]˗/;:x2p #< bz[oi$ JKx6ZZ$w~!> F1a|IN뫃`zߟ':::oq G!:Nofɒ%9okQFF!6Z_΃VTz˗/A}ه!!.[SRRe]u]ٳsɤJ w%W4 ^[-tXp3iB cFyoO} \.śo)E7ﲆ(^zp}݀n{G00 o6m7-[[oUTUUmDo:%ߋ=2p8o(N*^|hnn˗/ӧO7kL;Nob'|xꩧD47?{E,Ƚ#8GжC,]TK"LdRNuW"G0u(--^{Xv!ɻ~zq׋2{F0# p,( &N(No߾(.1ydAv6 K= 1.0.0) Suggests: mockery, testthat Encoding: UTF-8 RoxygenNote: 7.0.1 NeedsCompilation: no Packaged: 2019-12-03 13:06:39 UTC; maelle Author: Gábor Csárdi [aut, cre], Jeroen Ooms [ctb], R Consortium [fnd] Maintainer: Gábor Csárdi Repository: CRAN Date/Publication: 2019-12-03 13:50:02 UTC rversions/tests/0000755000176200001440000000000013453610145013450 5ustar liggesusersrversions/tests/testthat/0000755000176200001440000000000013571464012015311 5ustar liggesusersrversions/tests/testthat/test-rversions.R0000644000176200001440000000217713462545670020463 0ustar liggesuserscontext("rversions") RE_DASH <- "^[0-9]+-[0-9]+(-[0-9]+)?$" RE_DOT <- "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$" test_that("versions", { d <- r_versions() expect_is(d, "data.frame") expect_equal(names(d), c("version", "date", "nickname")) expect_is(d$version, "character") expect_is(d$date, "POSIXt") }) test_that("dots", { expect_match(tail(r_versions(FALSE)$version, 1), RE_DASH) expect_match(tail(r_versions(TRUE)$version, 1), RE_DOT) expect_equal(gsub("-", ".", r_versions(FALSE)$version), r_versions(TRUE)$version) }) test_that("r_release respects dots", { expect_match(r_release(TRUE)$version, RE_DOT) expect_match(r_release(FALSE)$version, RE_DASH) }) test_that("r_oldrel respects dots", { expect_match(r_oldrel(TRUE)$version, RE_DOT) expect_match(r_oldrel(FALSE)$version, RE_DASH) }) test_that("on-demand nickname update", { d <- r_versions() nicks <- cached_nicks() ## We add foobar to make sure that mocking is in place nicks[length(nicks) - 3] <- "foobar" d$nickname[length(nicks) - 3] <- "foobar" mockery::stub(r_versions, "cached_nicks", head(nicks, -2)) expect_equal(d, r_versions()) }) rversions/tests/testthat.R0000644000176200001440000000007613453610145015436 0ustar liggesuserslibrary(testthat) library(rversions) test_check("rversions") rversions/R/0000755000176200001440000000000013571442171012512 5ustar liggesusersrversions/R/nicks.R0000644000176200001440000000722613571443440013753 0ustar liggesusers cached_nicks <- function() { c("0.60" = NA, "0.61" = NA, "0.61.1" = NA, "0.61.2" = NA, "0.61.3" = NA, "0.62" = NA, "0.62.1" = NA, "0.62.2" = NA, "0.62.3" = NA, "0.62.4" = NA, "0.63" = NA, "0.63.1" = NA, "0.63.2" = NA, "0.63.3" = NA, "0.64" = NA, "0.64.1" = NA, "0.64.2" = NA, "0.65" = NA, "0.65.1" = NA, "0.90" = NA, "0.90.1" = NA, "0.99" = NA, "1.0" = NA, "1.0.1" = NA, "1.1" = NA, "1.1.1" = NA, "1.2" = NA, "1.2.1" = NA, "1.2.2" = NA, "1.2.3" = NA, "1.3" = NA, "1.3.1" = NA, "1.4" = NA, "1.4.1" = NA, "1.5.0" = NA, "1.5.1" = NA, "1.6.0" = NA, "1.6.1" = NA, "1.6.2" = NA, "1.7.0" = NA, "1.7.1" = NA, "1.8.0" = NA, "1.8.1" = NA, "1.9.0" = NA, "1.9.1" = NA, "2.0.0" = NA, "2.0.1" = NA, "2.1.0" = NA, "2.1.1" = NA, "2.2.0" = NA, "2.2.1" = NA, "2.3.0" = NA, "2.3.1" = NA, "2.4.0" = NA, "2.4.1" = NA, "2.5.0" = NA, "2.5.1" = NA, "2.6.0" = NA, "2.6.1" = NA, "2.6.2" = NA, "2.7.0" = NA, "2.7.1" = NA, "2.7.2" = NA, "2.8.0" = NA, "2.8.1" = NA, "2.9.0" = NA, "2.9.1" = NA, "2.9.2" = NA, "2.10.0" = NA, "2.10.1" = NA, "2.11.0" = NA, "2.11.1" = NA, "2.12.0" = NA, "2.12.1" = NA, "2.12.2" = NA, "2.13.0" = NA, "2.13.1" = NA, "2.13.2" = NA, "2.14.0" = "Great Pumpkin", "2.14.1" = "December Snowflakes", "2.14.2" = "Gift-Getting Season", "2.15.0" = "Easter Beagle", "2.15.1" = "Roasted Marshmallows", "2.15.2" = "Trick or Treat", "2.15.3" = "Security Blanket", "3.0.0" = "Masked Marvel", "3.0.1" = "Good Sport", "3.0.2" = "Frisbee Sailing", "3.0.3" = "Warm Puppy", "3.1.0" = "Spring Dance", "3.1.1" = "Sock it to Me", "3.1.2" = "Pumpkin Helmet", "3.1.3" = "Smooth Sidewalk", "3.2.0" = "Full of Ingredients", "3.2.1" = "World-Famous Astronaut", "3.2.2" = "Fire Safety", "3.2.3" = "Wooden Christmas-Tree", "3.2.4" = "Very Secure Dishes", "3.2.5" = "Very, Very Secure Dishes", "3.3.0" = "Supposedly Educational", "3.3.1" = "Bug in Your Hair", "3.3.2" = "Sincere Pumpkin Patch", "3.3.3" = "Another Canoe", "3.4.0" = "You Stupid Darkness", "3.4.1" = "Single Candle", "3.4.2" = "Short Summer", "3.4.3" = "Kite-Eating Tree", "3.4.4" = "Someone to Lean On", "3.5.0" = "Joy in Playing", "3.5.1" = "Feather Spray", "3.5.2" = "Eggshell Igloo", "3.5.3" = "Great Truth", "3.6.0" = "Planting of a Tree", "3.6.1" = "Action of the Toes") } get_nicknames <- function(vers = r_versions(dots = TRUE)$version) { dash_vers <- gsub(".", "-", vers, fixed = TRUE) first_nick <- match("2-15-0", dash_vers) if (is.na(first_nick)) first_nick <- 1L urls <- sprintf( "https://svn.r-project.org/R/tags/R-%s/VERSION-NICK", dash_vers[first_nick:length(dash_vers)]) nicks <- fetch_all(urls) res <- rep(NA_character_, length(dash_vers)) names(res)[first_nick:length(dash_vers)] <- urls res[names(nicks)] <- unname(nicks) structure(unlist(unname(res)), names = vers) } fetch_all <- function(urls) { pool <- curl::new_pool(total_con = 100, host_con = 6, multiplex = TRUE) results <- list() lapply(urls, function(u) { h <- curl::new_handle(url = u) curl::multi_add( h, pool = pool, done = function(resp) results[[u]] <<- resp, fail = function(err) results[[u]] <<- err) }) curl::multi_run(pool = pool) lapply_named(results, get_content) } get_content <- function(response, url) { if (!is.list(response) || is.null(response$content)) { stop("Failed to download ", squote(url)) } str_trim(rawToChar(response$content)) } lapply_named <- function(X, FUN, ...) { mapply(FUN, X, names(X), ..., SIMPLIFY = FALSE) } str_trim <- function(x) { sub("\\s$", "", sub("^\\s", "", x)) } squote <- function(x) { paste0("'", x, "'") } rversions/R/urls.R0000644000176200001440000000071713475716021013630 0ustar liggesusersr_svn_url <- function() { "https://svn.r-project.org/R/tags/" } cran_url <- function() { if (nzchar(Sys.getenv("R_RVERSIONS_CRAN_URL"))){ Sys.getenv("R_RVERSIONS_CRAN_URL") } else { "https://cran.r-project.org" } } r_download_url <- function() { paste0(cran_url(), "/src/base/R-3/") } r_win_download_url <- function() { paste0(cran_url(), "/bin/windows/base/") } r_macos_download_url <- function() { paste0(cran_url(), "/bin/macosx/") } rversions/R/rversions-package.R0000644000176200001440000000051013453610145016251 0ustar liggesusers#' @details The R version numbers and dates are extracted from the #' main R SVN repository at . #' @keywords internal "_PACKAGE" # The following block is used by usethis to automatically manage # roxygen namespace tags. Modify with care! ## usethis namespace: start ## usethis namespace: end NULL rversions/R/macos.R0000644000176200001440000000123113475716021013735 0ustar liggesusers #' Latest R release with a macOS installer available for download #' #' [r_release()] works based on the SVN tags in the main R source code #' repository. However, an SVN tag does not mean that the same version #' is available for download. `r_release_macos` returns the latest #' version for which a macOS installer is available. #' #' @return A one row data frame, with columns \sQuote{version}, #' \sQuote{date}, \sQuote{URL} and \sQuote{nickname}. #' #' @family R downloads #' @export #' @importFrom curl new_handle handle_setopt #' @examples #' r_release() #' r_release_macos() r_release_macos <- function() { keep_head(r_macos_download_url(), ".pkg") } rversions/R/keep-head.R0000644000176200001440000000130713453610145014456 0ustar liggesusers keep_head <- function(base_url, extension) { versions <- tail(r_versions(dots = TRUE), 3) handle <- new_handle() handle_setopt(handle, customrequest = "HEAD") handle_setopt(handle, nobody = TRUE) for (v in nrow(versions):1) { filename <- paste0("R-", versions[v, "version"], extension) url <- paste0(base_url, filename) resp <- curl_fetch_memory(url, handle = handle) if (resp$status_code == 200) { df <- versions[v, , drop = FALSE] df$URL <- url othercols <- setdiff(colnames(df), c("version", "date", "URL")) df <- df[, c("version", "date", "URL", othercols)] return(df) } } stop("Cannot find R-release version to download", call. = FALSE) } rversions/R/win.R0000644000176200001440000000123113475716021013430 0ustar liggesusers #' Latest R release with a Windows installer available for download #' #' [r_release()] works based on the SVN tags in the main R source code #' repository. However, an SVN tag does not mean that the same version #' is available for download. `r_release_win` returns the latest #' version for which a Windows installer is available. #' #' @return A one row data frame, with columns \sQuote{version}, #' \sQuote{date}, \sQuote{URL} and \sQuote{nickname}. #' #' @family R downloads #' @export #' @importFrom curl new_handle handle_setopt #' @examples #' r_release() #' r_release_win() r_release_win <- function() { keep_head(r_win_download_url(), "-win.exe") } rversions/R/tarball.R0000644000176200001440000000124013475716021014254 0ustar liggesusers #' Latest release for which a source tarball is available for download #' #' [r_release()] works based on the SVN tags in the main R source code #' repository. However, an SVN tag does not mean that the same version #' is available for download. `r_release_tarball` returns the latest #' version for which a source tarball is available. #' #' @return A one row data frame, with columns \sQuote{version}, #' \sQuote{date}, \sQuote{URL} and \sQuote{nickname}. #' #' @export #' @family R downloads #' @importFrom curl new_handle handle_setopt #' @examples #' r_release() #' r_release_tarball() r_release_tarball <- function() { keep_head(r_download_url(), ".tar.gz") } rversions/R/rversions.R0000644000176200001440000000614313571456550014701 0ustar liggesusers #' Query R's past and present versions #' #' R version numbers consist of three numbers (since version 1.4.1): #' major, minor and patch. #' #' We extract the version numbers from the tags in the SVN repository. #' #' @param dots Whether to use dots instead of dashes in the version #' number. #' @return A data frame with three columns: \sQuote{version}, #' \sQuote{date} and \sQuote{nickname}. #' #' @export #' @importFrom curl new_handle handle_setheaders curl_fetch_memory #' @importFrom xml2 read_xml xml_find_all xml_ns xml_find_first xml_text #' @examples #' r_versions() r_versions <- function(dots = TRUE) { df <- r_versions_fetch() dotver <- gsub('-', '.', df$version) if (dots) df$version <- dotver nicks <- cached_nicks() nonick <- setdiff(dotver, names(nicks)) if (length(nonick)) nicks <- c(nicks, get_nicknames(nonick)) df$date <- as.POSIXct( strptime(df$date, "%Y-%m-%dT%H:%M:%S", tz = "UTC") ) df$nickname <- rep(NA_character_, nrow(df)) df$nickname[match(names(nicks), dotver)] <- nicks df } #' Version number of R-release #' #' The latest tag in the SVN repository (in terms of version numbers, #' not dates). #' #' @inheritParams r_versions #' @return A one row data frame, with columns \sQuote{version}, #' \sQuote{date} and \sQuote{nickname}. #' #' @export #' @importFrom utils tail #' @examples #' r_release() r_release <- function(dots = TRUE) { tail(r_versions(dots), 1) } #' Version number of R-oldrel #' #' R-oldrel is the latest version of the previous minor version. #' We extract version numbers from the R SVN repository tags. #' #' @inheritParams r_versions #' @return A one row data frame, with columns \sQuote{version}, #' \sQuote{date} and \sQuote{nickname}. #' #' @export #' @importFrom utils tail #' @examples #' r_oldrel() r_oldrel <- function(dots = TRUE) { versions <- r_versions(dots) version_strs <- package_version(versions$version) major <- version_strs$major minor <- version_strs$minor major_minor <- paste(major, sep = ".", minor) latest <- tail(major_minor, 1) tail(versions[ major_minor != latest, ], 1) } cache <- new.env(parent = emptyenv()) r_versions_fetch <- function() { if (is.null(cache$versions)) { # issue http request to svn h <- handle_setheaders(new_handle(customrequest = "PROPFIND"), Depth="1") req <- curl_fetch_memory(r_svn_url(), handle = h) # extract xml nodes doc <- read_xml(rawToChar(req$content)) prop <- xml_find_all(doc, ".//D:propstat/D:prop", xml_ns(doc)) # extract dates and tages dates <- xml_text(xml_find_first(prop, ".//D:creationdate", xml_ns(doc))) tags <- xml_text(xml_find_first(prop, ".//D:getetag", xml_ns(doc))) tags <- sub("^.*/tags/R-([-0-9]+).*$", "\\1", tags) # filter out working branches is_release <- grepl("^[0-9]+-[0-9]+(-[0-9]+|)$", tags) tags <- tags[is_release] dates <- dates[is_release] # output structure versions <- data.frame( stringsAsFactors = FALSE, version = tags, date = dates ) df <- versions[order(package_version(tags)), ] rownames(df) <- NULL cache$versions <- df } cache$versions } rversions/NEWS.md0000644000176200001440000000150013571455131013403 0ustar liggesusers# rversions 2.0.1 * The date columns of all data.frames is now POSIXt, POSIXct, not POSIXlt, so you can convert the data.frames with `tibble::as_tibble()` directly (#20, @espinielli). # rversions 2.0.0 ## Breaking change * `r_versions()` and all other functions now parse the date, so the date column is a POSIXt, not a character (#13). # rversions 1.1.0 * All function outputs now also have a column with version nickname(s). * R versions are now cached within each R session (@richfitz, #6). # rversions 1.0.3 * Use `xml2::xml_find_first` instead of deprecated `xml2::xml_find_one` (Thanks to @jimhester) # rversions 1.0.2 * Explicit import from base packages # rversions 1.0.1 * Rewritten using `xml2` and `curl` instead of `XML` and `RCurl` (Thanks to @jeroenooms) # rversions 1.0.0 First released version. rversions/MD50000644000176200001440000000225413571464012012622 0ustar liggesusers136ee0153c236c8a565b0a314949c055 *DESCRIPTION 5f280a0a0733885f0e433fa66e8ef4dc *LICENSE 905e31df3a91be313b0cee59828d7205 *NAMESPACE bea6362e33b23450b115976c4065d59c *NEWS.md d9945a6edc9adc6c61734268bc1fecf2 *R/keep-head.R 91a1394d8432ee0f1de8d452c0f9a695 *R/macos.R 09b18ecbbd7c103d45cd6f10b88e3d41 *R/nicks.R 26a0e85d77c3f258997c5c82a69a60ac *R/rversions-package.R 078194eb4e7aeec533d6258649a42634 *R/rversions.R 3be02072914e89fc64cb00e897156f4c *R/tarball.R 446eac612dadde3a3c058acea211c1f0 *R/urls.R 1091ffd506943110909c1e99fe2cd62f *R/win.R bea6362e33b23450b115976c4065d59c *inst/NEWS.md bff14b459d1c6560b2b8512489932b6c *inst/README.md ad9e2a775fa25e5e4a81289e09e74809 *man/figures/logo.png 15afa84df9bae0aeff809ba3753e13a7 *man/r_oldrel.Rd 521ad80fa7118aa0db9d64a8614dfd93 *man/r_release.Rd c5e30285761f746f5c9da15d2fbd3e8c *man/r_release_macos.Rd 199b7a219a3a3e2e768c77c175135568 *man/r_release_tarball.Rd 0ac02ae30c994875d89a1147ac6cf7ca *man/r_release_win.Rd 68584cc5afe40c6e4cda1127a1052245 *man/r_versions.Rd d2026142ce6d427b10a3a101a968dfb8 *man/rversions-package.Rd 0d8c191648d222a39341af8e214bb202 *tests/testthat.R b75d0a385bd6483778db8b1c13669fec *tests/testthat/test-rversions.R rversions/inst/0000755000176200001440000000000013571442171013266 5ustar liggesusersrversions/inst/README.md0000644000176200001440000002222713571442212014546 0ustar liggesusers # rversions > Past and present R versions [![Linux Build Status](https://travis-ci.org/r-hub/rversions.svg?branch=master)](https://travis-ci.org/r-hub/rversions) [![Windows Build status](https://ci.appveyor.com/api/projects/status/github/r-hub/rversions?svg=true)](https://ci.appveyor.com/project/gaborcsardi/rversions) [![CRAN RStudio mirror downloads](http://cranlogs.r-pkg.org/badges/rversions)](http://r-pkg.org/pkg/rversions) [![CRAN version](http://www.r-pkg.org/badges/version/rversions)](http://r-pkg.org/pkg/rversions) [![CRAN checks](https://cranchecks.info/badges/summary/rversions)](https://cran.r-project.org/web/checks/check_results_rversions.html) [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/r-hub/community) [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) The R version numbers and dates are extracted from the main R SVN repository at . `rversions` is in particular useful for determining at any given moment what versions “R-release” and “R-oldrel” refer to. This is useful for e.g. [R-hub](https://docs.r-hub.io/). ## Installation ``` r install.packages("rversions") ``` ## Usage ### R-release and R-oldrel ``` r library(rversions) r_release() ``` #> version date nickname #> 114 3.6.1 2019-07-05 07:05:03 Action of the Toes ``` r r_oldrel() ``` #> version date nickname #> 112 3.5.3 2019-03-11 08:04:49 Great Truth ### All R versions and release dates ``` r r_versions() ``` #> version date nickname #> 1 0.60 1997-12-04 08:47:58 #> 2 0.61 1997-12-21 13:09:22 #> 3 0.61.1 1998-01-10 00:31:55 #> 4 0.61.2 1998-03-14 19:25:55 #> 5 0.61.3 1998-05-02 07:58:17 #> 6 0.62 1998-06-14 12:56:20 #> 7 0.62.1 1998-06-14 22:13:25 #> 8 0.62.2 1998-07-10 11:13:45 #> 9 0.62.3 1998-08-28 09:02:19 #> 10 0.62.4 1998-10-23 12:08:41 #> 11 0.63 1998-11-13 14:37:19 #> 12 0.63.1 1998-12-04 13:06:28 #> 13 0.63.2 1999-01-11 12:55:50 #> 14 0.63.3 1999-03-05 14:27:14 #> 15 0.64 1999-04-07 13:19:41 #> 16 0.64.1 1999-05-07 13:25:43 #> 17 0.64.2 1999-07-02 12:23:15 #> 18 0.65 1999-08-27 10:29:29 #> 19 0.65.1 1999-10-06 12:13:04 #> 20 0.90 1999-11-22 12:25:14 #> 21 0.90.1 1999-12-15 12:29:07 #> 22 0.99 2000-02-07 11:24:50 #> 23 1.0 2000-02-29 08:55:23 #> 24 1.0.1 2000-04-14 08:44:18 #> 25 1.1 2000-06-15 08:43:21 #> 26 1.1.1 2000-08-15 08:54:18 #> 27 1.2 2000-12-15 10:19:25 #> 28 1.2.1 2001-01-15 10:18:01 #> 29 1.2.2 2001-02-26 12:43:25 #> 30 1.2.3 2001-04-26 11:29:47 #> 31 1.3 2001-06-22 10:41:02 #> 32 1.3.1 2001-08-31 12:45:52 #> 33 1.4 2001-12-19 10:14:54 #> 34 1.4.1 2002-01-30 11:57:35 #> 35 1.5.0 2002-04-29 10:01:26 #> 36 1.5.1 2002-06-17 11:20:33 #> 37 1.6.0 2002-10-01 10:06:31 #> 38 1.6.1 2002-11-01 10:33:17 #> 39 1.6.2 2003-01-10 15:34:34 #> 40 1.7.0 2003-04-16 12:58:07 #> 41 1.7.1 2003-06-16 09:54:39 #> 42 1.8.0 2003-10-08 11:13:59 #> 43 1.8.1 2003-11-21 12:00:21 #> 44 1.9.0 2004-04-12 10:36:38 #> 45 1.9.1 2004-06-21 11:09:39 #> 46 2.0.0 2004-10-04 14:24:38 #> 47 2.0.1 2004-11-15 14:16:30 #> 48 2.1.0 2005-04-18 22:26:33 #> 49 2.1.1 2005-06-20 09:27:13 #> 50 2.2.0 2005-10-06 10:22:14 #> 51 2.2.1 2005-12-20 10:35:21 #> 52 2.3.0 2006-04-24 10:37:20 #> 53 2.3.1 2006-06-01 08:25:33 #> 54 2.4.0 2006-10-03 10:15:04 #> 55 2.4.1 2006-12-18 09:49:23 #> 56 2.5.0 2007-04-24 09:41:43 #> 57 2.5.1 2007-06-28 11:17:06 #> 58 2.6.0 2007-10-03 09:02:53 #> 59 2.6.1 2007-11-26 14:14:04 #> 60 2.6.2 2008-02-08 11:10:05 #> 61 2.7.0 2008-04-22 07:45:29 #> 62 2.7.1 2008-06-23 07:44:32 #> 63 2.7.2 2008-08-25 08:53:56 #> 64 2.8.0 2008-10-20 09:24:01 #> 65 2.8.1 2008-12-22 09:03:17 #> 66 2.9.0 2009-04-17 08:32:48 #> 67 2.9.1 2009-06-26 12:10:57 #> 68 2.9.2 2009-08-24 08:22:34 #> 69 2.10.0 2009-10-26 09:02:22 #> 70 2.10.1 2009-12-14 10:28:24 #> 71 2.11.0 2010-04-22 08:11:21 #> 72 2.11.1 2010-05-31 08:10:25 #> 73 2.12.0 2010-10-15 08:41:57 #> 74 2.12.1 2010-12-16 09:12:04 #> 75 2.12.2 2011-02-25 11:07:19 #> 76 2.13.0 2011-04-13 08:31:27 #> 77 2.13.1 2011-07-08 09:37:08 #> 78 2.13.2 2011-09-30 07:05:56 #> 79 2.14.0 2011-10-31 08:09:09 Great Pumpkin #> 80 2.14.1 2011-12-22 08:10:18 December Snowflakes #> 81 2.14.2 2012-02-29 08:10:10 Gift-Getting Season #> 82 2.15.0 2012-03-30 07:16:05 Easter Beagle #> 83 2.15.1 2012-06-22 07:09:44 Roasted Marshmallows #> 84 2.15.2 2012-10-26 07:11:16 Trick or Treat #> 85 2.15.3 2013-03-01 08:28:29 Security Blanket #> 86 3.0.0 2013-04-03 07:12:36 Masked Marvel #> 87 3.0.1 2013-05-16 07:11:33 Good Sport #> 88 3.0.2 2013-09-25 07:11:09 Frisbee Sailing #> 89 3.0.3 2014-03-06 08:12:33 Warm Puppy #> 90 3.1.0 2014-04-10 07:11:10 Spring Dance #> 91 3.1.1 2014-07-10 07:11:09 Sock it to Me #> 92 3.1.2 2014-10-31 08:11:32 Pumpkin Helmet #> 93 3.1.3 2015-03-09 08:12:20 Smooth Sidewalk #> 94 3.2.0 2015-04-16 07:13:33 Full of Ingredients #> 95 3.2.1 2015-06-18 07:15:04 World-Famous Astronaut #> 96 3.2.2 2015-08-14 07:13:18 Fire Safety #> 97 3.2.3 2015-12-10 08:13:08 Wooden Christmas-Tree #> 98 3.2.4 2016-03-10 08:15:45 Very Secure Dishes #> 99 3.2.5 2016-04-14 15:59:38 Very, Very Secure Dishes #> 100 3.3.0 2016-05-03 07:13:28 Supposedly Educational #> 101 3.3.1 2016-06-21 07:21:38 Bug in Your Hair #> 102 3.3.2 2016-10-31 08:13:15 Sincere Pumpkin Patch #> 103 3.3.3 2017-03-06 08:16:31 Another Canoe #> 104 3.4.0 2017-04-21 07:14:45 You Stupid Darkness #> 105 3.4.1 2017-06-30 07:04:11 Single Candle #> 106 3.4.2 2017-09-28 07:04:35 Short Summer #> 107 3.4.3 2017-11-30 08:05:05 Kite-Eating Tree #> 108 3.4.4 2018-03-15 08:04:27 Someone to Lean On #> 109 3.5.0 2018-04-23 07:04:38 Joy in Playing #> 110 3.5.1 2018-07-02 07:04:31 Feather Spray #> 111 3.5.2 2018-12-20 08:04:40 Eggshell Igloo #> 112 3.5.3 2019-03-11 08:04:49 Great Truth #> 113 3.6.0 2019-04-26 07:05:03 Planting of a Tree #> 114 3.6.1 2019-07-05 07:05:03 Action of the Toes ## License MIT © [Gábor Csárdi](https://github.com/gaborcsardi) rversions/inst/NEWS.md0000644000176200001440000000150013571455131014360 0ustar liggesusers# rversions 2.0.1 * The date columns of all data.frames is now POSIXt, POSIXct, not POSIXlt, so you can convert the data.frames with `tibble::as_tibble()` directly (#20, @espinielli). # rversions 2.0.0 ## Breaking change * `r_versions()` and all other functions now parse the date, so the date column is a POSIXt, not a character (#13). # rversions 1.1.0 * All function outputs now also have a column with version nickname(s). * R versions are now cached within each R session (@richfitz, #6). # rversions 1.0.3 * Use `xml2::xml_find_first` instead of deprecated `xml2::xml_find_one` (Thanks to @jimhester) # rversions 1.0.2 * Explicit import from base packages # rversions 1.0.1 * Rewritten using `xml2` and `curl` instead of `XML` and `RCurl` (Thanks to @jeroenooms) # rversions 1.0.0 First released version.