From 27c0705acfaeddc32e75029bba8d0bf9a1c891f0 Mon Sep 17 00:00:00 2001 From: Trevor Bekolay Date: Tue, 13 Dec 2022 16:10:27 -0600 Subject: [PATCH] Switch to Github Actions --- .ci/secret.tar.enc | Bin 10256 -> 0 bytes .codecov.yml | 19 ------- .github/workflows/ci.yml | 57 +++++++++++++++++++ .gitignore | 40 ++++++------- .nengobones.yml | 66 ++++++++------------- .templates/docs.sh.template | 33 ----------- .templates/slurm-script.sh.template | 18 +++--- .travis.yml | 85 ---------------------------- nengo_fpga/version.py | 28 ++++++--- 9 files changed, 130 insertions(+), 216 deletions(-) delete mode 100644 .ci/secret.tar.enc delete mode 100644 .codecov.yml create mode 100644 .github/workflows/ci.yml delete mode 100644 .templates/docs.sh.template delete mode 100644 .travis.yml diff --git a/.ci/secret.tar.enc b/.ci/secret.tar.enc deleted file mode 100644 index 0372d9decb03d149244a0074dbd30a5d6a92cc2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10256 zcmV+rDDT(*YmoC2V;S~$4qZ(guKXTzTIUIh_3=K=Y55`b>Fs0I1o|P3Dqsq-?P!w1 z&u4`uYZI6$| zpL?;f>84hJ;S8#}r$DECab@-qd@?e|28U)~$4!J$i+f~~I|5y295R3KztZ)LaG^wu z>I=W`Gobdm!Hgm|pytijr~Qx&!Twa)5$2Y#j6CNr>%R`qG$nwynRS|Ui2WN>nzUBmHOgnScTO0uab$eY@-({l;h zg9$y@+OAiW(n6U;eD>F9*dPk$uZ@mf?DMTbDH|_Xr{WW|rO_@=HLMhlOJ^mv5YbDhWKMcqabSoE34!op*eQI6mT*4I;~T-K$nsrS6l5T;faP|tgv4I)VB~s&+o*8jB^?k6FUptoSyemNS3C`fb4RRId_X7LK~Nv*h6V&1 zr)%=iNany<#UjrKFum9sMKKC1;v$Ikx#=xP$U{Xm4@|2ag4!H5HBNH*J+?Z1@9Ts6 zw|7`OcYwzMvQUl?A2Q3~cYL>L(AlIOVwkine7fF2gySFn!{*Fxnr$sl+}Q_>t}0#j z$(=S=STn@g`5K|tL zpwJdIXtfY1eYUyqLiO*LgQP3R3HE=gT2T`oyiiaR@-yJ}CPtK`EuRn0z?g970;L{B zUMNGD!G$gth3{faBC?l6ex%>?^(Kp%Jce*oL1jB?`>hMHVNEKJ>*lDQv>5SB&yOIFgP`?#3II~q#5O=8+V0o=TJ6w5mQ(NDzXFAog$^Bk2wb{^=qBax^p=_%LEOxW zKOP%r1%uj{vEHFUh#{JXEP`$KFL+pQmM@in@Oeor5!#FAdV9wA!2 zy8zsT`s1UbQf%*3eGP%t`F{~bljSlm5q9aT!vsZL;y)3JBo-zH`t=mSV5J#wD8xFT zV#PccLiRqAiFKaQBoP{|gwlOI*1mAbK0*TP=VxkkY=mP|`-vMY@%;g?sGgu{d=_zW z)G`=FhsmRxq&{JzfXgKQ;-ssQ?x^W!+j)ciGR)O~7)D#iYfC8Xml?GDy05|FDmr?QSuG?|@m6G3yMi_!4o{Ci1z-tjsyj@^8=nB2@cv6u zrVHs*C8f#;NnuTq$NLMADq6aU)-a{*N5S+&v0X*NLTx#%2*1C;N?Gr~BFZP$-=O*= zFAXPfgRQNzVM_hE39Us*aKog#TG_!^0YjJ^L2~bNbdU{aJ%x1S{gMW2vjYP4RzV)_ zuU!{%BN1KwHB0b~P}PNxSU*>VSHo?w~Q%NC)?1htyPqk34A zMPb~SC+i}fGTfrtu{J9l!>Z$-i^3^Rhf_2cnn}h^zu--zFqagH?5S2!a zz*k|4#WevbG=VW@|Wo94MY#;zWjKMePi)4dzWe zk^!!x47@WjD@XkmPE%0hQz28A1Aa2xdhqYK*_yZ;a4)`mz55y_xkuosR0k0j0{>-r zw@1Aff|!nw&zqBmetQDg2N`R*RKP!h+lZ1IScS5nhlKDgqeu?RgAkp#^6(WdSe{}N zJRC1>xb>>I<`N9MuoKm}&p}pWTpp-SG_bi^sq&~fs>W%PIwTKq?;To3SdCWnY58=^ za$N@Es091tZXg^Ha0_$gA_(7YIWwgWw5=p_ag^~n)752;B!PO6?5Ohc-mOk9bwguv z3(I}9jm@(H6p)wX1+qx&cW)UIac`nNX$j!(N-CtbRGil*4Cx?$S)8Km$wk>Hv*gOn z`DqK8$gd`q-^MMz9NTfk~i&D zS^?iNHtOnBp(=o=#eD zU`&I`;9Uf9qf}JVWBnG7;L6KQ8A~2~R&-y#3G=l^aGfgAbOzFsV+HQ61 zT9^zeg@h5KVWq|DT)O5>WO>n%q`xh8gFs^rRHTow`9I}2IOzpwWzmvw#%|5n7JWHQ zPOZT}ah44kX^&-4di=4B_G;H_Yc`3%V3>dAWLz)0%zM11Pw$y_H(cVSK1qS!PpJfh zC$T93g*S%U6Q{g#uA6nR-cF%h2|q7`TM5|S{ON}J(X2*; z78ivTwo3I5NPOB`)79tiR0dzp%>iC4K;+!d8>21(x=i{!5?n)UB_xjbyj~NCL6UB^ ze(0vdeyJgK^f;MD!bPYibhH%cz~IO`%ki?I*j~3p zpp@y)@I!_lKYmKaUh!7o$7)#G2L$TLnex%ysq{mV>AW8d=ekO~UlmB~Ahrdik`zyl zrU@$XhByAdh&)O>qV;{3qw85li|r7%JfEzwt^bRNH9GpHM?yu?Qqq)enC<@&BJk%= zl`Yh>=vJzFfh9-z@qid%I72KyViqU$vcZUUFuyyJ`p_Fcu4XZKBp3R`4grhHGvtXI zC!ItI71Xd*DCbW+>fI7zPQ}{N)7Rs2N^= zRQt*eO6@sUOqbrD1)XM*!+iUrlj1{mse4UiAW1fE72tb;+#j4gn3McB{voIj9j}LL zPSz9-GDRqI_KWG*d|j@(Ta3#8dK}W|S&MHA#($H)pJh67SB8X2IVAX1D1b-=I9z=s z4aM&z=w!Ip=9==+9IUC=#1-$tnl=u@yX^uQq$yUplw?_rZJ;^MQwCpX5`CKCD{2eS zgtJT8h!q#GAuskM(R;ilprcPTx!^W0AqVSTms<#WykWDFpqlA6*N~IcfPl*$>E%5Z zazM_0SS-l=HcmPin%o&XNuDv?ae+Iq1@_UV_CT;e1_H5EXeVO6%|ztfVmjTV?Q7E& zz?2`M#a{^r8=rw3RGgyq29{>6bUORxa-Jn>ecJ23_ev0!3zdcaM!Tunae@?*z{N}I z5Mv@2(Fll%>L5%wruWGT@?H6@#!u)o!5xQZ1bWY*Fa_B@tC)v}x(S&S`UQ>)I;-p- zXaz~V=E|tgdEHdF!fTe!Ke=WHO|zA5->IbGtPa4Flo|cxAr~qr%<>d5vk$mB zPTQ}iWR4#;V6}I^nQ7|d8~hes)7*`&2E-YLwmSQ&O(ygReY*`()o94T(sZCW@ojsd94Z3U7a|hfL1X~oI$h=#j(j)F zm}TcQB?hM4o)ze%gKu=p5zs%71kVV>!OYl1Y^nr|TnV|wE09;!%IV0y@>Gk71x|c! z!m9i0@(7~vLs)Vc8rJ=CMfM{i|6ff7WJb2YHP)knV4j_6^uLpfk^N*q;3Cb=jArMr zoc5Ea{^;?@bIQ(_iUwAAG5`jkpNskcuR%+{IBk)E_)#M}@gxmUz<;j#M{MVpa0dU! z;+p9BjLP3o5g!@jJCM&lrl}oN^{WDNZ>|mmW-d&DEiwP%vWD=1+(Q420+K1+GD35@olQ`V}urCYwwo zzo~RL-pqyt{cH6!ShI({X+`?IZz){{^M;^HKVyH`e zyW~|_oGKNK-L@%y9JdKi5ZGlhFW@0QyI0{wK!1 zsp3ueuqCc>*C%xcK`z88z-f z^{dt3pL)kJ^nVOt#r>SmKb_x3ictF3)X|;e0WE1LDbWjaBeeW{8j+{knE+LZj@u81 z1}swrMtPgCkjcMr)e2bkp>E^xqvY8!!lAKj*SI?cI#*adJLM7EhQ}cQ0zH8%+_Qv2 zV+)>V+&?2qNx(veDc}jdL?hUmLM~oU$+&QY%@U>wn7LzMlAW80%~sIwAG1F;xrXI>V8|yi4 zs8z|IUzhA$Uv{LP8Q?kh;&=EG(MI00pQvWxNEI8ORkZ7gH7GH(|1BZKm)aIQm4{@G zlQ0WeSp9>m{R(hoGy3(5lzVS9>@dv9R_jac@f~()_(KK9q34o#gZMSn z98vhIG_}?0{j*`zRy*iL|A3?JqBY7o-8s@WQec(?dX#$dw*kV%On2NNJ3bm_JaB5b z8K1K~?zS)MBI5FZKaj^=?X}@NW9E8;xu7F5a*>6~aoo4}VpQ;tU5UpYv z`@N>rR278fm3CscLWMP#i~1!5l#u$fG%I$k1qkv}`>foe@|u5^Np^J(-_;ae!iWR< z;Y??Nu@{poXasf-1QVE4_N`Njqy5n)-E+rwv+zdnFDGfZ;vK*(7%|xkQRvD?hhc7| zrDvF%^a_Vzp;X>e|A)T4#76CxhRmb5i7vq0&W-8$}~Dp-B9VhZ(R2^a5)y>%JJ8H>k}RU z`OH4&Gs$MP6XWbal4kMM3g{AKrlp*D08YGAw;$eK98yj81P@zh$Bs+PWVajzF|loCcv@L zPmJK41&FL#(#+-Xok`}}W!ns^!RMHwX0B(4d*oUwj=52lYB!U;sp#Q!n|fVAPI>0Z zGMQ#9v4@nq^Z8vnkV2vaJvxG~{MKC~?&q7Lpz?t!anUEXe#-YcQhA5%^|=46J51!C zICs6NXEoMoHRb|#O)Hw{ekA^=|3y=vN-t(^IMv!?%CI=RXPNQeYIPU`2tX%MHFwPt z(&PBu%I9Ir;ny0j(fMrfqFKmZlNG3TK$S%Hd5wN_e)2jQ4^;Ndu#%>QhPmV4{9(4} z)i%SQ+zpR-n=S3f>86dV;n8LKUK~o+-2&g5T~tY}4KJ~T5nu~ptJ3&$AE|fRD3tpR z$Nh5CEkA)NP8&30wt&)O>%sWpl$;?iptuAsZUvJG2ahz>^&20X8rN0J`s})^NK-+@ zRm@H7O~2ebK@olfcv)zsE*2mL9|MGM<0F!bV8+TbAW7;ke+XChZXL%HN|ON0MV~VsnSu?zn@?44#d7)9%0xzaNu@k9CoRyj2fY+%OI+SG>(S zn3%&%+Q`PSqa(G8ouXTX4{F~Fb&Bd{+GL_4%k=Z zV73=ZP`OB}-49m|X?;^TTeg3Njg+@C(kr!a@DQN?5wx*9j?8HW(dwUBJpj*gf_-%5 zArCQ@UI0zt!;V>G>5uDffihzb+52CtAwc`VGUbU7=Xd^J3jj;6$ZUukl7AC5O|`+Z zCiFNJ8Hivlkwz_o*Aac8I7E&>KU!8JJ!hl9Q_wgFW<3TBETYq1U^ulv2pAmgMys|dD+t4KImxYvl38yPtsxgfUv zq`r44(G~{n`unoy1xrv~Q5o|BCVey2;dB|$L*Z;IA#1TE5)4!-7*9^f&K~VEs9ExG zxA_8%8fJ~2|1rGJbt5tqL37xh@uhK(|F|GT%LUJ zwaG26TB$Qxj2@OORvE}dTt(NCRsU^9{#~+&W@g2UK zo6a}gwyg(_R898Tq|j~^1*xtD#)dD3=gDJA+>}p;!4f-4nPRxma~%Ir;6h&>EKxnR zGMGj`&`-PoTy8v{H51PWz^@{NASF7D37Ffy=zn{$vX%q{>s{ns%r<0U!bF~ZL-HAN zuhQJnp?n~@*Vm=|tqDBnFELJ8V4pd*VgW(1s-TMd2cO*s zA?`vWP_+q0aU$(%?DN`Wc9%|rB|$lOXat$33PmtS7~?l6$1~BtG)RHcxt(PjnVQ3+q0CfE(g}wZwlM+k-)brYEL^jB|#KBbohf!zQ4eW^g#gB_l}6# zCYLQ<#Lhj&g@51eDcp06(V~$+7pa9n)F#xno=4T%rQ>vzwEa%&?uYv{YwDSZy?mPMGzf#a^>ymX^=%X%OW%689a5^UpD<5{rV?kCtt^Lp$12>; z4=B3&IC{v~*77mFT5{}RO2UIfx<2)T2r)SWakJW=E<2=sjwRK2wHm8+)aUp|N`cXS ziBvBGzXYyD-EL1Tcb) z{{h$m6dS4kTht<0&QLJWA0^&tc34(!!Jl>}m^cV;=z@7QJYt<&x{GMNRR{*6!sXJQCElMQ%5{7(0jpTN8Csrrxn)wxH5ArGqZBG-=#vJLKMyajen zQQgnTlv)VPx0cvg!%5=?4o35sIu=l%vqUmfr-6FWR)<3%gK80uWLSPC6PDC;{Iim# z!feDy@6SAW76ikwm_YjStl?G7nSdz?$VP;VQ_vzW{ntn=(>J%D8vY>{Y6o-67`^M( zJKs8p=x!$OK4ZREVYuI`XJLc_WKgcQQwJ$@vh{Iy!QHb{D}8oieZ@5aPeZR z=W!n0s@OBaw{HGAyTBWMfT+TAbI8)SibV|NP5GIT)XLBz23>+FUO53Z1X+2xT%Cwp zNW#=Q$$NMc|8(%|V{gwI>rWNYvT#L>KLy;@*rLd^?B;BSd#K5X@H}c!UVq|wHM*!x zkwDggrK002D=iUx%VyYXIq8p4#5VR9Ai<&cx0Mc49vUh#J{k>xy1b!QjMkWrqM1p zh!@T@a!VjoxHEI{EBW9DZ_UrctMh)d*1=D0Fn6oyqUIv{FKio;U}hFzdCQGooj(=A zMY78kAcSWH8mK*?Q^K>GuWzECx8^h0Q)yP+Y$2lcm>g#~@c zG?%D%nETJSCNBy^7qRzWkf^PTCxPHq0rSHR(MX5(>>Zduu}38xDeEz~6MQ&c-q;V^ z4x^lbc$X18Ase6~I>KsO#*P0DY1-ZluY zq*zQ|E~bt+J(*W_B289c5sRYX_XiZ4-GMy-OS3*UGB$?$vwQgI9eZwZs$c;0_FO-$ zG|HekajVT79WJ5T*E{DLf|9Dl?|EOOm8nv44=#eUjl5;MKoT@h1o%wOL|bvU4($w^o)qxJ>c|@G6$}dCT`LjoG?eQ5S%`S|P%IQV=$^aRn?eBL*0vDIZ+1CcEq{2KtuoO^*5Yg@HC0C3OPyQ3-|;{=IX& zdyeql@vn#r>ktI&p>E}0kSI>yg|dzE&blJ%sOs5-2P=Wg=lg$8L!--@8g1J?4Gq%Y zTN^9eF~uDa(Z^>*$o6YYlb(L!ia8A`G4X6m(LMY2ROjFvM#es27|nEM-`B~KRgDORy==%uXD+IJidp4OIFOh7pDai zEfQSYG0o|ipM(!?qZ%vn2-VpTl>7AainN@JLEz6g&Ws=6DWqaI1t>1NRY5#E!}Y=g zagV7zV4wEr~!XO_o@)+&pZZpxW*jaKjYc;0w+@E`vLa z?VHKhK5uQ#=3dU_fHY{%JS1xI-=R3~M0!A;;*9r%tGY_{*jG7f z%s}Dmca`nlk)h3+f)@@G=4Vi}?fw3;w%B#^S1a8f1OxpofjHDOP;?sqjVcYsqDHOr zn%IYi;IY~UdMq-P5`)tmri_`Sh8@0Dtq1Q(Ke!u$4*|FGDq7J5${iA)&bINkvJiKl zT`5?1;tXcZ9X;YNf-<|DhWxnOO7HO!GS zx4`icd{B*?H;&RuEYos=xQnH1m&skte`s?*u@> z&p8KD$!7zRQyQ2B(OF%Y6`6=@5P6kJ&T1Uz;ZSJUv7|}_z2+R@SE0E?=JfjeY~S{c zZ-<7*Slqw$R~_;1DwDRe^wB;+U)E2%vgz+%B1;Sk!sOTQK|$exGs$$rIJ$ghRAUEk zME4){j0(wKJ^=hbx zI$<%q;a6LUA`Tmo($n3+#IKk+19( zRB^lho1d)f@YWpk%OmmlfrDK&$(%~Xir+l57t~=nk{u0RG+f{7ckmesce<0L@J_jF zKstC4O=$fF*dW>&RX#eyabIPaT;}|(OsBX5z-OaVfpwgx9nK^^^g%8nyho*gC5iLj zvc(J~e~i4h*$eDW+#J?h6sTSPp3A}c1lmHnzf+3OsSQiV?gHu4qq*zt)M#|yh!f8z zKYyv7<6zXCN*X4jvi(a-A?NcTnR z0$_}Y-vYfCkFZO6zT7aO^NdTC*B9U^xGfZp!0|3xp-ppit~BP;VYahWQt-r$?v@T9 zi?j^TlR;ZO+x7Cp2H@Y}3s^)ZL%djW$G8?9tq7Ti4y}w;^hh;!Owxw0rctT3!+6_W zJ@?fxe;>lMl`~%5hJ`83bROFnX-ntsqow$JA zS$o^q3cJRl-MQqJUyo=E=;C zLgpVvL77t(KM|Vrd>5&f>KaRc>U^vAZW#m6-lfR8eej7#rJ_>17q{8Zs?Od($kcM1i=d} zKLDs90~O)cr-SZ2ou2}oL6WSEf8t}D{QF;HvZY4D9eeDfHp6y`JotS4NhPi+QVfZ* zd!8)Uz8eps=FTn_-2n-wJ<>tOch>t_p?X=p3~T5aK2H?k4S+QijpL%aHBiVthUPg^ z>cF-j`xr*&fNxbIWu1@BN>0+2l2Ak|E zSCJ%(;Jm(yY55{1zMg-h@*W5RBF3Oaq;9+YyhJ>Zst+Ptwy_kU8s=IrupVz@MtPB^ z-j>l>jv$PfjKrrPt+(|txzIthMwQk8-5&_NXF!S=aXvn2FSqFp=YY%T$pYJR`38nu zn)j?mCDbKX-Gv9pnR_!LAG5U1+jRZ8&)6E}keIIZY5HKl;c;rW@z&&Rxwhx}sxzdN zcT3FGI_bYI3?C0P)u@ON!ug0R{%nq9y5Xo4!FQ*#383zC7kxS2#uCDu=Jh0Q|%aXqLjrrwN$_Hibtw{z2*8@ z*|lV`>O>;+8W7}VdmRYS&i^q9XyaA6Ggu_G=g}Ql?&=g0LXcVWzNkd{0N2VsIDFp- WN17Q=Dv44p;k~5hHpnjNM^)ku)-!nk diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index 0d7f5b15..00000000 --- a/.codecov.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Automatically generated by nengo-bones, do not edit this file directly - -codecov: - ci: - - "!ci.appveyor.com" - notify: - require_ci_to_pass: no - -coverage: - status: - project: - default: - enabled: yes - target: auto - patch: - default: - enabled: yes - target: 100% - changes: no diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..56b5815a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,57 @@ +name: CI testing +on: + pull_request: {} + push: + branches: + - main + - release-candidate-* + tags: + - v* + workflow_dispatch: + inputs: + debug_enabled: + description: Run the build with SSH debugging enabled + type: boolean + required: false + default: false + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 60 + strategy: + matrix: + include: + - script: static + - script: test + coverage-name: test + - script: docs + fail-fast: false + env: + SSH_KEY: ${{ secrets.SSH_KEY }} + SSH_CONFIG: ${{ secrets.SSH_CONFIG }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} + steps: + - uses: nengo/nengo-bones/actions/setup@main + with: + python-version: "3.8" + - name: Install ffmpeg for docs + if: ${{ matrix.script == 'docs' }} + uses: FedericoCarboni/setup-ffmpeg@v2 + - uses: nengo/nengo-bones/actions/generate-and-check@main + - uses: nengo/nengo-bones/actions/run-script@main + with: + name: ${{ matrix.script }} + - uses: actions/upload-artifact@v3 + if: ${{ always() && matrix.coverage-name }} + with: + name: coverage-${{ matrix.coverage-name }} + path: .coverage + coverage: + runs-on: ubuntu-latest + timeout-minutes: 10 + needs: + - test + if: ${{ always() }} + steps: + - uses: nengo/nengo-bones/actions/coverage-report@main diff --git a/.gitignore b/.gitignore index 798d2dd5..4840bd43 100644 --- a/.gitignore +++ b/.gitignore @@ -1,28 +1,28 @@ -*.py[co] -.DS_Store -_build -build -dist -*.egg-info -*~ *.bak +*.class +*.dist-info/ +*.egg-info +*.eggs/ +*.py[co] *.swp -log.txt -.ipynb_checkpoints/ +*~ +.DS_Store .cache +.coverage +.idea +.ipynb_checkpoints/ +.pytest_cache/ .tox .vagrant -wintest.sh +.vscode Vagrantfile -*.class -*.eggs/ -.coverage +_build +bones-scripts +build +dist +docs/.doctrees htmlcov -*.dist-info/ -.vscode -.idea -.pytest_cache/ -mnist.pkl.gz id_*.txt -docs/.doctrees -.ci/*.sh +log.txt +mnist.pkl.gz +wintest.sh diff --git a/.nengobones.yml b/.nengobones.yml index 237e67d7..f4e68683 100644 --- a/.nengobones.yml +++ b/.nengobones.yml @@ -5,6 +5,7 @@ repo_name: nengo/nengo-fpga description: FPGA backend for Nengo copyright_start: 2018 license: abr-nonfree +main_branch: main license_rst: {} @@ -44,35 +45,14 @@ docs_conf_py: nengo-pynq: "https://www.nengo.ai/nengo-pynq/" html_redirects: getting_started.html: getting-started.html - examples/notebooks/00-communication_channel.html: - examples/notebooks/00-communication-channel.html - examples/notebooks/01-learn_communication_channel.html: - examples/notebooks/01-learn-communication-channel.html - examples/notebooks/02-set_neuron_params.html: - examples/notebooks/02-set-neuron-params.html - examples/notebooks/05-controlled_oscillator.html: - examples/notebooks/05-controlled-oscillator.html - examples/notebooks/06-chaotic_attractor.html: - examples/notebooks/06-chaotic-attractor.html + examples/notebooks/00-communication_channel.html: examples/notebooks/00-communication-channel.html + examples/notebooks/01-learn_communication_channel.html: examples/notebooks/01-learn-communication-channel.html + examples/notebooks/02-set_neuron_params.html: examples/notebooks/02-set-neuron-params.html + examples/notebooks/05-controlled_oscillator.html: examples/notebooks/05-controlled-oscillator.html + examples/notebooks/06-chaotic_attractor.html: examples/notebooks/06-chaotic-attractor.html nengo_logo: nengo-fpga-full-light.svg nengo_logo_color: "#541a8b" -travis_yml: - python: 3.6 - jobs: - - script: static - - script: test - - script: remote-docs - slack_notifications: "ajq+5SXA+dscgOAUZs0HcALHNhRpo9iiqDGRhpuVAesnwJWwHWRpRZleVLkOKX7\ - FghRU+GVzMvH97DCSaNJXAsggipZ3uXgGwMFSpMV/ytA0PT3Reox42anLJdCAdjr80Cb1O/OzA03vEcVAVm\ - E+d/pTUhsQwmsWmITjypUNsrJrUnGHSGFcAeio+taILHsS54jGpzaw5EdElUxYiHapIbgQ6l3Fyw/RSqCUH\ - 6RAFdQGy0fqZ36qhm/vv5y+S58n7zDsPWtP8+BG67EjkILHrkrNxOBB7EUUdNmTqLa7we08rNtvo58Fk4pD\ - KTaCT8WL3rD107+GdH+o4iAeK/10m0Sb6yFqMTDTJYlRyJ1J6JNYqXfhbrbHrliWWVnOLB5LIloEzjcfpcp\ - 73AcQQjxr8zE42B726cXiN94vmL4RgzyEfO4oMw6T5VQb3fRgjc+nUVhGIe4hEjg6/XVYjtLRVx782kAJEN\ - 1ML6tdJ/KA197znGPRznhuKAb+HhhoHrXmPXzjdMILVGeDx5dw04rYUzJUtMwP7ltKUX6Vjr1KZQwr4khvu\ - /x5pyHwqPBftoxd2318MVwzS7eepLkbBu+uiZtHNoMiK4sKug8wuDvyM3GXuF1oEuIU2Z62bkMMASSJ+JUN\ - xJOBzXq/JGvN05Z6daT2XOuniaUx+DfnGDtDx9s=" - ci_scripts: - template: static - template: test @@ -81,22 +61,26 @@ ci_scripts: pip_install: - numpy>=1.13.0 - matplotlib - - template: slurm-script - slurm_command: "srun -pCI" - wrapped_commands: - - sphinx-build - slurm_script: docs - output_name: slurm-docs - - template: remote-script - remote_script: slurm-docs - remote_setup: - - conda install -y pandoc ffmpeg - output_name: remote-docs - host: abrghost - travis_var_key: 2895d60e3414 - -codecov_yml: {} +# this setup can be used to run CI scripts remotely over slurm: +# - template: slurm-script +# slurm_command: "srun -pCI" +# wrapped_commands: +# - sphinx-build +# slurm_script: docs +# output_name: slurm-docs +# - template: remote-script +# remote_script: slurm-docs +# remote_setup: +# - micromamba install -y pandoc ffmpeg +# output_name: remote-docs +# host: abrghost pre_commit_config_yaml: {} pyproject_toml: {} + +version_py: + major: 0 + minor: 2 + patch: 3 + release: false diff --git a/.templates/docs.sh.template b/.templates/docs.sh.template deleted file mode 100644 index 6099c33c..00000000 --- a/.templates/docs.sh.template +++ /dev/null @@ -1,33 +0,0 @@ -{% extends "templates/docs.sh.template" %} - -{% block header %} -#!/usr/bin/env bash - -# Automatically generated by nengo-bones, do not edit this file directly - -NAME=$0 -COMMAND=$1 -STATUS=0 # used to exit with non-zero status if any command fails - -exe() { - echo "\$ $*"; - args=( "$@" ) - # remove empty spaces from args - for i in "${!args[@]}"; do - [ -n "${args[$i]}" ] || unset "args[$i]" - done - # put quotes around all arguments except the first. Also replace all ">" with "\>" - # since eval will treat ">" as a pipe out to file. - for i in "${!args[@]}"; do - if [[ $i -gt 0 ]]; then - args[$i]='"'${args[$i]//>/\>}'"' - fi - done - eval "${args[@]}" || { echo -e "\033[1;31mCOMMAND '${args[0]}' FAILED\033[0m"; STATUS=1; } -} - -if [[ ! -e {{ pkg_name }} ]]; then - echo "Run this script from the root directory of this repository" - exit 1 -fi -{% endblock %} diff --git a/.templates/slurm-script.sh.template b/.templates/slurm-script.sh.template index f56b2dfe..74593486 100644 --- a/.templates/slurm-script.sh.template +++ b/.templates/slurm-script.sh.template @@ -29,11 +29,11 @@ instead of the typical non-SLURM invocation. #} {% block install %} - bash .ci/{{ slurm_script }}.sh install || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh install || STATUS=1 {% endblock %} {% block before_script %} - bash .ci/{{ slurm_script }}.sh before_script || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh before_script || STATUS=1 {% endblock %} {% block script %} @@ -48,29 +48,29 @@ instead of the typical non-SLURM invocation. {% endfor %} # Run script. Use existing shell instead of subshell to ensure alias applies. - . .ci/{{ slurm_script }}.sh script || STATUS=1 + . bones-scripts/{{ slurm_script }}.sh script || STATUS=1 {% endblock %} {% block before_cache %} - bash .ci/{{ slurm_script }}.sh before_cache || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh before_cache || STATUS=1 {% endblock %} {% block after_success %} - bash .ci/{{ slurm_script }}.sh after_success || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh after_success || STATUS=1 {% endblock %} {% block after_failure %} - bash .ci/{{ slurm_script }}.sh after_failure || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh after_failure || STATUS=1 {% endblock %} {% block before_deploy %} - bash .ci/{{ slurm_script }}.sh before_deploy || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh before_deploy || STATUS=1 {% endblock %} {% block after_deploy %} - bash .ci/{{ slurm_script }}.sh after_deploy || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh after_deploy || STATUS=1 {% endblock %} {% block after_script %} - bash .ci/{{ slurm_script }}.sh after_script || STATUS=1 + bash bones-scripts/{{ slurm_script }}.sh after_script || STATUS=1 {% endblock %} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 019a8040..00000000 --- a/.travis.yml +++ /dev/null @@ -1,85 +0,0 @@ -# Automatically generated by nengo-bones, do not edit this file directly - -language: python -python: 3.6 -notifications: - email: - on_success: change - on_failure: change - slack: - if: branch = master - on_pull_requests: false - on_success: change - on_failure: always - rooms: - - secure: "ajq+5SXA+dscgOAUZs0HcALHNhRpo9iiqDGRhpuVAesnwJWwHWRpRZleVLkOKX7FghRU+GVzMvH97DCSaNJXAsggipZ3uXgGwMFSpMV/ytA0PT3Reox42anLJdCAdjr80Cb1O/OzA03vEcVAVmE+d/pTUhsQwmsWmITjypUNsrJrUnGHSGFcAeio+taILHsS54jGpzaw5EdElUxYiHapIbgQ6l3Fyw/RSqCUH6RAFdQGy0fqZ36qhm/vv5y+S58n7zDsPWtP8+BG67EjkILHrkrNxOBB7EUUdNmTqLa7we08rNtvo58Fk4pDKTaCT8WL3rD107+GdH+o4iAeK/10m0Sb6yFqMTDTJYlRyJ1J6JNYqXfhbrbHrliWWVnOLB5LIloEzjcfpcp73AcQQjxr8zE42B726cXiN94vmL4RgzyEfO4oMw6T5VQb3fRgjc+nUVhGIe4hEjg6/XVYjtLRVx782kAJEN1ML6tdJ/KA197znGPRznhuKAb+HhhoHrXmPXzjdMILVGeDx5dw04rYUzJUtMwP7ltKUX6Vjr1KZQwr4khvu/x5pyHwqPBftoxd2318MVwzS7eepLkbBu+uiZtHNoMiK4sKug8wuDvyM3GXuF1oEuIU2Z62bkMMASSJ+JUNxJOBzXq/JGvN05Z6daT2XOuniaUx+DfnGDtDx9s=" -cache: pip - -dist: xenial - -env: - global: - - SCRIPT="test" - - TEST_ARGS="" - - BRANCH_NAME="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}" - -jobs: - include: - - - env: - SCRIPT="static" - - - env: - SCRIPT="test" - - - env: - SCRIPT="remote-docs" - -before_install: - # export travis_terminate for use in scripts, from here: - # https://github.com/travis-ci/travis-build/blob/master/lib/travis/build/bash/travis_terminate.bash - - export -f travis_terminate - _travis_terminate_agent - _travis_terminate_freebsd - _travis_terminate_linux - _travis_terminate_osx - _travis_terminate_unix - _travis_terminate_windows - # upgrade pip - - pip install pip setuptools --upgrade - # fixes setuptools bug, see https://github.com/pypa/setuptools/issues/3293 - - pip install "importlib-metadata>=0.21" - # install/run nengo-bones - - pip install git+https://github.com/nengo/nengo-bones#egg=nengo-bones - - bones-generate --output-dir .ci ci-scripts - - bones-check --verbose - # display environment info - - pip freeze - -install: - - .ci/$SCRIPT.sh install - - pip freeze - -before_script: - - .ci/$SCRIPT.sh before_script - -script: - - .ci/$SCRIPT.sh script - -before_cache: - - .ci/$SCRIPT.sh before_cache - -after_success: - - .ci/$SCRIPT.sh after_success - -after_failure: - - .ci/$SCRIPT.sh after_failure - -before_deploy: - - .ci/$SCRIPT.sh before_deploy - -after_deploy: - - .ci/$SCRIPT.sh after_deploy - -after_script: - - .ci/$SCRIPT.sh after_script diff --git a/nengo_fpga/version.py b/nengo_fpga/version.py index cde6acd6..9eb244b9 100644 --- a/nengo_fpga/version.py +++ b/nengo_fpga/version.py @@ -1,15 +1,25 @@ -"""Nengo version information. +# Automatically generated by nengo-bones, do not edit this file directly -We use semantic versioning (see http://semver.org/). -and conform to PEP440 (see https://www.python.org/dev/peps/pep-0440/). -'.devN' will be added to the version unless the code base represents -a release version. Release versions are git tagged with the version. +# pylint: disable=consider-using-f-string,bad-string-format-type + +""" +NengoFPGA version information. + +We use semantic versioning (see http://semver.org/) and conform to PEP440 (see +https://www.python.org/dev/peps/pep-0440/). '.dev0' will be added to the version +unless the code base represents a release version. Release versions are git +tagged with the version. """ +version_info = (0, 2, 3) + name = "nengo-fpga" -version_info = (0, 2, 3) # (major, minor, patch) dev = 0 -version = f"{'.'.join(str(v) for v in version_info)}" + ( - f".dev{dev}" if dev is not None else "" -) +# use old string formatting, so that this can still run in Python <= 3.5 +# (since this file is parsed in setup.py, before python_requires is applied) +version = ".".join(str(v) for v in version_info) +if dev is not None: + version += ".dev%d" % dev + +copyright = "Copyright (c) 2018-2023 Applied Brain Research"