From c7f3676722abaddc04f7b5065a512e034bad8ef5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 3 Aug 2018 12:59:23 -0500 Subject: [PATCH 1/6] Fix doc issue in summary.rst --- docs/source/io_formats/summary.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/io_formats/summary.rst b/docs/source/io_formats/summary.rst index 76c412b860..1f30c69bb1 100644 --- a/docs/source/io_formats/summary.rst +++ b/docs/source/io_formats/summary.rst @@ -123,7 +123,8 @@ The current version of the summary file format is 6.0. **/macroscopics/** -:Attributes: - **n_macroscopics** (*int*) -- Number of macroscopic data sets +:Attributes: + - **n_macroscopics** (*int*) -- Number of macroscopic data sets in the problem. :Datasets: - **names** (*char[][]*) -- Names of the macroscopic data sets. From c64959de63dff25e8736f9b28d6c179c57fd8733 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 3 Aug 2018 12:59:50 -0500 Subject: [PATCH 2/6] Document governance model discussed at OpenMC developer's meeting --- CONTRIBUTING.md | 4 +- docs/source/devguide/contributing.rst | 114 ++++++++++++++++++++++++++ docs/source/devguide/index.rst | 9 +- docs/source/devguide/workflow.rst | 2 +- 4 files changed, 122 insertions(+), 7 deletions(-) create mode 100644 docs/source/devguide/contributing.rst diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b633bb9295..be506f919a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,8 +36,8 @@ development team will be happy to discuss it. ## How to Submit Changes All changes to OpenMC happen through pull requests. For a full overview of the -process, see the developer's guide section on [Development -Workflow](http://openmc.readthedocs.io/en/latest/devguide/workflow.html). +process, see the developer's guide section on [Contributing to +OpenMC](http://openmc.readthedocs.io/en/latest/devguide/contributing.html). ## Code Style diff --git a/docs/source/devguide/contributing.rst b/docs/source/devguide/contributing.rst new file mode 100644 index 0000000000..61ddb3d227 --- /dev/null +++ b/docs/source/devguide/contributing.rst @@ -0,0 +1,114 @@ +.. _devguide_contributing: + +====================== +Contributing to OpenMC +====================== + +Thank you for considering contributing to OpenMC! We look forward to welcoming +new members to the community and will do our best to help you get up to speed. +The purpose of this section is to document how the project is managed: how +contributions (bug fixes, enhancements, new features) are made, how they are +evaluated, who is permitted to merge pull requests, and what happens in the +event of disagreements. Once you have read through this section, the +:ref:`devguide_workflow` section outlines the actual mechanics of making a +contribution (forking, submitting a pull request, etc.). + +The goal of our governance model is to: + +- Encourage new contributions. +- Encourage contributors to remain involved. +- Avoid unnecessary processes and bureaucracy whenever possible. +- Create a transparent decision making process which makes it clear how + contributors can be involved in decision making. + +Overview +-------- + +OpenMC uses a liberal contribution model for project governance. Anyone involved +in development in a non-trivial capacity is given an opportunity to influence +the direction of the project. Project decisions are made through a +consensus-seeking process rather than by voting. + +Terminology +----------- + +- A *Contributor* is any individual creating or commenting on an issue or pull + request. +- A *Committer* is a subset of contributors who are authorized to review and + merge pull requests. +- The *TC* (Technical Committee) is a group of committers who have the authority + to make decisions on behalf of the project team in order to resolve disputes. +- The *Project Lead* is a single individual who has the authority to make a final + decision when the TC is unable to reach consensus. + +Contribution Process +-------------------- + +Any change to the OpenMC repository must be made through a pull request (PR). +This applies to all changes to documentation, code, binary files, etc. Even long +term committers and TC members must use pull requests. + +No pull request may be merged without being reviewed. + +For non-trivial contributions, pull requests should not be merged for at least +36 hours to ensure that contributors in other timezones have time to review. +Consideration should also be given to weekends and other holiday periods to +ensure active committers have reasonable time to become involved in the +discussion and review process if they wish. + +The default for each contribution is that it is accepted once no committer has +an objection. During review committers may also request that a specific +contributor who is most versed in a particular area review the PR before it can +be merged. Once all issues brought by committers are addressed it can be merged +by any committer. + +In the case of an objection being raised in a pull request by another committer, +all involved committers should seek to arrive at a consensus by way of +addressing concerns being expressed through discussion, compromise on the +proposed change, or withdrawal of the proposed change. + +If objections to a PR are made and committers cannot reach a consensus on how to +proceed, the decision is escalated to the TC. TC members should regularly +discuss pending contributions in order to find a resolution. It is expected that +only a small minority of issues be brought to the TC for resolution and that +discussion and compromise among committers be the default resolution mechanism. + +Becoming a Committer +-------------------- + +All contributors who make a non-trivial contribution will be added as a +committer in a timely manner. Committers are expected to follow this policy. + +TC Process +---------- + +The TC uses a "consensus seeking" process for issues that are escalated to the +TC. The group tries to find a resolution that has no objections among TC +members. If a consensus cannot be reached, the Project Lead has the ultimate +authority to make a final decision. It is expected that the majority of +decisions made by the TC are via a consensus seeking process and that the +Project Lead intercedes only as a last resort. + +Resolution may involve returning the issue to committers with suggestions on how +to move forward towards a consensus. + +Members can be added to the TC at any time. Any committer can nominate another +committer to the TC and the TC uses its standard consensus seeking process to +evaluate whether or not to add this new member. Members who do not participate +consistently at the level of a majority of the other members are expected to +resign. + +In the event that the Project Lead resigns or otherwise steps down, the TC uses +a consensus seeking process to choose a new Project Lead. + +Leadership Team +--------------- + +The TC consists of the following individuals: + +- `Paul Romano `_ +- `Sterling Harper `_ +- `Adam Nelson `_ +- `Benoit Forget `_ + +The Project Lead is Paul Romano. \ No newline at end of file diff --git a/docs/source/devguide/index.rst b/docs/source/devguide/index.rst index e40e7f6359..e2410f080d 100644 --- a/docs/source/devguide/index.rst +++ b/docs/source/devguide/index.rst @@ -4,16 +4,17 @@ Developer's Guide ================= -Welcome to the OpenMC Developer's Guide! This guide documents and explains the -structure of the OpenMC source code and how to do various development tasks such -as debugging. +Welcome to the OpenMC Developer's Guide! This guide documents how contributions +are made to OpenMC, what style rules exist for the code, how to run tests, and +other related topics. .. toctree:: :numbered: :maxdepth: 2 - styleguide + contributing workflow + styleguide tests user-input docbuild diff --git a/docs/source/devguide/workflow.rst b/docs/source/devguide/workflow.rst index 6201f429a0..d1deca515b 100644 --- a/docs/source/devguide/workflow.rst +++ b/docs/source/devguide/workflow.rst @@ -82,7 +82,7 @@ features and bug fixes. The general steps for contributing are as follows: you are making them. If the changes are related to an oustanding issue, make sure it is cross-referenced. -5. A trusted developer will review your pull request based on the criteria +5. A committer will review your pull request based on the criteria above. Any issues with the pull request can be discussed directly on the pull request page itself. From 05010671ebbf8a2de6a32bac6911dea16465c95b Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 5 Aug 2018 16:33:53 -0500 Subject: [PATCH 3/6] Update contributing guide with @smharper feedback --- docs/source/devguide/contributing.rst | 30 ++++++++++++++------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/docs/source/devguide/contributing.rst b/docs/source/devguide/contributing.rst index 61ddb3d227..443777d4d4 100644 --- a/docs/source/devguide/contributing.rst +++ b/docs/source/devguide/contributing.rst @@ -52,15 +52,17 @@ No pull request may be merged without being reviewed. For non-trivial contributions, pull requests should not be merged for at least 36 hours to ensure that contributors in other timezones have time to review. -Consideration should also be given to weekends and other holiday periods to -ensure active committers have reasonable time to become involved in the -discussion and review process if they wish. +Consideration should be given to weekends and other holiday periods to ensure +active committers have reasonable time to become involved in the discussion and +review process if they wish. Any committer may request that the review period be +extended if they are unable to review the change within 36 hours. -The default for each contribution is that it is accepted once no committer has -an objection. During review committers may also request that a specific -contributor who is most versed in a particular area review the PR before it can -be merged. Once all issues brought by committers are addressed it can be merged -by any committer. +During review, a committer may request that a specific contributor who is most +versed in a particular area review the PR before it can be merged. + +A pull request can be merged by any committer, but only if no objections are +raised by any other committer. In the case of an objection being raised, all +involved committers should seek consensus through discussion and compromise. In the case of an objection being raised in a pull request by another committer, all involved committers should seek to arrive at a consensus by way of @@ -82,12 +84,12 @@ committer in a timely manner. Committers are expected to follow this policy. TC Process ---------- -The TC uses a "consensus seeking" process for issues that are escalated to the -TC. The group tries to find a resolution that has no objections among TC -members. If a consensus cannot be reached, the Project Lead has the ultimate -authority to make a final decision. It is expected that the majority of -decisions made by the TC are via a consensus seeking process and that the -Project Lead intercedes only as a last resort. +Any issues brought to the TC will be addressed among the committee with a +consensus-seeking process. The group tries to find a resolution that has no +objections among TC members. If a consensus cannot be reached, the Project Lead +has the ultimate authority to make a final decision. It is expected that the +majority of decisions made by the TC are via a consensus seeking process and +that the Project Lead intercedes only as a last resort. Resolution may involve returning the issue to committers with suggestions on how to move forward towards a consensus. From e75372f0271e576cb9cea923d47559577e4b5363 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Sun, 5 Aug 2018 16:57:22 -0500 Subject: [PATCH 4/6] Update workflow section --- docs/source/_images/fork.png | Bin 8601 -> 19133 bytes docs/source/_images/pullrequest.png | Bin 17703 -> 0 bytes docs/source/devguide/workflow.rst | 16 ++++++---------- 3 files changed, 6 insertions(+), 10 deletions(-) delete mode 100644 docs/source/_images/pullrequest.png diff --git a/docs/source/_images/fork.png b/docs/source/_images/fork.png index f43f64242e63127dc95282c64f5b062a31a9ea96..9bc63ae612d14871a01704f60bce6a83040f0567 100644 GIT binary patch literal 19133 zcma%@Wmp{1v*rhPcemgUf#4q8f&{n0-QC?G1czY36WrZ3cyM=jci7JV-o3l~Z66+( zp_x8?X1Y$Ds<(bcq_UzE3L+sQ2n0frk(N*afuO;_a}ju0;O7_oscPT>7Az+v0eb)U zmD^sN2pmChkk)brfsnBNeM5jUe&7QK;ap@CKErLn!{9J-{aUz20)fauG7_R{9!n=# z?z&j}WP`#KF(Qy5?WqAjx7IeYUF+1XS6!`Fm#tp4>MOKuXIrdRm-vn=^3Pgm6-^kt zCq8@#IawzQl#BboBnpw!$f_@P=5)W}JaN5p?Q_PDuad3{0~shnjt&p~-w$HR#uC2* z{_i7@o4q0-`2WwVLeQWw!2ff~fBqzdE)hZTe}(~$J&2%Fg#Et*L5cqV3^Y)H_-|}w ztc2m+q47Uq%5))3xdCeMd2@!~(X!k5A#k;!kr9NBjt)K%Q6hVg$kP(-%qJv7MD$k{ zSOS9dq1{WFLJeog<9X_2Wti6xisWJS0tSSCLndxqdPpnEgsPN&NERiJ?j=MH?hdG} zBfd38t^u2 zx+u}D$jyq19I6__gWCnw7;tK8YKDLb&s=pp(g;8zhC&JntzBGQeV|0%Ogy9Qqx{bY z&xKg6i43Z$tAo5Or$)Ep)@8vvBp{$G>BDC+i6KY-WxhVTdkF$5Dk>HPA>{Z7Q;7Zd z+vG?`1{s=3t~p`BbCF{16mVMZHM))ryP|jDTM=G{A z!Idg;jeVYOHGvJz>u^!u)e|6~f-k64pXex6qmy|}^b>oMq4*&ApKJV&@$|rLwKIWx zDDxfnH>YJ8W2nPpQxu5uDk{;MIse(@Wc05KoY<(gUlcQc8x+WaY24H=XEYRwFYch@l>g5nL>`8u3;)W>-OG{B44C?=Go7!ud&9A^vf>k^wzVaX>_)`LhgVjz zHdC0k8HD`WY!AUd&HY$09(OQR`s$6d_ppdGw2LsLN1?{I+BiTVsD#STjaB*^%4*Ct ztJwj8p57Aw=@#Ua_+QsrK*CE#MCy1Z&E$R)>qiBao%&#o|7$1~ts*5qBa#g&+-i$k zf19Usw+V;k^YE^d%|aE%y!}dmG+jtmyC5tYVF(75)Hm4=KG+O`nw27SLCSPNDD#AS zOq?pc&|)|VS&7j}NgqKX+pxDXq3A+cp{Vs6j~=E&W4jdW^cYOINZfO}3kyq0Pq=X+ zbk@r>Gb`*{PqCRzzV|E@>rIh%dad6xMV|=s5be9J_a`m~oA?U|u?m;g04j~f zvO9cY&$5Cxk56T+(nLxq^~1xUKsL5b4({&MIAY{#6u_c-*KZEG-e)D}U?3FB`__=v zZJ293h>Fi^gRfmjj>QMLscL%u7CiI*&&T{qx$S(3f<+-TTy1d$1t^m62aePaWVd@y zonQM^)zm?PE*=F=);r0dU~dN7ny*WI@t8CNVl%n7CW8IH|M}qKz#wS-J-U`ko7)na zsDi6h4>AwY^OXh}gud`ivlqB0q4F$)Oh5S>Ol)H7(=K?i5Mp4)>MN6(ULg|;l}_8N>LRs z=B*Z31@i+Y!cs%tplaEAE(F+kTlzDm5MnY*UlSky&(G5$3z&ezEa6C!rCyVefCLd@ z{QDIXxDxwT=9h)bLB$Ig(|7}1QqsUpDyhwd%k2V8gb<~O*U&k(us0fXAy>8Jm+h02 zn0LGNAad6Dr<3krI5rNBpwxJ@+w^!P5>QuXDyw*fvIvYwsmkVB`?G_iTg8pjYy+9t ztny)nOoF{J`Xe_kb0$pB?C{|>vzoeyWHxaSB#aGnjM1Rk&!6nm*s|mb~!OyPIYWs@ALIl@8@pY?1Sq#?33zZ_L_T+QseY-eZ?eQ8|I(c283Dv7`pN0#`BAdOXDSTG%{hyo8`uf zYpO*pX#=VQS&s9GzDTSpt68fULP5mUR<~f~4}Fim(*p%VK_9`&&|w24#q*BRv-A;@J?dX*q2p{F;F0DF#k7P({y3QpAA-Y4m(A zK>wDvFol*|C(3oc#zE*K+M#C#LOazUzQMZT$)up?ji5ju zoN(s!M*7a4o279|?u|JDa`|k^9#=4I+n8nB?&gPK79I?^$HNi3uox}pg-S|saPJ%f zqHmu+iRMW}#(t`G*uX$TXwHz=w{2s(@Ku7lu^ghmuD0vM*=&5TaTHXE@JTmQuGqH- z%VREMYmF9M=*L}3IK+$*{sDLg_mBM@7L7$`Y)v!3uX8N&)$cXiiH5Km1et6ME93g8(It`e_AV~Bq7V8jP$ zd!!j_%31pm*;p$t@Dlb6&MouKtn0ljYA#M-0OmZWJKlG>@3XV>yK+7P0{XFvy)(0Y zt>LFKWR_okYxueT3D@C5sU|ieo;WVv~vYvmomI$rQ@?_;>+D zs)(PTklQ&ws8A(xATaP?sW5R|NNaJi$@!jCW%{p?t!d~+uG_^OW%WC9we?rBYiU7-yMNSqyiV{zh8r3NM&l=1e9tU8E!f1|MCRi^ zK99EIAJtaqwIq4OJ>Q>E2vOwC)TCu(Z2hk6_*G+_EL+Iqc~#)0IL0v;0P$))<}2WI zVqaix(ls&-1%(`=$Ex2RBvvumI@Z?*9ZLjrC2;y@;tX7#@Zqmvv?%6q0`76jX{6MEiHQNV(CRx|`g%TN2|0cu5EM zp+J;>sUNJAAh(=M_@aO6*k3yy+X|%IxpjTlkAoelI~Qd!`ym~wmZy`8oJZVBwzD;< zN_vOvKA3Cvl{$r%St+bK{CjC=-;r86?Ym}$4}h;D*Iv#o+0 z;z4Arrr>pP(s6|=2`IeSZ^{$H$jy&VfN#0v5h4@5ablypgXnsk6aX#^36i(9*P$4p zQ}9WP((0v4>WWY0xVWB`Z$AeWAmZ3bL_1JvhbX+8Za?s#JuDpRtJ-yZpQCvMa|$S+ z8+TPeXI#L8V4QHq+y3+dBfhZDpsd&J9WiH0|LTi)jcmd%qD6%ZD2@aRC}11Uzv}+T z+9_?+rS~By*FDoUe!*kzsd|kZ!kvP1EJSP~qUu@2PgoNwhje+;<4_873{SkQ(G*sJ zXu@Fb$r`KX;h4i>795*$mugddR)c6FVD33>q&y)#3&SYCng8q)hYaOTyWuJuxOU3> zh)C=`FnDS1^P>F6L+!UR&T}Vbv(GJqpJt2h{`EPYU%03N%0~}<<05t%r3`3uTJthp z1p^no4ksKSwqGC1(J0~&K=BM)=eCCcxg0OS0E>~O<@@*VrM@exD^u^$8T5S;pFbPF zRuWY`Jcsf{$6h%cjcN(_JfMRnbNxU+vVK^*Emwg3-b|t5a(G}s_yPxvBoupg+<9iTukQh<*?IPLCwApg%u7;0tu*RFa+AqoLiaj5t01QD13t z%%5?pS|s-2syYh6mkESkZhWu6J+QH1%k_WPo>J0p^9sfJ?GFj6vz^wiM5jXEFRd)L_3D((?9JuNv{F>Eq8rLS$zKp{!#YV>8yD z8e6tuGAu!<6i21x$@9#IrV@&n7+<=cafoFcm3HTj=mDlaT1W?fHURdy>Hy`ReZ#4c zFFssY;B-Vr7So=n{=QK~x0c{@ancTEfp`ok{G}ek;0*2Fu_gRNPsAU7)Lns6&FCX) z_>SZlxJCNZ+II51DM2O3^u)Xa_{(#!3M-o5hLW3bse2NN1?bd8G=D+MjTdjCE!LQchuxZT-_O7Pf ziNe8eV#J_8^4%QgqQ4hp{Z=~ZtV3){qBcK;UCY0mpYWT&={lL`@q2u5yay0*Oy_=< z!dNF&7|4nD1cBr@spKu~!_OdWG}8$-ZBwwl0p}!H2anLq;j&B^K6vfBX_QZY{i(cJ z(@WHr!0Cp7EZUn8*B@1Q_e*EIU2pkh0V@jy256F}N;LFoWYQM_xDS=`&mHnCA{Sx! zFP}!>TuJ1rO=+sl1)_?hPPE`g{XQY7jI2-^U8y#7?JbhuHpg0#%r` zM4HOM`!1feynN4F@XZ4HVB9;3zpya!!8>*7fmnmxI|&@>8$zLq48t~*)Bc&DY{=AL z^EFs0D1VWgY%amb(lT#q ze3EAZ>H^l44gLX`El$#=0XyrJ$-(L;-dL=qi!~8+SrnvFnS@#x_7?&bWLu-ycB&Q2 zYB9;Wou7wGjYGp4xA7ZSo<`70{sF>}i zN~Q$J;JXi7Q$FjM#&y^TY?8=^($3Z{m*(Ph>RXdoLSl7gztun;g5QHm3g7Cy8#c{~ z;^3#dQ)7p_xeYVf9T~Mlm>X;9?tfr+5Z5XeZCzNze-BM_xz*9rur?k&FbN;1VEVB4 zr|Qm%X6#6z6f!OZUKR(u)b|78oUfs*BKn|w;`@r@5^Qv zWE-&hFE;h*(x}u`V7WN&u?EOXRytSIbI~YdNb}G4%cWlI8-yo(`vziVRf@qELiT;W z$!mxw62>(j&w`2{%qKbCcRik}GJ<+Yy;g|%_5H5YZl&El2h+&vuSru8lOl5cHMLit zq!qFn!{u?&*vxvSpH_H<9{=`H{jp}#1KiNA6EW}Ir!Z7fHQO~hzX}F1N_Dtt z#!|7+wP|u1BC9Qgj{8Sk5|W=GK#)Y-T@@tDfVWC>~B~*Ss1D)ZOK}k7nN07=8$OqY9Tl ztJ~AaX8HZ3*1S7fBq2RJt2G=qQ^|iLP6gjK`AY;SrM-UddA%F4nyGGox6qe9@#xFp46wA&8j{_5##X zIlob>7@qeMkDl37x*K3oZR7@C#aQ(Bw^(bzE2WYf6p2Y_2X@1B&?g4!^{%>thZkzn z@mFG^v+iddxonuz7TEjLX$^nZCiBgWcZ+ROa)`@ffl&pvM87skXD|1Q4sPW|*c!BM z<%l5_b{bq%KU!KSc1Et0AS#O#JVpXbcP%t~hWF80@b(1Ptty5! zKFC9zC(wFkqawWlY76Nt38Z=~N(xv>81F z8*K5$;9EhQIhVT$*9Vhy@TNs{=2*w2QY38ykvmm@QXIc^Y z5;{#*#PPzOE6fNu%TaW)zCu69|u=*klxV_rS1Ms4TLfOT<1==qb z$p%=jx&4iitjif8PfY4N!O?#ART2?8vJrpXKp-c~n(+3W!@}Lm=(wEE>s`3XG|MBz z!HG2;(GV$A%QNWg0BR!6&NnBEP=oRB3j8U69(Ny|x-pa>&Q{vPQW|0xMiUi=;n@seISoY24GETJd#q z_8b~gjy`j9Yp7~$EXKXcvtJ`;VL{#UVb|Pa^6>D;mDwIh;*SPYJ6&CY0?gQvtS5W= zwl;xouqDj^ptM(ti(}y7p}|4{>X~RFO|0DQ~EM+v;`lT82j|}vx z(uF3MD$0_ovG!qQ0iRLhC4zLdRo(J&gp&sQTN7;tcNlbohe=rWt$KXtsk{Dv)U zIBL=}KY?ez7D7SE0lB8HZ?V?qS&!oPM#DsmMWd82;X#v#5GwZN3X)T|y{oRVw%7f7 zKc(q>_c!5uw4z~MhYKyPj38jDsMAGC z{d;3NhUUMsjm`FV4EII}q~#|^$%>V7P|3*7ow7y-=5Sqoj+2i0hv|nSqGBL(2E${^ zQ3yZTK@t(I?td|pr19`^UB0}zk+8F40d6&f^ zHf6GYXSg(|<6DEBUxD9VPPR!A?#v|d>&!$cMEn=xFNYnhS1LitLGut~A1EN#bZ0Og z4gU$96v#k#{^@Y}#{{Ixm!z9rZQHErswJ2%crR%Ubmb~64#d!kJF^LOXsdag_&qYC&7 z{5>QT2vZ-U6V}gnk{J4s?S~5^**iw>d%16-pLM%V^X9V)znCmOg;$vZ}OxcQ?+6??N+<9_}y>qtce#Q?(PA}|Mu+uIW8*+9SWpC$n_Tk9EFQ76-V4( zVlVl1@ivB#6BVdr1qPz98@+fi8B{|Glz;x-9t`F8=*bKTMbtAi1V3Fg0g9gpFE3|i zF=!ECb{fy(k2m;ar)HqEJ+M&gT|9UD7N}Z08+~OkS1G=)NRsg5M~qhOJ|&BgezANu z>6zyJwf4i~BLzJ>0#ygW=jD!#)=*G@xId{xyVudDE{cg913Pv`wy zjR{h(N?~d)oJ?-}JeaPJpUjOe@1rN5YbRvOTK&g!2ICpOCjahuzC8`z9ZC86?B=(7 z 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 literal 8601 zcmY+Kb8y|y_we60HXAf-V<(N#*lyg|ww>HIYGYfCZR^H18#lJ?U;FvaJTuSktj_xU zv9r79_4A8@Bq|aC5&!_G(o$l|007nUH&2fM^*6@nZTt2&fiseo6a(J=`Rw+>xW5ua z2PsWw06@n67eGL2I{sfFyouEZ@RXTqhgHmfmf}Ol%#=ZKY(sL?uCe$91ydYx%x*Iq?CRE&O3c zldw3=52UXclYxxFQeX;-yWQR07ji>=I)q4;y(f55Cuir=v8#0N@w3l+Jk;zN3h)Rp zP~U_;VDO7dQvFT-mA0Y&lORyw{Z|zF&XNsxoD-R21V;ya6Z50*K z*zM@oj=#H_ShVX=WwNlUtz5T0w9W&4!`~d-acb5Pu$rZz!lr#S @IUR?AP3eBOB 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 z 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 diff --git a/docs/source/_images/pullrequest.png b/docs/source/_images/pullrequest.png deleted file mode 100644 index 8cfc71e9cd3bc5ed8d8f49f7309c5b54b8121705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17703 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 Ef?eNLmjD0& diff --git a/docs/source/devguide/workflow.rst b/docs/source/devguide/workflow.rst index d1deca515b..dfd738fc63 100644 --- a/docs/source/devguide/workflow.rst +++ b/docs/source/devguide/workflow.rst @@ -22,13 +22,11 @@ ongoing development takes place prior to a release and is not guaranteed to be stable. When the development team decides that a release should occur, the *develop* branch is merged into *master*. -Trivial changes to the code may be committed directly to the *develop* branch by -a trusted developer. However, most new features should be developed on a branch +All new features, enhancements, and bug fixes should be developed on a branch that branches off of *develop*. When the feature is completed, a `pull request`_ -is initiated on GitHub that is then reviewed by a trusted developer. If the pull -request is satisfactory, it is then merged into *develop*. Note that a trusted -developer may not review their own pull request (i.e., an independent code -review is required). +is initiated on GitHub that is then reviewed by a committer. If the pull request +is satisfactory, it is then merged into *develop*. Note that a committer may not +review their own pull request (i.e., an independent code review is required). Code Review Criteria -------------------- @@ -37,9 +35,9 @@ In order to be considered suitable for inclusion in the *develop* branch, the following criteria must be satisfied for all proposed changes: - Changes have a clear purpose and are useful. -- Compiles and passes the regression suite with all configurations (This is +- Compiles and passes all tests under multiple build configurations (This is checked by Travis CI). -- If appropriate, test cases are added to regression suite. +- If appropriate, test cases are added to regression or unit test suites. - No memory leaks (checked with valgrind_). - Conforms to the OpenMC `style guide`_. - No degradation of performance or greatly increased memory usage. This is not a @@ -76,8 +74,6 @@ features and bug fixes. The general steps for contributing are as follows: 4. Issue a pull request from GitHub and select the *develop* branch of openmc-dev/openmc as the target. - .. image:: ../_images/pullrequest.png - At a minimum, you should describe what the changes you've made are and why you are making them. If the changes are related to an oustanding issue, make sure it is cross-referenced. From 1a7b3c1cc0772d1b566d26fac2df3448d641f775 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 6 Aug 2018 06:39:08 -0500 Subject: [PATCH 5/6] Make it clear that PRs must be independently reviewed --- docs/source/devguide/contributing.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/devguide/contributing.rst b/docs/source/devguide/contributing.rst index 443777d4d4..22dc643db9 100644 --- a/docs/source/devguide/contributing.rst +++ b/docs/source/devguide/contributing.rst @@ -48,7 +48,7 @@ Any change to the OpenMC repository must be made through a pull request (PR). This applies to all changes to documentation, code, binary files, etc. Even long term committers and TC members must use pull requests. -No pull request may be merged without being reviewed. +No pull request may be merged without being independently reviewed. For non-trivial contributions, pull requests should not be merged for at least 36 hours to ensure that contributors in other timezones have time to review. From 1dd48e545b335015991c9b958e1e2ae2f89a5ce5 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 13 Aug 2018 08:07:22 -0500 Subject: [PATCH 6/6] Add 'next steps' section that discusses first-timer-only issues --- docs/source/devguide/contributing.rst | 15 ++++++++++++++- docs/source/devguide/workflow.rst | 2 -- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/source/devguide/contributing.rst b/docs/source/devguide/contributing.rst index 22dc643db9..c08b1a362f 100644 --- a/docs/source/devguide/contributing.rst +++ b/docs/source/devguide/contributing.rst @@ -113,4 +113,17 @@ The TC consists of the following individuals: - `Adam Nelson `_ - `Benoit Forget `_ -The Project Lead is Paul Romano. \ No newline at end of file +The Project Lead is Paul Romano. + +Next Steps +---------- + +If you are interested in working on a specific feature or helping to address +outstanding issues, consider joining the developer's `mailing list +`_ and/or `Slack community +`_. Note that some issues have specifically +been labeled as good for `first-time contributors +`_. +Once you're at the point of writing code, make sure your read through the +:ref:`devguide_workflow` section to understand the mechanics of making pull +requests and what is expected during code reviews. diff --git a/docs/source/devguide/workflow.rst b/docs/source/devguide/workflow.rst index dfd738fc63..31dc088428 100644 --- a/docs/source/devguide/workflow.rst +++ b/docs/source/devguide/workflow.rst @@ -129,6 +129,4 @@ can interfere with virtual environments. .. _openmc-dev/openmc: https://github.com/openmc-dev/openmc .. _paid plan: https://github.com/plans .. _Bitbucket: https://bitbucket.org -.. _ctest: http://www.cmake.org/cmake/help/v2.8.12/ctest.html -.. _NNDC: http://www.nndc.bnl.gov/endf/b7.1/acefiles.html .. _pip: https://pip.pypa.io/en/stable/