πŸ’¬ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Minimal Version Selection Π² контСкстС Go?



Minimal Version Selection (MVS) Π² Go β€” это Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ систСмой управлСния зависимостями ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Go (Π²Π²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π² Go 1.11 с появлСниСм ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ).



MVS опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии зависимостСй слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ сборкС модуля. Основная Ρ†Π΅Π»ΡŒ этого Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° β€” ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ простоту ΠΈ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ вСрсий зависимостСй.



πŸ“Œ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ аспСкты MVS:



1. Минимальная вСрсия: MVS Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ минимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ зависимости, которая удовлСтворяСт всСм трСбованиям вСрсий, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² зависимостях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ модулях. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли ваш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ зависит ΠΎΡ‚ модуля A вСрсии 1.2 ΠΈ модуля B, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ зависит ΠΎΡ‚ модуля A, Π½ΠΎ вСрсии 1.1, MVS Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ 1.2 модуля A, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это минимальная вСрсия, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π°Ρ ΠΎΠ±ΠΎΠΈΠΌ трСбованиям.



2. ΠŸΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ: Π²Ρ‹Π±ΠΎΡ€ вСрсии Π½Π΅ зависит ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ врСмя добавлСния зависимости ΠΈΠ»ΠΈ порядок Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ зависимостСй. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ согласованными ΠΈ воспроизводимыми ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… сборках.



3. УмСньшСниС риска нСсовмСстимости: ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ MVS Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, это ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ³ΠΎ обновлСния Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ…, ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ нСсовмСстимых вСрсий зависимостСй.



4. Π€Π°ΠΉΠ» go.mod: всС зависимости ΠΈ ΠΈΡ… вСрсии явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ go.mod ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. MVS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот Ρ„Π°ΠΉΠ» для опрСдСлСния, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии зависимостСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.



5. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° обновлСния: Ссли Π½Π°ΠΌ трСбуСтся ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ вСрсии, достаточно ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ эту Π²Π΅Ρ€ΡΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ go.mod. MVS автоматичСски ΡƒΡ‡Ρ‚Ρ‘Ρ‚ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ сборкС.



πŸ‘‰ ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅