Richiesta di pacchetti Python da upstream e connessioni esterne - CodeArtifact

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Richiesta di pacchetti Python da upstream e connessioni esterne

Quando si importa una versione del pacchetto Python da pypi.org CodeArtifact , importerà tutte le risorse in quella versione del pacchetto. Sebbene la maggior parte dei pacchetti Python contenga un numero limitato di risorse, alcuni ne contengono più di 100, in genere per supportare più architetture hardware e interpreti Python.

È normale che nuove risorse vengano pubblicate su pypi.org per una versione del pacchetto esistente. Ad esempio, alcuni progetti pubblicano nuove risorse quando vengono rilasciate nuove versioni di Python. Quando un pacchetto Python viene installato da CodeArtifact conpip install, le versioni del pacchetto conservate nel CodeArtifact repository vengono aggiornate per riflettere l'ultimo set di risorse di pypi.org.

Allo stesso modo, se sono disponibili nuove risorse per una versione del pacchetto in un CodeArtifact repository upstream che non sono presenti nel CodeArtifact repository corrente, verranno conservate nel repository corrente quando vengono eseguite. pip install

Versioni del pacchetto modificate

Alcune versioni dei pacchetti in pypi.org sono contrassegnate come cancellate, il che comunica all'installatore del pacchetto (come pip) che la versione non deve essere installata a meno che non sia l'unica che corrisponde a un identificatore di versione (usando uno o). == === Vedi PEP_592 per maggiori informazioni.

Se una versione del pacchetto in CodeArtifact è stata originariamente recuperata da una connessione esterna a pypi.org, quando installi la versione del pacchetto da un CodeArtifact repository, CodeArtifact assicura che i metadati rimossi aggiornati della versione del pacchetto vengano recuperati da pypi.org.

Come sapere se una versione del pacchetto è stata rimossa

Per verificare se la versione di un pacchetto è stata inserita CodeArtifact, puoi provare a installarla con. pip install packageName===packageVersion Se la versione del pacchetto viene rimossa, riceverai un messaggio di avviso simile al seguente:

WARNING: The candidate selected for download or install is a yanked version

Per verificare se una versione del pacchetto è stata rimossa in pypi.org, puoi visitare l'elenco pypi.org della versione del pacchetto all'indirizzo. https://pypi.org/project/packageName/packageVersion/

Impostare lo status di «annullato» sui pacchetti privati

CodeArtifact non supporta l'impostazione di metadati rimossi per i pacchetti pubblicati direttamente negli archivi. CodeArtifact

Perché CodeArtifact non sta recuperando gli ultimi metadati o risorse eliminati per una versione del pacchetto?

Normalmente, CodeArtifact assicura che quando una versione del pacchetto Python viene recuperata da un CodeArtifact repository, i metadati rimossi abbiano il valore più recente su up-to-date pypi.org. Inoltre, l'elenco delle risorse nella versione del pacchetto viene aggiornato anche con il set più recente su pypi.org e su qualsiasi repository upstream. CodeArtifact Questo è vero sia che tu stia installando la versione del pacchetto per la prima volta e la CodeArtifact importi da pypi.org nel tuo CodeArtifact repository, sia se hai già installato il pacchetto. Tuttavia, ci sono casi in cui il client di gestione dei pacchetti, come pip, non estrae gli ultimi metadati estratti da pypi.org o dagli archivi upstream. Invece, CodeArtifact restituirà i dati già archiviati nel tuo repository. Questa sezione descrive i tre modi in cui ciò può avvenire:

Configurazione upstream: se la connessione esterna a pypi.org viene rimossa dal repository o dai relativi flussi upstream utilizzando disassociate-external-connection, i metadati rimossi non verranno più aggiornati da pypi.org. Allo stesso modo, se rimuovi un repository upstream, le risorse dal repository rimosso e dagli upstream del repository rimosso non saranno più disponibili per il repository corrente. Lo stesso vale se si utilizzano i controlli di origine dei CodeArtifact pacchetti per impedire che vengano recuperate nuove versioni di un pacchetto specifico: l'impostazione upstream=BLOCK bloccherà l'aggiornamento dei metadati eliminati.

Stato della versione del pacchetto: se imposti lo stato di una versione del pacchetto su un valore diverso da Published oUnlisted, i metadati e le risorse della versione del pacchetto eliminati non verranno aggiornati. Allo stesso modo, se state recuperando una versione specifica del pacchetto (ad esempiotorch 2.0.1) e la stessa versione del pacchetto è presente in un repository upstream con uno stato diverso Published oppureUnlisted, ciò bloccherà anche la propagazione dei metadati e delle risorse sottratti dal repository upstream al repository corrente. Questo perché gli altri stati delle versioni del pacchetto indicano che le versioni non sono più pensate per essere utilizzate in nessun repository.

Pubblicazione diretta: se pubblichi una versione specifica del pacchetto direttamente in un CodeArtifact repository, ciò impedirà l'eliminazione dei metadati e dell'aggiornamento delle risorse per la versione del pacchetto dai suoi repository originali e da pypi.org. Ad esempio, supponiamo che tu scarichi una risorsa dalla versione del pacchettotorch 2.0.1, ad esempio usando un browser webtorch-2.0.1-cp311-none-macosx_11_0_arm64.whl, e poi la pubblichi nel tuo repository usando twine as. CodeArtifact torch 2.0.1 CodeArtifact traccia che la versione del pacchetto è entrata nel dominio mediante pubblicazione diretta nel tuo repository, non da una connessione esterna a pypi.org o da un repository upstream. In questo caso, CodeArtifact non mantiene i metadati eliminati sincronizzati con i repository upstream o pypi.org. Lo stesso vale se pubblicate torch 2.0.1 in un repository upstream: la presenza della versione del pacchetto bloccherà la propagazione dei metadati e delle risorse rimossi nei repository più in basso nel grafico a monte.