ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ GitGuardian ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , Π·Π°Π±ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π² ΠΊΠΎΠ΄Π΅, ΡΠ°Π·ΠΌΠ΅ΡΡΠ½Π½ΠΎΠΌ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Python-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² PyPI (Python Package Index). ΠΠΎΡΠ»Π΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ 9.5 ΠΌΠ»Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ 5 ΠΌΠ»Π½ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ 450 ΡΡΡΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π±ΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΎ 56866 ΡΠ°ΠΊΡΠΎΠ² ΡΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠ»ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π±Π΅Π· Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ΅Π»ΠΈΠ·Π°Ρ , ΡΠΈΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ 3938, Π° ΡΠΈΡΠ»ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Π° ΡΡΠ΅ΡΠΊΠ° — 2922.
ΠΡΠ΅Π³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 150 ΡΠΈΠΏΠΎΠ² ΡΡΠ΅ΡΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΏΠ°ΡΠΎΠ»ΠΈ, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ, ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ, ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΠΈ API. ΠΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 768 ΡΡΡΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΡΠ΅ΡΠ΅ΠΊ, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ, ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΠΊΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Azure Active Directory, ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊ SSH, MongoDB, MySQL ΠΈ PostgreSQL, ΠΊΠ»ΡΡΠΈ ΠΊ GitHub OAuth App, Dropbox ΠΈ Auth0, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²Ρ ΠΎΠ΄Π° Π² Coinbase ΠΈ Twilio.
ΠΠ· Π½Π°Π±ΠΈΡΠ°ΡΡΠΈΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ² ΡΡΠ΅ΡΠ΅ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΡΠΎΠΊΠ΅Π½Ρ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±ΠΎΡΠ°ΠΌ Π² Telegram, ΡΠΈΡΠ»ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΄Π²ΠΎΠΈΠ»ΠΎΡΡ Π² Π½Π°ΡΠ°Π»Π΅ 2021 Π³ΠΎΠ΄Π° ΠΈ Π·Π°ΡΠ΅ΠΌ Π΅ΡΡ ΡΠ°Π· ΡΠ΄Π²ΠΎΠΈΠ»ΠΎΡΡ Π²Π΅ΡΠ½ΠΎΠΉ 2023 Π³ΠΎΠ΄Π°. ΠΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠΎΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Ρ 2020 Π³ΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Google API, Π° Ρ 2022 Π³ΠΎΠ΄Π° — ΡΡΡΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊ Π‘Π£ΠΠ. ΠΠ· ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π»ΠΈΠ΄ΠΈΡΡΡΡΠΈΡ ΠΏΠΎ ΡΠΈΡΠ»Ρ ΡΡΠ΅ΡΠ΅ΠΊ, ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ chatllm ΠΈ safire, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»ΠΈ Π·Π°Π±ΡΡΡ 209 ΠΊΠ»ΡΡΠ΅ΠΉ ΠΊ OpenAI ΠΈ 320 ΠΊΠ»ΡΡΠ΅ΠΉ ΠΊ Google Cloud.
Π‘ΡΠ΅Π΄ΠΈ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠ²Π»Π΅Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΡΡΠ΅ΡΠ΅ΠΊ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ «.py», ΠΎΡΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .json (610 ΡΡΠ΅ΡΠ΅ΠΊ), .md (270), PKG-INFO (240), METADATA (210), .txt (170), Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ README (209) ΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ test (675). ΠΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ΅ΠΊ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π΅Π΄ΠΎΡΠΌΠΎΡΡΠΎΠΌ ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΉΠ»Ρ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (.cookiecutterrc, .env, .pypirc ΠΈ Ρ.ΠΏ.) ΠΌΠΎΠ³ΡΡ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» «.gitignore», ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π±ΡΠ»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ 43 ΡΠ°ΠΉΠ»Π° .pypirc, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ PyPI. Π 15 ΡΠ»ΡΡΠ°ΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΈΡ Π² PyPI ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ Π΅ΡΡ Π΄Π²Π° ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ PyPI:
- Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ PyPI Π²ΡΡΠ²Π»Π΅Π½Ρ 8 Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠ΅ΠΏΠΎΠ΄Π½ΠΎΡΠΈΠΌΡΡ
ΠΊΠ°ΠΊ ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΡΠΊΠ°ΡΠΈΠΈ, Ρ.Π΅. ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΊ Π½Π΅ΡΠΈΡΠ°Π΅ΠΌΠΎΠΌΡ Π²ΠΈΠ΄Ρ, ΡΡΠ»ΠΎΠΆΠ½ΡΡΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°Π±ΠΎΡΡ. ΠΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π»ΠΈ Π² Π½Π°Π·Π²Π°Π½ΠΈΡΡ
ΡΡΡΠΎΠΊΡ «pyobf» (Pyobftoexe, Pyobfusfile, Pyobfexecute, Pyobfpremium, Pyobflight, Pyobfadvance, Pyobfuse ΠΈ pyobfgood) ΠΈ Π±ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ 2000 ΡΠ°Π·.
ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΠΏΠ°ΠΊΠ΅ΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π±ΡΠ» ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Windows ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ΅ΠΉΠ»ΠΎΠ³Π³Π΅ΡΠ°, ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΠ΅ Π² Chrome ΠΏΠ°ΡΠΎΠ»ΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΡ, Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π·Π²ΡΠΊ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ web-ΠΊΠ°ΠΌΠ΅ΡΠΎΠΉ.
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ Π°ΡΠ΄ΠΈΡΠ° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ pypi.org, ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° «cabotage», Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ Π΄Π»Ρ ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ². ΠΡΠ΄ΠΈΡ ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½ ΠΏΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ OTF (Open Technology Fund). Π Ρ
ΠΎΠ΄Π΅ Π°ΡΠ΄ΠΈΡΠ° Π½Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π° ΠΈΡΡ
ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΈΠ·Π½Π°Π½Ρ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠΌΠ΅ΡΠ΅Π½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΡ
Π²Π°Ρ ΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ cabotage ΠΈ Π²ΡΡΠ²Π»Π΅Π½ΠΎ 29 ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
Π²ΠΎΡΡΠΌΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, 6 — Π½ΠΈΠ·ΠΊΠΈΠΉ, Π° 14 ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ PyPI Ρ AWS SNS, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π½Π° email ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
- Π£ΡΠ΅ΡΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π·Π°Π³ΡΡΠ·ΠΎΠΊ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π±Π΅Π· Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎ ΠΏΠΎΠΏΡΡΠΊΠ°Ρ Π²Ρ ΠΎΠ΄Π°.
- ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Ρ ΡΡΠ΅ΠΉ, Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΡ Π°ΡΠ°ΠΊΠΈ ΠΏΠΎ ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΡΡΠ°.
- ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΠ°Π² Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· cabotage, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²ΠΎΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
- ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΠ°Π² ΡΠ°Π·Π²ΡΡΡΡΠ²Π°Π½ΠΈΡ (deployment) Π² cabotage, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π·.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru