From bae9cddc25315421d1e177cfd36811c9310519a4 Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Tue, 9 Jun 2020 15:52:25 +0200 Subject: [PATCH 1/8] Add releases.md guidelines --- RELEASES.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 RELEASES.md diff --git a/RELEASES.md b/RELEASES.md new file mode 100644 index 00000000..c57298f9 --- /dev/null +++ b/RELEASES.md @@ -0,0 +1,17 @@ +# Creating a new release (guidelines for repo-admins) + +After review of a protocol-branch and before each release the following steps are necessary: + + +1. with the protocol-branch checked-out: + 1. bump the version number in the `index.Rmd` yaml section from `yyyy.nn.dev` to `YYYY.NN`. Some examples: + - a new protocol added in 2020 that was released in 2020 (fifth release in that year): `2020.00.dev` to `2020.05` + - an update of the `2020.05` protocol in 2021 (first release in that year): `2020.05.dev` to `2021.01` + 1. update the `.zenodo.json` file: + - add new authorships + 1. update the repo `NEWS.md` file +1. merge the branch to the master and add general and specific tags (see [release model](README.md#release-model)): + 1. general tag: `protocols-YYYY.NN` + 1. specific tag: `protocol-code-YYYY.NN` +1. Check if continuous integration proceeded without problems + From 5b135332bfd4cc283e083311cd68980dd56ea37f Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Tue, 9 Jun 2020 15:52:54 +0200 Subject: [PATCH 2/8] Update readme and contributing guidelines --- CONTRIBUTING.md | 5 +---- README.md | 6 +++--- src/management/protocols-gitflow-model.png | Bin 168686 -> 167538 bytes 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b7d5ebee..d1f25cc1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -73,10 +73,7 @@ The workflow is as follows for a _new_ protocol: ![](src/management/pr-on-github-4.png) 1. If the reviewers raise concerns, changes can be made to the protocol that address these concerns (stage, commit, push) -1. When all reviewers have given their approval, the repo admin: - 1. adds tags with definitive version numbers to the YAML header - 1. updates the repo NEWS.md file - 1. and merges the PR to the master +1. When all reviewers have given their approval, the **repo admin** needs to do some necessary admin tasks before merging (RELEASES.md) 1. The GitHub protocols repo is setup in such a way that branches that are merged in the master branch will be deleted automatically. diff --git a/README.md b/README.md index 87f36906..a4ceca3f 100644 --- a/README.md +++ b/README.md @@ -53,8 +53,8 @@ A release will also trigger the `protocols-website` to update the rendered versi Tags are associated to each GitHub release. To identify protocols and differentiate between different versions of protocols, we use two types of tags: a general tag and a specific tag. -The general tag is of the form `protocols-YYYY.number`. -The specific tag is of the form `protocol-code-YYYY.number` (see [protocol-code](#protocol-code) and [version number](#version-number)). +The general tag is of the form `protocols-YYYY.NN`. +The specific tag is of the form `protocol-code-YYYY.NN` (see [protocol-code](#protocol-code) and [version number](#version-number)). These tags serve several purposes: @@ -101,7 +101,7 @@ In case of thematic protocols, the first digit of the protocol-number correspond ### Version number -The version number is of the form `YYYY.number`. `YYYY` indicates the year in which the protocol was released. The `number` indicates the order of release within that year. +The version number is of the form `YYYY.NN`. `YYYY` indicates the year in which the protocol was released. The `NN` is a number that indicates the order of release within that year (starting with 01). The same version of a protocol may or may not be available in multiple languages (see [Folder and filename syntaxis](#folder-and-filename-syntaxis) and [Translations of protocols](CONTRIBUTING.md#translations-of-protocols)). diff --git a/src/management/protocols-gitflow-model.png b/src/management/protocols-gitflow-model.png index 7f31f1b50396d8af1a7a5316a473f1239dc239a7..b617178493f599b9d93b477c4e4c0917db4ca5cb 100644 GIT binary patch delta 22855 zcma&O2RxSV-#>hnQW`{sh;kWa&k*68E@VftH%a#1oJ2-eGP5&6vdJDLDr~ayo%9Y;RMBG%e+ra__$a@;EM0CDm_0hMu z<=W|e>5m1~`}?_KtUk3!p3AOPX4jlEp))xOg*vTcj)Mx&v?{GgO42P!hQA>_C0dvJ zb<|>@)Oz~paGyISD>G9vOVPNfZ(?G?%j-<3y5K;^shUpxJY`MfaMSY~fe}~qJ>x$% zwzfJAoG4UH=+&Lv4;dM=dzAJd ziOkH-HiPrAL?ZKlveYsav)=go>ydgt?@g@5Emg0wo&U48wk9id7*;O-Pcm_Q&ongPnc||NNW}@qDfB)*6&~yHV@cg->HJMUA3k62 zpVZ*+fYPUyDzr(Tqu1gbK1vqD5dJYGg^Qb;FRm>pC`gD$`ZThR0|O zCMZh5r{QIBK66l&51*s6bGb58(3>~%4B_Yy!xA+VDp(vHvd~xL-~TJuc3v@6zErOv z2%+G&+u$)7@xB2U9(zF^L@7X~8+8hWVl%>9LH)T%!gB5U^}%v`^RKVYI$qRdACP^* zPrcVXG`}<->KK!cZejSCno0`?J^f4HN4W0Ok`Et#HFsMlUs{GYN6Bwzl3R;=v*rQ{ z_3BP~cV+3|lDD__n>TOzi_OzgQkW8u(veBEtB(S1_!EZa z=(yM|*Nq8kADs=8rI;Ju_no&EK0V7M_0Gu1xNpA{+iQ}Yo_>D%(g0Q9lbmj3vrFkT z?;HCX&0q7IwzjrP+3JoFasuS|h>zatSl!FR#>Pf%(t4iC=E=Q-^`Fvoofc;=!AlrB zZ)E-mo?cqIHICn&P9~Pr-2aJ)_{$MF9P#hE#SNy5`9(ZMDyGaYU%q6mSP|agzsW_` z3QK2uvA@`;i{aFO6Mh`L=E}`KYF4EKCfs5e%=ho#FWF;~JKkJp#J`0I#)gDYg*^7= zk4S6U&N4lF_H1BapxYhl-9__==E)dtQ>VqE?pG1@apirTouQGD_G91i76NfmsM{W` z-0D>>r5`>#q#=^-qC2k1pdcr_A;UuGhkmY?G{N8}reDxIH$UIs-+%6zxt-mY?)jo# z6U=uuDN#|}>Vx|2Q*6!o$o>2GVK7!D$Cb#c&oeMG`l|(f%U_5wuiEW>kzg4tbMeB3 zJ%1WQiO{A(om%g%Or>?I-H4xTEwG)ClaUcKDc3wBAw?aI|6)3_v~3SNJZrZ(*9Ci3 zwA9BU<8E#)u9?lfq$G5<^#PiRk#U@1j#ap7%VLk)X4Gx+%okr|-)4EJa+K-u#puD} zt;DbE$o96#I{R{Ofe))kbz|zKh15i$0$8LmJm%ayJU)hXzEc*wKbo6)O#8lTH8nRg zGBa<+nBGoO(sJz@2sZA{e#u3arRaQg;23ZN<`?fPGHzJxeT#M(3S@T_?*zu(z3Rgs zne>jHPSmIb&l`c=@Z-mi54$p-+~p#ZHa2E#&L`(FV`5<7h-rnfS+3g8mPvb>q0rUU zg;7vb%j`1h{PpYLSIMAR)!n73<@KLJJTa}iySuQDjhpRI3c4uE%j~hl&a)29#~C0mY4qpGrC9>F>Ob=uttQ1RcsGAyOFp)y8P+O zmoFI^^mKHhIo%{ABzI_O-%EY`{FzD6!`#bxducL)ZE|`V#*CkV;RlbfprnzJQIsor z(uxJ&uu;*R4PQa8y0WsvNR7u)bgz~jj5S^I>1si59lOQ8XX@%E+%ci=-YwYiE0G|1 zxw*MWVPRofT0?QeZGqI$J3Db7QGD3q(2unqlCDNEH`Z789?>~RM&r`EKS5Qz; zS681|dvr#di>#oafRlrx@x`4Qcahz(whjV9&RbN3wsv+_+eM5@*$*66w2|hQ*Di>_ zKp2c37TslFFj^WY#e_j&7@MS|%3m+?sa>95UpyEXP*0T?$B+e1^%WVvfB#+`(HIcX z@(>cqW`vKsxExeEZ+{DZ@x8ay`h~78TIl*y6_p!%`ZUG;m5%EMg03<$_|5r0IkZtI zcfyBHoXPw8`btQOMI2~}I&O<%&_sSBx`ckd>BYsxnVH5Ygv1 zH!6zuC1z1~*jX7}T3X6f%E?wi3g`^UH1+iKBqZJ_FwiEPs~v9$-j+`8oNbG}KWn-7%aLFs*#skphdH8nLQSbyU)y#8-=={k?Jv=W*p=N1=DU4NU|<68uMVohtP zE4yiypAJf&RMg8l2Iji(#=SR zn%q*cS&V|B;uqLV3ts%(ij>dk_8Bh5Ar?$0er-0cr%&+R)fKjWgM!{=YS^nB*Qeme ztmc0JtT|n9&hG3Pt5S8?_^ZtQ;`!~Dplqo`)a9N+A*h_HDWU%4_TRToKP7OEEj&USF(YEIFtW9Bvb` zTOchi{*ad!A{01ROCU7CvbQCVXnf5#v9?|hqksC%yxW&ET|{g^Es0gVq(-aMW|nA6 z7+&HTqTeR9g)cj+_Lun4MtPhh(Vq;YqoR?-*ef!k<(b=Uk0f)-S&b$3ex*vDbCD}t zUL#mjnNNCh7yp)EOO}URX4f6r_=)&UgBLGk<2DZLSfK);#4!&Q_-wmAJ)`<%0d+5g zTCAk*&OzFMw5*g=OTZ0IU&EjA0#tt%&wShvh!r&4g%@OLX(<`OG)hJk^$$zrItfy` zWu+F1^K^@Z2q7WovqD3CUameqdPghin_hk1wG&?Q;dRO~Yhkf@<0rkPSr=i8r%i$_ zV_(MNtXqdm9w3?NFYKh3yrIf0iS2wncZ-XMr})d4wkY=6;>cHaBFIzaSL{6^Vnluu zO4WN^b6uGvOv?XY;B!btF@nKCq0YxQ&Trz|Uy}X4y=cN?J_Nh}UhS=;5xepi4O08n zQx!!IUM{)E+^m=oFfZL&7eW;KUpmf<9rw>KANQ}@O`x0eOG``3?H0*a;`tB4eh$I( zx=KW(>AKl9ia)Wtd8w)@KR=)IMcYkYi+{A2O-BGfK_y+r-ojMN`+;1YKc7{8j%;4+ z{3uOc_6^Wq{JB@EDO@jqrL?rP6c%!!%Z4zBc{BJv&^*O|8h?ba?K8z7l#0k1atHl(%?r*`u97QR@#(3vWx`+hkcUPC~=(pFf zn`u?KsL+KN)Tb~c9SKCU(gDvz|d6ncd54yR1Rs{f5`aMxjG~E z{$h8D!BJ<=)1{_!(_{VKe;O>U!$RO7Wj~$V#-ipL z*)_iDE25jByf!^GuN%^{w6OWkzTRshATr-AcP%xnFhe&lF~a0jfXu)dVMoXN+dtdy zP_H^u?G$vVs;T9Xz}??|+fGbx8H>ogu(q}~HO&INnv;`Lso^{=lhwSqC4DuEl;3&o zBIEGRi^GB5yu3UIMq+o=gZd1MSShEz_P4PtEYSqZJrcAIjpBz@|2mjmxqgcO;{os1qB7EsHo`Z==k`Y zO7zaSr_DBzPzc2604S~TrJm@;MUlS7Et+XGr}kofEi9+0NjWugs^Bs_vx9KFDau{$ zF-xS9f`SDCBo;BRKIF#eF43gEd-twJL|RTxj+vSH5hV+p>%0e?%Kgr3_!V{K!Oi;@ zP~S!^c!^mxW4D4iI55)X=so|)P8_;A}VJvY|^ z)@1PZ-j}c6hEA?O$|?^~tIX}tNlffqEn8(}rGS6{cTB5UaYKDQ42BUGS)5E{Z0t=6 z3g++&)jTM#)=>)pQRyiu0QOyWMtyKSM?+-=n|}U;Olp`+lnT%+zX&0%wvf|GL!bqc%y|jHU15+g zxXA9v#P;;|-auCl6VJVR^@>E(;glYX3`*$RK>vSH<0bB*fyJk}dRHG)NanNC5QRJz zCZZ<{X^^HQDUFrz+aD%Q&54ae6ZHue*G)N`n$QcDDB~ztZjV}I;4TAHg~_=Awfon}%gO0*4}W2-@BHpok6fyvkw@<# z)m7QCB-Zme;lY#wphb{#8nke}Aw_x1w)gsd`zCy{;jB;>ZgV?S4*mG?1F##Pi2O7! z^UFeZI}HZvQqqobpN2ID)VXP&U;Y0ZDso;+Ex5nis&{!5$F)R=17VAAF* zGvR2u2tPuu9a}%6ejxO!inedrwxepcv=^@+SipJfcXu~|(gED~Pv#Go$(@{>VDbT` z)wAan=l1?SDxK#0ePUBJMvW{wI#5*a`Sa(#%(vjz<%;#Ta7LvTgLPnEK<9jHCK9{n ztM}#@K`0Vl_TJq&t3IAf`k~tA12ONV6Kd+wm!bXR!>`o6Ko=WhJNhW1Gwf&^ms3=>jy6VFR9gs!T zo8Y+z$}U#12)Udd4p%s+gW)^#ae@^nC@_l8nw3sK@$r2;b)o_S0-%~MCAgKk;GC~$ z6uLHz9QBmjvqmNs7KY{c8!xlEt@^_SfmH0=qp@MDA{g9lo5WDVgNxQirCq=5)b>Q)159UYyQFEi?NS1Y5!!t{-xq_62BS1eDMCRU%yTn{9?R5 zP((z;py2+UJJW;q!?xvv4{=D@7=Xfb&X&BzzsXw@cxp!`hD}FUT3WhYkbp4YfAQlN zKjT{`byfbbT7uRwR_9-Rv}cSqGBJ^om94g4rX&Qg&#FHMS~Ol!%B+8RkOAZcGum;JrZX@skpDc3Ulj0F%)M*V`FRH zn=}z`9}9arAHMRPF`sn?)vc@ySFNZ{*Do+|k`A3;P*ACv(`qm-*jHkij6uuYy~Y<8 zw9kL<-aQtU?4ly%UdtH|K7RgES*#?qGV-umO*2r`8dgP1ixdkfmMn@Uv-9)wQ&W3l zY3(C*nxypfbl7*%pR%$RmzJjb!ee5bLCXZbbaeVW#WMwk-!SriciGuPoD1T$79S3e zlk-KjwaK{A00Dme`Xb3%IBuW|{82HpYZ0+S_7{sC9UU)UzRc9DsGuPAo+Gt7d+YMM zVP1BOmOWBQ(PQhmCxBg-52#>e?(OZVvyhZ(Ow7%Q8!k~t z_Fw3Q>`&TN}98@o0^)a&`6w&{doQ5YO7b88~-A$)dha9 zaIZM9+cZ@b6)=&veU0?^YFMNiE@69gu$!mXP~Xt7&!R~{w%hWavwC-mJWu&12?>w! zpU=a`N87AbJG#E1Ks!3xT?akbeXKvp&J5SijM~9M96GEgH*bl(Zw*?}e0NR)FpVW- zu>3OaqxMoJfF(2SA7DiXims3P+#Iyg}Kt?#mG>Y4_5B|o_ z_vYZn2<7IcS4`(34L|i(*^8E_Je%2HN1E5NIt;l@dRDgj&DYhmdCUeHv$Q*micC#S z2hh&R9e0WRgdb44J+Lc}Q^V8aK;BRNOt_^xZ443w26Kj_#^;t>qd;L>TN^i7;6Upn zJg>0&MtF4e4|B?u!Qq>vHSTg}*D~Xt_qNY^;y%LsivUlR3)5r9t}`mS9By{2kL~R2 zfPhE`i>&4LE;oKh_n=nG!`H{oqyjKIH8ci+&}y)B!(_EV_%zhjZ`QKm92M&7>VljC zV1^TBdyOG=VXt>dNeR5!423zX+~10_^dp*qFQzdv zX=?fUc-udDhF!3#1}3G$FzDv}e7i-}w9X90OxgGc^pVX8W3A_k4_uqx(bm<~f%pSF zQxGA+(TX(JH9PGU!?`=+Ne~?qqo$_D$;r8UzSw-Y%~WsYa!mD%ahh zyHmU8ad6H%vD+lO7;9BJ*}Ay6%)Hoo=t-3XG9|bJ*{VehvETjt{6I1kI^O;1_c*PS z;=a{)^OsM3Z~MX45yj7Ie79=pNEe?g9f8R~6)y2qUY?AcJWl3?n3$NI-4+P`_sFD? zr|16fFw7T68Ro-jKjDgQ6U>TpvbBo(eSkORdDPQZBPGRBF$SGG`H; zd#N?Es#8Wlv&-^Cf)*RRe=jW5p*}n{U^PNb3 zyTJYXV$zbG5qt1r2|u?)rEcAufPhN@H{x%Y5!9O_`)XN={20b^?LwH9!-(rP#qm!t zB(C_C;wbwF-o+|wvQQ+^5+EV8wV4?jmbmQZ_jD{eS_Jz(PNsd%B~IPANE7T+A3z)8 z>%^Cl8Ca&8?5tWZ`r{IAZT|D-mFTn=;yK;btM%l{8aR&{bn_-AC*yc6(JjX>3AnLS z>n>HHh(v65b~bDE0kT$oG+zw`pdrZL3``YjdXb=Hb_uKdO^Yd(t280<&dC#UYOzjI zCN>HN22wZOTwk*oE&T4YbYn|PERQ*5 z{UsDNh5b8uadAAvn?uO?%Ju6&Ki9lw;gyRr0~)>((m88lW|p0mbuXrMb91xkmk^fJ2 zm`b+faB8H~y%I|)9^%=3`6>%KV4ZF$a$E&yqEsCeJv=--C>_8mA5l<2UCu3r`@Ajn zD$aD}Dk0&A&RHA2L5p*zQ9lV6OyMNwI}P8%@1%TD*#G-li+p_uzXRJwT_Q(mD_EBg zg3vFsUk*Gf;<*n$b~;SsdtXMeIa#VD0d9c_ehK#xz!)>^!6J$epLJt1LAiJM_Y+mV z?4&#T0oC`0_gB#NP&EW6pA=916&4l-D#3~pi$)o24c9Kzv55lBUAakyFrUliyBP$M zpvAK3%-kHv394D#ApBENonrODB`u;MYRYlj%mlfHRXNw)_lx^6Frhm7?;n_7y8LUENyy|Av4iybOd z^4tI9cHPn+*)^8(0`9z`(Zl2`=c!W%*@W(S3=ZulN_J*Z@@tH)I>6_#)K0&af*19G zAKyn0mN}r0?IdC3!(CR^hGft?P+H#xh+6X(w2syyLABu-sNhU}wpW`S6*-w9M9DdL zJAqF!A~7^bHe9Ch9j$?wl#I#B)?tGdrN$@V1LnrY^Gi#V7F`id`l??{-q((vw@ekf zRLi7V*r=QL;N`^xf>E9Wdd0%$&BRMChv0qqXcYlRLS$uGnVBy$h3?;7yk+^?yf;5J zG12{}yrN=6M8uTZ`2=??1Gp(zZq8CodfNDgiTU{jC9aAID@PHL*S%tvmaBjb*$v?K zSEyTb9s#5P1z|Gb7@fKJyIk*u#GQJ-hM?sj z^N{_6MbK#hl?+uQNXa)hZu`-n3!2CDphIf8ZicI~ydVXCXbL8kK|v{)^11!J1UGrF z6pq5Yhaue_3So5F+n5FTW>y>{xm8D^RdKX84@+`DNF~D5%uGgFnl=ecUH}U|&CY-; z0goh7pR0aj&=R$}RE{jKP1dg81}ysVqqk1fC_cQ2kzI75j%WWO?0s0MY0BNOAzE=e zF8#Wgh%XIQe&b^_iTE5H~kBN5@@v zy#nbN?$ya!YvIhUcp-!mE8w8q0Cul9RRWR&G#F^%CtuOQ*W^%YIC4l%xh6PQq_wyC z{@)y!?MU+LQZNS3^t0U)HC$)~^_bf{W28J;*$RO14Fl^+UhY=X* zC0(t>t(I;9^#|~c{nCKtChs+x&^O|~dG(;r+!&cl4d+6-0 z69wj$)x0l!7_exo2qmdeJ2!%x700OZKb^*^vZG(;CF(`{nb=voAjXS!iIE!uPSuF5C*6;ksx?it>uUa*4CmOW4MIb zCURmqUa&`GYnf9;MNOEMGUI=CbeMpo3058o= zPgA-Fl5WS>L8iTu0#CBy-1eflUjU&D?w;Qy5`TH+Sc`?$Po2irc>wc!aB$H+sGK!R zvA?@}djIp_c0?aZvF~gCmkq&9`h69S>%9dpN~b#?-lE(WJbk=WzFeqkIzzW&Y_P)! zxceYT&Fq+k=OQ7WhfLZf_`8N1H%kEV`ugz> zx>8e1NogC@j@O~Q_wH?WB#XfgSC#y+r>6&$zBMJ-vk$fsRtnBg>F!LjBD=t?d>n)3 z^ti6Z-@uB?HHNnfbsnjy#ng_z1q>YWSSo3ynUK)$D8A~%3eKz!BMUSDtLNaIt69e` zR&LqfgcV|KjBNP7d86sJJ9%OUIxP0xL-T>fw=GqPwfG2UuomB)tKir3+!mLXewLvy zU@*`w_Hpmo^nS>4kmd=WD zZXi18=(BpM6}Zs{1oVZ8)o2Hqk$VsdU?U6I@zG}ppZn^0?m%cCt4b&(bPrC>+P2?r zE3ye~n6-5l!C;8|Xh5pRj6s&mra6KcWYv+QQc#E>t`UCBMMsBt?_)i}fu+~fVnLrZ z%KyyTm19fVOFh7X)7j}Eto zwSX@YuF@ka5tsWoJx*5gqYc;o8FEuYr%E@_zCrFDIcmxZUz4oeBp}RE&O-|cA)vq> zi1EcO)p+3KRIFXtmVGU334xs91h22!ycQ!Up7b8zSzonR4qvYb?#)npe$9ow)_%zG zj!jKf>jWaQ5?j*^$TZnwCNKDsliL7N=^Tle93&j?CIF8>4(GM*h$sCC5KmwU4EN?q z*4^GZEX^4;-i~Wro$J-}ID9%=ljcXBq%Rv_1T?;BIf&-pKoWk?+QCm6L6EE;>H zpyrdlR$#ae3Xp6g(QH+X8WvWDb0FlE0^Bt5}`xhKS3b zuy7v^P4HQU8;GGoo~H8x|4+Y26>=ed>ELL5{`@&5Wdf{7BBJL_M3)JlUZouup4cQ3 zSg|=qGM1MTXr-UpG^u?t87(e5jq_H?iMS@lQ7O#DhQExL}DzF z!Q?#I1qGqLL|3oEP7Wvmt8k0p7a+}|m?p~BGkNkX@A#S)SDm`X*ma4DoEM~*STd(a zHJ$}yZoFh8jbK*$*kR~heheDxXkBKJFE-l%Wsv8wKfvg9@ zHl#G+V)a3l9Y-TFTKf)iDXL8N4uh@}@k}@FP>WZV4~{Lq@qHE?=!Z15w5S&tw5EuM zdY4nc*?lo+lUJv~BopDS#m!LQgX#70BVA5+rebD6e!i-zDnOVU-m?*Yx7alnnZ}o_ z{V+6CmT{RHWK@g(D-!h>sraPU6DFw%krHL5x6jm2Y$>3v0O_$1gCSX2IIl0sl>?&y z4w5et`#%lHEbOuAOp)`ysAT`}elw&Xp+w<71t7@Qciyz;9}HGhqC1C;O@e6$bqORB z$Zjg0q^MXTB~#@^#KdHyx#+2>^@b`Ol@l+abRZ51(9}T*MBD)G(>D?BD-L2e{_5_2k*B;gTx||Q+i)`@#=kFP zqrR{_b64aM{gXd}(}acBFtAu2j6Jkbr2lp;f!<;d_fy(f$_WR~TYP)e&sVjhGoU|f zUJLBLhpN#V8JhbC10k0T1yNB^e0vQ1+|RI@;r^AGj^uL$l)Q0m*n2%A!VoShCI-s^ z-~2TW_>XeJxwYO^RaH|{20pdy10E=M?I!(v*k4;7oYXZSRrdDwl9K)nBxVOKzr&ca(sN>29Shs3G-2ih9!r;EFcCXai6|F!|9 z8x(}^t>XkTy^|9}(FVDXHIvTzqjXK)d<)R2e9)^9!IxGQeVZC7OI=2{Ztd z_uF=}FbaGzYirK!;{Opf4h&LY=<>q53KtzTvo|(21~F@Ab^NbadOV3!qvs5&J_h3@ z0b<5K*i*ep^uDZ_Q=FRmnw*LkxfujT%F{HNXG%(-y~(zV+KR_4UaqGXR6QmbE0;rru^>c&?)Hk^?lw8U;)l& zYh#llC2808*|_USggXMGOCkmxD*2B^Ih zSFduOY%Z7ZAaw`%O$`FF~=mCmgCveyqwRJk`l=u1_XqSfbai5)DQU4;yJ z->+ZbrGWjpvG58P^#PUupsy$kc;tsfZRk{xB_f+4g$vO;5s^CZ?e3)2*|#CP+;$AF zNja~`B^1twO_Si0Fq%ppO~sf~3OHQ@S=&IW5$3_E3eDwYv0%W--uzeK#iq&f%GQA= z=?l3Tpw8g1-ILE)sj^^onnLN}26aoPMPJNZa#4Ev)EcZeNFWe6mY{B91`uDk8!s{5 zTJNDDP3)4*Kr%AGKL{G^oDEtC!FYu$(a@!pFRL}vgM`9G2C3jjp9eYKOU=&C0zIly zf_<1SSE-r(Qh{Ly+P{uN`^SrRmx$-qR#w^Sr5qTQFDAY3A|k#(Ru8d_<5#~8v;=ihwDJFnd}MMClVE19|X{UAdEg4*KZ;sY#WmZdPg@cPVMT-u+WCy)qQ369wcJ1ZIi{4o}b_m+W~D$rOZYEk=(X0d2qi;J^IN z5X?0~kvD!c_|D7T3J>+_Lql(3egjGW{rei)QdsyK)F}W|>)+*Sk(B~vCPG3&Uevkx z3se*wutASV!pNSD;f7s zcr(P0!FQe#n*4JQ#tDwqW`kEBv4PunAc?GA^b*#Rl9Xh;dw0aBH&>??n}K50tk9{& zMV8Pnj*kwjju&#y4EsZddNkW2(-rjC61r>GuC26=&QH=^DG}OQ8f*?9DG%~DU;FRi zFF2%^sunjd#xOpxkwEj=&V^~Qxec0ey#JG}(cj(p`r01l=0e|TgN*Mw~&LpWs!*I;BF`@DCl#?zyug_-PS1XZyjVrj&`R(s{zPS zxjh61;bH0km@hEPS`4h++>Rie{YZVF$XLnJGOyPJVPRroVrHIPvII{uEFnQlPHwf0 ze;KSY>+R$dL#_e{Th#|#=C9kj^76per#m6gRQl=D4?`|WA-4mF-T;+_06w_iTjeUn zs#)MKGICl_Kxpdze*}F^5%x1*B3VB`k{3)Jkdtz%_Kar2kee~BK=LmqckFbC-O?zv zqRs7p(H5(st{w{pEyw$Jp`p9x41heL2Sfe9CCBMOe2sZlwbo-_%8Pr8`-9~@Ew$T1j%PRwzL?{O$n2j5oo2BY3#kKR=jjj0T0E&eyL@RlG%3mo5Z+(Fu>aTA-~xadZ!4OU6`8=q=Ugnga()H zLtB2(^sz)e0kVi#qQ2{e_u zD}Myi(d7E4E+aH}o&?bXY^kEj^sKBrq?eeQvAn|4z`&s0AM-sc+mbKN#SRS!XMoK0 zwQ%0w>@yz_74W-&eq9)lAXf&()jOErwv-3^MzQ z6*jE(e%bjEgfM%|?|zv@gmzPbjFakfK(=PST4Vp6cy{M{pq{mm?$pc?vYC0i+#iP! z5fRBG2rfDYXP*Ra38Q$}Xb%rhJs<=&xY(07zR+7>Rr+8hsn-M$+zIba6@)tNF*!Xo zm9191v{*b`<+M2m#>j!-z4uZcv>POISMbPi&d#4%+5^lF;VM|1(9KhV=aV>iy%0WQ zcHM_^+R}zb?0dW- z_<>m-gfn2w?;g{-5;Sd52vi&v+lt|=yc-mb;}K_im-6u=Sl`}S;~%AC1VOr5ax7i` zb=wWc7$$Fr;lz>|basGz1vRie>>#ab@*GkL9KZ3_5!Q3vGZP+p$rVli^kY~=L=Xi( zx1iwAa%Up#j<*vqsKh$K`{jde%tv@+kJ`8PxaX#Yj_(%-QrSqfjn?{GyB*smosLWX!?h`OXhsooy!Un#Vh-;ZQckylqA(7NQYxLJueWwi*VBv`8+^oO7P z{ruju>p^fIx-`_jUF%tN(KTz}?mkF7i+kvHEBPueQv=UCa7-E+8qT#j@8CsGvg-og zN1d0TiF#TO9HI444xj-H>M?TvP^e8X4INb2Z1^kK(8Ov*-RxX1dB!GMr7DG8rd4g8 zJ6okdG`ZtJd5I6$SAAeeKUGn{seP?hWxFvW=SIErMBgLLu&=P4fB`NcN&|BQodi8L zuz9KMsbD4y)6OY1t>J1lW$JA`z=#-Ga11e z7uxlgFgBy#&U$`zXRq}gFF#_KvC2q$2Lc@Gwu`V@3I;5_|6+Nqe|pFA`TGLCE6C|T zXu3C{+q9Ty`I06mF=&1xH=UCo6dL>Ij;)4a789kx=di2h3hB8qLgGJH<|HzI%*8Brke9>a>tacc*!u)4=5&ACnK%Cj<*Y6#*VA86psNVh#^%It2yY)Ne z6hJJmXljsN+%~v1O~=V_P*0-{dH!T7CGP8TSkqW3)r$Q=Ng@x{rcbzTO_xFQ9yZJcxX%2|p_OVt$> zvA*Dp^NqZJc|doLNehNEv4az9L^he{2uEGGaKUXoW|&E%Y@_;kzZx>SwxLasUV(Vw zrw+s1LeMuv?*P?9P)8(Y@4gxoz;IfmF}uP*=2UKx9UhX>Vu_%(4bj4>&mc6IZMp9| zgMfHQk&MBd&APra~#h=1N`lE)c| zi6gH`G)a@#Vb^hgf^}+>VFF?gr~}K5R5K}O%pbqF1E)en&%iiq+q^V2U0hh$D4*e{ zmwWQ0y{BhqHZ5W87&>oAu}!pheROb8=T+KYdOjT^#6t0xAtO>7Xk?6SSGRBGhjI8`X*D>t2k(shQyb(+C3P-a31dxd^Zc*sKbx zK_&Z+ebXo~#@#z;XNGWvV9Wp~P8ayW*|jk>;Anf979we}tka~gA!LC=Ypro{}6d;-`lZN$@ zNxM2B3iCHwN;xJNt`h}_4Z<&Pd;wEP(OpG&xb^A-?1x>u7wv??wf|>l=G*2;+0>pF zxXAV%bx8jrSS6XtOjAe~cLA3+jeX^W?k7G_sl@ z|K*adC21qSFO)s@b9Pk&@dvgjzpHm#NSI31v&+i(s&SODL9u)$I}sdE_~}-9adWzz z!8r%7=;|FA(!hFflYm(qfg?cA$hZ$3BP;#GN7%3;cnSw;zYU*$jHr}{rvCX>6zB+jrRAiL^f~hLR7B!o6rA@zNR;+-rCU6n0hbugPQ56a;vVlY7a)crx!zgpM?9W$nehVAp4AgFr; zFM4i~Ytaqgq2ddbtt~>Fpp{U4=-01bHB%M4Q!xpyTQ?%zmopQ!Sd;*cxw(=mo9_&N z&S^K@@Mp-4eD&pdjf7Y>1T(?I1Vyw^brE3sA@}{qCm9PU3#&>NC`OpZc+NfTy}gdG z#e!-8!{y?-I(F-mdHn2LRzQr)3yHq#a^HK)0}-WVY|o#d!^%HQ_{FzCO}-`I^m|}H z3hT;(nLcr=tbnQ9a=aeMF1Vbbp|v?((9xFrMznqTQ{UJ~m%|zO9a5Z7(MAV|!Jq{TO{>fX5zp*$ zgMl`$+$27h13eeSJ|`zWtbsZ;F=3JHk4+#z*cAp1+Bw0YSAPZX^T=vU>YXuvNP0`k%0f@@fmqdcJ9K>RKLT$2bIMgqs(Db{ zr*V=IEG9raf2o}k5-plMDt7jfDbPOkN=(?_zDcu-n~-HllX_2NKt-k5N&d0Mt<#VT z3?i_*`YTn{)mxT@N6#+uyqBs+q(|FlZ9p=xEFW~qK6-Om1J)~(mIANohH0~VHA^-# z7*Ll#E0ETD*A!z&u3ftu{^JyZHg-7qZ$bToOxY=Xa!_QOfBXP$l`1#RBn07%a4stD z$9#TX^`aqGCdCbvkOA*2eHFu7t(+F9M2RL*NRmh98pGBkL}Z`{>{=Z znMXX|RjaR2cXQ!f1HT1YJxf{}n3_2*)e2}+8dYuXX@ccjeK5%iVSi*10%_jXf|~pG^Qvf={?9d8KezxPpy09fHrW!iFhHb9)l;z8xF5`jh1besFGD z#@x;7W(Va3hnp)gv88@^Ejw|pX4)2##KDyE8fS&nR1bpl2<|W z%hKK)XKJn4kOLc@HP2H9_gPJiJhH=(>kTF;&28-MpxL$><<&lzxzjE0ui6y3-mV@Z z&Fw!tv&d6rEv)bI&W+z?hppH%DIH0lnT*uJPgAZU@T7AHFz1ft_FhU&G(F`msQtdSHD36=0U{Q75gL)V?E!Qa-EK|7mi%+PX_^+5n}qUNeYKIoDTPw ztE=^!h|m|(IQJzx6QZJ`fK6QKh!=1Mfk>L}>5T5-9vjw*C0LJ{WW10DFV1g2WT%K0 zu}P)w)2pV9=6~_>JT>4AQaOxfj(v%q10VRn(ikZJ$4AS@M``{fl|n9lUyc&E%n8M7 zNy!GQC94JhNpmC7K{g8PkAh)`7YOgh_o`u&l96cxYg=q=Z50v;cW7vK%v^~dfJkg@ zZNJ!e-6oeS|9l4X&oq!qF54s6Opj~=^x}c`mI^8(pXkG3XOCY7UiS=cqf_6E5j{rF z&gb!Pa|^ocSlrcJ*U;oh>h}0|qh--K8>})BAPme9n_5_P7@#B&Pvzof7%aKog+oCHvt?EUzVeQ;Y+j*KcAt ziGzXHm&X~&$+e>v4skO1_D@NtcMk&lrCkx{*EjwQVXuSQA?(YA_B~OSNM~nc!RDBy zh}$QobuvYaplOjfFnIT9yIKfH(T4y~%>j9OVSijez;&Pm8alR@e_f|8jn#Q>y&>P} zx>k}r-G)qtE78f~kM}5If7~59PiwsaM}Z4PL^zn4Z2h7(&ce_v$#^(K`5m7t^jwB| za|xgPD501kQtJ(v4*GJM#KnJ4-yT29=lq5ezp%RZkMMP^ce~zP_b0VBIU$wSuE5j` z6$zpUle6az_4k~MH$o$Gp{WWoWpF^C(0Wao|V z6@g4KMC$>hvDwZkppz6C6}^4TMey#%7YgkiaqweV+*(?1X5m6^N* z9oNXEy>+1Vsx6NH1$PXDu0;Q+Q8!Jw zd;V1Ec>PP{We^!k`d2G*Ps{=8jn_787{$-ZmhjC1FjgPj0{P%V56rz*^y8=x_b+~c zGK6d--^zmF`R0Z9iCr)KLwwM2^aY`$;~iv%C*hZe)~}A^B+gWu389&S$_=04&<0M^ z-A|Q>v0`0A1A%fg_G@iy`N26DxbCe3Ci+hJg8>o1GtifnI+4(}Mgs10iM@z*vjWx} zn1}Bvafya5z$=sI_^hWcX+ifBv^1C-8Y<^%dq7+-jaY~-^d&?SA&2BtSp_Nn6+HX) zbnwPXNOy2?iRZg<2FBMbodN%EG6X;Gg&^a4!B4?)B8yYd5C6AqD_TonQth+Wy5}GA zBl`(P434YPP0QC7|Jj5kfP0j5+IZBd$*5?rh%t89TTAP#0bXD2p{)qS=uaYEwSvjO zX;EIn;Hp5qJcjlNVrJEipT`G3g&s>HT_TV5O$Y|79zMS_gJHi>{b88m!?)v@qZMbP zml5^#hoL$h@sV25*^>Ba#Q#gGfBn1{{BY<@eBU|+CMYnS$nuBk{{=`TB_sfW3M|HN5QGzS`8Ts^yfu8=p>mHYV!!2buZ3V?l;5&a#K;lwQ9$*K` z`&Kmc^s~@NrJ7||qk8%x>>?nuLkfg06lh2Da_5n1rTwy|ncUOA?#7|;V$QkGikUKL zwkV938Hi|!2CVSzWzcOoa-0r{$D$`3ZXx_dbwkn z%(R%dg5yZKQnL>Tf>CS&+j+r@ge&_eT@3Ym210VwogT^5~J{}S~ zbbqee7!iDBbz?uH#FHHL^z7`hqeqKZcee>#sQc(xnVmfl&M(i{bca{v4z=N8oqoqE z4Y;VTu2AHeW!mLIgcBW2M8EUYrFMYy`}|obfGQW>($b=}#7lGK?o>nljT@^+KNUI* z`kyf}3$?v17mDUXOy1Dk1U(EC_a~Xmyt*Ubz(C+jdSh!uaLK|rd$n15aeDfi4?fPv zY*>Fw34MNd%V5u?u<|16$k5P)oY0S#%goEBDXv(a-SLF&8jHLprwIOM({P`oKZ~}5L#1lx%%ZmvL zq6vqwYJpES&TCCwpI+A#J_>&gP2OpMPB z8NM3En*6R|cEIE9pwev42N!`4tiNA2Q`V} z3!ST-b1-=^W1CE zYQ3}|aGIGvP@h~aAt&@MDDKu@sz3&^wvcL=XCG;K#~y=_4&0J)ql_~G%q7Ku2(Yvo zKX2q@wI&oseau4ghJg~J9%IWeBEBHg^}>!@{x9)zG79Je2U>?UrJ)^gMR)qmtSxaN zVr(C>vK?3;{q_+Lu_JqRU~ zy594#Xp2rHV*X>Ci}QH1)dWAPe>wCy!}}n9YLH-qhx38UhI~e0aTEsbhp&>B_Qm~i zmFey6o$JIGc6<-!TG zrhj3uS0%zIxyc0!T>{!z@wIA*p@2fB3fobf^-dXC*%wVs3qyH@${9LzLir7BnZSD> z4eIUf6%_yVwj)b?tz;r|`d1OpF}`yo69*#-Dvgi`h=c^loW=w5?S^5L&D_K(S86(9_3 z0WZdcKf!4?Hs%f2Uq?9kU#ztWUT-9%%^dyb4&5LWw1NgdF;?G#*1=G|nZ=?|yWMqS z`_S=Ycl1)~ebC`@50wuUPkG%sG}%kur3CahP-3hiyH1@~7+?SYwNdcnFOPw-bP8kt`~r4~awG$MPZ4=u-epmBEFWel(<5Lr{#a~NGE^fTI?FvNLXmgN);O$)mgDOnN zedACr&wwyk{&HfLBP}V}-qI3xZuzaC;4AdQt1 zW237eASl9lV_r3yA2as<_MXE*iG6y?dDiSe+g>_-bUYAkLn`qj$e#xEj?>v$ZwY5q zw6f9RU7+7!O+uhS>03@)+tQ*Pq4#lxD=V1p?tYIB+T~3{|MIpxps?|i8%+O@cnl2* z9Y_ONV33rY%xlu^iHtQQ?C9iqUc8jw{=3q1&9>(y4B>(6W^@JGa)5zi=lhVSw3c)x z9ERv6J6olp;HlIHFfk{Qj)D;uu2NvBDoDwpA>D}dTR>z916L$^O}39a0`4jR)+zxz zu*^(|g!}^BJpx>;OyI_wN2%^6OrJOuoWcZoc3lOJsl?;!O;6&cSY{%hhH(>q4!AAp zbUI5YB89{hQHk4GFC`BUK&M2y-fP)xv}lD1 zZH{Nwe>e)`_7`It8>y1O;)bopH{SQ!+6|l zlAfp3TaFyBiDBB<%k!E%U;KP8I-jZ+j`X^S?N8MmBgE~2`vzAWKCm~Ksk!7yC=?fy zpE>dU;7?KRA^E?TZD{dM2#!vX%1eFB)AjGu!!rJm@<+fJbb(fTSCSvGDKWqO9Fcb2 z#(uZ%-CbruI;{l2LtH@w4j|8IxUfpOSS9cK+aYhg*S>CpoQRpx9wS3T$R;6#MqY;c zJ7m6sjyfQA51}+sL?`B5W8)f3!uBT|3a%8K7EonK_HnJ_7TKwOd6i~-{-Ao7Gr3n& zG@Y8R4N;Wa*-qs|$X36(k=ln9w)h3=R@v|0pWOxR;eONTc3KKeD~<1I|I(Kam)_MUj|mf0WLsG7FR*#kJi5^}qQCroAUihhrNq1eA}n>$nE)zpZd(U2_iy(lgs`n&f!*qgO# zoq8B#)>stEqQAs;mZ_n5jC`4*5R@f)P9)gLXmDQR{K=2@!8x@dt@pg28vBWOyxl1* ztg?P9d05z>Y3%XE1huZdU1qMXaPGwN_L@EKzmL`4ORt(Nl@nPtHA}=RI<=ia@kaSp z?k{_|joaAFJc_1$CGaB+Ry)@c(@VmB{ z#;XNS_DIPP?9R07Q=L6rOATu4^Nqnd&Xz~WH`b?=U2O`xA0Byksx8geVKRZY*tXE& l&Jh*bteSi&+7_J8(9d3hR{@#{L%%-2!gROE-R+Fi{|AW~>5u>b delta 24012 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
    5ug2(7#a;N`;Z!N)`J%I| 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 WH9REgzkfV3v%KreMfCsGr From b2bb0e85c2a2833283adcfe4efe3e35738ea6870 Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Wed, 10 Jun 2020 10:51:30 +0200 Subject: [PATCH 3/8] Fix version number --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d1f25cc1..68e5b490 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -106,7 +106,7 @@ create_sfp(title = "Klassieke vegetatieopname in een proefvlak aan de hand van v date = "2016-07-19", reviewers = "Hans Van Calster, Lieve Vriens, Jan Wouters, Wouter Van Gompel, Els Lommelen", file_manager = "Hans Van Calster", - revision = "1.1.0.9000", + version_number = "2020.00.dev", theme = "vegetation", language = "nl", from_docx = @@ -130,7 +130,7 @@ create_sfp(title = "titel van het protocol", date = "`r Sys.Date()`", reviewers = "Voornaam Naam, ...", file_manager = "Voornaam Naam", - revision = "0.0.0.9000", + version_number = "2020.00.dev", theme = "vegetation", language = "nl", from_docx = NULL, From 93ce83a03fe2cfb697ed879c47924db5e081eb8b Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Wed, 10 Jun 2020 11:07:57 +0200 Subject: [PATCH 4/8] Improve workflow for docx --- CONTRIBUTING.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 68e5b490..64cb10d3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,7 +42,7 @@ This website will host all approved and published versions of all protocols. ## Workflow -The workflow is as follows for a _new_ protocol: +The workflow is as follows for a **new** protocol: 1. make sure your local clone of the remote repository is up to date: 1. with the master branch checked out, press the pull button in the Git pane @@ -77,16 +77,22 @@ The workflow is as follows for a _new_ protocol: 1. The GitHub protocols repo is setup in such a way that branches that are merged in the master branch will be deleted automatically. -For an _update_ of an existing protocol all steps are the same, except for: +For an **update** of an existing protocol all steps are the same, except for: - you don't need `protocolhelper::create_sfp()` - the creation of the new branch can (re-)use the protocol-code of the existing protocol - after review is finished, the protocol-specific `NEWS.Rmd` should be updated to document the substantive changes between the updated version of the previous version. -For adding a pre-existing version of a protocol that was written in `docx` format, follow the steps to create a new protocol, except in the second step: +For adding a **pre-existing version of a protocol that was written in `docx` format**, follow the steps to create a new protocol, except in the second step: - a subject-matter specialist uses `protocolhelper::create_sfp()` to convert the `docx` protocol to Rmarkdown files. See section [From an existing docx protocol](#from-an-existing-docx-protocol). -- use the protocol-code from the pre-existing `docx` protocol to create a new branch and continue the steps outlined for a new protocol. +- use the protocol-code from the pre-existing `docx` protocol to create a new branch +- in case the chapter titles and Rmarkdown file names differ from the template, change them so they comply with the current template: + - go to [templates](https://github.com/inbo/protocolhelper/tree/master/inst/rmarkdown/templates) + - navigate to the template that you need and then navigate to the skeleton folder + - inspect the Rmarkdown file names and chapter titles + - the file `skeleton.Rmd` should be read as `index.Rmd` +- continue the steps outlined for a new protocol. ## Starting a new protocol with the aid of protocolhelper functions From 59e2aef4d57aa93caadbe9eb4319c30af1364df9 Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Wed, 10 Jun 2020 11:46:25 +0200 Subject: [PATCH 5/8] Address review comments --- CONTRIBUTING.md | 8 +++----- RELEASES.md | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 64cb10d3..011891b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -73,7 +73,7 @@ The workflow is as follows for a **new** protocol: ![](src/management/pr-on-github-4.png) 1. If the reviewers raise concerns, changes can be made to the protocol that address these concerns (stage, commit, push) -1. When all reviewers have given their approval, the **repo admin** needs to do some necessary admin tasks before merging (RELEASES.md) +1. When all reviewers have given their approval, the **repo admin** needs to do some necessary admin tasks before merging [see RELEASES.md](RELEASES.md) 1. The GitHub protocols repo is setup in such a way that branches that are merged in the master branch will be deleted automatically. @@ -112,14 +112,13 @@ create_sfp(title = "Klassieke vegetatieopname in een proefvlak aan de hand van v date = "2016-07-19", reviewers = "Hans Van Calster, Lieve Vriens, Jan Wouters, Wouter Van Gompel, Els Lommelen", file_manager = "Hans Van Calster", - version_number = "2020.00.dev", theme = "vegetation", language = "nl", from_docx = file.path(path_to_from_docx, "SVP_401_VegetatieOpnamePV_Terrestrisch_v1.1.docx"), protocol_number = "401", - render = TRUE) + render = FALSE) ``` @@ -136,12 +135,11 @@ create_sfp(title = "titel van het protocol", date = "`r Sys.Date()`", reviewers = "Voornaam Naam, ...", file_manager = "Voornaam Naam", - version_number = "2020.00.dev", theme = "vegetation", language = "nl", from_docx = NULL, protocol_number = NULL, - render = TRUE) + render = FALSE) ``` diff --git a/RELEASES.md b/RELEASES.md index c57298f9..2fba723a 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -14,4 +14,6 @@ After review of a protocol-branch and before each release the following steps ar 1. general tag: `protocols-YYYY.NN` 1. specific tag: `protocol-code-YYYY.NN` 1. Check if continuous integration proceeded without problems +1. Make a GitHub release from the general tag +1. Check success of publication steps at protocols.inbo.be and at Zenodo (records both source and rendered) From 87af53de4776ed59fae3389669953a1552040ba4 Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Wed, 10 Jun 2020 13:37:01 +0200 Subject: [PATCH 6/8] Add example structure repo NEWS.md --- NEWS.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index e3371c2c..39b76bfb 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1 +1,11 @@ - \ No newline at end of file + \ No newline at end of file From 85933bd1c378cc8453829155688b7c3042982ab1 Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Fri, 12 Jun 2020 14:37:58 +0200 Subject: [PATCH 7/8] Improve explanation version number --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a4ceca3f..3640fd7e 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,9 @@ In case of thematic protocols, the first digit of the protocol-number correspond The version number is of the form `YYYY.NN`. `YYYY` indicates the year in which the protocol was released. The `NN` is a number that indicates the order of release within that year (starting with 01). The same version of a protocol may or may not be available in multiple languages (see [Folder and filename syntaxis](#folder-and-filename-syntaxis) and [Translations of protocols](CONTRIBUTING.md#translations-of-protocols)). +The version number is protocol-*aspecific* by definition, i.e. it spans the whole protocols repository (e.g. sfp-401 version `2020.02` will be followed by sfp-401 version `2020.04` if sfp-401 was not updated in the `protocols-2020.03` release). + + ### Dependencies From c5eef28bbbb0fac74e5d1674cc300273fb187fa1 Mon Sep 17 00:00:00 2001 From: hansvancalster Date: Fri, 12 Jun 2020 14:50:39 +0200 Subject: [PATCH 8/8] Add an example --- RELEASES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASES.md b/RELEASES.md index 2fba723a..214d92c5 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -7,6 +7,7 @@ After review of a protocol-branch and before each release the following steps ar 1. bump the version number in the `index.Rmd` yaml section from `yyyy.nn.dev` to `YYYY.NN`. Some examples: - a new protocol added in 2020 that was released in 2020 (fifth release in that year): `2020.00.dev` to `2020.05` - an update of the `2020.05` protocol in 2021 (first release in that year): `2020.05.dev` to `2021.01` + - an update of the `2020.02` version of a protocol in the same year (fourth release in that year): `2020.02.dev` to `2020.04` 1. update the `.zenodo.json` file: - add new authorships 1. update the repo `NEWS.md` file