<div>Ciao Bruno,<br></div><div><br></div><div>Purtroppo Python ha un problema: il package management. <br></div><div><br></div><div>In tempi recenti, la PEP-517 è stata approvata (<a href="https://www.python.org/dev/peps/pep-0517/">https://www.python.org/dev/peps/pep-0517/</a>) e quindi sono usciti altri package manager che lavorano sulla 517, come <a href="https://python-poetry.org">https://python-poetry.org</a> e <a href="https://github.com/takluyver/flit">https://github.com/takluyver/flit</a><br></div><div><br></div><div>Attenzione a pipenv, poichè non segue la PEP-517, ma viene comunque gestito dalla PyPA. <br></div><div><br></div><div><div>Infine qui (<a href="https://www.pypa.io/en/latest/history/">https://www.pypa.io/en/latest/history/</a>) puoi trovare un un po' di storia sul package management in Python.<br></div></div><div><br></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user"><div>Jacopo Cascioli<br></div></div><div class="protonmail_signature_block-proton protonmail_signature_block-empty"><br></div></div><div><br></div><div>‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br></div><div> On Friday 10 April 2020 15:04, bruno bossola <bbossola@gmail.com> wrote:<br></div><div> <br></div><blockquote class="protonmail_quote" type="cite"><div dir="ltr"><div>Ciao a tutti,<br></div><div><br></div><div>Riemergo sulla lista dopo qualche anno :) e come CTO di un'azienda. <a href="https://www.meterian.com/">Meterian</a>, che si occupa di sicurezza. In pratica il nostro tool, data una codebase, ne determina le dipendenze e verifica che nessuna di esse sia vulnerabile, out of date o che usi una licenza non business friendly. In pratica generiamo dei report tipo <a href="https://www.meterian.com/projects/?pid=2285a757-857f-4bdf-9b5e-d1c5acb27751" target="_blank">questo</a> o <a href="https://www.meterian.com/projects/?pid=495ac650-b512-498d-b58b-fb5aff4d0320">questo</a>.<br></div><div><br></div><div>Abbiamo implementato il supporto per Python fino a un certo punto :), al momento supportiamo Pipfile e requirements.txt (dove usiamo comunque pipenv per rigenerare il Pipfile) ma direi che ci manca supporto a tutto il resto e siccome io non sono un esperto di Python (cioe', conosco il linguaggio ma professionalmente lo uso solo per scripting e QA al momento) avrei bisogno di aiuto :)<br></div><div><br></div><div>Intravedo per ora altri tre altri fondamentali sistemi per dichiarare le dipendenze:<br></div><div><ol><li>setup.py<br></li><li>Venv<br></li><li>Conda<br></li></ol><div>Per quanto riguarda <b>setup.py </b>credo sia sufficiente usare "python setup.py egg_info" che genera il file <name>.egg-info/requires.txt che a quel punto mi posso andare a leggere. Unica cosa che ho notato e' che non sempre le dipendenze dichiarano una versione, e poi non sono sicuro di riuscire a generare il grafo quindi.... boh.<br></div><div><br></div><div>Per quanto riguarda <b>venv </b>se ho capito bene crea un virtual environment con tutto dentro, quindi dovrebbe bastare zomparci dentro e fare un pip freeze. Pero' mi mancherebbe il vero grafo delle dipendenze. <br></div></div><div><br></div><div>Per <b>conda </b>mi sto ancora studiando il tooling, ma mi sembra si possa ottteere il grafo con "conda create --dry-run --json -n <package>" oppure con il nuovo <br></div><div>comando "conda.models.dag" (che pero' non sono riuscito a fare funzionare.<br></div><div><br></div><div>Se avete suggerimenti li apprezzo molto volentieri. E se volete usare il tool comunque e' gratis per progetti opensource :)<br></div><div><br></div><div>Grazie in anticipo e buona Pasqua (anche se casalinga quest'anno!).<br></div><div>Ciao,<br></div><div><br></div><div>    Bruno<br></div><div><div><br></div><div><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr" style="color:rgb(0,0,0)"><div>--<br></div><div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Bruno Bossola<br></div><div>CTO - <a href="http://meterian.io/" style="color:rgb(17,85,204)" target="_blank">meterian.io</a><br></div><div><a href="https://www.meterian.com/webscanner.html" style="color:rgb(17,85,204)" target="_blank">Scan your website now!</a><br></div></div><div style="margin:2px 0px 0px"><br></div></div></div></div><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><a href="https://www.meterian.com/projectscanner.html" style="color:rgb(17,85,204)" target="_blank">Scan your project now!</a><br></div><div style="margin:2px 0px 0px"><br></div></div></div></div></div></div><div style="color:rgb(0,0,0);margin:2px 0px 0px"><br></div></div></div></div></div></div></div></div></blockquote><div><br></div>