Pip: 新しいリゟルバヌロヌルアりト、フィヌドバックルヌプ、開発フロヌ

䜜成日 2019幎05月25日  Â·  83コメント  Â·  ゜ヌス: pypa/pip

私は988に぀いお少し考えおいたしたええず-具䜓的には、砎損を最小限に抑え、ナヌザヌから有益なフィヌドバックを埗る機䌚を最倧化するために、それを展開する方法です。

私は぀いに芪指ず時間の䞡方を手元に眮いたので、この問題を提出したす。 明らかに、以䞋のすべおが議論の䜙地がありたす。 :)


新しいリゟルバヌを展開するための珟圚の蚈画は、フラグの背埌にある新しいリゟルバヌを公開するこずに基づいおいたす。 フロヌは、最初はそれを文曞化せず、フラグの䜿甚に関する倧きな譊告を远加するこずです。 実隓的ではなく、ベヌタ版になったら、新しいリゟルバヌで遊ぶようにナヌザヌを招埅し始めるこずができたす。 これには、ナヌザヌにCTAを詊しおもらい、フィヌドバックを提䟛するように䟝頌するこずが含たれたす。 この情報は、フラグを付けお実行したずきにも出力される可胜性がありたす。

フィヌドバック管理に関しおは、別のリポゞトリの課題远跡システムでフィヌドバックをリク゚ストするこずを考えおいたす。 別の課題远跡システムに課題を配眮する理由は、ここでのノむズを最小限に抑え、より焊点を絞ったディスカッション/調査を可胜にするこずです。 「解決策のバグ」以䞊のものをメむンの課題远跡システムこれにバブルしたす。

移行に関しおは、新しい解決ロゞックに十分な自信が持おれば、移行をどのように凊理するかを怜蚎できるず思いたす。 これをフラグの埌ろに眮いたので、2぀のオプションがありたす-リリヌスで盎接切り替えるか、新しいリゟルバヌを「安定化」しおおそらくマルチリリヌス「移行期間」を実行したす。 関係する正確なトレヌドオフをよりよく理解できれば、埌で移行蚈画を立おるこずができるず思いたす。

git / GitHubに関しおは、これはおそらくpip内での最初の「実隓的」機胜の実装です。 FWIW、私はフォヌクで実隓などを行い、進行状況をpipのメむンリポゞトリ自䜓に定期的にマヌゞするこずを蚈画しおいたすコヌドのみ、pip._internal.resolutionに。 メむンリポゞトリで隒がしくなりたくないのですが、 masterをこの䜜業ず同期させおおきたいです。


プロトタむプをビルドするずきにビルドロゞックを扱うのが非垞に面倒だったため、この䜜業のブロッカヌずしお5051を配眮しおいるこずに泚意しおください。

dependency resolution maintenance

最も参考になるコメント

私は若く、愚かで楜芳的です

:-)そしお、私は時々幎を取りすぎお、疲れおいお、冷笑的です。 あなたの哲孊に行きたしょう、それははるかに良く聞こえたす:-)

党おのコメント83件

どのように蚈画しおいるかはわかりたせんが、1぀のコメントずしお、新しいコヌドず珟圚のコヌドの間で可胜な限りコヌドを共有し、䜜業䞭に珟圚のコヌドをリファクタリングするこずをお勧めしたす。新しいコヌドパスず珟圚のコヌドパスの間でより倚くの共有を蚱可したす。

1぀の理由は、より倚くのコヌドを共有しおいる堎合、䞡方の状態でその共有コヌドを実行するこずになり、察凊すべき行動の倚くの朜圚的な違い。

これには、ナヌザヌにCTAを詊しおもらい、フィヌドバックを提䟛するように䟝頌するこずが含たれたす。

新機胜に関する事前のフィヌドバックを埗た私たちの実瞟はかなり悪いものでした。 私たちはベヌタリリヌスを詊し、問題が発生した堎合に䜿甚できる「オプトアりト」フラグを備えた新機胜をリリヌスしたした。

私の個人的な感想は、「利甚可胜にしおフィヌドバックを求める」ずいうのは、これたでに詊したこずの興味深いバリ゚ヌションですが、最終的にはそれほど倧きな違いはありたせん。 自動ビルドパむプラむンでデフォルトオプションを䜿甚しお最新のpipを䜿甚し、新しいpipバヌゞョンに移行する前にテストしない人が倚すぎたすこれはPEP 517で確認されたした。

PSFの助成金を取埗しお、この機胜の倧芏暡な「珟実䞖界」のテスト挔習を行うためのリ゜ヌスを取埗するこずはできたすか、それずもさらに良いこずにテストむンフラストラクチャを開発するこずはできたすか このようなプロゞェクトには、ワヌクフロヌず構成を通知するプロゞェクトの呌び出しが含たれる可胜性がありたす。これにより、新しいpipバヌゞョンがそれらを壊さないこずを確認するテストパスを蚭定できたす。 たたは、助成金を䜿甚しお、新しい機胜のベヌタテスタヌを取埗するずいうコミュニケヌションの偎面を経隓しおもらい、より優れたナヌザヌテストプログラムを蚭定するのに圹立おるこずもできたすか

git / GitHubに関しおは、これはおそらくpip内での最初の「実隓的」機胜の実装です。

それが䜕を意味するのか100わかりたせん。 確かに過去には、「叀い方法」がただ存圚しおいる間に远加された新機胜がありたした。 「デフォルトでオフにしお、詊しおみるこずができる」ずいう傟向はありたせんが、それは䞻に、フィヌドバックを埗る良い方法が芋぀からなかったためです䞊蚘を参照。

私はこの1぀の投皿を曞くのに玄60分re-re-re-re-re-を費やしたので、今床はニュヌペヌクの堎所を芋おいきたす 私からの迅速な応答が衚瀺されない堎合、それは私が芳光モヌドになっおいるためです。


新しいコヌドず珟圚のコヌドの間で可胜な限りコヌドを共有し、䜜業䞭に珟圚のコヌドをリファクタリングしお、新しいコヌドパスず珟圚のコヌドパスの間でより倚くの共有を可胜にするこずをお勧めしたす。

間違いなく これが、私が5051をこれよりも優先する理由の80です。ビルドロゞックに蓄積した技術的負債の倚くを返枈しお、再利甚しやすくする぀もりですすべお。 コヌドの束はfireである必芁があり、残りは間違いなく合理的な範囲で再利甚する必芁があるこずに同意したす。

それがあなたの蚀いたいこずなら、私たちはそれらを「デフォルトでオフにし、それらを詊しおみるこずができるようにする」たたにする傟向はありたせんでした

うん、確かに。 ここで開発フロヌもほのめかしおいたす-IMOは、空のむンフラストラクチャ埌続のPRで具䜓化されるraise NotImplementedError()のメ゜ッドの束を持぀クラスをマヌゞしおも問題ありたせん。 「実隓的/アルファ」ずしお明瀺的に瀺されおいるフラグの背埌でのみ䜿甚されおいる限り、すべおのケヌス䞭途半端な実装をmasterブランチにカバヌしたす。

再フィヌドバック

私は若く、愚かで楜芳的です。このロヌルアりトをオプトむンにしお、積極的なフィヌドバックを埗お、それに基づいお行動したいず思っおいたす。 「プロアクティブ」ずは、アルファ/ベヌタ機胜を詊しお、それがどのようなものかをお知らせするために、少し時間を割いお喜んでいる人々を意味したす。 私たちが十分な隒ぎを起こし、戊略的に人々をタヌゲットにしお手を差し䌞べれば、詳现/問題を解決するのに圹立぀新しい機胜を詊す時間ず゚ネルギヌを持っおいる人々から良い「積極的な」フィヌドバックを埗るこずができるず思いたす。

最近の「䞻芁な」倉曎を芋るず、受け取ったフィヌドバックのほずんどは反応的だったず思いたす。ワヌクフロヌが壊れたずきにワヌクフロヌの問題に気付いたナヌザヌから、それに぀いお私たちに連絡しおください。 圌らの倚くは、新しい機胜の詳现を明らかにするのを手䌝う時間がなかったかもしれたせん。それは倚くの摩擊を匕き起こしたす。 これらはたた、私たちの「解玄予算」[1]の倚くを犠牲にしたしたが、Python Packagingはずにかくあたり残っおいないので、これ以䞊費やしたくありたせん[2]。

FWIW、私はPyPIの立ち䞊げからいく぀かのアむデアを借りる予定です。たずえば、かなり目に芋える堎所぀たり、私の個人的なブログではないでブログを投皿したり、ポッドキャストやタむミングの良い実甚的なメヌルを送信したりしたす。 /経由で通信するための手段。 私がPyConで孊んだ倚くのこずの1぀は、私たちが䜿甚しおいないチャネルがあるずいうこずでした。これは情報を広めるのに圹立ちたすが、広めるものがあるかどうかを確認しようずはしたせん。

明確にするために、私はPEP 517で採甚した展開アプロヌチに批刀しおいたせん。特に、私たち党員がボランティアであるずいう事実を考えるず、うたくいっおいるず思いたす。 私は、私たちが抱えおいた問題を回避するために、私たちが䜕を孊ぶこずができ、実甚的な項目を芋぀けようずしおいたす。 これらの項目のほずんどは、メンテナからのより倚くの䜜業を䌎いたす。私がこれに぀いお考えるこずにずっず時間を費やしおいる䞻な理由は、これを倉曎管理の方法の楜しい孊習挔習ず芋なしおいるためです。

再助成金

はい、私たちは間違いなく助成金/経隓豊富な人を䜿っお、コミュニケヌション、展開、むンフラストラクチャのテストを理解するのを手䌝うこずができるず思いたす。 しかし、それは私が保蚌できるより安定した時間/週の数を持っおいないので、助成金を曞く仕事をし、私が今䜜るこずができるよりも具䜓的な蚈画を考え出す誰かを必芁ずしたす。

FWIW、PSFは、ChangesetConsultingずのPyPA /パッケヌゞング関連のコミュニケヌションを理解するための継続的な契玄を結んでいたす。


䌚話にさらに倚くの人を远加する蚈画状態のかなり早い段階であるため、私は意図的に人に@メンションをしおいたせん。

脚泚

  1. @ pganssleが䜿甚した本圓に玠晎らしい甚語で、私は間違いなく䜿甚したす。
  2. そのため、「pip-cli」パッケヌゞの実装が提案されおおり、ロヌルアりトをどのように衚瀺するかに぀いお合理的なコンセンサスが埗られおいるにもかかわらず、3164をバックバヌナヌに配眮したした。

私は若く、愚かで楜芳的です

:-)そしお、私は時々幎を取りすぎお、疲れおいお、冷笑的です。 あなたの哲孊に行きたしょう、それははるかに良く聞こえたす:-)

間違いなく これが、私が5051をこれよりも優先する理由の80です。ビルドロゞックに蓄積した技術的負債の倚くを返枈しお、再利甚しやすくする぀もりですすべお。

玠晎らしい

今IRCから

[sumanah] pradyunsgリゟルバヌでより倚くの䜜業をより速く行うために、pippackagesコミュニティができるこずはありたすか
...。
[pradyunsg]実際、珟時点では、 https//github.com/pypa/pip/issues/6536での入力は、䜜業ぞのアプロヌチ方法や人々からのフィヌドバックの取埗方法などを理解するのに圹立぀でしょう。
...。
[sumanah] pradyunsgre新しいリゟルバヌロヌルアりト、フィヌドバックルヌプ、開発フロヌ6536-必芁な入力は次のようなものですフィヌチャヌフラグアプロヌチは良いアむデアですか pip GitHubの問題以倖のメカニズムを介しおフィヌドバックを取埗するこずは良い考えですか 助成金などを取埗しお、実際の手動テストず堅牢なテストむンフラストラクチャを構築したり、プロアクティブな通信を行ったりするこずをお勧めしたすか
..。
[pradyunsg]うん-私が提案しおいるアむデアが良いかどうか。 たた、展開ずフィヌドバックをよりスムヌズにするのに圹立぀可胜性のある远加のアむデア/アプロヌチ/考えは玠晎らしいでしょう。

そう

機胜フラグアプロヌチは良い考えですか はい。

pip GitHubの問題以倖のメカニズムを介しおフィヌドバックを取埗するこずは良い考えですか はい。 専門性の䜎いナヌザヌからの構造化されおいないバグレポヌトを受け入れる自動化された方法を芋぀ける必芁がありたす。

より堅牢なテストむンフラストラクチャが圹立ちたすか はい、たくさんありたす。これは私たちのスポンサヌが私たちを助けるこずができるかもしれない堎所です。

チェンゞセット私は、PyPAの調敎/コミュニケヌションを支揎するPSFずの既存の契玄の䞋で、より䜓系的な実䞖界の手動テストを取埗するためのプロアクティブなコミュニケヌションを支揎するこずができたすか このロヌルアりトを開始するたでに契玄に䜕時間も残っおいるず仮定するず、はい。

ナヌザヌ゚クスペリ゚ンス、コミュニケヌション/宣䌝、およびテストに぀いおより倚くの支揎を埗るために、助成金などを取埗するこずは良い考えですか はい。 PSF助成金は、 NLNet助成金 30,000ナヌロ未満の芁求に察する、科孊助成金に䞍可欠なChan Zuckerbergの必須オヌプン゜ヌス゜フトりェア、およびMozillaのMOSSず同様に、朜圚的に興味深いものになるでしょう。 パッケヌゞングWGは蚘録の申請者になるこずができたす。 @pradyunsgたたは@pfmooreが「おもしろそうですね」ずうなずきたい堎合は、WGでそれらの可胜性の調査を開始できたす。

@pradyunsgたたは@pfmooreが「おもしろそうですね」ずうなずきたい堎合は、

それは間違いなく私には面癜そうですね:-)

@pradyunsgたたは@pfmooreは、「おもしろそうですね」ずうなずきたい

_nods_ええそれは面癜そうですね

より堅牢なテストむンフラストラクチャが圹立ちたすか はい、たくさんありたす。これは私たちのスポンサヌが私たちを助けるこずができるかもしれない堎所です。

@brainwaneここにも関連するのはhttps://github.com/pypa/integration-testです。 これを蚭定するこずは、資金調達のもう1぀の朜圚的な領域だず思いたす。これをhttps://wiki.python.org/psf/Fundable%20Packaging%20Improvementsに远加する必芁がありたす。

わかった 私はPSFやChanZuckerberg Initiativeの人々ず、Packaging WorkingGroupを介したCZI助成金の申請に぀いお話し始めたした。 新しいpipリゟルバヌが重芁である理由に぀いお、Fundable Packaging Improvementsペヌゞにいく぀かの詳现を远加し、そのリストにintegration-testプロゞェクトを远加したした。 そしお、私は、耇雑なコマンドラむンのパッケヌゞ配垃/むンストヌルツヌルチェヌンを調査し、ナヌザヌず話し合っお、䜕が起こっおいるのか、䜕が起こるべきかに぀いおのメンタルモデルを理解する胜力を持぀ナヌザヌ゚クスペリ゚ンスの専門家の名前を集め始めたした。 、およびメンテナにアドバむスしたす。

MOSS、CZI、たたはNLNETからの助成金でお金を皌ぐなら、私たちはお金を皌ぐず思いたす...早くおも10月でしょう。 PSFからの盎接の助成金はおそらくもっず速いでしょうが、 「私たちの珟圚の焊点は、Pythonワヌクショップ、䌚議特に財政揎助のため、およびPythonの倚様性/包括性の取り組みです。」

考慮事項の1぀は、Brettず運営評議䌚の関係者が、プロゞェクト管理ぞの投資に぀いお話し、これらのプロゞェクトtriage、プロゞェクト管理などを管理するための䜕らかの有償リ゜ヌスを怜蚎しおいるこずを知っおいたす。圌らはPSFず話し合っおいたす。盎接。 長期的な持続可胜性に぀いおの話を聞いたので、圌らが䜕をしおいるのか、䜕を考えおいるのかを調べおみる䟡倀があるかもしれたせん。

機胜フラグは優れおおり、オプトむンも優れおいたす。 怜蚎する可胜性のあるこずの1぀は、ナヌザヌにリゟルバヌを詊すようにランダムに促すこずができるかどうかですたずえば、非垞にたれで、䞀床にむンストヌルする堎合のみ、぀たり、ナヌザヌにリゟルバヌを氞続的にオンにする必芁はありたせん。 次に、リゟルバヌがどのように圹立ったかを瀺すこずができたすたずえば、リゟルバヌはそれらに察しお䜕をしたしたかどのような競合が発生しお解決したしたか

たずえば、javascriptやrustから来た人も、ある皮のロックファむルを期埅するので、それは考慮すべきこずかもしれたせん...

飛び蟌んで申し蚳ありたせんが、これが前進するのを芋おうれしいです

私の個人的な感想は、「利甚可胜にしおフィヌドバックを求める」ずいうのは、これたでに詊したこずの興味深いバリ゚ヌションですが、最終的にはそれほど倧きな違いはありたせん。 自動ビルドパむプラむンでデフォルトオプションを䜿甚しお最新のpipを䜿甚し、新しいpipバヌゞョンに移行する前にテストしない人が倚すぎたすこれはPEP 517で確認されたした。

たさにこの理由でいく぀かのPEP517の問題に悩たされた人の䞀人ずしお、私は実際に物事をテストするオプトむンの方法を芋たいず思っおいたす。 しかし、 --no-use-pep517フラグの問題が発生した埌、すべおのpythonパッケヌゞニュヌス゜ヌスを賌読したので、私はこの皮のこずしか知りたせん。 私が蚀っおいるのは、この皮のニュヌスを広めるのは難しいこずであり、おそらくフィヌドバックを埗るのが難しい理由です。

情報をもっず広めるこずができれば、もっず倚くの人がこれに興味を持っおくれるず思いたす。 それはあなたが探しおいるリ゜ヌスが蚱すものですか

jriddyが蚀っおいるこずを続けるために、さたざたな機胜フラグに぀いお知っおおく必芁がある堎合、新しいフラグごずにCI蚭定を倉曎するなど、さたざたな機胜フラグをテストするのは非垞に難しいず思いたす。

ただし、はるかに実行可胜ず思われるのは、知っおおくべき1぀の機胜フラグしかない堎合、テストする必芁のある倉曎に関しお「次に䜕が起こるか」をテストするこずです。 そうすれば、人々や䌁業は、CIをセットアップしおそれも実行できるようになりたす゚ラヌのビルドに倱敗するこずはありたせん。 私はRustに䌌たものを考えおいたす。このような倉曎は、ツヌルチェヌンの「ベヌタ」チャネルで行われ、別のCIチャネルをセットアップしお、ベヌタツヌルチェヌンで実行し、゚ラヌを誰かに送信するのは簡単です。

重芁なこずは、このセットアップは、新しい個々の機胜フラグに぀いお継続的に孊習したり、CIセットアップを倉曎したり、手動でテストしたりするのではなく、_䞀床だけ_孊習しお実行する必芁があるずいうこずです。

ただし、はるかに実行可胜ず思われるのは、知っおおくべき機胜フラグが1぀しかない堎合です。

ある意味で、これはすでに--preの圢で存圚しおいたせんか pipのベヌタリリヌスチャネルは、 pip install --upgrade --pre pipを実行するだけの問題でしょうか

飛び蟌んで申し蚳ありたせんが、これが前進するのを芋おうれしいです

@techalchemyお願いしたす、すべおの人々の䞭で、_あなた_は間違いなくこの議論で売り蟌むこずを埌悔する必芁はありたせん。

それはあなたが探しおいるリ゜ヌスが蚱すものですか

ある皋床、はい。

regベヌタリリヌス/ pipの「チャネル」

@jriddyず@ chrish42でチャむムを鳎らしおくれおありがずう。 䞀般的に、それは確かに有甚で重芁な䌚話だず思いたすが、この問題に぀いおは少しOTだず思いたす。 それでも、ここで䞀床応答したす。 これに぀いおもっず話し合いたいのなら、新しい問題を開いおみたしょう。

過去に最近ではpip 10でそれを詊したしたが、うたくいきたせんでした。 私はそれが今埌どれほどうたくいくかに぀いお少し懐疑的ですが、私たちのプロセスにいく぀かの倉曎を加えるず、これが私たちにずっおスムヌズに機胜するようになるかもしれないず想像するこずもできたす。 たぶん、「ベヌタ版のみ」の機胜セットなどを実行できるでしょうか。 5727の構文ずしお-X allを想像したした。 たぶん、この展開蚈画の䞀郚ずしおそれを取り䞊げるこずができたすか Idk。 これを理解するには、時間ず゚ネルギヌを投資する必芁がありたす。 :)

https://github.com/pypa/packaging-problems/issues/25#issuecomment -520167480で述べたように、゜ルバヌがピップ゚クスペリ゚ンスをどのように倉曎するかを統合的に説明するこずが重芁だず思いたす。 倚くの人々は、より厳栌なシステムぞの移行に䞍満を感じるでしょう党䜓的に信頌性が高いはずですが、珟圚ブロックされおいない堎所ではブロックされたす。

物事がどのように倉化したか、そしおなぜそれが良い倉化であるかに぀いおの䞭心的な説明を持぀こずは、それらの怒っおいる人々ぞの察応をはるかに簡単にするでしょう。 リンクを投皿しお、さらに質問があるかどうかを確認しおください。

プレリリヌスは良い考えです。 condaには、プレリリヌスチャネルのconda-canaryがありたす。 コンダの倉曎によっおカナリアが砎壊されるかどうかを確認できるように、カナリアに察しお実行するCIゞョブを蚭定するこずをお勧めしたす。 理想的には、そのバヌゞョンをリリヌスする前に、圌らは私たちに知らせおくれたす。 そのチャネルはかなり悲惚な倱敗でした。 人々が実際にそれを䜿甚しおいるように芋えるのは、圌らが苊劎しおいるいく぀かのバグを修正するために最新のリリヌスを入手したいずきだけです。 意図したアヌリヌアダプタヌからの報告はあたりありたせん。 プレリリヌスはただ良い考えだず思いたす。リリヌスがうたくいかず、700の管理察象ノヌドを壊したこずに人々が腹を立おおいるずきは、「たあ、リリヌスする前の1週間は利甚可胜でした。なぜですか 700ノヌドにロヌルアりトする前にこれらをテストしたすか」 あなたは人々に物事をより良くする機䌚を䞎えおいたす。 その機䌚を逃すこずは、将来的に圌らにずっおより倚くの苊痛を意味するこずを圌らが理解するのを助けおください。 それは圌らにずっお䟡倀のある投資であり、圌らがCIの䞀郚ずしおそれを行う堎合、セットアップ以倖の時間はかかりたせん。

フラグに぀いおおそらくフラグに加えお構成オプションがある方が良いず思いたす。 私はい぀も旗を枡したくありたせん。 pipにこの機胜があるかどうかはわかりたせんが、より氞続的なスむッチが必芁な人に、察応するenv倉数を䜿甚するように指瀺したすか

旗に぀いお

pipのCLIオプションは、適切な名前で、構成ファむルオプションず環境倉数に自動的にマップされたす。

@msarahanチャむムをしおくれおありがずう、倧いに感謝したす :)

壊れた䟝存関係を無芖する「やりたいこずをやらせお」オプションに関しおは、リゟルバヌがデフォルトでオンになった埌のオプトアりトずしおも機胜するように機胜フラグを構成するこずが望たしいず思いたすたずえば、オプトむンずしお--avoid-conflictsを䜿甚し、最終的にオプトアりトずしお--no-avoid-conflictsに移動したすが、最初から䞡方のオプションを受け入れたす

たた、 --ignore-installedが゜ルバヌずどのように盞互䜜甚するかを怜蚎する必芁がありたす。゜ルバヌが枡された堎合、既にむンストヌルされおいるパッケヌゞのすべおの芁件を無芖する必芁がありたす。

それ以䞊に、リゟルバヌの統合を容易にするための小さなリファクタリングパッチずしお凊理するこずは、優れた方法ですこれが、CPythonの新しい構成APIを可胜にしたアプロヌチです。倚くのプラむベヌトリファクタリングは、最終的には公開するのに十分安定しおいたした

@ncoghlanリゟルバヌの「オプトアりト」ずはどういう意味ですか 䟝存関係の解決したがっおリゟルバヌを完党に回避するのは--no-depsです。 「このパッケヌゞのバヌゞョンの競合を無芖する」などの必芁があるこずを理解しおいたす。

個人的には、新しいリゟルバヌぞの移行期間よりも長く「最初に芋たたたにする」解決ロゞックを維持するこずに意味はありたせん。

ただし、これら2぀のオプションでカバヌできないナヌスケヌスがある堎合は、それらに぀いお本圓に知りたいず思いたす。 :)


より広矩には、厳密なリゟルバヌの動䜜に問題があるワヌクフロヌがある堎合、それらをサポヌトするかどうか/どのようにサポヌトするかを理解できるように、それらがどのように芋えるかをできるだけ早く知りたいず思いたす。

個人的には、新しいリゟルバヌぞの移行期間よりも長く「最初に芋たたたにする」解決ロゞックを維持するこずに意味はありたせん。

IDK、私はこの「機胜」を䜿甚しお、ビルドでかなりクレむゞヌなこずをしたす。

# install just the packages I've built specifically
pip install --no-index --no-deps --find-links=/path/to/my/local/build/cache -r local-reqs.txt

# ...snip to later in a dockerfile, etc...

# install the deps from public PyPI
pip install -r local-reqs.txt

この堎合、ロヌカルの操舵宀からいく぀かの非垞に事前に決定されたパッケヌゞをむンストヌルした埌、䟝存関係を解決するように䟝頌しおいたす。 正確なバヌゞョンをそのlocal-reqsファむルに読み蟌んでリゟルバヌを満足させるこずができるず思いたすが、実際には、pipの珟圚の動䜜が、このような任意のビルドむンゞェクションステップを可胜にするのに非垞に圹立぀こずがわかりたした。 スペヌスバヌの加熱ワヌクフロヌの堎合かもしれたせんが、私は認めたす。

しかし、おそらく「ナむヌブな解決」の振る舞いにはただ甚途がありたす。

@pradyunsgに同意したす。 既存のコヌドず新しいリゟルバヌを無期限に維持するこずは実行可胜ではないず思いたす。 確かに、ピップメンテナヌずしお、私はそれをするこずに興味がありたせん。

゚ンドナヌザヌのPOVから、新しいリゟルバヌが正しいこずを行わない可胜性があるずいう奇劙なシナリオが存圚する可胜性があるこずを認めたす。 たた、緊急の「叀い動䜜を返しおください」フラグを蚭定するこずは、重芁な移行メカニズムですただし、「䞀時的に以前のバヌゞョンのpipにロヌルバックする」のが同じくらい良いわけではないかどうかは議論の䜙地がありたすが、CIの䞀般的な䜿甚法のようなものは自動的に最新のpipを䜿甚しお、そのオプションを問題のあるものにしたす。 しかし、長期的には、なぜ珟圚の動䜜を維持する必芁があるのでしょうか。 私は次の䞻な状況を想像するこずができたす

  1. レゟルバのバグ。 明らかな可胜性、簡単な修正-pipの次のリリヌスでバグを修正したす。
  2. 叀いリゟルバヌが間違っおいる堎合制玄を満たさない結果が生成されたす。 今埌はそれをサポヌトする぀もりはありたせんよね 少なくずも、ナヌザヌが必芁なものを固定し、 --no-depsを䜿甚しおリゟルバヌをオフにするよりも極端な方法ではありたせん。
  3. 叀いリゟルバヌず新しいリゟルバヌで異なる結果が埗られ、どちらも指定された制玄を満たす堎合。 ナヌザヌは制玄を远加しお叀い結果を匷制するこずができたすできない堎合は、2に戻りたす。 そうする時間を䞎える必芁がありたすが、他の非掚奚の機胜ず同様に、叀いリゟルバヌを削陀したす。
  4. 耇雑すぎおサポヌトできないず考える゚ッゞケヌス。 これは3に䌌おいたすが、新しいリゟルバヌが「正しい」結果をもたらすずは断蚀しおいたせん。 ナヌザヌは、奇劙なケヌスを回避するために制玄を倉曎したり、 --no-depsを固定しお䜿甚したりできたす。 しかし、最終的には「そうしないでください」ず蚀っおおり、ナヌザヌがそのメッセヌゞを無芖した堎合は、ある時点で、「譊告したした」ずいう叀いリゟルバヌを削陀したす。

私が逃した他のものはありたすか 特に、叀いリゟルバヌを廃止しおから削陀するこずができない堎合はありたすか

ちなみに、迷子にならないように「考えた゚ッゞケヌスはこちら」のシナリオを投皿するのに最適な堎所はどこですか テストケヌスの䜜成を早期に開始できるのであれば、事前にできるだけ倚くの奇劙な状況を収集しおおくず䟿利だず思いたす:-)

PSおそらく、新しいリゟルバヌの準備䜜業の䞀環ずしお、「兞型的な」制玄の問題が䜕であるかを調査する必芁がありたすPyPIの内容に基づいお。 私自身の郚分では、「pipinstall」よりも耇雑なものがあるこずは非垞にたれです。「。耇雑なケヌスで行き詰たり、単玔なケヌスの倧郚分を芋倱うのは残念です。

  1. リゟルバが遅すぎたすcondaを参照。 20分以䞊のリゟルバヌ、たたは珟圚の動䜜のいずれかを遞択する必芁がある堎合は、珟圚の動䜜が必芁になるこずがよくありたすたたは、少なくずも詊しおみおください。倚くの堎合、問題のない結果が埗られたす。

  2. メタデヌタが間違っおいたす。 今日はそれほど問題ではありたせんが、解決できるはずなのに解決できないケヌスを想像するのは簡単です。 PyPIメタデヌタはconda / conda-forgeメタデヌタよりも悪い圢であり、それはすでにcondaの問題です。 それが間違っおいお、ナヌザヌずしお解決策を埗るこずができない堎合は、オプトアりトを取埗したいず思いたす。

@rgommers 6の堎合、「このパッケヌゞのバヌゞョンの競合を無芖する」スタむルのオプションが機胜する可胜性がありたす。

ありがずう、 @ rgommers-それらは良い点です。

リゟルバヌが遅すぎるので、リゟルバヌのバグずしお数えたす。 単玔なケヌスで十分なパフォヌマンスの結果が埗られない堎合、それは私の芋解では目的に適合したせん。 䞀方、完党なリゟルバヌを䜿甚するず時間がかかる非垞に耇雑な制玄ネットワヌクがある堎合20分が誇匵であるずいいのですが、どのような状況でも蚱容できるずは思いたせん、「領域をサポヌトするには耇雑すぎるず考えおください。 別の蚀い方をすれば、誰かがcondaに「速くお汚い」䞍正確であるが速い解決策を提䟛するように頌もうずしたこずがありたすか 圌らがそうしないのならそしお私は圌らがそうしないだろうず私はかなり確信しおいる、なぜピップを期埅するのが合理的ですか

悪いメタデヌタは間違いなく「私たちはそれをサポヌトしない」ず私が考えるものですここでは「非掚奚期間の埌」に぀いお話しおいるこずを忘れないでください。 ナヌザヌにメタデヌタを修正する時間を䞎え、「パッケヌゞXでのバヌゞョンの競合を無芖する」゚スケヌプ句オプションを提䟛するこずは、IMOで十分です。䞀郚の人々がメタデヌタを修正しないずいう理由だけで、叀い機械をすべお保持するこずを期埅すべきではありたせん。

しかし、そうです。正確なリゟルバヌが「ガベヌゞむン、ガベヌゞアりト」ルヌルに埓うため、優れたメタデヌタが必芁であるずいう事実を公衚し、人々がそのメッセヌゞにどのように応答するかを監芖するこずは、ロヌルアりトプロセスの倧郚分を占めおいたす。

地元の操舵宀から非垞に事前に決定されたパッケヌゞをいく぀かむンストヌルした埌、䟝存関係を解決するように䟝頌しおいたす。

@jriddy 「互換性がある堎合は既存のむンストヌルを䜿甚する」ずいう解決戊略がこれに有効です。

迷子にならないように、「私が考えた゚ッゞケヌスはここにありたす」シナリオを投皿するのに最適な堎所はどこですか

https://github.com/pradyunsg/zazo/

6の堎合、「このパッケヌゞのバヌゞョンの競合を無芖する」スタむルのオプションが機胜する可胜性がありたす。

はい、それは正しいオプションのように聞こえたす

20分が誇匵であるずいいのですが、どのような状況でも受け入れられるずは思いたせん次に、「サポヌトするには耇雑すぎるず思われるもの」の領域に入りたす。 別の蚀い方をすれば、誰かがcondaに「速くお汚い」䞍正確であるが速い解決策を提䟛するように頌もうずしたこずがありたすか 圌らがそうしないのならそしお私は圌らがそうしないだろうず私はかなり確信しおいる、なぜピップを期埅するのが合理的ですか

condaのパフォヌマンスに぀いお䞍満を蚀っおいる人はたくさんいお、聞いおいたすが、それは倧倉な䜜業です。最近のブログ投皿を参照しおください。 迅速で汚いコンダオプションがあるかどうかはわかりたせん。 ただし、 conda-metachannelのような関連する゜リュヌションハックがあり、䟝存関係グラフ手動でパッケヌゞを含める/陀倖するを敎理しお、゜リュヌションをより速く取埗できたす。 だから私はそれが同じ線に沿っおいるず思いたす。

ただし、次のいずれかを行わない限り、これは_間違いなく_必芁になるこずに泚意しおください。

  • すぐにコンダよりもはるかに優れた仕事をしたすそうは思われたせんが、圌らが䜕をしおいるのかわからないわけではありたせん-それは本圓に厄介な問題です。
  • 解決すべき問題が小さいうたくいけば真実ではない、PyPIは倧きく、優れたメタデヌタがあれば問題は倧きくなるはずです

悪いメタデヌタは間違いなく「私たちはそれをサポヌトしない」ず私が考えるものです

けっこうだ。 ただし、「正しいメタデヌタを適甚しない」ずいうスタンス党䜓は、ここでは圹に立ちたせん。 それが最近倉わっおいない限り そしお私は知っおいたす、それはpipのものではなくPyPIのものです-しかしそれは関連しおいたす。

あなたが本圓にあなたがそうするず思うオプションを持っおいるかどうかはわかりたせん。

速くお汚いリゟルバヌは正確なものず䜕が違うのですか 䜕が速くなるのですか 制玄は制玄であり、グレヌドには含たれおいたせん。 あなたは圌らを満足させるか、満足させないかのどちらかです。 おそらく、最初は名前だけで、次にバヌゞョンなどでそれらを満足させるこずができたす。

Condaが遅いこずに人々が腹を立おおいるずき、それは本質的に垞に悪いメタデヌタが原因です。 根本的な原因に関係なく、知芚される速床䜎䞋のせいになるこずを芚えおおいおください。 䞍正なメタデヌタは、誀った制玄である堎合がありたすが、倚くの堎合、はるかに叀い、望たしくないオプションを怜蚎できる制玄がないこずが原因です。 Condaは最近、1぀の小さなこずを行うこずで倧幅に改善したした。それは、䞍十分なほずんどの堎合オヌプンすぎる制玄があった叀い゜フトりェアのコレクションを削陀するこずです。 これらのオヌプンな制玄により、condaは倚くのダりングレヌドを必芁ずする本圓に悪い゜リュヌションを探求したした。 これは、解決に文字通り䜕時間もかかった堎所です。 ダりングレヌドは、カスケヌドできるため、非垞にコストのかかる操䜜であり、各ステップの制玄が少なくなり、コストが高くなりたす。

メンタリティずしおの「ガベヌゞむン、ガベヌゞアりト」の問題は、゜ルバヌのメンテナずしお、バッグを持っおいるこずです。 ゎミずは䜕かに぀いお非垞に優れたヒュヌリスティックがない限り、あなたは無力です。 最終的には、゜ルバヌが遅い理由を調査し、問題のパッケヌゞを切り分けおから、問題の原因に問題の修正を䟝頌する必芁がありたす。 そこにいるのは玠晎らしい立堎ではありたせん、私を信じおください。 私たちは、コンダが氞遠に続く理由、たたはコンダフォヌゞ、バむオコンダ、たたは他のサヌドパヌティチャネルの混合物で機胜しない理由を人々に説明するために倚くの時間を費やしおいたす。 結局、探偵の仕事をし、それらのサヌドパヌティのチャネルに䜕を修正する必芁があるかを䌝える必芁がありたす。 最悪だ。

condaずの比范では、condaが問題に察しお非垞に異なるアプロヌチを取っおいるこずを考慮する必芁がありたす。 Condaには1぀の巚倧なメタデヌタ゜ヌスがあり、すべおを䞀床に解決したすが、pipは䞀床に各ものを再垰的に解決しお最適化したす必芁に応じおバックトラックしたす。 それはあなたに異なる最適化パスを䞎えるかもしれたせん。

@wolfvは最近、condaにlibsolvを䜿甚するこずを怜蚎したした。 圌は最終的に、コンダず同じ答えを出すこずができなかったこずに䞍満を感じたした。 それは、アプロヌチ間のこの違いに芁玄されたす。 Libsolvはバックトラッキング゜ルバヌです。 コンパむルされたコヌドをpipに盎接含めないこずに敏感であるこずは知っおいたすが、これはpipぞのオプションのコンパむル枈みアドオンずしお機胜する可胜性がありたす。

 @pradyunsgは、8月の曎新をブログに投皿したした。

人々が今提起しおいる質問やニヌズのいく぀かは、テストケヌスなど、今すぐ収集を開始する必芁があるものです。

しかしたた、この展開ではどのようなタむムラむンが珟実的であるず考えおいたすか これは、Pradyunの健康状態ず自由時間、他のpipメンテナからのコヌドレビュヌの可甚性、および申請しおいる助成金を取埗できるかどうかに倧きく䟝存したすが、シヌケンスは次のようになりたす。

  • ロゞックリファクタリングの構築進行䞭、12月から2月のいずれかに実行
  • UXの調査ず蚭蚈、むンフラストラクチャの構築のテスト、構成フラグず移行スケゞュヌルに぀いおのダりンストリヌムずナヌザヌずの話し合いこれには資金が必芁です。 最も早い開始はおそらく12月で、2〜3か月かかりたす
  • アルファテストの実行䞭にresolvelib/zazoで定矩された抜象化を導入したす。数か月かかるので、控えめに芋積もっお、2020幎5月ですか
  • より良い䟝存関係の解決を採甚し、ベヌタテストを行いたす

これは正しいですか 私は䜕が欠けおいたすか

私の意芋では、情報収集䜜業の䞀郚はプロゞェクトマネヌゞャヌやUX研究者が行うべきものであり、 https//github.com/pypa/packaging-problems/issues/264ず他の問題は、人々がここで提起した懞念に圹立぀可胜性がありたす。

䞍正なメタデヌタは、誀った制玄である堎合がありたすが、倚くの堎合、はるかに叀い、望たしくないオプションを怜蚎できる制玄がないこずが原因です。

制玄のない䟝存関係たたは>= some_old_versionを䜿甚するこずが、 setup.py / pyproject.tomlの䟋倖ではなくルヌルであるため、これは問題になりたす。 それが「誀った制玄」であるか、゜ルバヌが異なる遞択を行う必芁があるかどうかは、私は本圓に気にしたせん。これは、PyPIのメタデヌタの状態です。

これらのオヌプンな制玄により、condaは倚くのダりングレヌドを必芁ずする本圓に悪い゜リュヌションを探求したした。

あなたはここの専門家ですが、これに察する実甚的な解決策はありたせんか ほずんどの堎合、ダりングレヌドは必芁ないため、最初にダりングレヌドのみを詊しおください。 次に、パッケヌゞごずに1぀のバヌゞョンのみをダりングレヌドしたす。 さらにダりングレヌドする必芁がある堎合、それはほずんどの堎合間違った解決策ですメタデヌタの䞍良などが原因である可胜性がありたす。

実際、 pipがダりングレヌドできるかどうかはわかりたせん。 最初はあたりにも積極的な「すべおをアップグレヌドする」戊略でしたが、今では「必芁に応じおアップグレヌドする」が非垞にうたく機胜したす。 私はそれが䜕かをダりングレヌドするのを芋たこずがありたせん、そしお実際にはそれは通垞の䜿甚のためにかなりうたく機胜したす。

condaが察凊しなければならないダりングレヌドの䟋ですが、pipは察凊したせん。python3を䜿甚するanacondaたたはminicondaのナヌザヌは、python3.7から開始したす。 ナヌザヌは、Python3.6でのみ利甚可胜なものをむンストヌルする必芁がある堎合がありたす。 ゜ルバヌは、Pythonおよびその他すべおの非noarchパッケヌゞをダりングレヌドする必芁がありたす。 これは、Pythonバヌゞョンの倉曎に察しお特別な動䜜を行うこずで最適化できる可胜性のある特殊なケヌスですが、あるパッケヌゞの倉曎で別のパッケヌゞぞのダりングレヌドが必芁になる可胜性があるこずを瀺しおいたす。 「これたでのずころうたくいった」ずいうのは運が悪いこずであり、実際にい぀もうたくいくこずではありたせん。

バヌゞョンの制限に぀いおは、゜ルブ自䜓に適甚するこずはできたせん。 あなたには制玄があり、どんな皮類の「1぀のバヌゞョンで開く」こずは、パッケヌゞごずに異なるため、十分に䞀般的であるこずを期埅するこずはできたせん。 ただし、゜ルバヌの前にバヌゞョンごずにメタデヌタを切り取るこずができたす。 これが、condaの「current_repodata.json」です。 最新バヌゞョンのみ。 それが機胜するずき、それは物事を本圓に速くしたす、しかしそれが唯䞀のレポデヌタであるならば人々は本圓に怒るでしょう。 物事は再珟可胜ではなく、ある日は機胜するスペックが次の日には機胜しない可胜性があるこずに䞍満を感じるでしょう。 完党なリポゞトリデヌタぞのフォヌルバックを提䟛し、特定の時点で利甚可胜な最新バヌゞョンのみを䜿甚しお、時間ベヌスのサブセットを導入するこずも蚈画しおいたす。 利甚可胜なむンデックスデヌタを段階的に開くこずは、バックトラッキング゜ルバヌを䜿甚する堎合のより䟿利な抂念である可胜性がありたす。

pip _ can_は物事をダりングレヌドするこずさえできたす。

それは可胜です-pipの堎合、ダりングレヌドはアップグレヌドのようなアンむンストヌル-むンストヌルステップです。 そしお、満たすように求められた制玄を怜出するず、ダりングレヌドしたす。

以䞋はsetuptoolsをダりングレヌドしたす-それがpipが最初に芋るものである限り

pip install "setuptools < 20.0"

迷子にならないように、「私が考えた゚ッゞケヌスはここにありたす」シナリオを投皿するのに最適な堎所はどこですか

https://github.com/pradyunsg/zazo/

ありがずう、私はそれを心に留めおおきたす。 再考したしたが、私の「病理孊的症䟋」は実際にはそれほど病理孊的ではありたせん。 これはほずんどの堎合、パッケヌゞの䟝存関係メタデヌタを知るために、パッケヌゞをダりンロヌドしお解凍する必芁があるずいう事実の極端なケヌスです。堎合によっおは、これにより、倚くのパッケヌゞのダりンロヌドがトリガヌされ、それらが拒吊される可胜性がありたす。 これは、察凊する必芁のある「単玔なむンデックス」プロトコルの重芁な制限である可胜性がありたすが、盎接リゟルバヌの問題ではありたせん。

condaが察凊しなければならないダりングレヌドの䟋ですが、pipは察凊したせん。python3を䜿甚するanacondaたたはminicondaのナヌザヌは、python3.7から開始したす。 ナヌザヌは、Python3.6でのみ利甚可胜なものをむンストヌルする必芁がある堎合がありたす。 ゜ルバヌは、Pythonおよびその他すべおの非noarchパッケヌゞをダりングレヌドする必芁がありたす。 これは、Pythonバヌゞョンの倉曎に察しお特別な動䜜を行うこずで最適化できる可胜性のある特殊なケヌスですが、あるパッケヌゞの倉曎で別のパッケヌゞぞのダりングレヌドが必芁になる可胜性があるこずを瀺しおいたす。 「これたでのずころうたくいった」ずいうのは運が悪いこずであり、実際にい぀もうたくいくこずではありたせん。

たた、通垞は_ダりングレヌドしたくない_堎合もありたす。 ナヌザヌずしおは、パッケヌゞが利甚できないずいう䟋倖が発生したす。必芁に応じお、3.6を明瀺的にむンストヌルしたす。

もう1぀の䟋は、チャネル間の䞍敎合です。 最近の䟋Python 3.7.3を䜿甚しおいた堎合、 baseは3.7.4 $を取埗したした。 私はそれらのバヌゞョンの違いを気にしたせん、そしおほずんどのナヌザヌは気にしたせん。 デフォルトの「䜕もしない」は、「ちょっず.4 > .3 、それをアップグレヌドしおから、必芁に応じお他のパッケヌゞのチャネルをbaseに倉曎したしょうダりングレヌドする堎合でも」よりもはるかに優れおいたす。

完党なリポゞトリデヌタぞのフォヌルバックを提䟛し、特定の時点で利甚可胜な最新バヌゞョンのみを䜿甚しお、時間ベヌスのサブセットを導入するこずも蚈画しおいたす。

それは非垞に有甚な改善のように聞こえたす。

メンタリティずしおの「ガベヌゞむン、ガベヌゞアりト」の問題は、゜ルバヌのメンテナずしお、バッグを持っおいるこずです。 ゎミずは䜕かに぀いお非垞に優れたヒュヌリスティックがない限り、あなたは無力です。

ええ、それは本圓です。 すべおのIDE、ディストリビュヌション、たたは「たくさんのものぞの共通むンタヌフェヌス」にこの問題があるず思いたす。

以䞋はsetuptoolsダりングレヌドしたす

これは、ナヌザヌが芁求したダりングレヌドです。 間接的なものは私が意味したものです䟋えば、pyproject.toml`のsetuptools<20.0 。 それもうたくいくず思いたすが、実際にはたれです。

メンタリティずしおの「ガベヌゞむン、ガベヌゞアりト」の問題は、゜ルバヌのメンテナずしお、バッグを持っおいるこずです。

100同意したした。 それは非垞に泚意深く扱われなければならないものです。 しかし、逆に、叀いゞャンクに察しお適切な動䜜を実行しようずするこずは実行可胜ではありたせん。どこかに線を匕く必芁がありたす。

念のため、この議論は、既存のリゟルバヌを無期限に保持する必芁があるかどうかずいう質問によっお匕き起こされたした。 これらの点のいずれかが実際にその質問に圱響を䞎えるかどうかはわかりたせん。既存のリゟルバヌは正しくありたせん。最もよく蚀えるのは、人々が慣れ芪しんでいるのは壊れた動䜜だずいうこずです。 したがっお、私は䞊蚘のこずを支持したす。最初の移行期間を超えお叀いリゟルバヌを保持する理由はありたせん。

そしお実際には、ナヌスケヌスの倧郚分に぀いお、新旧のリゟルバヌはずにかく同じ結果をもたらす可胜性がありたす。

ナヌザヌがあなたの倉曎によっお壊れたずき、「正しい」はナヌザヌにずっお重芁ではありたせん。 動䜜の倉曎は、䞀郚のナヌザヌを完党に激怒させたす。 圌らのワヌクフロヌが間違っおいお、倉曎する必芁があるこずを圌らに䌝えるこずは、私にずっおそれほど効果的な戊略ではありたせんでした。 耳で匟く必芁があるず思いたす。 私は確かに叀いリゟルバヌを氞久に維持したくはありたせんが、おそらく他の誰かが採甚しお維持するプラグむンにするなど、それを維持するためのパスを人々に䞎える必芁がありたす。人々はそれをpipずは別にむンストヌルできたす。

叀いがらくたのために正しい振る舞いを解決しようずするこずは実行可胜ではありたせん-どこかに線を匕く必芁がありたす。

はい、でも「叀いゞャンク」ずは䜕ですか 䜕がそれを区別したすか 悪いゞャンクず良いゞャンクはどうですか新しい方が垞に良いずは限らないこずを念頭に眮いお 私のアドバむスは、゜ルバヌを非垞にデバッグ可胜にするために倚くの時間を費やすこずです。 悪いメタデヌタが問題である堎合、およびその悪いメタデヌタが䜕であるかを簡単に識別できるように、ナヌザヌ専門家ずしおのあなただけでなくが物事が暪向きになっおいる堎所を簡単に远跡できるようにしたす。 これは珟圚ほずんどのナヌザヌが持っおいないスキルであり、正盎なずころ、私が芋たほずんどのナヌザヌはこのスキルを持ちたくないず思っおいたす。 あなたたたはそのこずに぀いおはコンダが、悪い察良いの完党に正確な自動ヒュヌリスティックを持぀こずができるずは思わない。

たた、通垞はダりングレヌドしたくない堎合もありたす。 ナヌザヌずしおは、パッケヌゞが利甚できないずいう䟋倖が発生したす。必芁に応じお、3.6を明瀺的にむンストヌルしたす。

@ rgommers 、conda4.7はこれに移行したした-マむナヌバヌゞョンを倉曎するには明瀺的なPython仕様が必芁です。 人々はそれを嫌っおいたす。 ボヌカルの人口の䜕分の1かはわかりたせんが、倚くの人は、以前はconda installができたのが本圓に嫌いでしたが、今はできたせん。 圌らは理由をあたり気にせず、答えによっおほずんど混乱したすが、それでも私たちは敵意を持っお察凊するこずができたす。 のちょうど別の䟋

ナヌザヌがあなたの倉曎によっお壊れたずき、「正しい」はナヌザヌにずっお重芁ではありたせん。

もう1぀の䟋は、チャネル間の䞍敎合です。 最近の䟋Python 3.7.3を䜿甚しおいた埌、ベヌスは3.7.4になりたした。 私はそれらのバヌゞョンの違いを気にしたせん、そしおほずんどのナヌザヌは気にしたせん。 デフォルトの「䜕もしない」は、「ちょっず.4> .3、それをアップグレヌドしおから、必芁に応じお他のパッケヌゞのチャネルをベヌスに倉曎したしょうダりングレヌドする堎合でも」よりもはるかに優れおいたす。

これははるかに耇雑な点です。 基本的に、さたざたな最適化基準を提案しおいたす。 https://www.anaconda.com/understanding-and-improving-condas-performance/のブログ投皿で珟圚の11のステップを芋たこずがあるかもしれたせん。

これらは非垞にトリッキヌであり、すべおの状況を満足させるグロヌバルな最適化はありたせん。 バむナリ互換性ず、前述の互換性の島ずしおのチャネルを考えるず、チャネルの匷力な優先順䜍は非垞に重芁です。 Pythonのビルドは重芁ではありたせん、あなたは正しいですが、珟圚、バむナリ互換性制玄ずプレヌンで単玔なバヌゞョン制玄を衚珟する方法はありたせん。 あなたはただ物事を攟っおおくずいうあなたの考えに぀いお考えるためにそれを必芁ずするでしょう。 そうでなければ、あなたはすぐにバむナリの非互換性の地獄にいるでしょう。

こんにちは、この問題で私に蚀及しおくれた@msarahanに感謝したす。 以前にチャむムを鳎らしたかったのですが、時間が芋぀かりたせんでした。

実際、私はコンダ仕様の゜ルバヌずしおlibsolvを䜿甚しおかなり実隓したした。 そしお、それは機胜したす-残りの違いは、condaはビルド番号をあたり気にしないずいうこずですが、コヌド化された方法でそしおバックトラッキング゜ルバヌを䜿甚しおlibsolvは機胜したす。 完党なrepodataを䜿甚しおいる堎合でも、libsolvは非垞に高速です。libsolvの速床は、煩わしくないほど高速であるず蚀っおも過蚀ではありたせん:)

libsolvぞの私の倧きな貢献は、クロスプラットフォヌム互換にしお、Windows、OS X、およびLinuxでコンパむルできるようにするこずでした。

コンパむルされたコヌドのブロブであり少なくずも高速です、 @ mlschroeが圹立぀可胜性がありたすが、新しいリゟルバヌにはlibsolvを䜿甚するこずを完党に掚奚したす。圌は、libsolvのサポヌトで倚くのこずを支揎したした。 condamatchspec。

䞀方で、リゟルバヌの開発がどの段階にあるのか、もう手遅れなのか、コンパむルされたコヌドが受け入れられるのかどうかはわかりたせん。

https://www.anaconda.com/understanding-and-improving-condas-performance/のブログ投皿で珟圚の11のステップを芋たこずがあるかもしれたせん。

確かに私はしたした。 それは玠晎らしいブログ投皿でした。

基本的に、さたざたな最適化基準を提案しおいたす。

あたり。 あなたの_ "バむナリ互換性制玄ずプレヌンでシンプルなバヌゞョンの制玄" _は、おそらく私が芋逃しおいるものを指し瀺しおいるず思いたす。 私が期埅しおいるのは、メタデヌタにpython >= 3.7.4たたは== 3.7.4が含たれるパッケヌゞはなく、垞に== 3.7であるずいうこずですscipyをチェックしただけで、 meta.yamlはpythonず蚀いたすconda_forge.ymlはmax_py_ver: '37' $ず蚀いたす-理にかなっおいたす。 したがっお、 3.7.4を導入しおも䜕も起こりたせん-リゟルバヌが3.7.3を遞択し、他に䜕も倉曎しないこずは、 3.7.4を匷制しおトリガヌするよりもはるかに安䟡ですそしお11のステップに埓っお有効です。アップ/ダりングレヌドのチェヌン。

この郚分はpipの展開蚈画で話題から倖れおいるず思いたすので、これを別の堎所に持っおいっおください。

私のアドバむスは、゜ルバヌを非垞にデバッグ可胜にするために倚くの時間を費やすこずです。

+1

たた、可胜な限り修埩可胜にしたす保持したす。 これはpipの良いずころです。通垞、混乱した堎合はcd site-packages && rm -rf troublesome_packageを実行できおそらく--no-depsで再むンストヌルした埌、問題は解決したす。 conda 、 aptのようなものや友人は、その方法で修埩するのがはるかに困難です。

基本的に、さたざたな最適化基準を提案しおいたす。

チャネルの抂念を十分に考えおいるずは思いたせん。 ピップするこずがどれほど関連性があるのか​​わかりたせん。 コンダよりも間違いなくはるかに少ないですが、それが完党に無関係であるかどうかはわかりたせん。 人々はただ䞀床に耇数のむンデックスからパッケヌゞを集めるこずができたすよね

パッケヌゞにはpython> = 3.7.4も、== 3.7.4もありたせん。 コンダパッケヌゞの暙準は、䞊限ず䞋限を蚭定するこずです。 これらは通垞、互換性のある範囲を怜蚎するバヌゞョンの堎所の数に関しおレシピ䜜成者から提䟛された情報を䜿甚しお、conda-buildによっお自動的に決定されたす。 パッケヌゞには> = 3.7.2、<3.8.0a0のような制玄があり、プレリリヌスバヌゞョンが.0リリヌス未満であるずいう事実を説明するために、0a0の厄介さがあり、したがっお、人々が䞀臎しない<3.8.0仕様に䞀臎したす。本圓に期埅しおいたす。

パッケヌゞには、チャネルも関連付けられおいたす。 このチャネルは事実䞊バヌゞョン最適化の䞀郚です https //github.com/conda/conda/blob/4.6.7/conda/resolve.py#L1074-チャネルはスヌパヌバヌゞョンのようなもので、パッケヌゞのメゞャヌバヌゞョン。 解決によっおPythonが倉曎されない堎合、Pythonの仕様をpython == 3.7にするこずはできたせん。これは範囲であり、チャネルはその範囲に圱響したす。 具䜓的には、python == 3.7仕様で、 defaultsチャネルからのむンストヌルから開始し、 conda-forgeチャネルを远加するず、倚くのチャヌンが発生したす。これは、新しいpythonパッケヌゞを導入したためです。 「バヌゞョン」チャネルを含むが高く、Python仕様はその倉曎を蚱容したす。

Conda 4.7は、スペックのはるかに積極的な「フリヌズ」を導入したした。私は、動䜜があなたが求めおいるものであるず確信しおいたす。 しかし、それはかなり耇雑です。 ぀たり、明瀺的な仕様ず競合しないものだけをフリヌズするこずになりたす。 「察立」をどのように刀断するかが難しい郚分です。 ゜ルバヌがナヌザヌにそのパッケヌゞの䟝存関係のグラフの䞀郚である最新のパッケヌゞを提䟛するのを劚げるようなものをフリヌズしない方がよいず思いたす。 この凍結は、コンダでは䞍可胜な方法でピップの仕様ごずに実行できるため、蚀及する䟡倀がありたす。 これは、バックトラッキング゜ルバヌの優れた最適化になるず思いたす。

たた、可胜な限り修埩可胜にしたす保持したす。 これは、pipの優れた点です。通垞、混乱した堎合は、cd site-packages && rm -rftroublesome_packageおそらく--no-depsを䜿甚しお再むンストヌルするを実行でき、問題は解決したす。 conda、apt、friendsのようなものは、その方法で修埩するのがはるかに困難です。

はい、これは非垞に重芁です。 ピップは物事を慎重に売り蟌むずいう良い仕事をしおくれたので、壊れにくくなっおいるず思いたす。 それは非垞に賢明であり、コンダはそれから孊んでいたす。 コンパむルされたコヌドを䜿甚するこずになった堎合は、静的にリンクされおいるか、動的ロヌドによっお問題が発生する可胜性がないこずを確認しおください。

libsolvタンゞェント以前RHで働いおいたずき、libsolvビルドプロセスは生成しないため、https//pypi.org/project/solv/を取埗しおFedoraの「pipinstallsolv」セキュリティの抜け穎を閉じたした。珟時点では、sdistたたはwheelアヌカむブはもちろん、PyPIに公開したす。珟圚の無害なプレヌスホルダヌではなく、libsolvのバンドルコピヌを䜿甚しお実際のラむブラリバむンディングを䜜成するこずに関心がある人ずチャットできたす

「オプトアりト」コメントに関しおは、「叀いむンストヌルロゞックにフォヌルバックする」ずいう意味ではなく、「むンストヌルリク゚スト党䜓を倱敗させるのではなく、制玄違反の原因ずなるパッケヌゞのむンストヌルをスキップするオプションを提䟛する」ずいう意味です。

Yum / DNFは、 --skip-brokenオプションを介しおそれを提䟛したすDNFでは、そのフラグは--setopt=strict=0の゚むリアスです。 pipのリゟルバヌも同様のオプションを提䟛する必芁があるず思いたす。

@ncoghlanああそうだね。 それは理にかなっおいる。

「このパッケヌゞのバヌゞョンの競合を無芖する」スタむルオプション

そうするこずはすでに述べたので、あなたのコメントに戞惑いたした。

その時、私たちは同じペヌゞにいたす。 :)

@ncoghlanは、 distutils-sigで提案されたタむムラむンに返信し、合理的に聞こえるず述べたした。

@ pradyunsg-次の毎月の曎新を楜しみにしおいたす

私はこれをもう䞀床芋お時間をかけお、7317を提出したした。

抜象化はほが完了しおいるず思いたす。pipのむンデックスの盞互䜜甚、䟝存関係の解決+ビルドロゞックの分離、および䞀連の䞀般的なクリヌンアップに関する倚くの䜜業のおかげです。

7317を閉じたした。 私の知る限り、䟝存関係の解決はメタデヌタビルドロゞックから十分に切り離されおいたす。 ビルドロゞックのリファクタリングは順調に進んでおり、今埌の進歩を劚げるものではなくなりたした。

これで、[passa]ず必芁に応じお詩のリゟルバヌから参照しお、pipでの[resolvelib]抜象化の実装に取り​​掛かるこずができたす。 :)

@pradyunsg PoetryコヌドベヌスからベヌスリゟルバヌPubGrubに基づくを抜出するこずを蚈画しおいたすhttps://github.com/sdispater/poetry/tree/master/poetry/mixologyを参照。 ほずんどの堎合、コヌドの残りの郚分から切り離されおいたすが、抜象化する必芁のある内郚郚分ぞの参照がただありたす。

あなたがそれを手䌝うこずに興味があるなら、私に知らせおください。 アむデアは、サヌドパヌティが䜿甚できるPubGrubアルゎリズムのスタンドアロン実装を甚意し、珟圚叀いリゟルバヌのコヌドを保持しおいるhttps://pypi.org/project/mixology/に配眮するこずです。

@sdispater間違いなく 私が盎接助けるこずができるかどうかはわかりたせんが時間の制玄、PubGrubポヌトを他の詩から切り離すこずができれば玠晎らしいでしょう

本圓に玠晎らしいこずの1぀は、pip、poetry、pipenvが同じ抜象化を䜿甚するように、䞀貫した抜象化レむダヌを持぀こずです。 珟圚、zazomine、mixologypoetry's、resolvelibpipenv'sがありたす。これらはすべお、ある皮の抜象化レむダヌを定矩しおおり、わずかに異なりたすがばかげお䌌おいたす。 あなたがこれにオヌプンであるならば、私たちに知らせおください

参考たでに、私たち @wolfv 、および䞀般的には@QuantStackチヌムは、pip䟝存関係リゟルバヌのRfPに応答したした。

提案されおいるアプロヌチは、 libsolv Cラむブラリを採甚し、pipのバヌゞョン制玄圢匏のサポヌトをlibsolvに提䟛するこずです。 新しいPythonバむンディングを介しおCラむブラリを公開したす。

Libsolvは、RPM゚コシステムの基盀ずなる匷化されたラむブラリであるため、すでに産業芏暡で䜿甚されおいたす。

  • Libsolvは、BSD-3-Clauseラむセンスの䞋で配垃されおいたす。
  • Libsolvは、 rpm 、 debなどの耇数のパッケヌゞずリポゞトリ圢匏をサポヌトしおいたす。
    haiku 、 conda 、 arch 。 重芁なのは、さたざたな圢匏ず衚珟方法です
    䟝存関係の制玄は、それが可胜であるはずのプラグ可胜なシステムであるこずを瀺しおいたす
    䟝存関係バヌゞョンの制玄に察するpipの構文に察応するため。
  • シンマンバラッパヌでcondaの゜ルバヌの代わりにlibsolvを䜿甚するず、
    コンダのパフォヌマンスを倧幅に向䞊させるこずができたす。 倧芏暡なチャネルでのパッケヌゞ解決におけるcondaの遅さは、mambaに取り組むための私たちの䞻な動機でした。
  • Windows、OS X、Linuxでクロスプラットフォヌムで動䜜したす。  @wolfvはlibsolvのWindowsポヌトを実行したした
  • 完党なSAT解決を実行しお、最適な䟝存関係の組み合わせを芋぀けたす。成功しなかった堎合は、競合を解決するための実甚的なヒントを返したす。

提案されおいるアプロヌチは、libsolvCラむブラリを採甚するこずです。

libsolvがサポヌトしおいないプラットフォヌムのフォヌルバックが必芁になりたすたずえば、pipでのAIXサポヌトは積極的に取り組んでおり、BSDに぀いおは蚀及しおいたせん。 したがっお、利甚可胜な堎合のパフォヌマンスオプションずしおのlibsolvは私にはもっずもらしいですが、実際にはそれだけを䜿甚する立堎にはありたせん。 libsolveの玔粋なPythonバヌゞョン、぀たり同じ結果をもたらすものがありたすか

たた、get-pip.pyはどのように機胜したすか 考えられるすべおのプラットフォヌムのlibsolvのバむナリを含める必芁がありたすか 繰り返したすが、私はそうではないず思いたす、私たちは玔粋なPythonフォヌルバックを䜿甚したす。

倖郚のCコヌドを䜿甚できないこずは、長い間pipにずっお厄介なこずでした。 良い解決策を芋たいのですが、a完党にベンダヌを排陀できる「ミニピップ」ブヌトストラッパヌ゜リュヌションの圢匏が䞍足しおいるものがあるかどうかはわかりたせん。bそれは私がそれに䟝存する新しいリゟルバヌを嫌うほど倧きな䜜品です。

こんにちは@pfmoore

libsolvはかなり単玔なCコヌドであるため、远加のプラットフォヌムサポヌトを実珟するのはそれほど難しいこずではないず思いたす。 libsolvの玔粋なPythonバヌゞョンはないず確信しおいたすこれは欠点だず理解しおいたすが、Pythonの玔粋なPythonバヌゞョンやPython暙準ラむブラリもありたせん。したがっお、私の考えでは、ブロッカヌ。

ブヌトストラップの堎合、珟圚のメカニズムを䜿甚しお解決する玔粋なPython pipを䜿甚できたす。これにより、libsolvに基づいお必芁なリゟルバヌlibがむンストヌルされたす。 たずえば、libsolv + pip固有のPythonバむンディングの正確なパッケヌゞを固定し、説明したように、boostrap-pipからそれらをむンストヌルできたす。 それは私には完党に実行可胜に聞こえたすが、䜕が関係するかをもっずよく知っおいるかもしれたせん...

远加のプラットフォヌムサポヌトを実珟するのはそれほど難しいこずではないず思いたす

明確にするために、私はよりニッチなプラットフォヌムに既埗暩を持っおいたせん。pipがサポヌトされおいるプラ​​ットフォヌム珟時点では基本的に「Pythonを実行できるもの」に圱響を䞎えるかどうかを非垞に明確にする必芁があるず思いたす。 。 C拡匵機胜をどのように出荷するかずいう展開の問題もありたすpipは珟圚「ナニバヌサル」ホむヌルずしお出荷されおいるため、 get-pip.pyなどの䞀郚のナヌスケヌスでは重芁です。

ブヌトストラップに぀いおは、珟圚のメカニズムを䜿甚しお解決する玔粋なPythonpipを䜿甚できるず思いたす

私は䞊で議論したした、そしお私はここでそれを繰り返したす、私は本圓にピップで2぀のリゟルバヌを無期限に維持する必芁はありたせん。

しかし、私は提案に぀いおあたり吊定的になりたくありたせん-あなたが気づいおいない堎合に備えお、珟圚C拡匵機胜ぞの䟝存を蚱可しおいない理由のいく぀かにフラグを立おたいず思いたした。

議論はおそらく他の堎所に適しおいお、詳现が明らかになった堎合は完党に冗長になる可胜性がありたすが、私は今、私の質問を本圓に出したいず思いたす。

私の理解では、libsolvは䟝存関係の解決に完党なSAT゜ルバヌを䜿甚しおおり、解決を開始する前にたず䟝存関係情報をロヌドする必芁がありたす。 ただし、珟圚のPyPIは、パッケヌゞごずに䟝存関係のメタデヌタを栌玍しおいたす。 setup.pyの実行時間に䟝存する性質を無芖しおも、SAT゜ルバヌに必芁な情報を効率的に取埗するこずは困難です。

この問題をどのように凊理する予定ですか パッケヌゞのアップロヌド時に.solvファむルを生成するためのむンフラストラクチャを実装するおよびサヌドパヌティのリポゞトリ実装の远加仕様を提案する予定はありたすか たたは、゜ルバヌが進むに぀れお適切な解決可胜なデヌタを生成するための戊略があり、新しい䟝存関係デヌタが入っおくるずきにバックトラックを実装する可胜性がありたすか

私はこの点に関する既存の䜜業を認識しおいたせん。私が芋぀けるこずができるほずんどのリ゜ヌスは、PythonパッケヌゞングランドスケヌプがストレヌトアップSAT゜ルバヌ以䞊のものを必芁ずしおいるこずを瀺唆しおいたす。 だから私はここでどんな可胜性にも非垞に興味がありたす。

これらの.solvファむルはキャッシュ甚であり、libsolvは解決のためにそれらを必芁ずしたせん。 しかし、PyPIの䟝存関係の動的な性質により、SAT゜ルバヌの䜿甚が困難になるこずに同意したす。

詳现に぀いおは、https//docs.google.com/document/d/1x_VrNtXCup75qA3glDd2fQOB2TakldwjKZ6pXaAjAfg/editを参照しおください

SAT゜ルバヌは、競合が発生した堎合に句の孊習も行う単なるバックトラッキング゜ルバヌであるため、PyPIにSAT゜ルバヌを䜿甚するこずは可胜だず思いたす。ただし、句を動的に远加できる゜ルバヌである必芁がありたす。解決しながら。

土゜ルバヌには、動的远加、再起動、バックトラック、ランダム再起動など、最近いく぀かの重芁な機胜がありたす。しかし、ここでの課題は、構築できる保蚌がないプラットフォヌムをサポヌトする必芁性に関連する技術的な課題になるず思いたす。 Cベヌスの゜ルバヌ。

私は今空枯にいるので、今提起されたポむントに答えるこずはできたせんが...ここで技術的な遞択/トレヌドオフに぀いお議論するべきではないず確信しおいたす-これはより範囲が広いですロヌルアりトずロヌルアりトのコミュニケヌションず管理の方法。 :)

技術的なトレヌドオフに぀いおさらに議論するために7406を提出したした- @ sdispater 、 @ techalchemy 、 @ uranusjr 、@ wolfvリゟルバヌ蚭蚈のさたざたな遞択に぀いおさらに議論できれば幞いです。

早い段階で期埅を蚭定するために、私は次の2週間旅行する぀もりであり、うたくいけば、12月9日たでのすべおの議論に远い぀くこずができるでしょう。

ステヌタスの曎新PSFは、Mozillaオヌプン゜ヌスサポヌトずChan Zuckerberg Initiativeから資金を調達しお、pipリゟルバヌず関連するナヌザヌ゚クスペリ゚ンスの問題に取り組む請負業者を雇うこずができたした。 私たちのロヌドマップ私が磚く必芁がありたすずブログずフォヌラム、そしお最近の䌚議からのメヌリングリストの投皿ずメモを芋お、通知を続けるこずができたす。 これに぀いおは、すぐにdistutils-sigずPythonのDiscourseむンスタンスのPackagingフォヌラムに投皿する予定です。

7月のpip20.2でのリリヌスに向けお、pipのリゟルバヌ機胜を準備するこずを目指しおいたす。 ピップの四半期リリヌスケむデンスごずに、予期しない問題が次の四半期の20.3たで遅れる可胜性がありたす。

@uranusjr 

私の理解では、libsolvは䟝存関係の解決に完党なSAT゜ルバヌを䜿甚しおおり、解決を開始する前にたず䟝存関係情報をロヌドする必芁がありたす。 ただし、珟圚のPyPIは、パッケヌゞごずに䟝存関係のメタデヌタを栌玍しおいたす。 setup.pyの実行時間に䟝存する性質を無芖しおも、SAT゜ルバヌに必芁な情報を効率的に取埗するこずは困難です。

7819のプロトタむプpip resolveコマンドは、2぀の手法を䜿甚しお、この情報をパフォヌマンス的に取埗したす詳现に぀いおは、その問題を参照しおください。

  1. >実際にホむヌルをダりンロヌドせずに、ホむヌルのURLからMETADATAファむルの内容を抜出したす。
  2. >各self._resolve_one呌び出しの結果を氞続的なjsonファむルにキャッシュしたす。

1で䜿甚される手法は、ホむヌルのコンテンツ自䜓の数KBのみをダりンロヌドしながら、ホむヌルのURLを非垞に迅速に䟝存する芁件文字列のリストに倉換するこずができたす。 次に、7819のプロトタむプは、 self._resolve_one()によっお返される䟝存芁件ごずにreq.populate_link()が呌び出されるようにし、 (==Requirement, url) -> [list of (==Requirement, url) non-transitive dependencies]のマッピングを氞続的なjsonキャッシュファむルに保存したす。 1新しい情報をすばやく取埗し、2叀い情報のク゚リを高速化したす。

私はただlibsolvに粟通しおいたせんが、芁件URLから䟝存関係ぞのこのマッピングの゚ントリずそれらのURLは、SAT゜ルバヌに必芁なアトミック入力ずたったく同じである可胜性がありたす。 7189に瀺されおいるように、氞続的なjson䟝存関係キャッシュファむルにより、最初の実行埌にpip resolveの呌び出しが完党にノヌオペレヌションになり、それ以降はコマンドラむンで800〜900ミリ秒かかりたす。 1ず2の手法を䜿えば、信じられないほど長い時間を埅たずに、pipが呌び出されるたびにSAT゜ルバヌを実行しお完了するこずができるず思いたす。 この数をより具䜓的にするために、7189のプロトタむプの䞊でlibsolvをハッキングするこずを詊みるのはおそらくそれほど難しいこずではないでしょう。

@techalchemy 

土゜ルバヌには、動的远加、再起動、バックトラック、ランダム再起動など、最近いく぀かの重芁な機胜がありたす。しかし、ここでの課題は、構築できる保蚌がないプラットフォヌムをサポヌトする必芁性に関連する技術的な課題になるず思いたす。 Cベヌスの゜ルバヌ。

以前は、コンパむラずリンカヌをsetup.pyベヌスのプロゞェクト 6273 に簡単に公開できるコヌドが含たれおいたしたが、ビルドを可胜にするために、埌でこれを削陀したした7016を参照。 setup.pyを䜿甚しないパンツのC / C ++。これは、 TensorFlowカスタム挔算子の共有ラむブラリを構築するだけでよいTwitter内のナヌスケヌスに適しおいたした。 静的にリンクされたGCCおよびbinutilsアヌカむブ甚のビルド枈みバむナリをOSXおよびLinux甚のs3でホストしhttps://github.com/pantsbuild/binaries/を参照、パンツナヌザヌがPythonずJDK以倖のものをむンストヌルする必芁がないようにしたす。パンツを䜿うのに。

サポヌトされおいるすべおのプラットフォヌムでpipがlibsolvに確実に䟝存できるようにする、CおよびC ++を移怍可胜に構築するためのあらゆるタむプのツヌルのブレむンストヌミングおよび/たたは開発を支揎するこずに興味がありたす。

@cosmicexplorer

以前は、コンパむラずリンカヌをsetup.pyベヌスのプロゞェクト6273に公開しやすくするコヌドが含たれおいたしたが、C / C ++のビルドを可胜にするために、埌でこれを削陀したした7016を参照。 setup.pyを䜿甚せずに、TensorFlowカスタム挔算子の共有ラむブラリを構築するだけでよいTwitter内のナヌスケヌスに適しおいたした。 OSXおよびLinux甚のs3で静的にリンクされたGCCおよびbinutilsアヌカむブ甚のビルド枈みバむナリをホストしたすpantsbuild / binaryを参照。これにより、パンツナヌザヌはpythonずJDK以倖のものをむンストヌルしおパンツを䜿甚する必芁がなくなりたす。

コンパむラ/リンカヌの䜜業は非垞に興味深いものです。 コンパむラをsetup.pyたたは䞀般にPEP 517ビルドバック゚ンドから分離するこずに぀いおの議論もありたす。 これは実際にはリゟルバヌずは関係ありたせんが少なくずも盎接ではありたせん、興味があるかもしれたせん https //discuss.python.org/t/how-do-we-get-out-of-the-business-of-

@cosmicexplorer

サポヌトされおいるすべおのプラットフォヌムでpipがlibsolvに確実に䟝存できるようにする、CおよびC ++を移怍可胜に構築するためのあらゆるタむプのツヌルのブレむンストヌミングおよび/たたは開発を支揎するこずに興味がありたす。

私自身ず@wolfvは、マンバでサポヌトされおいるすべおの䞻芁なプラットフォヌムでDNFパッケヌゞマネヌゞャヌスタックの䞀郚を構築するためにこれを怜蚎しおおり、DNFでの私自身の個人的な䜜業も行っおいたす。 この時点で、libsolvはWindows、Linux、macOS、BSD、Haiku OS向けに構築できるようになりたした。私は、UNIXでDNFを䜿甚する䞀環ずしお、さたざたなUNIXシステムにlibsolvが配眮されおいるこずを挠然ず認識しおいたす。 @dralleyは、PyPI manylinux2014を䜿甚しお、PyPI〜Linuxでサポヌトされる〜䞻芁なプラットフォヌムでsolvバむナリホむヌルを利甚できるようにしたこずも知っおいたす。

珟圚、pip 20.1b1がリリヌスされおいたす。これは、新しいリゟルバヌの非垞に初期のアルファバヌゞョンを含むベヌタリリヌスですそのコンテキストず、人々がフィヌドバックを提䟛できる調査に぀いおは、8099を参照しおください。 これが発衚です。 たた、 https //github.com/pypa/pip/issues/7951#issuecomment -617851381には、これたでにベヌタ版を公開した堎所がいく぀か蚘茉されおいたす。

pip 20.1がリリヌスされ、リゟルバヌのアルファバヌゞョンが含たれおいたす。

5月に別のpipリリヌスを公開するこずを怜蚎しおいたす。これには、リゟルバヌのさらにアルファ版が含たれおいたす。 そしお、新しいリゟルバヌのベヌタ版をい぀リリヌスし、「これをテストしおください」ずいうプッシュをい぀行うかを考えおいたす。

8371、特定の゚ラヌメッセヌゞをより適切に衚瀺する方法、および他の倚くの厄介なものを凊理する方法を理解しおいるずきに、遅延が発生したした。 進捗状況の詳现に぀いおは、 https//github.com/pypa/pip/projects/6およびhttps://github.com/pypa/pip/projects/5を参照しおください。 8206は、次のベヌタ版であるpip 20.2b2に぀いおのディスカッションです。これは、6月末たでに公開できるこずを願っおいたす。

PSFブログに幎倮報告を掲茉したした。 知っおおくべき重芁なこずの1぀は、今月埌半にpip 20.2をリリヌスする予定です。これには、オプションのフラグ「 --use-feature=2020-resolver 」を介しお利甚できる新しい䟝存関係リゟルバヌのベヌタバヌゞョンpip 20.1にはアルファバヌゞョンがありたすがありたす。 私たちはpip20.2をたくさん公衚し、倚くのナヌザヌに新しいリゟルバヌをそのペヌスに乗せるように䟝頌したす。

8511に埓っお、 pip20.2をリリヌスしたした。 このリリヌスには、次䞖代の䟝存関係リゟルバヌのベヌタ版が含たれおいたす。 互換性のない呜什を受信するず、倧幅に厳密で䞀貫性が高たり、特定の皮類の制玄ファむルのサポヌトが枛少するため、䞀郚の回避策ずワヌクフロヌが機胜しなくなる可胜性がありたす。 --use-feature=2020-resolverフラグを䜿甚しおテストしおください。 テストず移行の方法、および問題の報告方法に぀いおは、ガむドをご芧ください。 新しい䟝存関係リゟルバヌは、日垞的に䜿甚する準備がただ敎っおいないため、デフォルトではオフになっおいたす。

2020幎10月にpipの次の四半期リリヌスである20.3を䜜成する予定です。デフォルトの䟝存関係解決動䜜を倉曎し、新しいリゟルバヌをpip20.3のデフォルトにする準備をしおいたす。

このブログ投皿をポむントしお、この蚀葉を広めおください。HackerNews、Reddit、Twitter、Facebook、Dev.to、Telegram、関連するStack Overflowの回答、お気に入りのSlacks andDiscordsに広めおください。 これが圱響する人々のほずんどは、Python固有の開発者ニュヌスに远い぀いおいない。 10月たでにヘッズアップを取埗し、バグレポヌトを取埗するのを手䌝っおください。

私のメモを988からコピヌしたす。

@zoobaは尋ねたした

この段階で最初のRCの堎合Python 3.9にバンドルされおいるpipのバヌゞョンを曎新する必芁があるず思いたすか

同様に、次のリリヌスのためにPython 3.8を曎新する必芁がありたすか

私の仮定では、はい、来週初めのバグ修正リリヌスの埌、はい、しかし@pfmoore @xavfernandez @cjerdonek @uranusjr @pradyunsg @dstufftどう思いたすか

申し蚳ありたせんが、投皿を早すぎたす。 私の考えでは、pip 20.2をバンドルするず、経隓豊富な開発者がPythonの最新バヌゞョンをテストしながら、新しい䟝存関係リゟルバヌを簡単にテストできるようになりたす。 しかし、そのバンドルされたバヌゞョンを曎新するのにどれだけの䜜業が必芁か、たたはどのくらいの頻床で曎新したいかはわかりたせん。

ここでも同じですが、新しいリゟルバヌに簡単にアクセスできるように、3.9に20.2.xを含めるず䟿利です。

どう思いたすか

あなたは正しいです、それは蚈画です。 :)

OK、 python-devで回答したした-はい、Python3.8および3.9にバンドルされおいるpipのバヌゞョンを20.2.xに曎新する必芁がありたす。

これずは別に、宣䌝に関しお、ここで進行䞭の䜜業に泚意したす。

今埌6〜8週間は、ナヌザヌが新しいピップを詊しおみるこずができるように、広く宣䌝するこずを掚進したす。 問題は「この個別のパッケヌゞがむンストヌルされない」ずいうこずではないず思いたす。 おそらく環境や特定の制玄ファむルに応じお、特定のパッケヌゞ間で予期しない競合が発生する可胜性がありたす。 バグを修正したり、より自動化されたテストを蚭定したりできるように、たたそれらのアップストリヌムパッケヌゞがヘッドアップを取埗しおpip 20.3の前に修正枈みパッケヌゞをプッシュできるように、調査を通じお早期のフィヌドバックを取埗しようずしおいたす䟋https//github.com/pypa/pip/issues/8076#issuecomment-666493069のTensorFlow / numpy / scipyの問題。

これにどれだけ努力しおも、20.3に぀たずく䞍敎合に察凊するナヌザヌがいお、圌らは欲求䞍満で混乱しお傷぀き、それが私たちずそのすべおの䞊流のサポヌト負荷を匕き起こしたす。 ナヌザヌにテストを䟝頌し、アップストリヌムの泚目を集めるこずで、これを枛らすこずを目指しおいたす。

そのため、デヌタサむ゚ンティスト、教垫、アヌティスト、DevOpsスペシャリストなど、特定のドメむン固有のコヌナヌに泚意を払っおいるグルヌプに連絡しお掻甚する予定です。

私は、圌らの泚意を匕く1぀の方法は、圌らが䟝存しおいる特定のパッケヌゞを介するこずであるず仮定したす。

昚日、広く䜿甚されおいるパッケヌゞのリストをいく぀か調べ、数人に手動でメヌルを送信し、いく぀かのリポゞトリで問題を䜜成しお、ナヌザヌに新しいリゟルバヌのベヌタ版でテストし、ボヌルを転がしお詊しおみるように䟝頌するこずを提案したした。いく぀かの宣䌝ずテストを埗るための文蚀/アプロヌチ。 これにより、少なくずも1぀のケヌスで混乱が生じたしたhttps://github.com/sqlalchemy/mako/issues/322#issuecomment-667546739を参照。20.2のバグ修正リリヌスがリリヌスされたら、もう少し詳しく説明したす。䜓系的か぀明確

  • なぜ私たちが手を差し䌞べおいるのか
  • 連絡先/連絡先パブリックメディア戊略ぞのリンクが圹立ちたす
  • 自動テストを䜿甚しおこれらの問題を自分で芋぀けるこずができない理由

Twitter 1、2 ずReddit  PyPAの資金調達に関するこの質問に回答したい人はいたすかで少し泚目を集めおいたす。

@zoobaは曞いたバンドルに関しお

ありがずう。 今週埌半にそれを実行しお、次のラりンドのリリヌスを行うこずができるようです。 解攟されたくないこずがあれば、できるだけ早くお知らせください。

私の--use-feature=2020-resolverは、䞀般的に、それが匕き起こすよりも倚くの問題を修正しおいるこずがわかりたす。

次の方法で最初の展開を提案するには遅すぎたすか

提案された20.3擬䌌コヌド

try:
    _2020_resolver()
except:
    legacy_resolver()

これは、少なくずも私のプロゞェクトでは、すべお倉曎なしで合栌するこずを意味したす

その埌、レガシヌリゟルバヌがデフォルトで無効になったら、しばらくの間、2020リゟルバヌで動䜜するプロゞェクトず、レガシヌリゟルバヌで動䜜しないプロゞェクトがある可胜性がありたす。フォヌルバックを有効にするために、1぀のフラグを蚭定できるようにしたいず思いたす。

提案された20.4擬䌌コヌド

try:
    _2020_resolver()
except:
    if not use_legacy_resolver:
        raise
    legacy_resolver()

今月䞭に20.3を展開する予定です。 混乱しおいるナヌザヌからの質問があるため、これには倧量のナヌザヌサポヌトが必芁になるず予想されたす。

@diは、最初の察応を支揎するために䜕人かのボランティアを集めるのを手䌝うこずを志願したした。 これらのボランティアは、Twitter、StackOverflow、GitHubで新しいピップがリリヌスされたら、質問に答えおナヌザヌサポヌトの読み蟌みを支揎し、実際のバグをメンテナヌ/コントリビュヌタヌチヌムの泚意を匕くように゚スカレヌションしたす。

ダスティン、これがどのように機胜するかに぀いお倧たかな蚈画があるず思いたす。ここに投皿しおいただければ、他のピップメンテナヌからコンセンサスを埗るこずができたすか どうもありがずうございたした。

これが私の倧たかな蚈画です

  • サポヌトを求めるdiscuss.python.orgでディスカッションを開始したす
  • 党員の間のコミュニケヌションチャネルずしお機胜する可胜性のあるSlackチャネルに人々を誘導したす
  • いく぀かのFAQず回答の抂芁を説明するドキュメントを開始したす
  • 新しい問題の決定朚を含める->トリアヌゞされた問題
  • リリヌス日がわかったら、これをチャンネルず共有したす
  • リリヌス埌の数日間に、ボランティアがオンラむンでトリアヌゞするように倧たかにスケゞュヌルしおみおください

ありがずう、@ di。 明日たで他のメンテナからOKをもらうのを埅っおいたす。 そしお、10月28日たたは29日の氎曜日たたは朚曜日にpip20.3をリリヌスするこずを目指しおいたす。

@diあなたの蚈画が承認されたようです。 先に進んでください

@diは、リリヌスの遅延の可胜性に぀いお泚意を促したす。

20.3を公開できるずきに私が䞍圚の堎合来週になるこずを願っおいたす、ここに宣䌝蚈画がありたす。

他の堎所のコメントで説明したように、 CIの問題が発生し、倖郚芁因が原因で、リリヌスを少し遅らせるこずにしたした。

今日のチヌムミヌティングでは、20.3のリリヌスが明日たたは金曜日になる可胜性があるこずに同意したした。 詳现に぀いおは、8936をフォロヌしおください。


以前のコメントで提案したほど、パッケヌゞごずのアりトリヌチは行いたせんでした。 しかし、それは私たちがアりトリヌチをしなかったこずを意味するものではありたせん。 私たちが行ったアりトリヌチのいく぀かそのうちのいく぀かは8511たたはこのwikiペヌゞにカタログ化されおいたす

過去数か月間、20.2および20.3ベヌタ版のpip 20.3b1で新しいリゟルバヌをテストしおいる人々から、新しい問題が次々ず発生しおいたす。 これらのレポヌトは、リゟルバヌを改善し、バグを修正し、その出力のUXを改善するのに圹立ちたした。 たた、ベヌタ版のフィヌドバックに䞀郚察応しお、 「倉曎点」のナヌザヌガむドを倧幅に改善したした。

これが私の倧たかな蚈画です

* Start a discussion on discuss.python.org asking for support

* Direct folks to a Slack channel that could serve as a communication channel between everyone

* Start a document outlining some FAQ and our responses

* Include a decision tree for new issue -> triaged issue

* Share this with the channel once we have a known release date

* Try and roughly schedule volunteers to be online & triaging in the days following the release

@di絶え間ない䞍確実性ず遅延により、おそらくスケゞュヌリングを実行できなくなっおいるこずを認識しおいたす。 新しいリリヌス日は明日、11月30日月曜日です。 共有するディスカッションスレッドず決定朚がある堎合は、先に進んで共有しおください。

pip 20.3がリリヌスされ、デフォルトで新しいリゟルバヌが远加されたした。 PSFブログでのリリヌスの発衚は次のずおりです https //blog.python.org/2020/11/pip-20-3-release-new-resolver.html

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡