From 28f122331087d7fee2eb9f9b003bc90c203c24ae Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 11:12:33 +0200 Subject: [PATCH 01/24] Initial index for testing CI of site sw.lsst.eu --- docs/index.rst | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index ce30d13..fd9cb68 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,12 +3,14 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -###################### -LSST-France User Guide -###################### +************************************** +Cloud-based LSST software distribution +************************************** + +In this document you will find information on a service designed so that you can use a binary distribution of the `LSST science pipelines `_ on your p ersonal computer without actually installing the software. + +As a user of this distribution mechanism, **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer under the path ``/cvmfs/ sw.lsst.eu``. Since new releases just appear there without you to take any action, you can focus on using the software, instead on the technicalities of installing and updating it regularly. -Welcome to the LSST-France User Guide. Here you will find supplemental information to the official LSST documentation specifically about the activities of the LSST community in France. +.. warning:: -.. note:: - - This space is a permanent work in progress. + This space is under construction. From 0c6c0b63841a4645e1e31fc4db31f4f8bd929071 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 11:25:58 +0200 Subject: [PATCH 02/24] Add images directory --- docs/images/favicon.ico | Bin 0 -> 1406 bytes docs/images/lsst-france-logo.png | Bin 0 -> 24343 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/favicon.ico create mode 100644 docs/images/lsst-france-logo.png diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d6ce10f4b5aca2a0ab8c129c5254902f07a9bdca GIT binary patch literal 1406 zcmeHGTS${(7=C7%mX(&}wq|9Am91s7ZMJ4xR%@=7ng80qHT$==Hr;CfHoWjgP*E@R z#xr=~jR+!wps0A`o#5d@6cq$fQSpSJARZA<{hL8SSKj-4yx;r05AVnK@qD}hi&+s7 z2*4Q(L@_Lu3BMG>1Ph_e9w5j0A8s@n(c0Pyxm=Fj-Ca~xR-&-55EBy<7#J7;Ns>rT zPKHb-!_LkQ%FD|!K0c1DtSoeOb)mVr8CzRhC@n3;;^HFm^76ppaNzU#(BIz=tJMmE zAW&Od3yDO6jg1Y=&(Fi-@u0W27Z!^JIXO8P9UX<+?FL0rI6OQ=O-&6%A`yy+4ZfRRy6?h@zq*OioV1U@)Mir3D&| z26c6HsHmvG^71kS0s#sN3c%y>V7J?$*XyBHtFgVkjk2;bEG;b|KR+K_E*CbN4LY3; zDwPVGo12hIrC3;4KyGd>#>U3LX0ze-dePU{ho+_`tgo*_EEZ#KZVog}qo=0_X0sWc zot;QcO+{m4BaV)au(q~_l9Ce4&dy?FWCR@@9cXB1fKsW%!NCEhr>Eg^xnMGx(AL%l ztyYV@y**S{S7T*m1yfT~$j;8j;NaljKRsoq4xG>dX5J`@ALj_<<033F)yEcm|8*?! zwF$PwtIAj#aWf#$?}T2>>o>S{)|J5sZ^^sT^L8FH;ubZF>3HcOGashE$n-{hb0?aj zsf-Zv+DFYj+%OQN?neTZ5>6U_K361vPU57|;YNo!+(>#azrX$}DD#4m4*9|-T%;{N z>5dcW`e0gQrXpE#g1DF#!wHgnqR)j<)TL)q<~HKV2d>IP^C`;VlPTlBhKAmc5vLEZQHhO+qP|NY$p?28{1Ac+SpF+eD{CuKRq?oT~GJZUEN)8 zo%ftGQHt^sKVh+9K|nx$N=b?;gMffS1J@;>A%VZ|3F~(tAh7gSA|i@Xz~by+Ze?o* z0wOtmF4~BMrrH2S3Qfs`DW*#6Aife)SJVA`clUl+<8ayh-0^IukpC)*O?}yq8i4c`}O2DCsBvJ8e^O z=6WSBAaaDOyjf-4_zL|NAWI}M99bU;$I_8Yi@b}{C?3t2MsvV%u%?Q@0uF*EW&6uf zGm4lUnJJ0@qOqdJD>nS>3oG7}p#FkXm!bj$zxac)2s43$kAjhrUWiIxwOZUXT?{Vgr}ls0IBm zp(tUI3FqHO^uCK7dS4g`{k`_7Q(|1cuQ@&~21*aeLUL}nX2>W*XHf1~emxJ*qWlI0 zl?0B< zYe|9?t2S~)V)J*;9P%lID@G@hUXZblBJCN527Kbi3r7z;X9ADi2V10s#!0r&7 zSzf_jkzeB=#0Dh?WrFD%g^I+BM2sa5I!N`ERTiY2TTSas!~VjIpC_{@ds5L+{h}&c z@~*_LOi?CLc3D8PQn3m+Q$0gDBU#WWDK~9k)@HV6w#@>|3Ss_bI!XmCmUkd*q{Oa* z4LlH46<#gppO{<`hDu*Cf}(|)nQ6v&__+Dx%Afpnyiy`oy6j(cVd~O6@;GHZIz=tR zRxlRhPh_<+;ptP8bZIWBhkww=TgSK4eJB(%JW>?Wcgc3Cz7;`Bf0rXwB$hT9>=zAA zDgRU6EUhUOlSyFcDTk){M+He$r^Z{cR?k^pQuDVkwNACvRme&_tL&m8w?wzjSKLcG ztjM^2P>o81tNJdLUdE%Se2(U<=Rr$NOie+p(7NYe;J@H(fOds;uXfIch+8nX2%mnB zZjXeYx`^120*OMg*kL}oeoA3hMTbVSf{VV44vnr&wR-tVDj*k-;a=w+^8}996dy8! zod=nx(}}4UZr^mpzm4PFkRPUBq#w8A=BK%o%d<^{^;HPeZYUm zzv~mfW=?lNXZ{TFqvylpT>yR#K@;`Hgpiz(uz~zWD$z<&U(tY(jFbFD^5z`rByl0} zy^yKpIBDN@k>Vv@HMc z_)W4`kJW_Lx>d;8+gaFIv5oD@g%-=?^FD`}AXYVVCxq(!tZJX4M7tPgx>bQz$}2ey z?YStxm7SqWK!U--XU4S7=c>&{$wte@=T7yW{V1;1MO&i}Uz?z<*COOCJoqOn4j()I zj_6uy_gT4b%16_OM$Qn2$1h5BTUyNBgT~TQ#iB$5&ZcE|n{Dga-YfXr6$*J`6>CGnSDKkE`$uJjHC3p>!;0aC3yx0 z>VQ@X^Vzg$Gjul}7@sg72^v3|t}50lclDln`I=t6L)}I7YR#@5cYgw(-8uiU&ssNW zw-L8%1V_ZJ%IAt}%Q@=`&Pc9IuNx^7O_SZWScjY(wCv~{e%u2*Y(8Aq_O|t^j@QV8 zqy>z2u{CBt*0x*`q+h4`=2@&#@`BhwWKAjKn`?3RB3KlN2GkG!s94`F( zAD#-bv!8Itzw93&pAd8(Iy_&K-%H{A5jb-Kne5;%wPvR$&4~wQ^4jY7O2Wr z$+9bC$>n9c7xdn`9xX;$oXujG!v>^%wLW#s+!Oe_eAEW88@nI;_#P?WmC>K*<9)DR zug>oX?2xEeF<_Yb)sqz9@c^ZsMi z7!imZK_HD~Bt${J|66|dl&1h&U>qg2TtGnRN&YLKo}~irz(y!nDLFByeF$)PIvlkc z&>3J;wUw%-tB8Z0oteEWa1#W?L{eFf(8SWs-p1CEo~C(D1eIG4Ei|JxSh`mg3-``>0pF(LNi_{oXxEKV#XXp|v~H6B7I(BxDjp2GE?VU@|B!%XEk)BWGe#LN$rX z{#z|28#}Mb=>Fq}DkCLjPjds@WYgqR9>2@v>n9V>5WUWt7$bRK?y60unaA;#kHTy2 z$t&;Aug(8k;`QGrQ3JTBKjU#&uKGgWcb^Kjv9YleECYPpuU}=ay6ON|i|&QC8x7-B zrLHnmdUkepJDr`K7pBZ-_TPD3m5t+U-v_VQzi}Ji>#EpvebdKt-Us4z3UJ&f?!5_Hgbov4moLB9=&Z{CJvMSJ9W!ps)?|HB z)c4=%RPZriV`GEIWc^PgBIg{<)YT z-rm+7xIb5LA=0g8tSGY-bJ8&DPuj^rR$1CjNKk+oGHlrR_;hKfH{z?;Yx}mns+<@y zY<5{uRb@umIj1XL#A49c<-qmx=6c6^RPM!=sgjaWO?wIF)%~lnAbeyCxFkt~fwWdq zBn7*^35f3f~5-l5VQ;xgBy3=iUqk4h$wMVQlX*c=4YQjh@6UP00WQP zhSR~v{j84?w9~-;&QNgz??fEOwr2x0E+c$#%kSTYfFeqlKvWPi{DiI$JE4=S?Jm6Y z)p`vMyRDi!gTDN?H*ed?Q2?E-jy1U?%tM{yi3NJlPq`wEJRiumIWcmDOj)8b^ley`N( zxXCR-re|anK<2{5g6Ym%E@8!s;ts5^_c&{mD(mUhwzL4Kr{m;^QQ}~!j*M#g#VFgi z=&i_q&hWm=md$3)FkF9@?JI3o)@Bj>)y7;FnloU*Ox13pa)uMr>3Ufj0t=baat{u z5Wo`Qrz@MYFBEPx&+?Cr{4!WNyRWUSb@}xFmWwWmg#rt-*#un1xBa4D*bQ*V((Y-? zHf5IL#dpYnoJwUi%+4b(H7W4xAP`f!dH-bP;9xoV%LTEyq1kLs7rnsq>3Ac|`GUWo z98pzenH@fK)_>%@@5=22d=y^CSu0yAC)g?Ea;$-(T}#Lw0hr@s3Fwgq5gAi@>k=o^ent^k@Uo>mp48~CP9zxff2N5PoGWw0W zx@%mPm6ra95+zK8f?+HQ@pN$&^$Xg)F1J<0vQe)eICFLHh#0zTYivxK-eli@epj%y zwA5tsemIpK+n9%hE?+$R88LK1Z}0^Qurtz9-$hoDo`}d`0p4CcyIMOqP;!NQ_dnN{ zz?UO87Z(=+Dnl16E-sG5#l_`Y1NyeKtgLLyW5-{oM)S7t#d1Viy+3 z{^>!=zkM2Dx3RIIsFwD;>q9^^Of*o)bHnxW4X`uWWDlSB4-RKh#)--39YW8T*0}x} z*{(twWHbH?{T&K}iYegFYcd*#&jP$$nS?A?c;yLoL!1VtEXleUiUS;viwaE+?}rM) zz}b`H-rk+F=XVCj4qXlK<|^vyhm&-EiXFYTe9!OCXPAgVtl!+826UPr>2H>%l?;}+dE>%Xc$tvEmGiA)ktZ#NMrk5A-R4{K?)C2L zel#KjkJ$|GaXxQCf=2D&rF*dzcDfm`7hCwt;l1}}%*DZhAcZApJoEPbNJThk>3mP= z19nMQ=fA%;3fLGJ5;|NIh;R{}Bk!O>L?jHA(9^cIbmg;MP=Mp+{n{sxMV=?6FeIGW z>wsyB#|wY=ZL|&Cq3?5Mb+sPIiQx447iThiQR@I~k8pO|VKOG&JogA+bU~x5Ds`QX z(5Lb^GE9lr4=om+Ybb+zd~7;FoL+C7&2a;G$4&1NS6Ss!oDN6tfcL^!OTC_Om*DKq zv1B7R*A@~1H?rlZcru+X#;;60R+Dz0W7_m)kU{Sc1wsA5{@i=(^QZ#u>|oojHc4pa z!eX7Zl|2y!2StxlH0@+BAxac)r`se3zW1q7{`-6L-{a#VE2tK#$)-QEvnLCay;H>r zAMDL@WAQj5M|InwLxpwaf{>D?){9l#l+?nDNmXzl=c=|6K-5fXiKudC=*X(Vmg^J$LGO|@W$dH6320BN|j^@V#6?+Xf{Ged7>q3 zM%iH->Ofr%F8Mg*#-*YRF*1LMNhmJ^$jYpc;=~(i;rezHiYVc+StIZEk7{(<;uRT} zW*?DEt}0y`WnnAYkQHgv2&ZRqodRD_4d7=zUfdoF*{p86uQ>u z^K1`^h(Bd9D6|IfbD~5uKMbEf?Ob8FT|08Wt#$C5gir@}K3}Pg#pin?yrmS&zpPq2 z!eqAnGp9)luylCb5qjS8V^H|MwDRRA`0?Y19;BiYTG2doec!FPxpGOW?Rq!5nwnGB z_VA$-ggb1yD}}HN(T0%FIDVwX9%pyRD5^UK@y38C^iluulqQR*h2t3*XA!t;416ms zbDxIbA9o|N<$}~eJ3}a&M(nBvY!73$OL6icLc0>XATz=^2zoxT7PFG15R9my{nMZi zva#vf;)5uG+lRpHmBiL4k%?>u@P|S!*!Th!8H^<@?@(+j@`j zS=Z=F07enoNn#2PsDf1qH#awP!jy5+#WDqx(OZ_6?c%<3LVjv^YMP-Fw`TKgNZc>o zR6!=|FU6J*=hQ8s3NCO#7o|O9S=`g3M}?=orPP3t2}m&@d1uKjOu2T8Fqnlt` zJ!H8v8EH(QvsxGGiD@N@2%@6x#ua<)$O-JKCvQHO7tFnU&RElP#v`>c98u(mF*H$U zqVKl=yPV4S!~}7^Bob`6B6^z2ao*rp=cny@Q>n%{;WUw3YV5m==S)6Jj=^pKfk-$4 zmk@Mg(WVbCHe$X(;_TJLc1M}jOvn3)hX-?#R{F@FBoZoWYSW>&pHOSh2muWA^v1H% z+Lpa%qdEHg?cXaa>R>@2n{5uyKXKSEbkfq)JU(9)0**7DzmhL5Y@3>z5|vRB#s0w*t}b<{Oq=cUto`r!L^3%KU#NCxWoe3YCc_V9dQH-4MUL&<@PNn}T* zavKg0L^d+e&R=k9BLbYfS{^y52ABt!lf=>1uUaZ!;1t2aB7;(#D!7+1JmD-%F7*?0Ue4%UdBwikQr&v&Dpj2AF?i6QaT5tszRt1WU$z z&RafYYy#}RcVHG32ss$qV*Z$JHs$%C=8;A$EGX0W{v{@t%QwyUA3aNeCbF-qtt~An zfe1tt_(;TJF~8Zcspp#EKCj_vv)go^eD1yX+wptej;&aeLX#by(+)#KG$$D8`WG;M9eB7y(uN$Kr)@#n$!5?FlJpX z6po#AO9+jwdfC9PMT#;2j8HmTa<_QyznWepD-nATVv6=$xuZsm{odp~0(cholAqen z;tlzgr<-VV>3;=y-N78^@}4LY4e$D-I>$eZEG`6ZUVcs7&k7{WUZ1b5OSlf1mn&qJ z7&*RSl|$)d>)?Yh?}0G-y}5$?*Qt6Sg8JrZ+ji!e%%B^)e)i~yM+!D&&QdbzMCcUE zhFKCsj(0K;#9>5c3!r31mXd;vKtb*TjVQ5VF&6|WuWRyGps7l3GF}4=C!<(}@2^3L>BGiqBW zUO_GFhU)H8z>o1aRVcjv4n+-Li9j1 zwvQP={;%HzNuAg&*&lX5S_xvmU5eC58PjnAQx-`+Gxe`0<+xkQFUJFyf1bJ22y#NJ zs;pwTj)!SfAdR+BR-2e*atkd|nCwnN#QBUcqwpKVkaYVHbV(55R>jr8MDuqgtaaB9 zkw`QUH*9+YY$_!05HD5P%|yy1QHz`{qh#KdjF56 zUa7gQY;|!7V3#~jYBCnTKb*ya#aco80|B2wJ_9vWP-S^3{H;Y;lt;>Toju*mLm&@@ z7oUU0e9CaCVxH>R42U;t@u>=c$mDfpqgD{m!eT=%MlS=5&=kAAhjPg9kcd`d$;!^_ zW*N#lI+L3YeM1^`y%YJqQ%n>4i3xt-XQUL<{872NxnjVGthSw$BJqQ;s@jH<21k$( zsoiLtN2aC6=lS5#``zYsuPBD0>F1E=l_B2z$$g{yCHAkIX^Z@?_q|mEpU*^dUNNOi zrw@4GY`M|S1g^LcTa3tsu=?<7xek6)DYcQTZjmMdXzuyE8CXRVGV{x9H*&gbH#U!> zF*oeZ;O$EZ)EPTma6F@OoKqz;qf;CXlH0O>kPHbmlaZYqZ7_wTO%4~EYKSD0Es{z( zR!sJrRiPFj!g1$?DYanY_aWh-y(m5NI-FZMK;C-Q>*C zk`=gs^^O*DIIJFkHEZBhu{`=xx~WNjHOY-a;sUbe>>+B(=^YpdhD&~7Y`tMeyN7x9M{ zJs3V;>)GNzF&>mPW#b%_LnIpcRWw&Q!rV#&%F8No?P*3?9SQlZPfPK;)U zvsuE7h80Ud1KkmKkL$Ry@BpEPK375VLbCRr6w$CnvSM+YVGju;lAN5}-=ia^T|a@2 zves6*a$^axK4=;uh(g0i9{hJA;TvfnUg5Nx;FV0ye0tc;$L|Ip2FagYU)Jtyay<>O zJI;1vkSRg{!pIB_Y|u(W9*|@b!80h(Lw^a#a^2twmjlNU@>L`EA>TEvC{I=ED17V`9F zs#3pCd@_=QUiGg!oT(SZj}M)!sc1^*xOA2E-S4?u*aVHWn?5_4MQpFEr4lb)oc{d< z-SVD?@b?@iZSvzT^An6agGK?QY7PczwZc-N5hqFd7!VgTKP>wwEV2Q!RY5DOGalhc ziN$AaHMM1Wx3BjQ@cy&%g7~3*#UQ6|&s(yw6*?U!PFyS~S|W&fOIFmrd8Q{4yKyXa z{@CONl)x~A?c0vTx_DN&A~2JH`#p!$ug>}GvhkL)MMv&DTD>M$BaedHcRy73>m8Qf z;>-43oLT0%Xo*tYQXUBb*Y)4@dPW+45ITb;LR#&vrRU)pglJ*kd=9wl`V!IG0X%$-ix;1^HE%$AMH{ z&dAj&5P76G)-;vXE*>v?cIt!O6>IGL{`NLoEtJ?uxDctTs_5MB9y3+>z`cWtit5K2 zR71TvfiQG9Jk}jSvHHbk8)Bd+vC~ZaCC`jOmpL6kR&3qdPajN6YuK1+N9&ILm%c0L zye53x*!0c*P-E>9KTMeL6rUTt*Q*y#;AKIE1rIUE?brKt`LE&H^OZW9tqvQD?@T-* z;CR)2O{0ktFP_bHI>zE#$Ak(ME(G0od}-L0Da{fcrvUS>q%IKmOdb zcbtW*kuS5*q6BeK1$TFUKC?$5@cm<2PHyYrF(;GT4A!9In3`NRvmb^ccW&I{cbiw- zi1E@zb&#q$y);y6lh@GkH|0)YOAG7gVPmyM{djd%)kNk}-)pVI&Aq{v7<1C!|B%N_ zv|jhegg_>z5wXYThs7xZpUH6^*S#okroQUAYohT0t2PY zs~Y;7DARJas}R7pQd?rQnf%)KnJCfA-V>9(@az*}+cr99Ymw0q8xkOov*_Cyt)PKe zLBcGS%swKET|~Z+PCA|1C#5naYNvs>K&@1_IzA^XkkH#0CWd28HSTo(Zc~1DN5SU% z`XZDH!3u-{lcgDY6TA6uIP2@{wz~lENx+<29w;~@Qj{p?lCEa@$mkgQxeK>t+MHhE$z&n?X79tSW_QYph9 zDqE(pifJv)jZiJsz)?0JqO{j!4NGpvwKhk^N07#?+jPjbakPdl^@jp}k%!8dtmkk! zgo51~D5_Im__#axDH=;gdXF*h1Kx?q*75cA^d^_WGhR$zje*b$KY`*<*lv>@I98@I znL=7^R+?N+X7uT#I_sLvCe{7#Qg}L^GoH81wN{uKEid#TZ16uGL*{{SYWw4{K43ej zWlKgYBGtX%nce1T3Qg+bHg>(!?7RjTSQ}q1M@|v&HUX8}8k5N*GMb;`|74vDT3plI zr<}R*a5?O-Ln7eytv225ycKZAO=rKE(Ti(q>DUDIXMgd(S(^FV+v7iPf77U{UFJX# zsgNF6l}`@=E;WoBGcQ1KL4@fuXinX`-qERRC}9f~BgtYily{e4YnO*nVdQZPwoZQ1 zk)85^NSo;7_VwyG^*^lb{-poSW#3fHCA8Gg7$4ZysG)(Gdt@58yIyM&w0$-G)*M6O zJkSyZ3~9s=yL>jJTKIXl6nQf(hh^@dv}$UV)wL!AaBvkhH5V!kiA9v%9|;*;?^6tS zPn*}dM%u?+Wky$QviI@tS6vRVsZDE5HT@f{=gU|9`?YNte)I!{O-)rK;tAh|uTVk2 ztNne3ZP2&xeVoUgVRp@M7@lMQySKMD=FM!A-Dahx(0ELKLL#-e>Yq$i)s;0=?l(LF zFHa@I-kUpeZ4ww;uYUB- z*^4@)&=d@v9ODbyC{$TZ%z{DKWPARI1v>)3&mW+_`aHc@aGqM2I#~l}OB>x4XaIK2 zh8Ynhp{Vk_L883#X0&W_=Ss=v_V(TS3|-akF1J5^vDi(x_I~#eyl4b`j3-o8xjWd~ z*y#L97%RZ#^Im#Yp4eBO=$@F6{tOJ;YmpVWru9B?0Y?&vK#;1gPr<>#uHWtUav>k- z|N4BqsICM`ME5H=4o(YF6mI8td9tKgY&IAwWwMo!D{BgpWxX7*5nFWwvU5N>_vGsfxA|o1 zxCoB^;HqF(?`0*&A+O8m^X-I&hQY)-L|B?{TmX@e zjdeJk4j^}up)Z!=>ka~k!`>9g3$6j;1olq48S)T=XO4|vIz=pwYf!P6O>e4!lZO7! zJd=d4TCPY0FSOoz9hw*{9PEH46XRsZ@`{>!F z(^_|1T=b_AkJ$4F+|{# zivyIvJo$k1VVQj1#P{bFlmGMPZZS1=NBmn>Z(QI=7#p`SAaQAMQ!ag9IlR@p4?HLv^YG$Kv7r>5TC{3vL$zJ zaPz<2kXYNCbAHR5G+WLS3lAt#_m!G4J1&305Evnb()Z{{uh=rvsQQjT5YYG&Y8QybQUw(%E^t-z|{Dkp?Kks9@F>9Yeg#MEpA(O1uiB?vF z=qy8$d&pJNR1<}y{CaspxC4_HPlcdlcw%Y!GrLDj0Pf6ZX)V3SyQXwzI4)|}mtZ(p z#)dyuT`rsM9}&D;_yj{4?aOT^r*7>q2~O4<{?~`o$&|l9mDPEY<=oMdS|$8=4nxYA zXr3(%j=mRjtl^CJ{)%1Hkphq=N~!(p`Mf1H5&ch5M`h)r?gJ}_Ff_Hh`rfTKbAe8q zJ01b;H%R^JC|+M* z-2@?VxyztAvFY-72Cfm&a>`zpfh2sHY}TL*LystPmMM^;ro}Ls%2dkr zy~73ScybMN=>2AxkRsvmMuWpJI)P~*)6>&HmBQa1}J}bCr-jX`Rf#c0uMFq9*bGz90wTXe@!IL)wmPlK;kkP;ITCr;Srw+Tr=TSny zgUL0JS)4AJ{bxh{D({yC6S^4TGF3^*1wJP|S_l!HBu<+~aX_fF-elJI@Y0-Rtw`0(k$iNBl+BgxqEoF-`8OxXR%>JWS}d98jXmNHcIXv{@oU~e}r^@ zC>7jj*_)~|)*@g&H5KAuK@G(zq)UITe~c$*PW8tmKT<9^SuP`U!O>=pVyTet;^v=Y z>8XwBKay~eu)<18t>7a8u_Zx9*jUMQY!pR&Q#~|a9vNOda(ksIpcI=l>1ptkMsE*R zxGqynXz0I^G74sYH#Gsq$7J;(YJNQFq_;{fwjlC6d9<+W$;riOYifE*UG{GD@jb4V zYrd=q1BLbisn`qWQfE2MbU7s@WS~GVwAdp1r68vCveMQ!{_KC#6A^~A`@#E9zJOa< zR{HfF%Kx+fo7eF>B(u!xj|#6GMj5Kf$KlbhEPj(WuDX+Ug87lS{~MJ6O{lHfD$F9f;6al$K{ywP~$N zixk{`)^CdG+5NP3`7z#;L+L)6xG(;%3Q$hWuGX_H@)$Uwq^vyHt#Wd=q!MsmGVtgT zABv<|CdQl8-$V;!&HVcckVzyMoeo6B6R<{7sZ>x&#Nl_3ox9S(2~^e9>G9cZ*S=a@ z?|{~pOqYpVg&wPX?>nlx_B+^;RIez}gR>tDw49fnHoc?mFo!o@Jr`RYG$|Cs(`j1i z%a#5SMwmdtCur>JMpMP>wZQ?7DBs%F_P?Zj*I-04CbrB<9yGohNK~_8U%KQAWlV~h zn2>1r9sQ@IYk=n1x9?-GFDyvQGlY4`M9WxOSrJiCNUW@`?y@-ljokM5x|n%?R@I={ zY_lsbEF@BK`E8ID6&gI3`$rU_*qY3I+IwlMNmZRHgMh6Mx5rkQx?N@>6)~(u3NPji z+H5{TEI%0xH#^u!t0g>TscrPt)B;s(-Co*x3xby$_@Hu`8$%ClJ*-J`)O}80g;G{$ z#8}7VjLYO2H7I5mKU0srT!p1#LSdwUgG*SmkDg{asdJ{(B&0ko14F?}Dcnq-Cy-;qDM`&4 z+`kDCj*Rtj@blvf3yUx?e7Sqga2ZL{06C?jqr1oGz9EiO8rXJ}Aia9OcRgWS`@;9Y)fs`Bx@)$ri*WQELt%n0~Bq!ovQlZBJz0fobAcGa8 zD(y`JlRlrH8fGswD?6h(uZAwQ{GRHW%U#-mACCTt#X*^~ei-A#jaKBul6I~fmLY%Zs$E1K43;3?I4k6VEx~Bi*uxcG7AbF7Tus&QZD+=YQ?30nAtmy`l+ZUfow~ig%t`LW)wDfFt zR$_w!$~HH76P-!)K*uCa|9%n0HB&c4(Ux&UVbK?#AzBh zF;AaA&KR`We-_B+yD#*sy6LE~$Vx>+ zbNHO_8DBXj*CPpiD;!Y2JvS#PBqS7l5-AG1g+DtdN$TvNW3!oi$>V<0Ur+G6qcST! z9mCq%I+NK9c3v~JYNATy7!Ro57Y>Cd=cP^mTQ2xrX)WD@1Z#;9`cKf(oBA-hs<^#b z2`-`-BenQAl}NW2EvfupiM5JmB}DVW)nR+ERcUh1%NDnN`Dn)?6qAQC6N20bvz=|{ zaks2R0`)By<*t&s!C$;BoAA>Iu#Lw^+2YF^IMngd= z4!=Y3mHOTO7&!flmSY*|=+_eg4MlzZ85}r+-ISb^cQ-YaUFg=Z8;jTPPtc;KrvIQ7 zaVf9U^-hn%w)^Czh`!frntWFA!7V38z==7oe4YXDBov9jlwx6F(9Pf-yKUQlGJCLS za54-@CtlRuXtD_wT?`8-Y%)ZKlI$Xe3)AYhC;D9X{+evL@#Jl3X?f6epKYQQ9zX)V zF8B#hYAQaIaVzxK<>&g)WNBVfF2oN{9@9TNQI`!uwK;KnOyQ-k2pec^Y1ZWfH|8RU zY0BtsyWFCILRFUH;E_xCJZ7xN`?4$hB}##O((JrhFdYor07UCPDS}#IaV`t}Ziou1 zC@Oh2F=fZTnX4Sprps@4@eL_jzc(7bsjRw6-`h3ibUT|O`bcLjFShK(=G=R)8M^=;qQ1MH<7S4_aSZBK76py#+o3 zf?T)J^^5g9VgkEOa+D}WpplICYitY}0*v=%PlWelZ|LvecWTJ(>hthkm)1(Lt zSR(lom#yJ)!805T2K~F!Z~ymz%IfO#zwN1YABT7CmTS9nBY%Ma>{-B5;J&{507#xf z@gK2NR6bIhy>S;R{yDmTl|H!Js!@f1lKBv*&AVZEe@Bi)|}U zO+Gjvw(oevu#pb7+n+MXhMZdL!avJ+)+ z)e6LIiI|yPVwe7wB&ju{w;_fPHc6;4`H`4Dyo~ZH_O(01yDm4`x;$VxoI6mmvqBNu z^m1xeeG-4F2dCj5z_|4S7^O&DSB=cpui`isUE}%$-r>gz9DRW%vQ6;>d_Hd9S-!r5 zbe-PSlU^VP2li29EHQ#uhVO&R#l@9bHr^iuPDM{uW-RezNTTFl9=+$67&SGu=j(Dt z`^992MO7!?Z3aa$kaK#kKsw<0b^@7S!I(mX_~`S!n^n;N?BfUkhOy_@2L)1;T-FoP ztIs38BxDkCUFuNJN0qHU1bDE2L5du@VaKnFe-`(9WX|k?7J)S$<^nNT%diLlOCqY}}xse<2KI7thy&wY|Hscr1 zrqJ4fmd8q1i~bwrBU&#HDKw>9F>yzBifKVh?Ne&{K6UOH6*x=H0vGot6$T-AA#Jnfcll=7PLOIhsPVpWvX z(gs4Hnr&9=rcUTPUx@KPropR2krrQa+xQb6-X3v)UJhSuLVC~pxHkRvyJ#Aoq!fe* zl9bV|_a9XAs%ZsVuO@XpR~rS;L{}fQ1OOhMd&Gbjky$%n3~k-K>_nsd;fxv;>a(u{ zw+xh9MYfyV;OOM&AVP#>Y0@l+rb}_@5A*rQ5q72*A`3I{LTvt#QLck4q0Q4QI%p>o zh4J_LA5)4W{24rDCkWfiJlG)t$0>qrwK^+AoGvWmm3GrBZK9t_er&C&v@PPwB*bK4 zR!4W58`sB0@Tw%7HQpi=NZNOe09rd`D5Ykt^^6+M`~4du93J<n(1@d1+~nEoD~s@7xjNrq0{Jzc6IG_up{d(Go4S)W!9d-SQAMYN0XE(0nx(TgC(? zAHU}#2$=mwV~c5oGRw3uV8gzjBF4TM&u0j>r3h&fqqclsTQk}Zp9pS&0$A6NC{Ny* z*u(Psei6i_cwDYKZldAyZSWdGDP!9WrbsQ>-GXJlh5ZyN~%F`w}-=N#ZbyM4c*&SnjwhHoad=OF0n8gTw5z~Qj9ot@i!JZ6(K`L|RV3%tRf zK*o#~>dR~o#I(QAWaAoWSsn{a*f6Nkesr2?cQUbv1NziP*9hYB+{Y5GFuPq&>VivU z(#`370=!VZqO#o+7Gxw05Om6f_cznP zqFuIh1Kud@IZaq?+}UoO#87jdT9miZjP7>`5#$OvH|2Du2(8xgR@(h2O`GUS@I(mQ zd9A+~jcLAuwVDex1nH^h%%88emoBzr7WZYB(T@Vr+MA6jWYTFL^PMNge}TsMG+AG) zH%ADCKoW&=HkX!;JRajXBo-9xUMmNk1f1~>!c2aShNt7`dMjRD4FhbY{QC!D_h0$C z=HP`m?o*d8DV(aW7 zCouZ|h{FS^b3!U{_YEXKDqpq|GOVx%ik2sX`Sd9Mn9`~nP_jX#kQXF=y(u6_k|gK$ zJ6@w2yW7C2w?`9}Jq_t>cu&9H*8d^w(o&Yu&ntbV$f| zxlJJ2a#;YY6Sqko-{Za2eR4(CJYYRzbXQ%+cXlFQ4|_&=!+yzei*8__{sF&BJB~U_ zWp+wSJ4z>sJ%9o+PyOcQRcKvh)%J)ipZx^?2Fa?nwl;qo$UGjW?N&RCAUEF3H>z;% z*47qpTYJgNN(8~@^j+V_Bg3uBEYB~wRUbK+-HbqHB8VhM%;h7K0aV1rru!88Vv5D- z((0OOTl3GWV_BnoKxi6rZ>g-8(o?xvm#X;RPRyipW5@Iq--P(tLUTd!36b&x4mv4X zD`crmS={W&1ctmRjv4%z-SZOGvFT8u^*q(M_`ToM!MF*<7H%RNk|gmbOV>ph3Buau zZHJbakU)*U`+f!m=u_9HaFhfe&foTl3>^w`B=!9u;;gY!o)D_I-yP&3Nhy|~!YXcI;?6zH$faY2Y>(vj;of{P%Ls;W0Ll22Hgt~-yW6@<_U zI)TYC5ClOmR#jG7ZLkFRWMAZ7*pJXGvSRVL)0XGEQ->S5Dl>@3VT&m#%|`?O1EK-y z?CkvFVGXn=g74)UY=H~v>+6Rg9WW6M*BBiQ`MW*$^sRXvsolTlV)SYxDyF8&bQ+=R zeMy+|E}fsasTq0rWg4=s%UID&&Ua+6 z+Q{WD#4Kp`xD@EHqnI}%Aa;D18iEe`o@$=bl$t*TnXGol!wUq#WH$Yu0FE7T;)pY8 z7+2KP)KIf;Uynt3lgVVJ>T}0JD@DacTyp8fF<@nVeZBR0N~_i1cFS$I0PxgPPh}RP z5aLIEzyJ1|Zn`l%bJomm^I!DV(k%PIi&&@{GTKI>;sYdtq}hG48BG=JX^0Sxnca%z zQS-=@yv%m0l=>YE$xh|F^gH{TnsG>B-WmIiL{!Ro;%x?L?clL(5*}5@ZrPLKhAmR!H1Oog1?lK zfddCJqI?)HeO!azt@kK>MUy7;#uei|6hKr|5?{3e1y|3YqzdW0j>V`t0bDA2P2E6h5oBj5%jm2V|b=Db#Vg}2%H}^<9+O{Oi?O&`8lWc&ngqq~wT-D09{><_E03OvQB_qXqS5G>a5!A@#Gjt%(e|sVDwS202%+Hh zc{7XO;czf<;zWQ3m&^4r|6$GJ@gSvS*su{X;6q<832&s7csw4CIrf-z)oTD6>Kmx5 zt3&B#!fjjf$lbT`^9#o@ZeW09H?=+$A!rIENSZc1-~)St3F@Q95d{i|Dkuv$`c(lP zQUUTUktAnK8Hh_)56PfAR0Xe7?~*V$)0|#}su7FD*tK(4w^^*Bkto+)cO4Hrct1b? z#a-Bzogs`13Jasa&aTo!>eTi5eBXcm`RASe1qUGni9~|0U4I>a{a`PVgwZX@D}Yek zpWWkA&ea)rDj-sMB04SM$So3>GGiQB$Jp}~?ghHX8 zEnU2nrp9LS3%WP&=(^6Euf5sH_1d;=G)?3DFP#?xUT#NY{C@v`3_zrl)U*ZLvVgg5 zZ9#hC`qRYO-sRP4p4aZc0~acIV}2MQs}tCQu?yI3?12EXP=lD4YmR4Kt8 z5KssR1%oVIvNS`OcamD75$4W2g=y2LA%R=Ie=CZrpePDuWdmDRf3o`h?yg^5U0n*4 zzwz1|BArUH&ni_i$vNkqLw;c~Pyh2>d`_*~p|WMlWIcC$5q?+i+cLIxBhfAEP}QuS zC4RRL=Qpl>XO0ljPbDcH>H~#^g)}xcmMV&J`U}r5z#s7UIzSF*=ZR4ig^?phFk#}v zJ=-^Lf3)2i@*e{Z;cz(PZX56iPOGZgeeJUMm*IB1dgUAH>pKUrX`0q^J`Djs{NWv` z6Rp^n@;eaSiQ}o960*nBEG4c-jTA`i4JO&u5@&mJjP1=as@f7XL=7TF|12KWZ3#?y z`1MFzBgszB5{`Fu3^VOimGqw0o=k+mwh)Sf)9LJ%ko0=JJp9nZtX;E~7hiZ0f54BT zD4cZCEP&c6Q>Qd_QX%JG1Hiz6125ROZ=Y}T<}LjupH0)`s;lO+ZC@+Rkz_B`;cbQ& z`6vvydhO3@Z6mhg6GU%kyJg`$eIDz*j_(7!7-~N3_1z~&DX-T%+qP{!_~3&+CxyvK zeoiOXeDxX|*fwh1sQ7;hFa(1^0)ap#4n<0NV>leX>#^VepSpb6a$GJ~uVQC^L{&}K zdGb$Bu%^j{I%+OC9z7!^*iw@3Pniw3)&yC!W*_5+sfjr)qT^;13`bu$Ams z*&Ca-cq-+bqNHkdr0RaA-qjAdIBl6qSraefK?9uU>;;7{udoTy7WN{r>l&z#@QE zAFblJ>Bj-^*C+qTQ-A#vzy){z{BB=g>XCMb?lY!N(-??gzKMu`dOmUXuo3+yk0LS z&pkO}+x9#E&VW!^S=s6Tfk1#q9(hD*XlR%qrF!Tv~+x^U`MA2Dc&nItS5)3%A5{R4+IXYuUv%1)Arr28f|Uhw{-!ANlh0@<)}F zmP~d!ofj&KG8QO&=ILi058QvhQoW}dRn<7+k>c&AjL@Ck#!si5mfC#)NCiXv=x=Kn zQsm?2FOH=&-%HH2`{g#4*nNpkOk4Ghe7Q?)YilbHJoJERnbtpYb8|a62@D&SA}5^==S9nxEiXy~N`G2B7U$Mm zzt3~4>M$(3MBOG1XV3oG`t|Dxg+hIbTcDP_7keLD9^l2nLxccT_PXz9g)1bwr* zNWcNOd-=NnTANs}e( zYx&!IyJ!j~sP*c-f>ZBeh=cg5zhmrOhtM4T8c)lz_~m`SWZ1BwHA0C0fmEH@4y7d1 zt^B!XpV!*j+WI9u8-~HmStsK4dU$hvWhxJ7FM~67V1VN6-uVZkuAbZNYmI$)uGhXI54vdvGS1Oy&kyPRVeVIKlHgvK5@x$vcueGR<+^ zg7Jpsb2B(VPg`ZqjAf2qvqe{>%Pyd2IEq83BH%fK`f?ZU*jA5?tNh?Ijy=ip*x+o8 zffOX@ZnS;E`YxxZE*l zk^u*5P|M^aKq#dZtj9>JCT0^VCZj2ghGdLPCompKVIq=-Nh$0$9=3}jm&wY4abT%g zr1$*<#+f64AYD-Zo2H4|Zod_~AK$I3s`|IVVDOcUl)}6X%36Rt&wcjkr}xy&glBSN zZpJzWA;C zuxHORI6Zp$>>#<^NF)>ZQ@7=!o+E^yxw#3)jvfC1qb0$NjX{3nF$g`sLfN%n0DLQv zG&t~52`B?R4jwD~P7F>Zz!*hm-xRX)y~Cj-?DORMB1sjq2^Ggq$8wwvCbdX%U3MG% zE)j0K4GxKiT@*k-z;hXj{tWYWN--d-29jwVv6PnawKKU5Cf(!LD7q@ckcrFRp3Y_w082ld7r~)N_$#c^!a;-Xpz` zWjQy034k{`-&nBTMwVsVdFLlly|NB_Ug(8MS>eNL%+ho1Xz;^VA})k%&`u0MK6wx} zp{B5#$tZY7DWtn@{f)D|b=fpN3j#zIK{<}Q_d5@NmvejF7Yq)jX<|d`2K4pz72SCm zV+fQ5aR1l8k>|tPB|HA|ufKqYzWp#9P6z(nTej@@N00vqAGz*^ydt&>Uobo%mcYRj zY(XF5Q-|>GP!i(W?O-KkuuDGNu%Qm8qbhVo!}OeLDRNPUr{5ce-Nr%Ba&Yoi?RHjk z^jr%htr|#Wv^XpVJeC(F$a3;#V-wyIv9N1$!GMsligX1`PlIVm=tKLVoqP*ap0iwv zC8mjWU5DLnN1!Z#2fqCPZoPHagq)J^D{+;)SO^?qu^4rS0Il~cvC ztO_14z4#KiOfg-SUO%sL*)Z|>d+$bX$b_O5A8V5`tgUimbA9Pz69}{a`D5@X9)n_3 zh41tCU~=sAqpj_&=}QU_0HCVsy=hs-@Tp;N__(K@%-i} zap1)96WH9b8U6kJOWwsPrC^kS7xEdl7vo>}V^|@EVc@!JcEB)CBe#nY zAf8C#ng9M3s;eqdZs#%jLMNoEb(pALkB5(~hU5)`bCrU#dvm4Yc8Ng}2%3UUM3WjO zqUrM@>+|(~2qDOo1aM0WA6^hJ?~2xepqMtA_mcrREw4kDFUnVcnB zucm2Y#flZUap#Tr(%*kkuC1+oE0IY2v&ZA<2T;&*@cDAeZkt9%MtspoOq4*dQ=E`V>ECaPD|pt?MOmrg{ij7*VkGblw(sROMmy^F>llD~Tk9Jg?+#i(C# zpt^SDC2%`eowvZ}yKvWJ zc4iiDzx@t&KfW6eeCq-9_xCUA|1-wW)YOE^$_l*k#+x~v0>9r6hr@x%$;lcDI!V6iZNAQHihI*oHI{ao-c&a0r+uA;=0N1(wQi zMhc`M&N6uu!T}s_`OAg^ro_S0aWExeSqi!Wnh3!d>wz(S9AM0{7B~S+EU^Nri);|8 zs)7)L){U)LzkWUL_{8nT4IjPX5P;{O|K;-!fAY>x()sheko8~~#+8vs$H@~X z3vNz~F}(NQd)WP7yHQ(LizA1Rfbk4An}FMQ-HfiVfHSl50!OPET58<*#FdM)?oWU1 zKNbj10t_j*K6M+!tG6Bw5~3~VoE7pBbPhhB7kA(DnSVNV?0EUW;6M(u2_bO1-32Aw z7Xu1Ol5o?_J25dnfv&FZC5im%x{jA#d?_QNzPK1KAq4Nd{SG=`@5})c$8ngPoW%I} zI7Cr|VHo(zKYSSn4jjZE-v7gS<-mYdnmal=S`a`erAuOi(sdoGs={u!TdLHinMcKE z7zT7rhpMSqv7!dI-*G$I+uN~m)5c`W`j+PaoB&W7jYhZj_aD117L6hrjiTd<4(#8z zAKl&W!!Qg;l9bD?a2#hnH{%m?9A^p7WEL`05@7Nil<*K<>+QtLjKEhK0CD=k*}WhR zHz3%p6MCF=5sm``2g%{U_U+f;mDk_Qw-mCersu$v zxb+!Mu)dG*XJrkALQ;(;8XFrBjYM-2>Z0o`e38XcXym8pTSQidh#~MWlEtGjRu^3z~7n)m|v0=jow6$$Q%lZ~{T+wmV0PEA~^!omz{Vl_%hNZDHXD~1@fT6)53=IxpbYv8(8&+XcTN~c*em{3C zo{)J8UpxoG3n&q-$;J#FY;FoPHZiY1$a#rkQ?Owm*$d_9v9rO+B7ujq&zZ;Slv5Y8 zVh%)dEqQaXl-M+M9qfiI%P4WVuy*YlG&QY5Q*#sQ>gut6L(6nSLqj)!E&zunCnw*o zuCC6}KJ^~yMeD}a1@&7-Mn+IyUys__+LqDL(>rucLrqN$LZMJmYm?{s9C0mU44S6n z%8quRB#4RG6UAL2W=Sb-UbT3QMEn=O21lf#(H+JNi0!S=!=a}FgoFSr8#oknF=DZ~ zW&r-q*E@4WD0%r^<-+T&48y>aPyP%>hR`)j*ikGNAlL-_=C{Ab=Rfy_JkEr?djug* zgJY?n^~8^#C>n<#^Fs61x;lF(DxFTFxw#344js;MbY{PoQU*q;6-Q823=Rz9uDkBU zwryK+q~{2>Y~6x}hSg|qZ^x?Ds}LwFLm*J9lm*J3wL9#;1Ta25Jv~@iS(!Y?B{>e@ zcxLx2FDWUh=(wVzyyJ?F@>DW)OC%QEDJN5bXf%pQB!bDwDV#YyhLPbBBoc|7kP9^_ zIG)Q{8#!&#%%WxU4muU;6N57J^z=bog5|f^)I7J}v$2`^7h?=O&s#33UBc#$&DeI; zHng|5p{lA1e!m|ck7u?tQ2K(y;rK0pDNWPHUw!q}v0b}%<Jg2 z>+5r&h2QVnzxt^se}-f-nG1F!CX1Y`8P(3D{q_}Gm%qOZ3X zb93?BX~(5)OT}j~WeiGMhG|eJY8slRLrE*pG!3#WX1((Yef+aC%St^R!xpKvd?*a$_C%$CIHJ)gP7MvCx3?EZ`}#3BH~@p`5IM_5;RQYqIC7T9yhShAYz1Ai`QV%b=}c`1 zV+_=!pp?R-8L*-hhGD>9CIE^Oy9+B;u0(x(9acB2Mq@(*s%xs@@p$0%dg1nX;B+{s z*XMmF7!2+OFbH4@KscF9j?M4CbAyi!jSWkh65&u7!SWz!{M}}EEup{ zO13yEDvFBD?d`bwx*h1Blknx8YZhdMstuGZ8l0pl8G*n1E5K$eY(X%92s~(0!`?{K z+A#pj3JwJUU)S|cP1CNA#bPRBjGXg2jN^y_wmjd=7~>dYe4+QS*=$A63oyo*&+9W} zS!RZ55{@Gp0r|kvjf{aXMr~jqlu@2B##73KtO-f;)SRp`XhH}$o})a^D>j=gDTz|j zCfa5+O*_GHT({fp?g9{lRbLXHn3zb`)YRzn7uP*^e-_U?yJt!77>mZ>^ZWAtucxPn ztE;OMyifD3?wF;+?$ZBo)o2hZ^vHBGCM({fNzRJW$7h(@9q9v;T@bO_T^(+Gz{ z2u+8PN~NHv3RG2vuIT_6bi)7`V3@{v^OO(*f#+e9M2MmYo6QDMlwcDCI2;bR+%EWh zKDa#|`29WvN=s2z7DRbP5MG}TqRj@uCP1`_X;G5q>~<;25pJAtq*oNh_j#T_0U!<_ zp(si`6bdPIb#*2#K~q(A2O;EtQmK?9nM|?^IV8s@gR{gbx?HZO2B(vc&B|t44 z+FlYf)}jr7U>Jrcl}dF`%GwyCs~Kaf8Dn(UN`yD)NU1S6+La)HET zGD*(8QmGU%42qM-Pol4{Z&?=FnKNhp=)ZYpW@cHRH#RnQc@bQ0m)qrbxm|9T+vWEE awEZs?*5uP#py${C0000 Date: Fri, 18 May 2018 11:38:14 +0200 Subject: [PATCH 03/24] Add official LSST favicon --- docs/images/favicon.ico | Bin 1406 -> 4343 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/favicon.ico b/docs/images/favicon.ico index d6ce10f4b5aca2a0ab8c129c5254902f07a9bdca..3fd93d998ca7d236944d32465cbd463779888432 100644 GIT binary patch literal 4343 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 literal 1406 zcmeHGTS${(7=C7%mX(&}wq|9Am91s7ZMJ4xR%@=7ng80qHT$==Hr;CfHoWjgP*E@R z#xr=~jR+!wps0A`o#5d@6cq$fQSpSJARZA<{hL8SSKj-4yx;r05AVnK@qD}hi&+s7 z2*4Q(L@_Lu3BMG>1Ph_e9w5j0A8s@n(c0Pyxm=Fj-Ca~xR-&-55EBy<7#J7;Ns>rT zPKHb-!_LkQ%FD|!K0c1DtSoeOb)mVr8CzRhC@n3;;^HFm^76ppaNzU#(BIz=tJMmE zAW&Od3yDO6jg1Y=&(Fi-@u0W27Z!^JIXO8P9UX<+?FL0rI6OQ=O-&6%A`yy+4ZfRRy6?h@zq*OioV1U@)Mir3D&| z26c6HsHmvG^71kS0s#sN3c%y>V7J?$*XyBHtFgVkjk2;bEG;b|KR+K_E*CbN4LY3; zDwPVGo12hIrC3;4KyGd>#>U3LX0ze-dePU{ho+_`tgo*_EEZ#KZVog}qo=0_X0sWc zot;QcO+{m4BaV)au(q~_l9Ce4&dy?FWCR@@9cXB1fKsW%!NCEhr>Eg^xnMGx(AL%l ztyYV@y**S{S7T*m1yfT~$j;8j;NaljKRsoq4xG>dX5J`@ALj_<<033F)yEcm|8*?! zwF$PwtIAj#aWf#$?}T2>>o>S{)|J5sZ^^sT^L8FH;ubZF>3HcOGashE$n-{hb0?aj zsf-Zv+DFYj+%OQN?neTZ5>6U_K361vPU57|;YNo!+(>#azrX$}DD#4m4*9|-T%;{N z>5dcW`e0gQrXpE#g1DF#!wHgnqR)j<)TL)q<~HKV2d>IP^C`;VlPTlBhKAmc5 Date: Fri, 18 May 2018 11:56:03 +0200 Subject: [PATCH 04/24] Add Makefile and configuration for local sphinx build --- docs/Makefile | 20 ++++++ docs/conf.py | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 191 insertions(+) create mode 100644 docs/Makefile create mode 100644 docs/conf.py diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..64d14ff --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = swlssteu +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..a9b8617 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,171 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# sw.lsst.eu documentation build configuration file, created by +# sphinx-quickstart on Wed Apr 18 17:55:28 2018. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.todo', + 'sphinx.ext.coverage'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'sw.lsst.eu' +copyright = '2018, Fabio Hernandez' +author = 'Fabio Hernandez' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '0.1' +# The full version, including alpha/beta/rc tags. +release = '0.1' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +# html_theme = 'alabaster' +html_theme = "sphinx_rtd_theme" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'swlssteudoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'swlssteu.tex', 'sw.lsst.eu Documentation', + 'Fabio Hernandez', 'manual'), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'swlssteu', 'sw.lsst.eu Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'swlssteu', 'sw.lsst.eu Documentation', + author, 'swlssteu', 'One line description of project.', + 'Miscellaneous'), +] + + + From 37236beade8376fd95450f10017d43d3850ea48b Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 11:56:36 +0200 Subject: [PATCH 05/24] Ignore local build doc directories --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79be1e4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +docs/_build +docs/_static +docs/_templates From 02c78edf18d37330c7174cbf3d818e651f5a0adc Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:01:00 +0200 Subject: [PATCH 06/24] Remove spurious spaces --- docs/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index fd9cb68..ba7656a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,9 +7,9 @@ Cloud-based LSST software distribution ************************************** -In this document you will find information on a service designed so that you can use a binary distribution of the `LSST science pipelines `_ on your p ersonal computer without actually installing the software. +In this document you will find information on a service designed so that you can use a binary distribution of the `LSST science pipelines `_ on your personal computer without actually installing the software. -As a user of this distribution mechanism, **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer under the path ``/cvmfs/ sw.lsst.eu``. Since new releases just appear there without you to take any action, you can focus on using the software, instead on the technicalities of installing and updating it regularly. +As a user of this distribution mechanism, **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer under the path ``/cvmfs/sw.lsst.eu``. Since new releases just appear there without you to take any action, you can focus on using the software, instead on the technicalities of installing and updating it regularly. .. warning:: From 3cc38006037af4089f22e4cf37e1573a0114d276 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:12:51 +0200 Subject: [PATCH 07/24] Improve credits --- docs/credits.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/credits.rst diff --git a/docs/credits.rst b/docs/credits.rst new file mode 100644 index 0000000..1da8129 --- /dev/null +++ b/docs/credits.rst @@ -0,0 +1,11 @@ +.. _credits: + +******* +Credits +******* + +This work is a contribution to the worldwide `LSST community `_ by `LSST-France `_. The web server infrastructure is hosted and operated by `CC-IN2P3 `_. + +The continous delivery infrastructure of this web site was set up and is maintained by **Bertrand Rigaud**. **Vanessa Hamar** manages CC-IN2P3's CernVM-FS servers infrastructure and **Fabio Hernandez** takes care of building the LSST software, packaging it for distribution and continously improving this documentation. + +For bringing this service to you we leverage the work done by the `LSST Data Management `_ and CERN's `CernVM-FS `_ teams. \ No newline at end of file From bf160ff6480ada3c46e4327b8d60261ef8edc815 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:13:32 +0200 Subject: [PATCH 08/24] Ignore utils --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 79be1e4..19d7311 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ docs/_build docs/_static docs/_templates +utils/ From a8cd3a2565eb29458555b5b43776c912195145ee Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:17:24 +0200 Subject: [PATCH 09/24] Add configuration and tests files --- etc/cvmfs/domain.d/lsst.eu.conf | 27 ++++++++++++++++++ etc/cvmfs/domain.d/lsst.eu.local | 45 ++++++++++++++++++++++++++++++ etc/cvmfs/keys/lsst.eu/lsst.eu.pub | 9 ++++++ tests/centos/Dockerfile | 21 ++++++++++++++ tests/centos/Makefile | 10 +++++++ tests/ubuntu/Dockerfile | 25 +++++++++++++++++ tests/ubuntu/Makefile | 10 +++++++ 7 files changed, 147 insertions(+) create mode 100644 etc/cvmfs/domain.d/lsst.eu.conf create mode 100644 etc/cvmfs/domain.d/lsst.eu.local create mode 100644 etc/cvmfs/keys/lsst.eu/lsst.eu.pub create mode 100644 tests/centos/Dockerfile create mode 100644 tests/centos/Makefile create mode 100644 tests/ubuntu/Dockerfile create mode 100644 tests/ubuntu/Makefile diff --git a/etc/cvmfs/domain.d/lsst.eu.conf b/etc/cvmfs/domain.d/lsst.eu.conf new file mode 100644 index 0000000..d6684b9 --- /dev/null +++ b/etc/cvmfs/domain.d/lsst.eu.conf @@ -0,0 +1,27 @@ +#-----------------------------------------------------------------------------# +# File: /etc/cvmfs/domain.d/lsst.eu.conf # +# Purpose: configuration of CernVM-FS file system 'sw.lsst.eu' # +# Author: Fabio Hernandez (fabio@in2p3.fr) # +# Documentation: https://sw.lsst.eu # +#-----------------------------------------------------------------------------# + + +# +# List of stratum 0 servers of the repositories for the 'lsst.eu' domain +# Separate servers by ';' +# +CVMFS_SERVER_URL='http://cclssts1.in2p3.fr/cvmfs/@fqrn@' + + +# +# List of load-balanced proxy groups. Each proxy group is composed +# of a list of URLs separated by ';'. Groups are separated by '|'. +# +CVMFS_HTTP_PROXY='http://cclsstsqd.in2p3.fr:3128' + + +# +# Directory where the public key for the repositories of the domain +# 'lsst.eu' is located. +# +CVMFS_KEYS_DIR='/etc/cvmfs/keys/lsst.eu' diff --git a/etc/cvmfs/domain.d/lsst.eu.local b/etc/cvmfs/domain.d/lsst.eu.local new file mode 100644 index 0000000..cf03f4e --- /dev/null +++ b/etc/cvmfs/domain.d/lsst.eu.local @@ -0,0 +1,45 @@ +#-----------------------------------------------------------------------------# +# File: /etc/cvmfs/domain.d/lsst.eu.local # +# Purpose: configuration of CernVM-FS file system 'sw.lsst.eu' # +# Author: Fabio Hernandez (fabio@in2p3.fr) # +# Documentation: https://sw.lsst.eu # +#-----------------------------------------------------------------------------# + + +# +# If needed, add 'sw.lsst.eu' to the list of repositories this computer +# can mount +# +CVMFS_REPOSITORIES=${CVMFS_REPOSITORIES:-sw.lsst.eu} +if [[ ! $CVMFS_REPOSITORIES =~ sw.lsst.eu ]]; then + CVMFS_REPOSITORIES=${CVMFS_REPOSITORIES}',sw.lsst.eu' +fi + + +# +# Amount of local storage (in megabytes) the CernVM-FS client will +# use to cache remote files in local storage of this computer. +# A single version of the LSST software stack and its dependencies +# takes more than 10 GB, but not all files in a given version are +# used at the same time. +# +CVMFS_QUOTA_LIMIT=${CVMFS_QUOTA_LIMIT:-10000} +if [[ $CVMFS_QUOTA_LIMIT -le 10000 ]]; then + CVMFS_QUOTA_LIMIT=10000 +fi + + +# +# This tells the CernVM-FS client to use a single local cache for +# all the repositories mounted by this computer. Set to 'yes' if +# not already set. +# +CVMFS_SHARED_CACHE=${CVMFS_SHARED_CACHE:-yes} + + +# +# The default cache directory is '/var/lib/cvmfs' but you can change it by +# uncommenting and customizing the line below. Make sure this directory +# exists and is located on a local file system. +# +# CVMFS_CACHE_BASE=/path/to/my/cache diff --git a/etc/cvmfs/keys/lsst.eu/lsst.eu.pub b/etc/cvmfs/keys/lsst.eu/lsst.eu.pub new file mode 100644 index 0000000..c1eb575 --- /dev/null +++ b/etc/cvmfs/keys/lsst.eu/lsst.eu.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxFLu9yNfPH80Z/wOqN3Z +t8CYiw610vATFbntUXq1OYCVlDq1lYKykV5QJcNtlfj4QSAV3Z9gp/jlELjo8p4W +CIGXJAIri0f+W5ii1py1l2CdkXpKEyMw9z91Pi3Wcv/we6ahkHC8wNHQZNKnTDRW +8Hyye8VXx1bdZ6srqU8t9W++WWcQedQaykQNo2EDm1EUyzpGUyPMxLkOxW/K+/0h +bCZOyyfukhyANRt+dMIQwrVTb05GVDdyTckEHC+QDJJSokhbiOl0L58d9ZQ53OG7 +aJ8P/9kDZ3LE4Bcboa8liaDbHUiLroMHuvcJNOnEQzPW4MavNsoR8jYiyqd3/Ob5 +dwIDAQAB +-----END PUBLIC KEY----- diff --git a/tests/centos/Dockerfile b/tests/centos/Dockerfile new file mode 100644 index 0000000..7aaeaec --- /dev/null +++ b/tests/centos/Dockerfile @@ -0,0 +1,21 @@ +FROM centos:centos7 + +# +# Install CERN RPM repository and cvmfs client +# +RUN yum install -q -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm \ + && yum install -q -y cvmfs + +# +# Install convenience tools +# +RUN yum install -q -y tree + +# +# Add the RPM packages +# +ADD ["./*.rpm", "./"] + +RUN yum install -q -y *.rpm + +ENTRYPOINT /bin/bash diff --git a/tests/centos/Makefile b/tests/centos/Makefile new file mode 100644 index 0000000..a1ae967 --- /dev/null +++ b/tests/centos/Makefile @@ -0,0 +1,10 @@ +.PHONY: all + +all: run + +run: pkgs + docker build -t airnandez/sw-lsst-eu-centos-test . + docker run -it airnandez/sw-lsst-eu-centos-test + +pkgs: + @cp ../../*.rpm . \ No newline at end of file diff --git a/tests/ubuntu/Dockerfile b/tests/ubuntu/Dockerfile new file mode 100644 index 0000000..85195f0 --- /dev/null +++ b/tests/ubuntu/Dockerfile @@ -0,0 +1,25 @@ +FROM ubuntu:16.04 + +RUN apt-get update + +# +# Install CERN RPM repository and cvmfs client +# +RUN apt-get update \ + && apt-get --assume-yes install lsb-release \ + && apt-get --assume-yes install curl \ + && apt-get --assume-yes install tree + +RUN curl -s -o /tmp/cvmfs-release-latest_all.deb https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb \ + && dpkg -i /tmp/cvmfs-release-latest_all.deb \ + && apt-get update + +RUN apt-get --yes install cvmfs + +# +# Install DEB package +# +ADD ["./*.deb", "./"] +RUN dpkg -i *.deb + +ENTRYPOINT /bin/bash diff --git a/tests/ubuntu/Makefile b/tests/ubuntu/Makefile new file mode 100644 index 0000000..d9791a0 --- /dev/null +++ b/tests/ubuntu/Makefile @@ -0,0 +1,10 @@ +.PHONY: all + +all: run + +run: pkgs + docker build -t airnandez/sw-lsst-eu-ubuntu-test . + docker run -it airnandez/sw-lsst-eu-ubuntu-test + +pkgs: + @cp ../../*.deb . \ No newline at end of file From 12cc4f4489911a7c9bfa81bb2a7f853b43d681dc Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:18:04 +0200 Subject: [PATCH 10/24] Add build package scripts --- Dockerfile | 27 +++++++++++++++++++++++++ Makefile | 25 ++++++++++++++++++++++++ buildLinuxPkg.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ buildMacOSPkg.sh | 27 +++++++++++++++++++++++++ 4 files changed, 130 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100755 buildLinuxPkg.sh create mode 100755 buildMacOSPkg.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..333e206 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM centos:centos7 + +# +# Install 'fpm' dependencies +# +RUN yum install -q -y ruby-devel gcc make rpm-build rubygems + +# +# Install 'fpm' +# +RUN gem install --no-ri --no-rdoc fpm + +# +# Create non-privileged user +# +ENV username="lsstsw" +RUN useradd --create-home --uid 1000 --user-group --home-dir /home/${username} ${username} + +# +# Add files needed to build the packages +# +WORKDIR /home/${username} +ADD ["buildLinuxPkg.sh", "version.sh", "./"] +ADD ["etc/", "./etc/"] + +ENTRYPOINT /home/${username}/buildLinuxPkg.sh + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c976958 --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +UNAME := $(shell uname) + +.PHONY: all + +all: + @echo "Usage: make " + + +pkg: +ifeq ($(UNAME), Linux) + docker build -t airnandez/sw-lsst-eu . + docker run -it --mount type=bind,source=`pwd`,destination=/scratch --env SCRATCH=/scratch airnandez/sw-lsst-eu +else + bash buildMacOSPkg.sh +endif + + +test: +ifeq ($(UNAME), Linux) + docker run -it --entrypoint /bin/bash airnandez/sw-lsst-eu +endif + + +clean: + @rm -f ./*.deb ./*.rpm diff --git a/buildLinuxPkg.sh b/buildLinuxPkg.sh new file mode 100755 index 0000000..c79be95 --- /dev/null +++ b/buildLinuxPkg.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +# +# Import version +# +source 'version.sh' +version=$(pkgVersion) + +# +# Package name +# +packageName="cvmfs-config-lsst" + +# +# Prepare the output directory +# +outputDir=${SCRATCH:-/tmp} +mkdir -p ${outputDir} + +# +# Clean up first +# +rm -f ${outputDir}/${packageName}*.{rpm,deb} + +# +# Build RPM and DEB packages +# +for out in rpm deb; do + fpm --name ${packageName} \ + --version ${version} \ + --depends cvmfs \ + --description "Configuration files for CernVM-FS file system /cvmfs/sw.lsst.eu" \ + --maintainer "Fabio Hernandez (fabio@in2p3.fr)" \ + --url "http://sw.lsst.eu" \ + --license "Apache v2.0" \ + --vendor "CNRS / IN2P3 computing center" \ + --architecture all \ + --output-type ${out} \ + --input-type dir \ + --package ${outputDir} \ + --config-files ./etc \ + ./etc +done + +# +# Set file ownership, if necessary +# +userName="lsstsw" +if getent passwd ${userName} > /dev/null 2>&1; then + chown ${userName}:${userName} ${outputDir}/${packageName}*.{rpm,deb} +fi diff --git a/buildMacOSPkg.sh b/buildMacOSPkg.sh new file mode 100755 index 0000000..06bdf8d --- /dev/null +++ b/buildMacOSPkg.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# +# Import version +# +source 'version.sh' +version=$(pkgVersion) + +# +# Package id +# +packageId="eu.lsst.sw.cvmfs.config" + +# +# Package file name +# +packageFileName="sw-lsst-eu-cvmfs-config_${version}.pkg" + +# +# Build the package +# +sudo pkgbuild \ + --root ./etc \ + --identifier ${packageId} \ + --version ${version} \ + --install-location /etc \ + ${packageFileName} \ No newline at end of file From e5734156a874d73b70071cdced6561ec0f11ae2b Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:18:47 +0200 Subject: [PATCH 11/24] Add auxiliar scripts --- check.sh | 37 +++++++++++++++++++++++++++ configure.sh | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ install.sh | 54 ++++++++++++++++++++++++++++++++++++++++ version.sh | 4 +++ 4 files changed, 165 insertions(+) create mode 100644 check.sh create mode 100644 configure.sh create mode 100644 install.sh create mode 100644 version.sh diff --git a/check.sh b/check.sh new file mode 100644 index 0000000..8d7e865 --- /dev/null +++ b/check.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# +# Usage: bash check.sh +# +# Purpose: test the reachability from this host of the configured HTTP servers +# for CernVM-FS software repository 'sw.lsst.eu', via the configured proxies +# + +if [[ ! -f /etc/cvmfs/domain.d/lsst.eu.conf ]]; then + echo "file /etc/cvmfs/domain.d/lsst.eu.conf could not be found" + exit 1 +fi + +curlCmd=$(command -v curl) +if [[ -z ${curlCmd} ]]; then + echo "command curl not found" + exit 1 +fi + +source /etc/cvmfs/domain.d/lsst.eu.conf + +urls=`echo ${CVMFS_SERVER_URL} | sed -e 's/;/ /g' -e 's|@fqrn@|sw.lsst.eu/.cvmfspublished|g'` +proxies=`echo ${CVMFS_HTTP_PROXY} | sed -e 's/|/ /g' -e 's/;/ /g'` + +rc=0 +for u in ${urls}; do + for p in ${proxies}; do + ok=`${curlCmd} --silent --head --proxy ${p} ${u} | grep "HTTP/1.1 200 OK"` + if [[ -z ${ok} ]]; then + echo "HTTP HEAD request for $u via proxy $p failed" + rc=1 + fi + done +done + +exit $rc \ No newline at end of file diff --git a/configure.sh b/configure.sh new file mode 100644 index 0000000..3fba2e3 --- /dev/null +++ b/configure.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# +# Usage: sudo bash configure.sh +# +# This script configures a CernVM FS client to access the +# LSST software repository /cvmfs/sw.lsst.eu. The CernVM-FS +# client software must be previously installed. +# + +usage() { + echo "Usage: sudo bash configure.sh" +} + +# +# We must run as 'root' +# +if [[ $EUID -ne 0 ]]; then + usage + exit 1 +fi + + +# +# Execute 'cvmfs_config setup' +# +cvmfscfg=$(command -v cvmfs_config) +if [[ -z ${cvmfscfg} ]] || [[ ! -x ${cvmfscfg} ]]; then + echo "Could not find CernVM FS configuration command 'cvmfs_config'" + exit 1 +fi +${cvmfscfg} setup +if [ $? -ne 0 ]; then + exit 1 +fi + + +# +# Copy configuration files to their destination under +# /etc/cvmfs +# +srcDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +destDir='/' +toInstall="etc/cvmfs/domain.d etc/cvmfs/keys/lsst.eu" +for dir in ${toInstall}; do + dest=$(readlink -m ${destDir}/${dir}) + install -d ${dest} + install --backup --compare --mode=u=r,g=r,o=r -D ${srcDir}/${dir}/* ${dest} +done + + +# +# Perform system-specific tasks +# +thisOS=`uname` +if [ "$thisOS" == "Linux" ]; then + # Use 'cvmfs_config' to check the configuration + result=`${cvmfscfg} chksetup` + if [ "$result" != "OK" ]; then + echo "There was an error checking your CernVM FS configuration:" + echo $result + exit 1 + fi +elif [ "$thisOS" == "Darwin" ]; then + # On MacOS X, create the mount directory + mkdir -p /cvmfs/sw.lsst.eu +fi + + +exit 0 diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..52e215d --- /dev/null +++ b/install.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Usage: bash install.sh + +# +# We must run as 'root' +# +if [[ $EUID -ne 0 ]]; then + usage + exit 1 +fi + +installOnCentOS() { + # Add CERN package repository + yum install -q -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm + + # Install CernVM FS + yum install -q -y cvmfs +} + +installOnUbuntu() { + # Add CERN package repository + apt-get install lsb-release + wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb + dpkg -i cvmfs-release-latest_all.deb + rm -f cvmfs-release-latest_all.deb + apt-get update + + # Install CernVM FS + apt install cvmfs +} + + +version=`head -1 /proc/version` +distrib="unknown" +if [[ $version =~ "Red Hat" ]]; then + distrib="centos" +elif [[ $version =~ "Ubuntu" ]]; then + distrib="ubuntu" +fi + +case $distrib in + centos) + ;; + + ubuntu) + ;; + + unknown) + echo "Could not determine this distribution" + exit 1 + ;; +esac + diff --git a/version.sh b/version.sh new file mode 100644 index 0000000..b45a865 --- /dev/null +++ b/version.sh @@ -0,0 +1,4 @@ + # Returns the version of the configuration package + pkgVersion() { + echo "0.1" + } From 98a1bcacb02855c297a5e3c6cff841f4d2e1ec04 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:19:22 +0200 Subject: [PATCH 12/24] Populate documentation --- docs/faq.rst | 23 +++++ docs/help.rst | 17 ++++ docs/index.rst | 53 +++++++++-- docs/installation.rst | 205 ++++++++++++++++++++++++++++++++++++++++++ docs/overview.rst | 55 ++++++++++++ docs/usage.rst | 172 +++++++++++++++++++++++++++++++++++ 6 files changed, 518 insertions(+), 7 deletions(-) create mode 100644 docs/faq.rst create mode 100644 docs/help.rst create mode 100644 docs/installation.rst create mode 100644 docs/overview.rst create mode 100644 docs/usage.rst diff --git a/docs/faq.rst b/docs/faq.rst new file mode 100644 index 0000000..4bb7bd9 --- /dev/null +++ b/docs/faq.rst @@ -0,0 +1,23 @@ +.. _faq: + +************************** +Frequently Asked Questions +************************** + + +How many releases of the LSST software do you plan to keep available online? +---------------------------------------------------------------------------- + +Our current policy is to make available **all the stable releases** and at least the **latest 12 weekly releases** officially issued by the LSST project. Please be aware that **older releases will be removed without notice**. You are therefore encouraged to use a recent weekly release at any time or to stick to a stable release, if you don't need the latest features of the pipelines. + + +How can I learn more about CernVM-FS? +------------------------------------- + +You can refer to the `CernVM File System `_ project home page and to the official `CernVM-FS documentation `_. + + +Where can I get help on using the LSST science pipelines? +--------------------------------------------------------- + +The best place to get help about the LSST software works is the `LSST Community `_ forum. diff --git a/docs/help.rst b/docs/help.rst new file mode 100644 index 0000000..b5d558f --- /dev/null +++ b/docs/help.rst @@ -0,0 +1,17 @@ +.. _help: + +************************************ +How to Get Help and Provide Feedback +************************************ + + +How to get help +--------------- + +If you have questions or want to share your experience using this service, please feel free to comment via the `LSST Community `_ forum. + + +How to provide feedback +----------------------- + +You are welcome to `open an issue `_ if you experience problems installing the software, using this service or understanding the documentation. Similarly, if you have detected a bug, either in the software or in the documentation, you can contribute by opening an issue. \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index ba7656a..6b2d7aa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,16 +1,55 @@ -.. LSST User Guide documentation master file, created by - sphinx-quickstart on Thu Feb 23 16:01:53 2017. +.. sw.lsst.eu documentation master file, created by + sphinx-quickstart on Wed Apr 18 17:55:28 2018. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. ************************************** Cloud-based LSST software distribution ************************************** - + In this document you will find information on a service designed so that you can use a binary distribution of the `LSST science pipelines `_ on your personal computer without actually installing the software. - -As a user of this distribution mechanism, **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer under the path ``/cvmfs/sw.lsst.eu``. Since new releases just appear there without you to take any action, you can focus on using the software, instead on the technicalities of installing and updating it regularly. -.. warning:: +As a user of this distribution mechanism, **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer under the path ``/cvmfs/sw.lsst.eu``. Since new releases just appear there without you to take any action, you can focus on using the software, instead on the technicalities of installing and updating it regularly. + +Visit the :ref:`overview` to get more details on the benefits and intended audience of this service brought to the `LSST community `_ by `LSST-France `_ and `CC-IN2P3 `_. + +.. toctree:: + :caption: OVERVIEW + :maxdepth: 1 + + overview + + +.. toctree:: + :caption: USAGE + :maxdepth: 1 + + usage + + +.. toctree:: + :caption: INSTALLATION + :maxdepth: 1 + + installation + + +.. toctree:: + :caption: HELP & FEEDBACK + :maxdepth: 1 + + help + + +.. toctree:: + :caption: FAQ + :maxdepth: 1 + + faq + + +.. toctree:: + :caption: CREDITS + :maxdepth: 1 - This space is under construction. + credits diff --git a/docs/installation.rst b/docs/installation.rst new file mode 100644 index 0000000..04111dd --- /dev/null +++ b/docs/installation.rst @@ -0,0 +1,205 @@ +.. _installation: + +****************************** +Installation and Configuration +****************************** + + +In this section you will find step-by-step instructions for installing the CernVM-FS client software on your computer and to configure it to access the repository at ``/cvmfs/sw.lsst.eu``. To perform this one-time process **you need super-user privileges**. + +After this process is successfully completed, an unprivileged user ``cvmfs`` is created in your computer and several configuration files are located under ``/etc/cvmfs``. In addition, some executable files are installed (e.g. ``cvmfs_config``, ``cvmfs_fsck``, ``cvmfs_talk``). The location of those executables depends on the operating system: on CentOS and Ubuntu they are located in ``/usr/bin`` and on macOS in ``/usr/local/bin``. + +The installation and configuration steps for each target platform are presented below. + +CentOS +====== + +Step 1: Install the CernVM-FS client software +--------------------------------------------- + +Add `CERN's RPM repository `_ to your computer: + +.. code-block:: bash + + sudo yum install -q -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm + +Install the CernVM-FS client: + +.. code-block:: bash + + sudo yum install -q -y cvmfs + +.. hint:: + **Manual installation on CentOS**: If you prefer not to add CERN's package repository to your computer, you can directly download the latest version of the required package from the `CERN package repository `_ and manually install them using ``yum``. + + +Step 2: Configure the LSST repository +------------------------------------- + +Install the configuration package for repository ``/cvmfs/sw.lsst.eu``: + +.. code-block:: bash + + sudo rpm -i https://github.com/airnandez/sw-lsst-eu/releases/cvmfs-config-lsst-0.1-1.noarch.rpm # TODO + +Complete the CernVM-FS client configuration: + +.. code-block:: bash + + sudo /usr/bin/cvmfs_config setup + + +Step 3: Mount ``/cvmfs/sw.lsst.eu`` +----------------------------------- + +On CentOS, the CernVM-FS client uses ``autofs`` for automatically mounting the file system when required and to unmount it when it is no longer needed. We recommend you configure the ``autofs`` service to start at boot time. Here is one way to do that: + +.. code-block:: bash + + sudo chkconfig autofs on + +You can now proceed to :ref:`testinginstallation`. + +Ubuntu +====== + +Step 1: Install the CernVM-FS client software +--------------------------------------------- + +Add `CERN's APT repository `_ to your computer and install the CernVM-FS client: + +.. code-block:: bash + + sudo apt-get install lsb-release + curl -OL https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb + sudo dpkg -i cvmfs-release-latest_all.deb + sudo apt-get update + +Install the CernVM-FS client: + +.. code-block:: bash + + sudo apt-get --yes install cvmfs + +.. hint:: + **Manual installation on Ubuntu**: If you prefer not to add CERN's package repository to your computer, you can directly download the latest version of the required package from the `CERN package repository `_ and manually install it using ``dpkg``. + + +Step 2: Configure the LSST repository +------------------------------------- + +Install the configuration package for repository ``/cvmfs/sw.lsst.eu``: + +.. code-block:: bash + + sudo dpkg -i https://github.com/airnandez/sw-lsst-eu/releases/cvmfs-config-lsst_0.1_all.deb # TODO + +Complete the CernVM-FS client configuration: + +.. code-block:: bash + + sudo /usr/bin/cvmfs_config setup + + +Step 3: Mount ``/cvmfs/sw.lsst.eu`` +----------------------------------- + +On Ubuntu, the CernVM-FS client uses ``autofs`` for automatically mounting the file system when required and to unmount it when it is no longer needed. We recommend you configure the ``autofs`` service to start at boot time. Here is one way to do that: + +.. code-block:: bash + + sudo sysv-rc-conf autofs on + +You can now proceed to :ref:`testinginstallation`. + +macOS +===== + +Step 1: Install the CernVM-FS client software +--------------------------------------------- + +Download and install the latest stable release of `FUSE for OS X `_. This is a dependency of the CernVM-FS client. + +Install the CernVM-FS client: + +.. code-block:: bash + + curl -OL https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.4.4/cvmfs-2.4.4.pkg + open cvmfs-2.4.4.pkg + + +Step 2: Configure the LSST repository +------------------------------------- + +Install the configuration package for repository ``/cvmfs/sw.lsst.eu``: + +.. code-block:: bash + + curl -OL https://github.com/airnandez/sw-lsst-eu/releases/sw-lsst-eu-cvmfs-config_0.1.pkg + open sw-lsst-eu-cvmfs-config_0.1.pkg + +Complete the CernVM-FS client configuration: + +.. code-block:: bash + + sudo /usr/bin/cvmfs_config setup + + +Step 3: Mount ``/cvmfs/sw.lsst.eu`` +----------------------------------- + +Create the mount directory: + +.. code-block:: bash + + sudo mkdir -p /cvmfs/sw.lsst.eu + +On macOS you need to manually mount and unmount the file system when needed. To mount the file system do: + +.. code-block:: bash + + sudo mount -t cvmfs sw.lsst.eu /cvmfs/sw.lsst.eu + +and to unmount it: + +.. code-block:: bash + + sudo umount /cvmfs/sw.lsst.eu + + +.. _testinginstallation: + +************************* +Testing your Installation +************************* + +In the previous steps you installed the CernVM-FS client software and configured it to mount the LSST repository. At this point you can check your computer is correctly configured to access ``/cvmfs/sw.lsst.eu`` by doing: + +.. code-block:: bash + + ls /cvmfs/sw.lsst.eu + +If you can see the contents of that directory your computer is correctly configured and you are ready to start using the LSST software. See :ref:`usage` for details. + +.. important:: + + Please note that on both Linux and macOS **you must mount the file system on the directory** ``/cvmfs/sw.lsst.eu`` because the LSST software is specifically built and packaged to be delivered under this path. The software won't work if relocated under another path. + +.. _troubleshooting: + +********************************* +Troubleshooting your Installation +********************************* + +In order for this distribution mechanism to work, your computer must be connected to the network, be able to establish network connections to the servers operated by CC-IN2P3 and download files via the HTTP protocol. To check that this is the case, please do: + +.. code-block:: bash + + git clone https://github.com/airnandez/sw-lsst-eu + cd sw-lsst-eu + bash check.sh + +You can tell everything is OK if there is no error message. Otherwise, the displayed error message may help you understanding what is wrong. + +If this does not help solving your issue, please see :ref:`help`. + diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100644 index 0000000..95378c3 --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,55 @@ +.. _overview: + +******** +Overview +******** + +With this cloud-based software distribution mechanism **you will be able to use any of the releases of the LSST science pipelines available online**. Those releases are accessible in **read-only mode through a file system** mounted on path ``/cvmfs/sw.lsst.eu`` and effectively appear as if you had installed all of them on your computer. + +This service is built upon CERN's `CernVM file system `_, a POSIX read-only file system in user space designed for large-scale software distribution. A software agent running on your computer interacts with servers via standard protocols, downloads the files on demand, caches them on your computer and exposes them via the operating system's file system interface. + +In this section you will find information on the benefits of this mechanism, its intended audience, the platforms where it is supported and how to get started. + +======== +Benefits +======== + +This service mainly intends to make easier the use of the LSST software by a broader community: the more people test and routinely use the software the better it will get. + +Since keeping up with the frequent releases of the LSST software by installing it yourself can be time consuming, with this service **you can focus on using the LSST software from the comfort of your personnal computer**, instead on the technicalities of frequently installing and updating it. + +At any given moment you will find several releases, both **stable** and **weekly**, of the LSST software ready to use. You just need to navigate the file system under the path + +.. code-block:: bash + + /cvmfs/sw.lsst.eu + +to select the release you want to use, configure your environment to use the desired release and start using the software. This approach has the additional benefit that you can test your own scripts and notebooks against several releases of the LSST software, compare results, use new features, detect regresions and provide feedback to the developers. + +Each one of releases you find under ``/cvmfs/sw.lsst.eu`` is packaged so that it is almost self-contained. In other words, each release embeds almost all its dependencies, including a Python iterpreter and several other packages. In practice, this means that you can have other Python environments already installed in your computer and they won't conflict with the ones used for the LSST software releases. + +To summarize, this mechanism may be convenient if you **don't want to regularly install or update the LSST software on your computer**: when you need it, you access online the release of your choice among the ones available at that time. + +================= +Intended Audience +================= + +This mechanism of distributing the LSST software, which supplements the `other mechanisms `_ provided by the project, is intended in particular for **individuals** willing to use the LSST software on their personnal computers. + +However, it is not limited to that use case. The same mechanism is used for making the LSST software available to the computers in the CC-IN2P3's `login `_ and `batch `_ farms. This is considered beneficial for reproducibility purposes, since as a scientist you can use exactly the same version of the LSST software on your personal computer, as well as in your notebooks and in your batch jobs executing at CC-IN2P3. + + +=================== +Supported Platforms +=================== + +The `reference platform `_ for the LSST science pipelines software is currently CentOS 7. Besides that plaform, the software has been shown to work on macOS and Ubuntu, among others systems. + +The distribution mechanism documented here has been tested on CentOS, Ubuntu and macOS but is expected to work on other Linux distributions as well. If you successfully test it on your favorite Linux distribution, please let us know (see :ref:`help`). + + +================== +How to Get Started +================== + +You are encouraged to visit the section :ref:`usage` to get more details to help you decide whether this distribution mechanism is convenient for your individual use case. If you think it is, you can take a few minutes to install and configure the required software (see :ref:`installation`). diff --git a/docs/usage.rst b/docs/usage.rst new file mode 100644 index 0000000..f4bee24 --- /dev/null +++ b/docs/usage.rst @@ -0,0 +1,172 @@ +.. _usage: + +************************************************* +Usage of the Software under ``/cvmfs/sw.lsst.eu`` +************************************************* + +Once the CernVM-FS client is installed and configured in your computer, a one-time process (see :ref:`installation`), you can start using the LSST software. + +In this section you will find information on how to use the online LSST software repository. It appears in your computer **in read-only** mode under the path ``/cvmfs/sw.lsst.eu``. Super-user privileges are not required to access the files there in. + +Repository Layout +================= + +The namespace under ``/cvmfs/sw.lsst.eu`` is meant to be self-explanatory. There you will find a sub-directory per supported platform (i.e. ``darwin-x86_64``, ``linux-x86_64``), a subdirectory for each distribution (e.g. ``lsst_distrib``) and a subdirectory for each available release (e.g. ``v15.0``, ``w_2018_17``). It looks like: + +.. code-block:: bash + + $ tree -L 3 /cvmfs/sw.lsst.eu/ + . + |-- darwin-x86_64 + | `-- lsst_distrib + | |-- v15.0 + | |-- w_2018_14 + | |-- w_2018_15 + | |-- w_2018_16 + | `-- w_2018_17 + `-- linux-x86_64 + `-- lsst_distrib + |-- v15.0 + |-- w_2018_14 + |-- w_2018_15 + |-- w_2018_16 + `-- w_2018_17 + +Names of directories containing **stable releases** start with letter "v" (e.g. ``v15.0``) and directories where **weekly releases** are located are named starting with letter "w" (e.g. ``w_2018_17``). ``lsst_distrib`` is the name of the LSST distribution, that is, a coherent set of packages that together form the LSST science pipelines. Each release of the LSST software is built specifically for delivery via CernVM-FS according to the `official instructions `_. + +Each release of the LSST software you will find under ``/cvmfs/sw.lsst.eu``, be it stable or weekly, is mostly self contained: it includes its own EUPS (see below), its own **Python 3** distribution (typically `miniconda `_) and its own set of external packages that specific release depends on (e.g. ``numpy``, ``cfitsio``, etc.). In particular, since the Python distribution installed with each release includes its own interpreter, each release is independent and configured so **it does not conflict with other Python interpreter** you may have already installed on your computer. + +.. important:: + + The LSST science pipelines depend on the runtime libraries of the C++ compiler. **You must have the appropriate version of the C++ compiler installed on your computer** for the LSST software to execute properly, since that compiler is not included in ``/cvmfs/sw.lsst.eu``. + + It is likely that successive versions of the C++ compilers keep a backwards-compatible Application Binary Interface (ABI). In practice, that means that, in general, a more recent version of the C++ compiler than the one used to build the LSST software can be used. + + You can find the specifics of the C++ compiler a particular release of the LSST software depends on in the file ``README.txt`` in each release's top directory. + +Basic Usage +=========== + +The first step for using the LSST science pipelines is to select the release you want to use and bootstrap your environment for that specific release. For instance, to use LSST ``v15.0`` on a Linux computer do: + +.. code-block:: bash + + # Open a new terminal session using a BASH shell + $ source /cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/v15.0/loadLSST.bash + +As a result of executing this command, some environmental variables are extended or initialized, such as ``PATH``, ``PYTHONPATH``, ``LD_LIBRARY_PATH`` and ``EUPS_PATH``. + +.. note:: + + Most of the recent releases of the LSST pipelines use GCC v6.3 on Linux, which is usually installed on CentOS and RedHat via the `devltoool-6 `_ package. If that package is installed on your computer, it will be automatically detected and activated as a result of the command above. + +The LSST software uses `EUPS `_ for managing the set of software products which are part of a given release. EUPS allows you to select the packages you want to use in a work session. For instance, to use the command line tasks for processing CFHT images, you would do: + +.. code-block:: bash + + $ setup obs_cfht + $ setup pipe_tasks + +After these steps, your working environment is modified so that you can use the command line tasks (e.g. ``ingestImages.py``, ``processCcd.py``, etc.) and import LSST-specific modules in your own Python programs (e.g. ``import lsst.daf.persistence``): + +.. code-block:: bash + + $ processCcd.py --help + usage: processCcd.py input [options] + + positional arguments: + input path to input data repository, relative to + $PIPE_INPUT_ROOT + + optional arguments: + -h, --help show this help message and exit + --calib RAWCALIB path to input calibration repository, relative to + $PIPE_CALIB_ROOT + ... + + +If later on you need to work with a different release, say weekly ``w_2018_17``, **you must create a new terminal session** and configure your environment for the that specific release. For instance: + +.. code-block:: bash + + # In a new terminal session with BASH shell + $ source /cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2018_17/loadLSST.bash + + # From this point on, your environment is set up to use release w_2018_17 + +At this point you may want to `run the LSST demo `_ and read the tutorials on `how to use the LSST Science Pipelines `_. + + +Advanced Usage +============== + +As presented above, each installed release includes its own miniconda Python distribution with a strict set of packages the LSST science pipelines depend on. For your convenience, a set of packages is added without modifying the dependencies of the LSST software. + +You can determine which version of the Python interpreter is used for a given release of the LSST stack and obtain the list of installed packages via the ``conda`` command. For instance, when using ``w_2018_17`` on macOS you get: + +.. code-block:: bash + + $ source /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_17/loadLSST.bash + + $ which python + /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_17/python/miniconda3-4.3.21/bin/python + + $ python --version + Python 3.6.2 :: Continuum Analytics, Inc. + + $ conda list + # packages in environment at /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_17/python/miniconda3-4.3.21: + # + appnope 0.1.0 py36hf537a9a_0 + asn1crypto 0.22.0 py36_0 + astropy 2.0.1 np113py36_0 + ... + yaml 0.1.6 0 + zeromq 4.2.5 h378b8a2_0 + zlib 1.2.8 3 + +Among the packages deliberately added to each installed release, there are the ones necessary to use the `Jupyter `_ interactive computing environment with Python 3. You can therefore launch Jupyter via one of the commands: + +.. code-block:: bash + + $ jupyter nootebook + +or + +.. code-block:: bash + + $ jupyter lab + +and you will get an LSST-enabled notebook environment ready to use. + +In a similar way to ``conda``, you can retrieve the list of EUPS-managed products included in a bootstraped release of the LSST software via the command: + +.. code-block:: bash + + $ eups list --name + afw + apr + apr_util + ... + wcslib + ws4py + xpa + +Then you can activate one of those products, for example: + +.. code-block:: bash + + $ setup obs_subaru + +More information about EUPS can be found in this `EUPS tutorial `_. + + +More Advanced Usage +=================== + +.. todo:: + + Add information about: + + * How to install additional packages by creating a custom conda environment + * How to install additional EUPS products on top of a read-only installation From f0a0c752bc6513173eae81203caa518d2ccf60ab Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:31:06 +0200 Subject: [PATCH 13/24] Don't use manual install --- install.sh | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 install.sh diff --git a/install.sh b/install.sh deleted file mode 100644 index 52e215d..0000000 --- a/install.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -# Usage: bash install.sh - -# -# We must run as 'root' -# -if [[ $EUID -ne 0 ]]; then - usage - exit 1 -fi - -installOnCentOS() { - # Add CERN package repository - yum install -q -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm - - # Install CernVM FS - yum install -q -y cvmfs -} - -installOnUbuntu() { - # Add CERN package repository - apt-get install lsb-release - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb - dpkg -i cvmfs-release-latest_all.deb - rm -f cvmfs-release-latest_all.deb - apt-get update - - # Install CernVM FS - apt install cvmfs -} - - -version=`head -1 /proc/version` -distrib="unknown" -if [[ $version =~ "Red Hat" ]]; then - distrib="centos" -elif [[ $version =~ "Ubuntu" ]]; then - distrib="ubuntu" -fi - -case $distrib in - centos) - ;; - - ubuntu) - ;; - - unknown) - echo "Could not determine this distribution" - exit 1 - ;; -esac - From 931b23fdf9589b14544efb6003ab558d668a55f6 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:37:36 +0200 Subject: [PATCH 14/24] Use cvmfs v2.5 --- docs/installation.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index 04111dd..b4c8bcb 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -124,8 +124,8 @@ Install the CernVM-FS client: .. code-block:: bash - curl -OL https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.4.4/cvmfs-2.4.4.pkg - open cvmfs-2.4.4.pkg + curl -OL https://ecsft.cern.ch/dist/cvmfs/cvmfs-2.5.0/cvmfs-2.5.0.pkg + open cvmfs-2.5.0.pkg Step 2: Configure the LSST repository @@ -183,7 +183,7 @@ If you can see the contents of that directory your computer is correctly configu .. important:: - Please note that on both Linux and macOS **you must mount the file system on the directory** ``/cvmfs/sw.lsst.eu`` because the LSST software is specifically built and packaged to be delivered under this path. The software won't work if relocated under another path. + Please note that on both Linux and macOS **you must mount the file system on the directory** ``/cvmfs/sw.lsst.eu`` because the LSST software is specifically built and packaged to be used under this path. The software won't work when relocated under another path. .. _troubleshooting: From d88497a2ec15c3cb1d6953222826ef676dc77399 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:44:46 +0200 Subject: [PATCH 15/24] Make credits uniform with doc site --- docs/credits.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/credits.rst b/docs/credits.rst index 1da8129..470bdd9 100644 --- a/docs/credits.rst +++ b/docs/credits.rst @@ -4,8 +4,8 @@ Credits ******* -This work is a contribution to the worldwide `LSST community `_ by `LSST-France `_. The web server infrastructure is hosted and operated by `CC-IN2P3 `_. +This work is a contribution by `LSST-France `_ to the worldwide `LSST community `_. The web server infrastructure is hosted and operated in Lyon (France) by `CNRS / IN2P3 computing center `_ (CC-IN2P3). The continous delivery infrastructure of this web site was set up and is maintained by **Bertrand Rigaud**. **Vanessa Hamar** manages CC-IN2P3's CernVM-FS servers infrastructure and **Fabio Hernandez** takes care of building the LSST software, packaging it for distribution and continously improving this documentation. -For bringing this service to you we leverage the work done by the `LSST Data Management `_ and CERN's `CernVM-FS `_ teams. \ No newline at end of file +For bringing this service to you we leverage the work done by the `LSST Data Management `_ and CERN's `CernVM-FS `_ teams. From ccbeab44a6c971b68f77c76013de2f3fa1f80b03 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 12:49:01 +0200 Subject: [PATCH 16/24] Improve wording --- docs/installation.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index b4c8bcb..febf64f 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -30,7 +30,7 @@ Install the CernVM-FS client: sudo yum install -q -y cvmfs .. hint:: - **Manual installation on CentOS**: If you prefer not to add CERN's package repository to your computer, you can directly download the latest version of the required package from the `CERN package repository `_ and manually install them using ``yum``. + **Manual installation on CentOS**: If you prefer not to add CERN's package repository to your computer or to choose a specific version of the software, you can directly download the desired version of the relevant package from the `CERN package repository `_ and manually install it using ``yum``. Step 2: Configure the LSST repository @@ -82,7 +82,7 @@ Install the CernVM-FS client: sudo apt-get --yes install cvmfs .. hint:: - **Manual installation on Ubuntu**: If you prefer not to add CERN's package repository to your computer, you can directly download the latest version of the required package from the `CERN package repository `_ and manually install it using ``dpkg``. + **Manual installation on Ubuntu**: If you prefer not to add CERN's package repository to your computer or to choose a specific version of the software, you can directly download the desired version of the relevant package from the `CERN package repository `_ and manually install it using ``dpkg``. Step 2: Configure the LSST repository From b0b1d02262be004735de62f05416b8a2d6339cd5 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 13:43:53 +0200 Subject: [PATCH 17/24] Update to version w_2018_19 --- docs/installation.rst | 9 +++++---- docs/usage.rst | 31 ++++++++++++++++++------------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/docs/installation.rst b/docs/installation.rst index febf64f..2d1d9bf 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -40,7 +40,7 @@ Install the configuration package for repository ``/cvmfs/sw.lsst.eu``: .. code-block:: bash - sudo rpm -i https://github.com/airnandez/sw-lsst-eu/releases/cvmfs-config-lsst-0.1-1.noarch.rpm # TODO + sudo rpm -i https://github.com/airnandez/sw-lsst-eu/releases/download/v0.5/cvmfs-config-lsst-0.5-1.noarch.rpm Complete the CernVM-FS client configuration: @@ -92,7 +92,8 @@ Install the configuration package for repository ``/cvmfs/sw.lsst.eu``: .. code-block:: bash - sudo dpkg -i https://github.com/airnandez/sw-lsst-eu/releases/cvmfs-config-lsst_0.1_all.deb # TODO + curl -OL https://github.com/airnandez/sw-lsst-eu/releases/download/v0.5/cvmfs-config-lsst_0.5_all.deb + sudo dpkg -i cvmfs-config-lsst_0.5_all.deb Complete the CernVM-FS client configuration: @@ -135,8 +136,8 @@ Install the configuration package for repository ``/cvmfs/sw.lsst.eu``: .. code-block:: bash - curl -OL https://github.com/airnandez/sw-lsst-eu/releases/sw-lsst-eu-cvmfs-config_0.1.pkg - open sw-lsst-eu-cvmfs-config_0.1.pkg + curl -OL https://github.com/airnandez/sw-lsst-eu/releases/download/v0.5/sw-lsst-eu-cvmfs-config_0.5.pkg + open sw-lsst-eu-cvmfs-config_0.5.pkg Complete the CernVM-FS client configuration: diff --git a/docs/usage.rst b/docs/usage.rst index f4bee24..27eb036 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -11,28 +11,33 @@ In this section you will find information on how to use the online LSST software Repository Layout ================= -The namespace under ``/cvmfs/sw.lsst.eu`` is meant to be self-explanatory. There you will find a sub-directory per supported platform (i.e. ``darwin-x86_64``, ``linux-x86_64``), a subdirectory for each distribution (e.g. ``lsst_distrib``) and a subdirectory for each available release (e.g. ``v15.0``, ``w_2018_17``). It looks like: +The namespace under ``/cvmfs/sw.lsst.eu`` is meant to be self-explanatory. There you will find a sub-directory per supported platform (i.e. ``darwin-x86_64``, ``linux-x86_64``), a subdirectory for each distribution (e.g. ``lsst_distrib``) and a subdirectory for each available release (e.g. ``v15.0``, ``w_2018_19``). It looks like: .. code-block:: bash - $ tree -L 3 /cvmfs/sw.lsst.eu/ - . + $ tree -L 3 /cvmfs/sw.lsst.eu + /cvmfs/sw.lsst.eu |-- darwin-x86_64 | `-- lsst_distrib | |-- v15.0 | |-- w_2018_14 | |-- w_2018_15 | |-- w_2018_16 - | `-- w_2018_17 + | |-- w_2018_17 + | |-- w_2018_18 + | `-- w_2018_19 `-- linux-x86_64 `-- lsst_distrib |-- v15.0 |-- w_2018_14 |-- w_2018_15 |-- w_2018_16 - `-- w_2018_17 + |-- w_2018_17 + |-- w_2018_18 + `-- w_2018_19 -Names of directories containing **stable releases** start with letter "v" (e.g. ``v15.0``) and directories where **weekly releases** are located are named starting with letter "w" (e.g. ``w_2018_17``). ``lsst_distrib`` is the name of the LSST distribution, that is, a coherent set of packages that together form the LSST science pipelines. Each release of the LSST software is built specifically for delivery via CernVM-FS according to the `official instructions `_. + +Names of directories containing **stable releases** start with letter "v" (e.g. ``v15.0``) and directories where **weekly releases** are located are named starting with letter "w" (e.g. ``w_2018_19``). ``lsst_distrib`` is the name of the LSST distribution, that is, a coherent set of packages that together form the LSST science pipelines. Each release of the LSST software is built specifically for delivery via CernVM-FS according to the `official instructions `_. Each release of the LSST software you will find under ``/cvmfs/sw.lsst.eu``, be it stable or weekly, is mostly self contained: it includes its own EUPS (see below), its own **Python 3** distribution (typically `miniconda `_) and its own set of external packages that specific release depends on (e.g. ``numpy``, ``cfitsio``, etc.). In particular, since the Python distribution installed with each release includes its own interpreter, each release is independent and configured so **it does not conflict with other Python interpreter** you may have already installed on your computer. @@ -85,14 +90,14 @@ After these steps, your working environment is modified so that you can use the ... -If later on you need to work with a different release, say weekly ``w_2018_17``, **you must create a new terminal session** and configure your environment for the that specific release. For instance: +If later on you need to work with a different release, say weekly ``w_2018_19``, **you must create a new terminal session** and configure your environment for the that specific release. For instance: .. code-block:: bash # In a new terminal session with BASH shell - $ source /cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2018_17/loadLSST.bash + $ source /cvmfs/sw.lsst.eu/linux-x86_64/lsst_distrib/w_2018_19/loadLSST.bash - # From this point on, your environment is set up to use release w_2018_17 + # From this point on, your environment is set up to use release w_2018_19 At this point you may want to `run the LSST demo `_ and read the tutorials on `how to use the LSST Science Pipelines `_. @@ -102,20 +107,20 @@ Advanced Usage As presented above, each installed release includes its own miniconda Python distribution with a strict set of packages the LSST science pipelines depend on. For your convenience, a set of packages is added without modifying the dependencies of the LSST software. -You can determine which version of the Python interpreter is used for a given release of the LSST stack and obtain the list of installed packages via the ``conda`` command. For instance, when using ``w_2018_17`` on macOS you get: +You can determine which version of the Python interpreter is used for a given release of the LSST stack and obtain the list of installed packages via the ``conda`` command. For instance, when using ``w_2018_19`` on macOS you get: .. code-block:: bash - $ source /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_17/loadLSST.bash + $ source /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_19/loadLSST.bash $ which python - /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_17/python/miniconda3-4.3.21/bin/python + /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_19/python/miniconda3-4.3.21/bin/python $ python --version Python 3.6.2 :: Continuum Analytics, Inc. $ conda list - # packages in environment at /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_17/python/miniconda3-4.3.21: + # packages in environment at /cvmfs/sw.lsst.eu/darwin-x86_64/lsst_distrib/w_2018_19/python/miniconda3-4.3.21: # appnope 0.1.0 py36hf537a9a_0 asn1crypto 0.22.0 py36_0 From 9a32549dca28e90150f088d99fa1d4f21ee0ea5f Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 13:54:19 +0200 Subject: [PATCH 18/24] Separate general public README from developers README --- README.md => README-DEV.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.md => README-DEV.md (100%) diff --git a/README.md b/README-DEV.md similarity index 100% rename from README.md rename to README-DEV.md From ec08666fa239dbed8c39610224f3a2b44f19f1dc Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 13:54:41 +0200 Subject: [PATCH 19/24] Initial version of general public readme --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac8bd3b --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# Cloud-based delivery of the LSST science pipelines software + +## Overview +This repository contains documentation and tools on how to get the [Large Synoptic Survey Telescope (LSST) science pipelines](https://pipelines.lsst.io) software delivered to your personal computer on demand. + +All the details available at [https://sw.lsst.eu](https://sw.lsst.eu). + +## License + +Copyright 2018 Fabio Hernandez + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. From 22a47d8bfb378aa035f2fdccc0211463d65ed08b Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 14:05:45 +0200 Subject: [PATCH 20/24] https instead of http --- buildLinuxPkg.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildLinuxPkg.sh b/buildLinuxPkg.sh index c79be95..5b44e69 100755 --- a/buildLinuxPkg.sh +++ b/buildLinuxPkg.sh @@ -31,9 +31,9 @@ for out in rpm deb; do --depends cvmfs \ --description "Configuration files for CernVM-FS file system /cvmfs/sw.lsst.eu" \ --maintainer "Fabio Hernandez (fabio@in2p3.fr)" \ - --url "http://sw.lsst.eu" \ + --url "https://sw.lsst.eu" \ --license "Apache v2.0" \ - --vendor "CNRS / IN2P3 computing center" \ + --vendor "CNRS / IN2P3 computing center (CC-IN2P3)" \ --architecture all \ --output-type ${out} \ --input-type dir \ From 87cecf96409d6cab0bfaeea081f74afff118b046 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 14:07:26 +0200 Subject: [PATCH 21/24] Make developer documentation name clear --- README-DEV.md => howToBuildDoc.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README-DEV.md => howToBuildDoc.md (100%) diff --git a/README-DEV.md b/howToBuildDoc.md similarity index 100% rename from README-DEV.md rename to howToBuildDoc.md From b7325ba3c078c58dfad2093a0664c316eedcd9b5 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 14:10:58 +0200 Subject: [PATCH 22/24] Add License file --- LICENSE | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3f7d5f9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright 2018 Fabio Hernandez + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. From 0a983ebc23424ef1242c29b64c99da90b3327e79 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 16:33:30 +0200 Subject: [PATCH 23/24] Linting --- Dockerfile | 1 - buildLinuxPkg.sh | 32 ++++++++++++++++---------------- check.sh | 18 +++++++++--------- configure.sh | 38 +++++++++++++++++--------------------- docs/index.rst | 12 ++++++------ version.sh | 8 ++++---- 6 files changed, 52 insertions(+), 57 deletions(-) diff --git a/Dockerfile b/Dockerfile index 333e206..cd154f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,4 +24,3 @@ ADD ["buildLinuxPkg.sh", "version.sh", "./"] ADD ["etc/", "./etc/"] ENTRYPOINT /home/${username}/buildLinuxPkg.sh - diff --git a/buildLinuxPkg.sh b/buildLinuxPkg.sh index 5b44e69..9969444 100755 --- a/buildLinuxPkg.sh +++ b/buildLinuxPkg.sh @@ -26,26 +26,26 @@ rm -f ${outputDir}/${packageName}*.{rpm,deb} # Build RPM and DEB packages # for out in rpm deb; do - fpm --name ${packageName} \ - --version ${version} \ - --depends cvmfs \ - --description "Configuration files for CernVM-FS file system /cvmfs/sw.lsst.eu" \ - --maintainer "Fabio Hernandez (fabio@in2p3.fr)" \ - --url "https://sw.lsst.eu" \ - --license "Apache v2.0" \ - --vendor "CNRS / IN2P3 computing center (CC-IN2P3)" \ - --architecture all \ - --output-type ${out} \ - --input-type dir \ - --package ${outputDir} \ - --config-files ./etc \ - ./etc -done + fpm --name ${packageName} \ + --version ${version} \ + --depends cvmfs \ + --description "Configuration files for CernVM-FS file system /cvmfs/sw.lsst.eu" \ + --maintainer "Fabio Hernandez (fabio@in2p3.fr)" \ + --url "https://sw.lsst.eu" \ + --license "Apache v2.0" \ + --vendor "CNRS / IN2P3 computing center (CC-IN2P3)" \ + --architecture all \ + --output-type ${out} \ + --input-type dir \ + --package ${outputDir} \ + --config-files ./etc \ + ./etc + done # # Set file ownership, if necessary # userName="lsstsw" if getent passwd ${userName} > /dev/null 2>&1; then - chown ${userName}:${userName} ${outputDir}/${packageName}*.{rpm,deb} + chown ${userName}:${userName} ${outputDir}/${packageName}*.{rpm,deb} fi diff --git a/check.sh b/check.sh index 8d7e865..54c1b8e 100644 --- a/check.sh +++ b/check.sh @@ -14,8 +14,8 @@ fi curlCmd=$(command -v curl) if [[ -z ${curlCmd} ]]; then - echo "command curl not found" - exit 1 + echo "command curl not found" + exit 1 fi source /etc/cvmfs/domain.d/lsst.eu.conf @@ -25,13 +25,13 @@ proxies=`echo ${CVMFS_HTTP_PROXY} | sed -e 's/|/ /g' -e 's/;/ /g'` rc=0 for u in ${urls}; do - for p in ${proxies}; do - ok=`${curlCmd} --silent --head --proxy ${p} ${u} | grep "HTTP/1.1 200 OK"` - if [[ -z ${ok} ]]; then - echo "HTTP HEAD request for $u via proxy $p failed" - rc=1 - fi - done + for p in ${proxies}; do + ok=`${curlCmd} --silent --head --proxy ${p} ${u} | grep "HTTP/1.1 200 OK"` + if [[ -z ${ok} ]]; then + echo "HTTP HEAD request for $u via proxy $p failed" + rc=1 + fi + done done exit $rc \ No newline at end of file diff --git a/configure.sh b/configure.sh index 3fba2e3..c663e4e 100644 --- a/configure.sh +++ b/configure.sh @@ -16,25 +16,23 @@ usage() { # We must run as 'root' # if [[ $EUID -ne 0 ]]; then - usage - exit 1 + usage + exit 1 fi - # # Execute 'cvmfs_config setup' # cvmfscfg=$(command -v cvmfs_config) if [[ -z ${cvmfscfg} ]] || [[ ! -x ${cvmfscfg} ]]; then - echo "Could not find CernVM FS configuration command 'cvmfs_config'" - exit 1 + echo "Could not find CernVM FS configuration command 'cvmfs_config'" + exit 1 fi ${cvmfscfg} setup if [ $? -ne 0 ]; then - exit 1 + exit 1 fi - # # Copy configuration files to their destination under # /etc/cvmfs @@ -43,28 +41,26 @@ srcDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" destDir='/' toInstall="etc/cvmfs/domain.d etc/cvmfs/keys/lsst.eu" for dir in ${toInstall}; do - dest=$(readlink -m ${destDir}/${dir}) - install -d ${dest} - install --backup --compare --mode=u=r,g=r,o=r -D ${srcDir}/${dir}/* ${dest} + dest=$(readlink -m ${destDir}/${dir}) + install -d ${dest} + install --backup --compare --mode=u=r,g=r,o=r -D ${srcDir}/${dir}/* ${dest} done - # # Perform system-specific tasks # thisOS=`uname` if [ "$thisOS" == "Linux" ]; then - # Use 'cvmfs_config' to check the configuration - result=`${cvmfscfg} chksetup` - if [ "$result" != "OK" ]; then - echo "There was an error checking your CernVM FS configuration:" - echo $result - exit 1 - fi + # Use 'cvmfs_config' to check the configuration + result=`${cvmfscfg} chksetup` + if [ "$result" != "OK" ]; then + echo "There was an error checking your CernVM FS configuration:" + echo $result + exit 1 + fi elif [ "$thisOS" == "Darwin" ]; then - # On MacOS X, create the mount directory - mkdir -p /cvmfs/sw.lsst.eu + # On MacOS X, create the mount directory + mkdir -p /cvmfs/sw.lsst.eu fi - exit 0 diff --git a/docs/index.rst b/docs/index.rst index 6b2d7aa..0189052 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,15 +3,15 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -************************************** -Cloud-based LSST software distribution -************************************** +**************************************** +LSST software delivered to your computer +**************************************** -In this document you will find information on a service designed so that you can use a binary distribution of the `LSST science pipelines `_ on your personal computer without actually installing the software. +Here you will can information on how to get a binary distribution of the `Large Synoptic Survey Telescope (LSST) `_ `science pipelines `_ to use on your personal computer without installing the software. -As a user of this distribution mechanism, **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer under the path ``/cvmfs/sw.lsst.eu``. Since new releases just appear there without you to take any action, you can focus on using the software, instead on the technicalities of installing and updating it regularly. +As a user of this software distribution service, both **stable and weekly releases** of the LSST software appear as if they were locally installed on your computer. Since **new releases just appear under the local path** ``/cvmfs/sw.lsst.eu`` **without you to take any action**, you can focus on using the software, instead of on the technicalities of installing and updating it regularly. -Visit the :ref:`overview` to get more details on the benefits and intended audience of this service brought to the `LSST community `_ by `LSST-France `_ and `CC-IN2P3 `_. +Visit the :ref:`overview` to get more details on the benefits and intended audience of this service brought to the `LSST community `_ by `LSST-France `_ and `CNRS / IN2P3 computing center `_ (CC-IN2P3). .. toctree:: :caption: OVERVIEW diff --git a/version.sh b/version.sh index b45a865..30afd5b 100644 --- a/version.sh +++ b/version.sh @@ -1,4 +1,4 @@ - # Returns the version of the configuration package - pkgVersion() { - echo "0.1" - } +# Returns the version of the configuration package +pkgVersion() { + echo "0.5" +} From 6d12de6ff6a910e64e23e83472469c38965812b7 Mon Sep 17 00:00:00 2001 From: Fabio Hernandez Date: Fri, 18 May 2018 16:51:37 +0200 Subject: [PATCH 24/24] Improve developer documentation --- devdocs/README.md | 30 +++++ .../workflow.png | Bin howToBuildDoc.md | 111 ------------------ 3 files changed, 30 insertions(+), 111 deletions(-) create mode 100644 devdocs/README.md rename lsst-france-sw-diagram.png => devdocs/workflow.png (100%) delete mode 100644 howToBuildDoc.md diff --git a/devdocs/README.md b/devdocs/README.md new file mode 100644 index 0000000..70ddbb1 --- /dev/null +++ b/devdocs/README.md @@ -0,0 +1,30 @@ +# Developer documentation + +This document contain instructions on how to trigger the continuous integration machinery for building the documentation of +site [https://sw.lsst.eu](https://sw.lsst.eu). + +The sources of the documentation are located in the `docs` directory of this repository. To build them do: + +```bash +git clone git@gitlab.in2p3.fr:brigaud/sw-lsst-eu.git +cd sw-lsst-eu +git checkout -b +``` + +The last step, i.e. creating your own branch is very important. You can now modify the contents of your local copy of the files in the `docs` directory and commit your changes. Then do: + +```bash +git push +``` + +This push operation will trigger the CI infrastructure. You can preview the modified version of the documentation at the address: `https://sw.lsst.eu/preview/`. + +Once you are happy with your modifications and want to push them in production make a merge request via the command line or by visiting: + +``` +https://gitlab.in2p3.fr/brigaud/sw-lsst-eu/merge_requests/new?merge_request%5Bsource_branch%5D= +``` + +You can have an overview of the process in the diagram below: + +![Workflow](workflow.png "Workflow") \ No newline at end of file diff --git a/lsst-france-sw-diagram.png b/devdocs/workflow.png similarity index 100% rename from lsst-france-sw-diagram.png rename to devdocs/workflow.png diff --git a/howToBuildDoc.md b/howToBuildDoc.md deleted file mode 100644 index 7cfd6c0..0000000 --- a/howToBuildDoc.md +++ /dev/null @@ -1,111 +0,0 @@ -LSST FRANCE DOCUMENTATION -========================= - -
- -Introduction ----------- -*** - -This repository contains LSST documentation sources (reStructuredText file format). -Updating content on this repository automatically generates and publishes online documentation. - -
- -Goals ----------- -*** - -- Manage collaboration between LSST documention's authors -- Generate & Publish LSST Documentation - -
- -Workflow ----------- -*** - -Each author works on his own branch and can see a preview at every push. -Once the author is satisfied, he can merge his branch with the master branch. -The merge in master generates and publishes the official version. -This repository only contains source documentation (.rst files). -Authors must write documentation respecting this format. -More info on the reStructuredText (rst) file format: https://en.wikipedia.org/wiki/ReStructuredText - -![LSST France Software Doc Diagram](lsst-france-sw-diagram.png "LSST France Software Doc Diagram") - -### master branch is the official doc that is pushed online at http://sw.lsst.eu/. -### Documentation generation and uploading is fully automated. - -
- -Instructions ----------- -*** - -**Step1**: clone the repo and create your own branch from master - -```bash -git clone git@gitlab.in2p3.fr:brigaud/sw-lsst-eu.git -cd sw-lsst-eu -git checkout -b -``` - -**Step2**: create/modify your doc in your branch then push it - -```bash -git add --all -git commit -m "your changes comments" -git push -``` -... wait about a minute and check it out at http://sw.lsst.eu/preview/\. - -
- -> **Note:** - -> - Each push on your branch will generate a documentation at http://sw.lsst.eu/preview/\ -> - Useful for preview. - -
- -**Step3**: send a merge request to master branch to put documentation in production -

-https://gitlab.in2p3.fr/brigaud/sw-lsst-eu/merge_requests/new?merge_request%5Bsource_branch%5D=\ -

-An administrator will check your version, fix conflicts and finally merge your branch into master branch.
-This merge will automatically trigger the build process and update the official documentation at http://sw.lsst.eu/. - -
- -> **Note:** - -> - Each merge on master branch will generate a documentation at http://sw.lsst.eu - -
- -> **Important**: - -> - Each time master builds a new official doc, preview folder (i.e http://sw.lsst.eu/preview) is deleted - -
- -Recommandations --------------------- -*** - -All the documentation resides in the "docs" folder. -You can create or delete files and folders in order to create your documentation. -Be sure to update the index.rst file in case you add or delete documentation files or folders in order to access it from the sidebar menu on the website. - -
- -> **Note:** - -> - As a community project, it is recommended to work only on parts you've been assigned -> - Keep as much as possible the original tree structure -> - Keep as much as possible your branch up-to-date with respect to master branch (i.e git rebase master ) - -
- -Happy doc!