From f5c8d5ea136b29db5cfd4ca637ffc68d3c48ed33 Mon Sep 17 00:00:00 2001 From: Dan D'Avella Date: Wed, 21 Feb 2024 06:19:14 -0500 Subject: [PATCH] Update README (#292) * Add Codemodder logo to README * Add Base Codemod diagram to README * Update README contents --- README.md | 72 +++++++++++++++++++++++++++++---------- img/base-codemod.jpg | Bin 0 -> 41511 bytes img/codemodder-dark.png | Bin 0 -> 10607 bytes img/codemodder-light.png | Bin 0 -> 11528 bytes img/codemodder.png | Bin 0 -> 10607 bytes 5 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 img/base-codemod.jpg create mode 100644 img/codemodder-dark.png create mode 100644 img/codemodder-light.png create mode 100644 img/codemodder.png diff --git a/README.md b/README.md index d2989ae1..16c63c67 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,79 @@ -# codemodder-python + + + + Pixee Logo + -This is the Python version of the [Codemodder Framework](https://codemodder.io/), which builds on traditional codemod frameworks by providing -codemods with additional context and services. Codemodder plugins inject codemods with the context and services they need to perform complex transforms. +# codemodder-python -Pluggability and the complex transforms they enable distinguish codemodder codemods from traditional codemods. +This is the Python version of the [Codemodder Framework](https://codemodder.io/). Codemodder is sponsored by [pixee.ai](https://pixee.ai). ## Development Status -The `codemodder-python` project is still under heavy development. 🚧 - -The project includes a (growing) set of core codemods. It also supports the -development of custom codemods. +As of [v0.80.0](https://github.com/pixee/codemodder-python/releases/tag/0.80.0) the codemod API is relatively stable. However, backwards compatibility between releases will not be guaranteed until version 1.0.0. -Many of the existing codemods make use of [Semgrep](https://semgrep.dev/). The -`codemodder-python` framework will support additional codemod sources in the -future. -⚠️ The custom codemod API is under heavy development and is subject to change. -The API should not be treated as stable at this time. ⚠️ +See [CHANGELOG.md](CHANGELOG.md) for detailed release notes. ## Installation +The `codemodder` package is available [on PyPI](https://pypi.org/project/codemodder/). To install, run: +``` +$ pip install codemodder +``` + To install the package from source, use `pip`: ``` -pip install . +$ pip install /path/to/codemodder-python ``` ## Running Locally -You can run the codemodder program with +The codemodder package provides an executable called `codemodder`. This should be available on your path by default after installation. -```codemodder --output ...``` +For basic usage, run the `codemodder` command with a target directory path: + +``` +$ codemodder /path/to/my-project +``` + +Note that by default `codemodder` will make changes to files in your target directory. To run `codemodder` without making updates on disk, use the `--dry-run` flag: +``` +$ codemodder --dry-run /path/to/my-project +``` -```bash -codemodder --help +To list all available codemods (including any that are registered with installed plugins), use the `--list` option: ``` +$ codemodder --list +``` + +For a full list of options, use the `--help` flag: +``` +$ codemodder --help +``` + +## Architecture + +Codemods are composed of the following key components: +* Detector +* Transformer(s) +* Metadata + + + + Base Codemod Diagram + + +## Custom Codemods + +The Python codemodder supports a plugin infrastructure for custom codemods. For users interested in developing a custom codemod plugin, we recommend starting with the [Cookiecutter template](https://github.com/pixee/cookiecutter-codemodder-plugin). + +## Documentation + +Coming soon! ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md). diff --git a/img/base-codemod.jpg b/img/base-codemod.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c8f000fd979d09a29864d3e35bbfe64d10f96a4 GIT binary patch literal 41511 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 literal 0 HcmV?d00001 diff --git a/img/codemodder-light.png b/img/codemodder-light.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2e8208bc6073a7c3e1ae3bab29ece7b18e47b4 GIT binary patch literal 11528 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 literal 0 HcmV?d00001 diff --git a/img/codemodder.png b/img/codemodder.png new file mode 100644 index 0000000000000000000000000000000000000000..4f1a5ecb6e2a653f1fd6be61b32ef89d4fc94935 GIT binary patch literal 10607 zcmdtIWn5I>*Ec-C07EwnJ%k`2Fm!h+EiDqmNa+BBbfR(F9?LMH9zi7|W>+P86&XP(Un@Dk3Xd6emUs0{ zedD$$vnbz^YZt-#LgkNu+G$8qQeE`YIh`#b-cNMe zgv;VS1*X%g8F2E+YS6zGQtp6F(sJ2eot(@|XFdv97oYeXS0|5?*11sOQJXunIMlwK zIYPX>mQ~kSlbHpopL7T*fn~a?EVPCdz%tR?1(UM4y&^M4@>rG@)~2fDr~}L#``DS? zx7X1D@M35X02hlAfPloJ5>ugoLN`SwV_ zd@}m$YMQ$P0JL{*zgYJla_(X*95@-7d6?;F zOT%5A1z=BHZS4enoRPO$09hYt4C!p=0fYEBBV632edO5xN=ReqTecuOvKDZxByfD$}Ud`fk0%RKe3m7sH*<2I_64_-O}I?d>h#Eh6Ch+(A%C zN=ix)Dl8~0%#V@aclUMifcfydxO4ntL^(RrZ!EZT`^C-4)?^YhPYSR8;n_?Ei=R z-=6-_(0lG=hw1A-8vn}wPu~BQH~atf@ISf#TjReKj9r{OS*1OhHjiv`5NTJHf%YK)fT8sL9 z7*K2s#GY<1nhSb`tM+(dpG?sppI;G+h+Gi{+iHmsRZ_%><|k~AexXT`Qf!Npg1Y{0 zJ132v$uM-0IcW{>FT3~=xRxWbl9kcoa6DJzK(hAOo;8u299vlt1PXlwDmCBak>dnL zgxsFlX})c8 zj0gd0a5NlN{$pPgSx9!P35-zWz!+v|{}}b+uOG!QmB4?D0vRxdhd}~z_ipvcF&;N? z{_*z{ghddij{F0=)epgV)Mx#-)9N5iq-dBH8PQ+UA;75fe~f}el@-H2P(1cC``h2! zq2T}D8cOLnEl@A`d~}wB^-R8s0c%lo zr0in{LFhP9=wPwT;gI$9e%e;>&4u;xruB`q%;j!p&365~{B*#<_b974@eQjKZpp3I zi=D|gceJXfUBAj*po4F+u2vMHiKm4ge=8H%0Az*UA zDs}Sdlh4$UA>SYF)q%&8+!uom@=3FSC$sboz{Zm~{~C^X+2^0T?8KOopRUnz)oeH% z*(p6M=6#k=@Cg1|Y$oa5vA{TBibnZ zGy17%O%Cn5^HDIcs3s+H8rezm!PwGWCnNuT+j;>eXew$poIs62A?)RsdI9hKuQsjG zwD-&wQu!@b1sd1c>utLUPr_L*A+q9k%0aPZ^>b4#3%G(v|E;Ph|GgONEtacw4ZW9* zMU4I9apEl3dbdhZj_KxsJ=?xn<@7px!G8Hk!Dl#*79?K+nfXA1J$jNK=R)fu5yC1 zIX9PUP1aW%raKq&H?2*_Q_p7gg7&E#STq)^5}PuklIf^Rpr+@^UD-q!(vriORdho5$eOUj?mU(B66 zqJe-2n?LB6!A|Ee#+bz!|E_VHVhFS@j6<~T(X+CZf-IR$`z+^GuL&5w!-eAI21;iB z?1#Rkuh0^_DP8PY>NKWx2E}@F+Db$`{hOk=tmJkb=ZXP)Ftf0%k0ZCjqvw|8(pUul z70<@N`0e-CYfo2gvZ14k^Zm51GuxkkTLpQx6FP>Ih_5%bg2VWn&yAo&}p~A+5 zR#ZJ#tR1$fj%UkhpTxwXU06~10;v{wRHPSJT%qn^0N%PTvBq@ip-2iA$ zeBIkAq)zK8?bWpD?~iV&=V(+*T$cgzy?ubZY}_AylaTq#RSA(SH}8C*SjObh$FKMXoS17% z93(|IoL&7bjyqYep{PMJgpzT@_m%mZYj3Y!X74BS=fCQO4+J)O(Jlis=o9VJJ0*ik z@T(tse>{JiW-X*X)t7Ort=R56)uve66y-TcmynVF zC)ERMf~ENnCz#c@-WzT2)8+PX4LZoWV##boZ%AQQNDo!02`;{Yv%=LMJsBC(CYnQ= z)YY7cUlxb zt9f@d$jT8*XDaceSj4-FLgQ4WW)}&=4sm0Rmo{;`>Pl@MG+FMP-3`QS`A53A5iid$ zv0M;n+7kBuA+=^?5?tq`Zp6#u z%UN{Ln*8~2{P9t;K9`c}{Ho@&*ctl)Wbh@5HSlY}eAlU(1kH!}Br+7h3TS_5xZg>D zdmRneek%kZdn@H`uOYO4aQl~WWv+f19T_5j{3flrD;~cmY?4=IuB36e(TaiN4MDsK z@z3?+`KujoZyOsN5fSU%ylvv4%_mhC_spxGK*Vt>>vj*$wxnCbUzTClXbF7btkLJs zDDx9O$lcE(7kZUOAs!Epm#eGYl4J@v?PUEiLE;)a&bZu{L>B2?j;Q1mgiB_;h~2{r z*!;%4P2Hq19r#DfdLM1u%vlyNB?+k9oLAm+SbddsWQzjmy{9yj1Y6GqSmg;UJA_NX zM>o&b-dR7w-!k{=|Hw*YlW~)-cs!Bgw^76*Gs3wY!t8r+X?=5U$~p;P+CQ}!eb0Y$ z_(?&B_gNcbDKa5SF8muGTfZ_bln=kK~w?8uS?$ zKgZ;ZoLgLEziEfU(PLS-I*CCfYuLl)fz%gQhj0ForY3O#=fsbIAnmm0$>V83hXdBv z)v4a#KkN_+Z64l(V(Fa*)a3c~uNu#5ag2vQgKQ}2I7)OGB2~1ViK!N=tQQvjw7C6ZY3|0;2}XY9LTC|{7G|%x8nv1 z8?fWPey_ONQAZFdAzsb(65ZGJk1*m8rP=Udn$SEqdh$+A=_7iFY$0f#67$Qd6n4DO z?TDkAU3QkmV6X%qVY=C?^gBWvMCb@UmnKk1WBAAPAo8a?i|q>zCi9$uIsEVfp7wUd zh%-->WrFY+f_UL}tb;KsYgj} zybWDOaHpw10`Ub-?5-fGRy3%10#d^jUqRJ$Ux}`+eHGSoeIuV_4A0e1$#~HH0fBP=>T;?V4(GcKB5`}^0;$@e9iPNP1A3$;!a_XaCdg6)JdNgFG`BFF+k zuXz6%l=81(KJd@rhk?--4Zc+S!9TL4hDFaksp=10qJ`zRo%Gzr^W3=K1?=Z@MqmCU zlkhwzQ-5U9qW!#3@=tz}EGyW24)6Tt~4_ZCkT(Sh>xa6VzemBh+zB@NctFWPOvwR}{b?$t$6s7;^3xJUGbFTs9C_gga4G#L8!FWcla^E)rQIea;i=$`+ajymzho zKi$6~_tGI)wJlZ-mM8LAH13Z0K)NR|C*7t0KA>6aTMBjPQM2y>7XfJxpOqmGv1ZIZ zMQV@HvsO8$66#;Kk10N3?M5mHZm^$m1Kqya=cg%pbZoy~<1b%dpjnS>22fZ%K7?;r z?bOKE&Wx@n$Gk1>OB)7r3)x&Q^7pEC81)1(0y@}Uh+Op>y$uSZg=($HMPHN=l1h&X zk+~|Dpcte<0QEcHFCkB8@sfI(>6G?U>zh9cc1J9J{APqlr7d}+U4KF^%2Uuj$Yk1S zs4LYiLINfshVLzP%gdX^`i9W-9xP?{X{Td#4NAtts!9t;_o95+a+O&I0p>-(`r##+ z?wfY9_QcG$)&1w+G~}1)6~TjtdwdnmBN>M65u4BCEoZ!5RubZrs3gBN=PFUzz-~Wn zKTW9!u;alibx}BNCzCcITC@aqD&aFPTfT=o0}GOc^j0a-xgiwC57rYT!VkJ&o zQKjG*RTk(nIW>8n0oPz#8-nA9QR>`y#^E}5!%$70gxKQURmM3!|D3+qN#;PLo?+5C zjm%Yum-_mzJLlXx8$!ZI8R(mAlc#leZ$MX((m`8rR(A`RFLoMDVe~>L=}%s?(rU?g z#Rr8TZMX6!h4dOH;3+5X&(-{&<(`lPxDKq>laAUOy(YL&u4)xe7e=r;Q=MyX$}+F; zrPlwr=}LK(=m~NCRG6eLF|@Fh!G5@`W(oD3XzLq1nepH3n)^5poR!S6wVUGyU*4}U z^V-R{34VB^)#}TL-?NqM9KOHMZ$21)^JmkiGyfZStIMAY@W#rxIi8u@9v{WxQeJBp z+Yn#RV#kw8(L`I`$5WlM(k0XEs?2>}_DCe_V)Sx5w)A71KR%Up2{Mo2l_8IS*l zD*O=ls=VMEjxnT!Zj95oD^@6lY(vmQp3ce#CYn)A?@_36*gd1OVXMnA%#rY&t(_iz zZ1=52cyIhPvX@Ou7fULZmU6Q5#v>UZM z!mgt;d6al?SYCx?d1&KvoMjZvgQqlrUxkeK1=UO6nDbQI>Kwh?o%?0sy1iY$cypOD zPURc8pY(2UKIc#_Mc%8faYJff3HQfSv0wOHc4nw|zkt1ay{y(nN#zFD<4Y8Wzi%Hd z{ArmAKiC4{U?b4_WQ~JH2E|IQ$cJfN3NIFquRMf)_UWoQUsm4r7980DeN@VjP&*f33f!92ak}KA< z3DK{fM0b^6EQwskC#YbgpR^UC;8%VR*u^ly z@&)OfD{q#Q$S5y|{V=qK8kg(GAYXUD@O-L}HrS26W?)Un@}aiK&ErvYQ8nEttUJ2W zIjP^ovX;gxMCoA)k{#VhdIxl2krksg#&cPE`$3!eIo=lzwr zZ;!`PbNHitL;AHfi6C1bn6NwtrCj$% zM2cQ#<r0F``*m!Db;GUrT} zJ4fOnW3k0A)maeiF(kGobq%6fpLFlhyVhn4!PO7zm%d|e(rP+ADZPKQ8_-1{VjZnx zbZ9P|IML?GAnkq1BYnNE4W3uPENr zN1B^B-CQ1)-p8umj(C|NB_cOx_f_$MV?svvb!Iw+up_{>WOwH-PnJ){g} zQT|%v!2Y?4Br-;cu7i(HOzRHWIfK98R^bwXy$TCdXul8@sv-{_p?D>vtY6JT)MK7a z!qGsUAQa|SwI{r4PV3*g?Z19KVA2}J^gNm@?}t^qBGxl;(t_hQD5_vcsZ`Nmphvc0 z{R0RRfs@yEU`EAzUD-*>XL%GM>?U?%C*i#_Q@F6;EzU{B`))7coo4$W>@YS;`jRkQ zo-Z7ih&Ex1)An;`epoe1Hi4VVA>u)lM9(*N6B+law-HKPUzBE^=^*v#?TH)6-;bEp zIwpP?#Wih~CJ_cHPH9uE_5wPxzAddCZmH3f5H%Unrx#f+gIrVBp-R#+H4N!@T!IG& zOT4~!7})@psX%$;R7{s~&M$N<8pfXI(t#`U*J8t}LkT)Ti?oGgICl%4L&(OAm$5`_ z4H>ioHp0ofObpX(c5JXYfS=f_M$>AYD_)?d$6mj-Mi^<2v#Mu1RCkMNYzOz;i!|W^ zSD8ZxSxy{gw!<^u(93m*c=c!&vTpZA$~*oU`Pesmd>MySXMQ0;nM8R`d<^1ZwDa9{ z$QU&o0$OH@NSBAKw(17zZ^p>;(Q@4@tLMK5ch}T4E zENWaKYVdoe7~j-y&8(maE*%7RqDf0;}7kD$F^D8r|Q27-CD{&T){-T((~^*mjg@IHiwIZ7f5l;LLA=Q1%N}f@3q{ z{eZ%|8<(dkPg)9HuP2whm4Ain#7^X<2ImCyi+e_juEPV0r@BqzGjy=IR@&`*ici|& zg|l{be#s=?d3?YKD55fm8xR+bJh{tpmGsP#kP*<=Yr+#0Zogr4Iq54L$7Hczy6CE3dCSVsxJ;%iU>y~rrA{6X0 z;^mX!6OcFFe(Br^T+PpKyHhB@eU)$#C9mTD{=r6_907O7>Ld8bmt>i*wx^$hy%-q? zjOp^s^mTfo8!I2djfaW}rmYY(T}`_xV~=7{b&mN!4FDDvHV)xA8Xa`f6m-AO=7n3V zh(XZdL7_G|Wz$Y$2_1tk^G5DwZ^&|k)fRW*1HU_X%vuPqt*Jq=OeVKiHsUSX*lna) zL`uLI4NLY?a@|7N%!i}$Y95aRF8zy$#7oIXi=2El7JWT#K)Y5@fOk*m3(yHl##*p4 zG|zi9hbJ#bPa(kJ9@MQjLB3A`k7Q1w^!cd=W?hYGR_uzJ`j_U(SqVNr78-)x#1r;)m|nQk6pvvG zQxcnHwP;NbTQwvZ2KaW!j1bd?{Je+~?JozO zsWzB?=2i|>%sKpX`wHRAJ%IsLTgoyPKVJo-u&G2)Qd2Q4s~~l-ZJ+Bi9cS z-lm0B^vYM1-HVtz<#`u7O%)0%SaM=>mP%{7K|PO~`D3oQymWnwHu<+<#5T69+VTox zp@k+7pLERB>kPVodT_^y4~ABvlgTaSJ;W<7I(&;vPZe@;B?8rvoRe<%`Lq#jywMWa z6BsG-qef3pt_98Goq6)wczlO2-E4{i5IaU=*Wmi7@5cGk6&%R@t z=TK`-tvi;P66!Jmu5Nn4lBgw!O9kgERm@Y!eqW)n>e`JnqMsfeUfYklG9|~DF zE+V|H0C?qMYJcm?>h_#q@8nk0{9sMU~LiWc>xX!Hj2yS5RaLb zRkciz$`oCs?yhv~w6FJK(9#c>9Jsp^pblBgk>Sc_irv73kD;dTihZk32hi zaHz$_y!f-e?VD+-*)WXzkC@=`+e)m2I@Qw}gZN6hmg7FNFUY-aOQzp$5j60Smwo#y z0~YmmUHtXE)3sD`BCzaT zBlAx^4f-<0%=p9jJ-Wtr5LJRdh^QPNZ!7!2?43vpM&2|oM$h*z(`KG+d_=EZ#FNeka)U6<1DTS;@D>fad z33sQJzHkBI(D%UhIk!46$XdcoWt0nZ%biB6!&ETy@L6>gz8ue9hUzU&AL^!Rg8<@J zxkRhg?Da7Eld;DB^eJ5^3$4fDbmJs`f-{aHWd z;ky%D6Ls-0#yqz<-!-wPd~=K84s_zAx)791p02)(rwaHx{8Nx;QtBMVEe1=B!Nlp9 z8fx$^lnrevVG9LX-|*$TQh6+3Mj!P8xa7Mem3?xRIZSAe(+aSGp7a78LSp8|Qin}{ zkzk!$JREswe=pjM-mzhYvXoc`cQ4M2|BxN}%C}1EEm>0+L0vRS#0OD>qN+EAS`#|| zc38z`85jR4@B6G@Z0`+hx9sggNy4F!D{64J@IqpDs9~w%?%>jx#BnCFyV6SS3VLd~ zk~jaiR^&?kuWE5MO2Vzm&Ki%8NS9C*X)^@QZ@Vjw?VIR}jcZBb!P{JJbMiZ=W>B?Du2$*JRa_u5+># zJ+I0#ZI5^hif;Zo{t(&rjfm8Q@yv1wL`>?mm~A5y_`U4$m*0-Qf?St1IlLsrP z2F#tQd1R~cxhSss#|Ray zhK-nzo5prfQ2lV5$F1dWxeOQ^8_p&f84_OoZ)Hp-rkv+MN{;Kccmcy|W{#9>hL h+pGU)i*`b9aDvkw^ac!DB>^zUeKlRxa%G#a{{y-Ba0dVY literal 0 HcmV?d00001