Mopidy: рдкреЛрд░реНрдЯ рдореЛрдкрд┐рдбреА рд╕реЗ рдкрд╛рдпрдерди 3

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдЬреБрд▓ре░ 2014  ┬╖  32рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mopidy/mopidy

рдкрд╛рдпрдерди 3 рдкрд╛рдпрдерди рдХрд╛ рднрд╡рд┐рд╖реНрдп рд╣реИ, рдпрд╣ рдЙрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдкрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд┐рди рдкрд░ Mopidy рддреИрдирд╛рдд рд╣реИ, рдФрд░ рдореБрдЭреЗ asyncio рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдореЗрдВ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП Python 3.3+ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред Mopidy рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрд╛рд╣рд░ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдореЗрдВ Python 3 рдореЗрдВ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХ рд░рд╣рд╛ рд╣реЛред

рдпрд╣ рдореЛрдкрд┐рдбреА рдХреЛ рдкрд╛рдпрдерди 3 рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рд╣рдорд╛рд░реЗ рд░рд╛рд╕реНрддреЗ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдмрдЧ рд╣реИред

  • рдирд┐рд░реНрднрд░рддрд╛:

    • [x] рдкрд╛рдЗрдХреНрдХрд╛ рдкрд╛рдпрдерди 2.6+, 3.2+ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

    • [x] рдЯреЙрд░рдиреЗрдбреЛ рдкрд╛рдпрдерди 2.6+, 3.2+ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

    • рдЬреАрд╕реНрдЯреНрд░реАрдорд░:

    • [x] #225: GStreamer Python рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ gst-python (рдХреЗрд╡рд▓ Python 2) рд╕реЗ PyGI (рдкрд╛рдпрдерди 2+3) рдореЗрдВ рдмрджрд▓реЗрдВред рд╕рдм рдХреБрдЫ PyGI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 0.10 рд╕реЗ 1.x рддрдХ GStreamer рдХреЗ рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

    • [x] #665: рдорд┐рдХреНрд╕рд░ рдХреЛ GStreamer рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдмрдирд╛рдПрдВ, рдХреНрдпреЛрдВрдХрд┐ GStreamer 1.x рдореЗрдВ рдорд┐рдХреНрд╕рд░ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

    • [x] #671: GStreamer рдкрд░ рдирд┐рд░реНрднрд░ рди рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдкреНрд░рд╛рд░реВрдк рд╕рдорд░реНрдерди рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ/рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред PyGI/GStreamer 1.x рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

  • рдХреЛрдб рд╢реИрд▓реА рдХреЛ Python 2+3 рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдВ:

    • [рдПрдХреНрд╕] рдлреНрд▓реЗрдХ 8 рдЪреЗрддрд╛рд╡рдиреА рд╕реНрд╡рдЪреНрдЫ рдХреЛрдбред

    • [x] 2.7 рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдиреЗ рд╕рднреА рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝реЗрдВред

    • [x] рд╣рд░ рдЬрдЧрд╣ from __future__ import unicode_literals рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдмрд╛рдЗрдирд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ b'foo' рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред

    • [x] 2to3 рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдиреЗ рдЧрдП рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдореБрджреНрджреЛрдВ рдХреЛ рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░реЗрдВред

  • рд╡рд┐рдХрд╛рд╕ рд╕рд╣рд╛рдпрддрд╛:

    • [x] рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рдпрдерди 2.7 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд╛рдпрдерди 3 рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝ рд╕рдХреЗрдВред

  • Mopidy-Spotify:

    • [x] рдирдИ libspotify рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, pyspotify 2, рдЬреЛ Python 2.7, 3.2+ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

    • [x] pyspotify 2 рдХреЗ рдКрдкрд░ Mopidy-Spotify рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

  • рдореЛрдкрд┐рдбреА-рдПрдордкреАрдЖрд░рдЖрдИрдПрд╕:

    • [x] рдкрд╛рдЗрдерди-рдЗрдВрдбрд┐рдХреЗрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЯреВ рд▓рд┐рдмрд┐рдВрдбрд┐рдХреЗрдЯ рдХреЛ PyGI рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

    • [x] рдкрд╛рдпрдерди-рдбреАрдмреАрд╕ рдХреЛ рд╢рд╛рдпрдж рдЬреАрдбреАрдмреАрд╕ рджреНрд╡рд╛рд░рд╛ рдкреАрдИрдЬреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рд╡рд┐рд╕реНрддрд╛рд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░:

    • [x] рдкрд╛рдпрдереЙрди 3 рдкрд░ рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХреАрдХрдЯрд░-рдореЛрдкрд┐рдбреА-рдПрдХреНрд╕реНрдЯ рдореЗрдВ рдЯреЗрд╕реНрдЯ рд░рдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

    • [ ] рдЬрдм Mopidy рд╕реНрд╡рдпрдВ Python 2+3 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ Python 2+3 рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ/рд╕рдорд╕реНрдпрд╛рдПрдБ рдмрдирд╛рдПрдБред

  • [x] рдПрдХ рдмрд╛рд░ ~рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди Python 2+3 рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, Mopidy рдореЗрдВ Python 2 рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред
  • [x] Python 2isms рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
  • [x] рдирдИ рдкрд╛рдпрдерди 3 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ asyncioред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЕрднреА рднреА Mopidy рдХреЛ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реВрдБред рдореИрдВ Mopidy рдХреЛ Python 2 рдХреЗ рд╕рд╛рде рдорд░рдиреЗ рдирд╣реАрдВ рджреВрдБрдЧрд╛ред

рдЗрддрд┐рд╣рд╛рд╕

рд╣рдореЗрдВ рдкрд╛рдпрдерди 3 рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдкрд╛рдпрдерди 3 рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ:

  • рдкреАрд╡рд╛рдИрдХреЗрдХреЗрдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЕрдЬрдЧрд░ 3 рд╕рдВрдЧрдд рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ 2011 рдореЗрдВ Mopidy рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ред
  • pyspotify 2.x, Python 3 рд╕рдорд░реНрдерди рдФрд░ рдкреВрд░реНрдг libspotify рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкреБрдирд░реНрд▓реЗрдЦрди рдерд╛ред рдЗрд╕реЗ рдЕрдХреЗрд▓реЗ рд╢реБрд░реВ рд╕реЗ рдЕрдВрдд рддрдХ рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рд▓рдЧ рдЧрдП, рдХрд╛рдо рдЬреЛ рдЕрдм рдЬреНрдпрд╛рджрд╛рддрд░ рд╢реВрдиреНрдп рд╣реИ, Spotify рдХреЗ рд▓рд┐рдП libspotify рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
  • Mopidy рдХрд╛ рдкреЛрд░реНрдЯ GStreamer 0.10/PyGObject рд╕реЗ GStreamer 1.x/PyGI рддрдХ, Mopidy 2.0 рдореЗрдВ рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдореЗрд░реЗ рджреВрд╕рд░реЗ рдкрд┐рддреГрддреНрд╡ рдЕрд╡рдХрд╛рд╢ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдереАред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рдВрдмреЗ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, рдореЗрд░реА рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдЙрджреНрдпрдо рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдВред рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдкрдиреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЙрд╕ рд╕рдордп рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдЧрд▓реЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм рддрдХ Mopidy.js рдФрд░ Mopidy-MPRIS рдХреЛ рдХреБрдЫ рдХреЛрдорд▓ рдкреНрдпрд╛рд░ рдФрд░ рджреЗрдЦрднрд╛рд▓ рдорд┐рд▓реА рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореИрдВ рдкрд╛рдЗрдХреНрдХрд╛ рдХреА рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдЕрдиреНрдп рдЫреЛрдЯреЗ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдИ Mopidy рд╕реЗрдЯрдЕрдкреЛрдВ рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЛ рдПрдХ рдмрдбрд╝реЗ рдХрд╛рд░рдХ рд╕реЗ рдХрдо рдХрд░ рджреЗрдЧрд╛ред

рдЕрдЧрд▓рд╛

рдПрдХ рдмрд╛рд░ рдкрд╛рдЗрдХреНрдХрд╛ 2 рднреЗрдЬ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рдореЛрдкрд┐рдбреА рдХреЛ рдкрд╛рдпрдерди 3 рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╣реИред

рд╡рд╣ рдХрд╛рдо рдХрдм рдкреВрд░рд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреЛрдИ рд╕рдордп рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╕ рдЦреБрдж рдХреЛ рдЕрд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдм рдмрд╛рд╣рд░реА рдХрд╛рд░рдХреЛрдВ рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдкрд░ рдмрд╣реБрдд рдХреБрдЫ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдорджрдж рдХреА рдмрд╛рдд рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЗ рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЕрднреА рднреА рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рдФрд░ рдирд┐рдпрдорд┐рдд рддрд╛рд▓ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреАрдЖрд░ рд╕рдореАрдХреНрд╖рд╛рдПрдВ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╣реА рдбрд┐рдореЛрдЯрд┐рд╡реЗрдЯрд┐рдВрдЧ рдмрди рдЬрд╛рдПрдВрдЧреАред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдмреЛрдЭ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рднреА рдорджрдж рд╣рдореЗрд╢рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдорджрдж рдХрд░рддреА рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЕрдиреНрдп рдкреНрд░рдореБрдЦ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдУрдВ рдХреА рдмрд╛рдд рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡реЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рднреА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдореИрдВ рд╕рднреА рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рдордп рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдЕрдЧрд░ рдПрдХ рдмрд╛рд░ рдореИрдВ рдореЛрдкрд┐рдбреА 3 рдкрд░ рдареАрдХ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рд╡реЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред

рдЬреАрд╡рди рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рд░реА рд╣рд▓рдЪрд▓ рдХреЛ рдПрдХ рддрд░рдл рд░рдЦрдХрд░, рдпрд╣ рди рддреЛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рди рд╣реА рдРрд╕рд╛ рдХрд╛рд░реНрдп рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдиреНрдп рдЪрд▓ рд░рд╣реЗ рд╕рд╛рдорд╛рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдлреЛрдХрд╕ рдмрди рд╕рдХреЗред

рдореЛрдкрд┐рдбреА 3

рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдорд╛рд░реНрдЪ 2017 рдореЗрдВ рдпрд╣рд╛рдВ рдЖрдЦрд┐рд░реА рдпреЛрдЬрдирд╛ рд▓рд┐рдЦреА рдереА, рдЗрд╕рд▓рд┐рдП рдкрд╛рдпрдерди 3 рдХреЛ рдЕрдкрдирд╛рдирд╛ рдЗрддрдирд╛ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдХреЗрд╡рд▓ 2 + 3 рд╕реЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрдерди 2 рд╕реЗ рдХреНрд░рдорд┐рдХ рдХрджрдо рдЙрдард╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред Mopidy 2.x рдиреЗ рддреАрди рд╡рд░реНрд╖реЛрдВ рддрдХ рд╣рдорд╛рд░реА рдХрд╛рдлреА рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХреА рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ Python 2 рдкрд░ рдЕрдЯрдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдФрд░ рд╕реНрдерд┐рд░ рдЬрдЧрд╣ рд╣реЛрдЧреАред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдорд╛рд░реНрдЪ 2017 рд╕реЗ рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ:

  • [x] рдореЛрдкрд┐рдбреА рд╕реЗ рд╕рднреА рдкрджрд╛рд╡рдирдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рд╡рд┐рд╕реНрддреГрдд рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП v3.0 рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рджреЗрдЦреЗрдВред
  • [x] рдкреЛрд░реНрдЯ рдореЛрдкрд┐рдбреА рд╕реЗ рдкрд╛рдпрдерди 3.
  • [x] PyPI рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.0.0-rc1. рдпрд╣ pip install mopidy рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pip install --pre mopidy рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
  • [x] Mopidy org рдХреЗ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ, рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ PyPI рдХреЛ рдкреНрд░реА-рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [ ] рдкреЛрд░реНрдЯ/рд╣реЗрд▓реНрдк рдкреЛрд░реНрдЯ рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдорджрдж рдЪрд╛рд╣рд┐рдП рдереАред
  • [ ] Mopidy org рдореЗрдВ Mopidy рдХреЛрд░ рдФрд░ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдПрдХ рд╕рдордиреНрд╡рд┐рдд рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред

рд╕рднреА 32 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрд░реЗ, рдореИрдВ рдкрд╛рдпрдерди 3 рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдЬреЛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдХрд┐рд╕реА рдХреЗ рдкреИрд░ рдХреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рдХрджрдо рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛

рдореИрдВрдиреЗ jodal/feature/py3-compat рдкрд░ рдПрдХ рд╢рд╛рдЦрд╛ рд╢реБрд░реВ рдХреА рд╣реИ рдЬрд╣рд╛рдБ рдореИрдВрдиреЗ:

  • рдЕрджреНрдпрддрди рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдкрд╛рдпрдерди 3 рдХреЗ рддрд╣рдд рдореЛрдкрд┐рдбреА рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ
  • tox.ini рд╕реЗрдЯрдЕрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛
  • Py3 рдореБрджреНрджреЛрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓-рджрд░-рдореЙрдбреНрдпреВрд▓ рдареАрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛, рдкрд╛рдпрдерди 2 рдФрд░ рдкрд╛рдпрдерди 3 рджреЛрдиреЛрдВ рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛

рдореИрдВрдиреЗ рдирд╡рдВрдмрд░ рдХреЗ рдмрд╛рдж рд╕реЗ рдЗрд╕реЗ рдЫреБрдЖ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдореЛрдкрд┐рдбреА 2.0.0 рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╢рд╛рдЦрд╛ рдХреЛ рд░рд┐рдмреЗрд╕ рдХрд┐рдпрд╛ рдерд╛ред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 1000 рдкрд░реАрдХреНрд╖рдг рддрдп рдХрд┐рдП рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд▓рдЧрднрдЧ 240 рд╢реЗрд╖ рд╣реИрдВред

рдЖрдЧреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ:

  1. рдореЙрдбреНрдпреВрд▓-рджрд░-рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рдХреА рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдВред
  2. рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд▓реЗрдВ рдФрд░ Mopidy 2.x рдореЗрдВ рдЬрд┐рддрдирд╛ рд╣реЛ рд╕рдХреЗ рдЗрд╕реЗ рдЙрддрд╛рд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдореЙрдбреНрдпреВрд▓-рджрд░-рдореЙрдбреНрдпреВрд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрдЬрд╛рдп рдпреВрдирд┐рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдХреЛ рдЦрддрд░реЗ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ) рдХрд┐ рдореИрдВ 3.0 рд░рд┐рд▓реАрдЬ рддрдХ рдореЛрдкрд┐рдбреА рдореЗрдВ рдирд╣реАрдВ рдЙрддрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдЬрд╣рд╛рдВ рд╣рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдХреИрдиреНрдЯ-рд▓реИрдВрдб-рддрдХ-3.0 рдЕрдВрддрд░ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  3. рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рдвреВрдВрдврддреЗ рд╣реБрдП, рдкрд╛рдпрдерди 3 рдХреЗ рд╕рд╛рде рдореЛрдкрд┐рдбреА рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

рдареАрдХ рд╣реИ, рдореИрдВ рдЙрд╕ рд╢рд╛рдЦрд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдЬреЛ рднреА рдкрд░реАрдХреНрд╖рдг рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЙрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛

рд╣реИрд▓реЛ рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЛрдИ рдЦрдмрд░?

рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рдврд╝реЗ рддреАрди рд╕рд╛рд▓ рдмрд╛рдХреА рд╣реИрдВ

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИрдВ?

рдореЛрдкрд┐рдбреА рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдкрд╛рдпрдерди 3 рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓рд╛ рдХрд╛рдо рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдХрд╛рдо рдореЗрдВ рдХрд╛рдлреА рд╡реНрдпрд╕реНрдд рд╣реВрдВред

рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛, рдЕрдиреБрдорд╛рдирд┐рдд рдХреНрд░рдо рдореЗрдВ, рдирд┐рдореНрди рд╣реИ:

  • [x] Mopidy-MPRIS рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рдареАрдХ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдпрд╣ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХреЗред рдпрд╣ рдереЛрдбрд╝рд╛ рдЙрдмрд╛рдК рд╣реИ рдФрд░ рдореЗрд░реЗ рджрд░рд╡рд╛рдЬреЗ рдкрд░ рдореАрд▓ рд╣реИред
  • [x] Mopidy рд╕реЗ рд╕рднреА рдкрджрд╛рд╡рдирдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдПрдХ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рдХрд░реЗрдВред рд╡рд┐рд╕реНрддреГрдд рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рджреЗрдЦреЗрдВред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВред
  • [x] рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ Mopidy org рдХреЗ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [x] рдкреЛрд░реНрдЯ рдореЛрдкрд┐рдбреА рд╕реЗ рдкрд╛рдпрдерди 2 + 3 рдФрд░ рдПрдХ рдФрд░ рдмрдбрд╝реА рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [ ] Mopidy org рдореЗрдВ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХреЗрд╡рд▓ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [ ] рдкреЛрд░реНрдЯ/рд╕рд╣рд╛рдпрддрд╛ рдЕрдиреНрдп рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рдФрд░ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЖрдЧреНрд░рд╣ рдХрд░реЗрдВред
  • [ ] Mopidy рд╕реЗ рд╣реА Python 2 рд╕рдкреЛрд░реНрдЯ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдХрд╛рдо рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдирд┐рдХрд╛рдп рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ: рдкрд╛рдпрдерди 3 рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pyspotify рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ (рдореЗрд░реЗ рдЦрд╛рд▓реА рд╕рдордп рдХреЗ рджреЛ рд╕рд╛рд▓ рдпрд╣рд╛рдВ рдмрд┐рддрд╛рдП рдЧрдП рдереЗ) рдФрд░ Mopidy рдХреЛ GStreamer 1.x (рдпрд╣рд╛рдВ рдмрд┐рддрд╛рдП рдЧрдП рдЦрд╛рд▓реА рд╕рдордп рдХрд╛ рдПрдХ рдкрд┐рддреГрддреНрд╡ рдЕрд╡рдХрд╛рд╢) рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ред

рдореИрдВ рд╡рд╣рд╛рдБ рдкрд╣реБрдБрдЪреВрдБрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдЕрдЧрд░ рд▓реЛрдЧ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рд╣реА рдореЛрдкрд┐рдбреА 2+3 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдорджрджрдЧрд╛рд░ рдкрд╛рдпрдерди 3 рдХреЛ рдкреЛрд░реНрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @jodalред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ Python3 рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдореИрдВ mopidy рдореЗрдВ рдирдпрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдХрднреА рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ
рдХреНрдпрд╛ рдЖрдкрдХреА рдХреБрдЫ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдПрд▓ рдорд┐ред, 22 рдбреЗ рдорд╛рд░реНрдЪред рдбреЗ 2017 рдП рд▓рд╛ (рдУрдВ) 07:08, рдлреНрд░реЗрдбрд░рд┐рдХ рдЧреНрдиреЛрдбрдЯрдХреЗ <
рд╕реВрдЪрдирд╛рдПрдВ@github.com> рд╡рд┐рд╡рд░рдг:

рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @jodal https://github.com/jodal ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/mopidy/mopidy/issues/779#issuecomment-288352544 , рдпрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
рд╕реВрддреНрд░
https://github.com/notifications/unsubscribe-auth/AHQMO8UqLNKzfVQZAZJ3Pnjx2N7MsHg4ks5roPMEgaJpZM4CMq8p
.

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдорджрдж рдЬреЛ рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдХреБрдЫ рдмреЛрдЭ рдХреЛ рдореБрдХреНрдд рдХрд░рддреА рд╣реИ, рдмрдбрд╝реЗ рдмрд╛рд▓реЛрдВ рд╡рд╛рд▓реЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдЬреИрд╕реЗ рдкрд╛рдпрдерди 3 рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рдпрд╛ рддреЛ рдмрдбрд╝реЗ рдореБрджреНрджреЛрдВ рдкрд░ рдЦреБрдж рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдмрдбрд╝реЗ рдпреЛрдЧрджрд╛рди рдкрд░ рдЙрдЪрд┐рдд рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд╛рдлреА рдердХрд╛рдК рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ред рджреЛ рдкреНрд░рдореБрдЦ рдЙрджрд╛рд╣рд░рдг рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдирдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдмрдЧреЛрдВ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдгреЛрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдореБрджреНрджреЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@jodal рд╣рдо рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ python3 рдХреЗ рд╕рд╛рде рдХрд╣рд╛рдБ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рд╛рджрд░

@jodal py3-compat рд╢рд╛рдЦрд╛ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдереЛрдбрд╝рд╛ рд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ ... рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдирдпрд╛ рдХрд╣реАрдВ рд╣реИ?
рдореИрдВ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЧрдВрджрд╛ py2 рдХрд╛рдордХрд╛рдЬ рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрд╕реНрдерд┐рд░ mopidy рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреБрдЫ py3 рдмрдЧ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕ рдкрд░ рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ? рдХреНрдпрд╛ mopidy рдХрд╛ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ python3 рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдирд┐рд░реНрднрд░рддрд╛ рдкрд╛рдЗрд▓рд╛рд╕реНрдЯ рдЬрд▓реНрдж рд╣реА рд╡рд┐рд░рд╛рд╕рдд рдкрд╛рдпрдерди 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджреЗрдЧрд╛: https://github.com/pylast/pylast/issues/265

рдирдорд╕реНрддреЗ,
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдбреЗрдмрд┐рдпрди рдореЗрдВ рдкрд╛рдЗрд▓рд╛рд╕реНрдЯ рд░рдЦрддрд╛ рд╣реВрдВред рдореИрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг ([1]) рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рдЕрдм рдкрд╛рдпрдерди 2.7 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рдореИрдВ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдлрд░рд╡рд░реА рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ mopidy рдЕрднреА рднреА Python 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдЕрдЧрд▓реЗ рдбреЗрдмрд┐рдпрди рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЬреЛ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЛрдкрд┐рдбреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдЯреБрдХрдбрд╝рд╛ рд╣реИ: рд╕реНрдорд╛рдЗрд▓реА:

рдХреНрдпрд╛ рдХреЛрдИ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╢рд╛рдЦрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ? рдореИрдВ рдРрд╕рд╛ рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ

рд╕рд╛рджрд░

@jodal рдХреНрдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрд╣рд╛рдВ рдЕрд╡рд░реЛрдзрдХ рд╣реИрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рдЬрд╛рдП рдФрд░ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рддреЛ рдЬреЛ рд▓реЛрдЧ рдкрд╛рдпрдерди (рдореЗрд░реЗ рдЬреИрд╕реЗ) рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд╡реЗ рдЕрднреА рднреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреАрдПрд╕ рдореБрдЭреЗ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╕реНрддрд╛рд░ (GMusic, Iris, Podcast, Scrobbler, Spotify) рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЗрд╕ рд╕рдордп рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдХреГрдкрдпрд╛ рдЕрдЬрдЧрд░ 3 рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдкрд╛рдпрдерди 3 рд╕рдВрд╕реНрдХрд░рдг рдХрдм рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ рдЕрднреА рднреА Mopidy рдХреЛ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реВрдБред рдореИрдВ Mopidy рдХреЛ Python 2 рдХреЗ рд╕рд╛рде рдорд░рдиреЗ рдирд╣реАрдВ рджреВрдБрдЧрд╛ред

рдЗрддрд┐рд╣рд╛рд╕

рд╣рдореЗрдВ рдкрд╛рдпрдерди 3 рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реА рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдкрд╛рдпрдерди 3 рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ:

  • рдкреАрд╡рд╛рдИрдХреЗрдХреЗрдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЕрдЬрдЧрд░ 3 рд╕рдВрдЧрдд рдХреЗ рдмрд╛рдж рд╕реЗ рдпрд╣ 2011 рдореЗрдВ Mopidy рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛ред
  • pyspotify 2.x, Python 3 рд╕рдорд░реНрдерди рдФрд░ рдкреВрд░реНрдг libspotify рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкреБрдирд░реНрд▓реЗрдЦрди рдерд╛ред рдЗрд╕реЗ рдЕрдХреЗрд▓реЗ рд╢реБрд░реВ рд╕реЗ рдЕрдВрдд рддрдХ рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рд▓рдЧ рдЧрдП, рдХрд╛рдо рдЬреЛ рдЕрдм рдЬреНрдпрд╛рджрд╛рддрд░ рд╢реВрдиреНрдп рд╣реИ, Spotify рдХреЗ рд▓рд┐рдП libspotify рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
  • Mopidy рдХрд╛ рдкреЛрд░реНрдЯ GStreamer 0.10/PyGObject рд╕реЗ GStreamer 1.x/PyGI рддрдХ, Mopidy 2.0 рдореЗрдВ рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдореЗрд░реЗ рджреВрд╕рд░реЗ рдкрд┐рддреГрддреНрд╡ рдЕрд╡рдХрд╛рд╢ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдереАред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рдВрдмреЗ рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдЗрд╢реНрдпреВ рдЯреНрд░реИрдХрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, рдореЗрд░реА рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдЙрджреНрдпрдо рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдВред рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдзреАрд░реЗ-рдзреАрд░реЗ рдЕрдкрдиреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЙрд╕ рд╕рдордп рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдЧрд▓реЗ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдм рддрдХ Mopidy.js рдФрд░ Mopidy-MPRIS рдХреЛ рдХреБрдЫ рдХреЛрдорд▓ рдкреНрдпрд╛рд░ рдФрд░ рджреЗрдЦрднрд╛рд▓ рдорд┐рд▓реА рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдореИрдВ рдкрд╛рдЗрдХреНрдХрд╛ рдХреА рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдЕрдиреНрдп рдЫреЛрдЯреЗ рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдИ Mopidy рд╕реЗрдЯрдЕрдкреЛрдВ рдХреЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп рдХреЛ рдПрдХ рдмрдбрд╝реЗ рдХрд╛рд░рдХ рд╕реЗ рдХрдо рдХрд░ рджреЗрдЧрд╛ред

рдЕрдЧрд▓рд╛

рдПрдХ рдмрд╛рд░ рдкрд╛рдЗрдХреНрдХрд╛ 2 рднреЗрдЬ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рдореЛрдкрд┐рдбреА рдХреЛ рдкрд╛рдпрдерди 3 рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рд╣реИред

рд╡рд╣ рдХрд╛рдо рдХрдм рдкреВрд░рд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреЛрдИ рд╕рдордп рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╕ рдЦреБрдж рдХреЛ рдЕрд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдм рдмрд╛рд╣рд░реА рдХрд╛рд░рдХреЛрдВ рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдкрд░ рдмрд╣реБрдд рдХреБрдЫ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдорджрдж рдХреА рдмрд╛рдд рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рд╕реАрдзреЗ рддреМрд░ рдкрд░ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЗ рдирдП рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЕрднреА рднреА рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рдФрд░ рдирд┐рдпрдорд┐рдд рддрд╛рд▓ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреАрдЖрд░ рд╕рдореАрдХреНрд╖рд╛рдПрдВ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╣реА рдбрд┐рдореЛрдЯрд┐рд╡реЗрдЯрд┐рдВрдЧ рдмрди рдЬрд╛рдПрдВрдЧреАред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдмреЛрдЭ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рднреА рдорджрдж рд╣рдореЗрд╢рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдорджрдж рдХрд░рддреА рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЕрдиреНрдп рдкреНрд░рдореБрдЦ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдУрдВ рдХреА рдмрд╛рдд рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡реЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рднреА рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВред рдореИрдВ рд╕рднреА рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рдордп рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред рдЕрдЧрд░ рдПрдХ рдмрд╛рд░ рдореИрдВ рдореЛрдкрд┐рдбреА 3 рдкрд░ рдареАрдХ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реВрдВ рддреЛ рд╡реЗ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИред

рдЬреАрд╡рди рдФрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рд░реА рд╣рд▓рдЪрд▓ рдХреЛ рдПрдХ рддрд░рдл рд░рдЦрдХрд░, рдпрд╣ рди рддреЛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рди рд╣реА рдРрд╕рд╛ рдХрд╛рд░реНрдп рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдЕрдиреНрдп рдЪрд▓ рд░рд╣реЗ рд╕рд╛рдорд╛рди рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдмрд╛рдд рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдлреЛрдХрд╕ рдмрди рд╕рдХреЗред

рдореЛрдкрд┐рдбреА 3

рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдорд╛рд░реНрдЪ 2017 рдореЗрдВ рдпрд╣рд╛рдВ рдЖрдЦрд┐рд░реА рдпреЛрдЬрдирд╛ рд▓рд┐рдЦреА рдереА, рдЗрд╕рд▓рд┐рдП рдкрд╛рдпрдерди 3 рдХреЛ рдЕрдкрдирд╛рдирд╛ рдЗрддрдирд╛ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдХреЗрд╡рд▓ 2 + 3 рд╕реЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрдерди 2 рд╕реЗ рдХреНрд░рдорд┐рдХ рдХрджрдо рдЙрдард╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред Mopidy 2.x рдиреЗ рддреАрди рд╡рд░реНрд╖реЛрдВ рддрдХ рд╣рдорд╛рд░реА рдХрд╛рдлреА рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХреА рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ Python 2 рдкрд░ рдЕрдЯрдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдФрд░ рд╕реНрдерд┐рд░ рдЬрдЧрд╣ рд╣реЛрдЧреАред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдорд╛рд░реНрдЪ 2017 рд╕реЗ рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ:

  • [x] рдореЛрдкрд┐рдбреА рд╕реЗ рд╕рднреА рдкрджрд╛рд╡рдирдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рд╡рд┐рд╕реНрддреГрдд рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП v3.0 рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рджреЗрдЦреЗрдВред
  • [x] рдкреЛрд░реНрдЯ рдореЛрдкрд┐рдбреА рд╕реЗ рдкрд╛рдпрдерди 3.
  • [x] PyPI рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.0.0-rc1. рдпрд╣ pip install mopidy рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pip install --pre mopidy рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред
  • [x] Mopidy org рдХреЗ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ, рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ PyPI рдХреЛ рдкреНрд░реА-рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [ ] рдкреЛрд░реНрдЯ/рд╣реЗрд▓реНрдк рдкреЛрд░реНрдЯ рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рдорджрдж рдЪрд╛рд╣рд┐рдП рдереАред
  • [ ] Mopidy org рдореЗрдВ Mopidy рдХреЛрд░ рдФрд░ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдПрдХ рд╕рдордиреНрд╡рд┐рдд рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред

рдЪреВрдВрдХрд┐ рдкрд╛рдВрдЪ рдорд╣реАрдиреЗ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЬрд┐рд╕ рдкрд╛рдЗрдХреНрдХрд╛ рд░рд┐рд▓реАрдЬрд╝ рдХреА рдмрд╛рдд рдХреА рдереА, рдЙрд╕реЗ рдЫрд╣ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдкрд╛рдЗрдХреНрдХрд╛ 2.0 рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддрдм рд╕реЗ, рдореИрдВрдиреЗ рдореЛрдкрд┐рдбреА рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ:

  • рдмрдЧрдлрд┐рдХреНрд╕ рд░рд┐рд▓реАрдЬрд╝ 2.2.3 рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ release-2.2 рд╢рд╛рдЦрд╛ рдореЗрдВ рдХреБрдЫ рднреА рд░рд┐рд▓реАрдЬрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • develop рд╢рд╛рдЦрд╛ рдореЗрдВ рдЬреЛ Mopidy 3.0 рдмрди рдЬрд╛рдПрдЧреА, рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрджрд╛рд╡рдирдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рд╢рд╛рдпрдж рд╣реИ:

  • [x] рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ (#1452)
  • [x] рдмрд╛рдЗрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкрд╛рдпрдерди 2 рдПрдкреАрдЖрдИ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкрд╛рдпрдерди 3 рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдПрдкреАрдЖрдИ рдореЗрдВ рдЬрд╛рдиреЗ рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрдереЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рддрдп рдХрд░реЗрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВред (рдЕрднреА рддрдХ рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред)
  • [x] рдкрд╛рдпрдерди 3 рдкрд░ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдкрд╛рд╕ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдореЛрдкрд┐рдбреА рдХреЛрд░, рдпрд╛ рдореЛрдкрд┐рдбреА-рд╕рд╛рдЙрдВрдбрдХреНрд▓рд╛рдЙрдб рдкреНрд▓рдЧрдЗрди рдХреЛ python3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЖрдкрдХреЗ рдЕрдм рддрдХ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @jodal!

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЗ рдкрд╛рдпрдерди 3 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдкреИрдХреЗрдЬрд┐рдВрдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреЗ рд╣реБрдП) рд╣рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВ make -C docs SPHINXBUILD=sphinx-build-2 man рд▓реЗрдХрд┐рди рдЗрд╕реЗ sphinx-build-3 рд▓рд┐рдП рдмрджрд▓ рд░рд╣рд╛ рдерд╛ рдмрд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ:

make: Entering directory '/home/builder/aports/community/mopidy/src/Mopidy-3.0.0a1/docs'
sphinx-build-3 -b man -d _build/doctrees   . _build/man
Running Sphinx v1.8.4

Configuration error:
The configuration file (or one of the modules it imports) called sys.exit()

рдпрд╣ 2.2.3 рдФрд░ 3.0.0a1 рджреЛрдиреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЕрднреА рддрдХ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ v3 рд╡реИрд╕реЗ рднреА рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, рдФрд░ рдЬрдирд╡рд░реА рдореЗрдВ python2 рдХрд╛ рдЬреАрд╡рди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпрд╛ v3 рдореЗрдВ python2 рд╕рдВрдЧрддрддрд╛ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ?

@tmccombs рдиреЗ рдХрд╣рд╛:

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ v3 рд╡реИрд╕реЗ рднреА рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, рдФрд░ рдЬрдирд╡рд░реА рдореЗрдВ python2 рдХрд╛ рдЬреАрд╡рди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпрд╛ v3 рдореЗрдВ python2 рд╕рдВрдЧрддрддрд╛ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ?

рдирд╣реАрдВ, рд╣рдо Mopidy 3 рдореЗрдВ Python 2 рдХреА рдЕрдиреБрдХреВрд▓рддрд╛ рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рдлрд░рд╡рд░реА рд╕реЗ рдЦреБрдж рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдирд╛:

рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдорд╛рд░реНрдЪ 2017 рдореЗрдВ рдпрд╣рд╛рдВ рдЖрдЦрд┐рд░реА рдпреЛрдЬрдирд╛ рд▓рд┐рдЦреА рдереА, рдЗрд╕рд▓рд┐рдП рдкрд╛рдпрдерди 3 рдХреЛ рдЕрдкрдирд╛рдирд╛ рдЗрддрдирд╛ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЕрдм рдореБрдЭреЗ рдХреЗрд╡рд▓ 2 + 3 рд╕реЗ рдХреЗрд╡рд▓ рдкрд╛рдпрдерди 3 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрдерди 2 рд╕реЗ рдХреНрд░рдорд┐рдХ рдХрджрдо рдЙрдард╛рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦрддрд╛ред Mopidy 2.x рдиреЗ рддреАрди рд╡рд░реНрд╖реЛрдВ рддрдХ рд╣рдорд╛рд░реА рдХрд╛рдлреА рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХреА рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ Python 2 рдкрд░ рдЕрдЯрдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдФрд░ рд╕реНрдерд┐рд░ рдЬрдЧрд╣ рд╣реЛрдЧреАред

@PureTryOut рдиреЗ рдХрд╣рд╛:

рдпрд╣ 2.2.3 рдФрд░ 3.0.0a1 рджреЛрдиреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЕрднреА рддрдХ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

Mopidy рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЕрднреА рддрдХ Python 3 рдореЗрдВ рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЕрднреА рдЕрдиреНрдп рд╕рд░рд▓реАрдХрд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣рд┐рд╖реНрдХреГрдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд╛рдЗрдерди 3 рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЗ рд╕рд╛рде рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдПрдВрдЧреЗред

рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ (2.4.0?) рдкрд╛рдпрдерди 3 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ? рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рддрд░рдг рдЕрдкрдиреЗ рдкрд╛рдпрдерди 2 рдкреИрдХреЗрдЬ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЕрд▓реНрдкрд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ (3.11, рдЕрдЧрд▓реЗ рд╕рд╛рд▓ рдЬрдирд╡рд░реА рдХреЗ рдЕрдВрдд) рддрдХ рдкрд╛рдпрдерди 2 рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдореЛрдкрд┐рдбреА рдХреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдпрд╣ рддрдм рддрдХ рдкрд╛рдпрдерди 3 рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред

Mopidy 3.0 рдкрд╛рдпрдерди 3 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рдпреЛрдЬрдирд╛ рд╡рд░реНрд╖ рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рд╣реИред

рд╣рд╛рдп @jodal , рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╣рдлреНрддреЛрдВ рдореЗрдВ рдХреБрдЫ рдкрд╛рдпрдерди 3 рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрдХреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рддреЛ рд╕реАрдзреЗ mopidy рдореЗрдВ рдпрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рд╣рд╛рдп @zubieta!

рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╛рдпрдерди 3 рдкрд░ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХрд╛ ~ 10% рдЪрд▓рд╛рддрд╛ рд╣реИред рдЬрд▓реНрдж рд╣реА рдХреБрдЫ рдкреАрдЖрд░ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдмрдврд╝рд╛рдХрд░ ~ 20% рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреАрдЖрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХреА рдирдХрд▓ рди рдХрд░реЗрдВ, рдФрд░ рдХреБрдЫ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдирдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП #1809 рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВред

рдЬреИрд╕реЗ рд╣реА рдореЛрдкрд┐рдбреА рдХреЛрд░ рдкрд╛рдпрдерди 3 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ Mopidy рдФрд░ Python 3 рдкрд░ рд╕реНрдЯреЗрдЯрд╕ рдЕрдкрдбреЗрдЯ рдХрд╛ рд╕рдордп рд╣реИ ...

Mopidy 3.0.0a2 рдкрд╛рдпрдерди 3 рдкрд░ рдЪрд▓рддрд╛ рд╣реИ: рдЯрд╛рдбрд╛:

рдореЛрдкрд┐рдбреА рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдореЗрдВ 2016 рдХрд╛ рд╣рд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЕрдм рдкрд╛рдпрдерди 2.7 рдФрд░ рдкрд╛рдпрдерди 3.7 рджреЛрдиреЛрдВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рд╕рд╛рд░реЗ рдХрд╛рдо рдХреЛ develop рдмреНрд░рд╛рдВрдЪ рдореЗрдВ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @kingosticks рдХреЛ рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА develop рд╢рд╛рдЦрд╛ рдЬрд╛рд░реА рдХреА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ PyPI рдХреЛ Mopidy 3.0.0a2 рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

python3.7 -m pip install --pre mopidy

рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ рдкрд╛рд╕рд┐рдВрдЧ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рд╣реЛрдиреЗ, рдПрдордкреАрдбреА рдФрд░ рдПрдЪрдЯреАрдЯреАрдкреА рдореЗрдВ рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдФрд░ рдореБрдЯреНрдареА рднрд░ рдПрдордкреА3 рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рд╣реИред

рдЖрдЧреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ :arrow_right:

Mopidy 3.0.0a2 рд╢рд╛рдпрдж рдЕрдм рддрдХ рдХрд╛ рдПрдХрдорд╛рддреНрд░ Mopidy рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдЧрд╛ рдЬреЛ Python 2 рдФрд░ 3 рджреЛрдиреЛрдВ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред рд╣рдо рддреБрд░рдВрдд Python 2.7 рд╕рдкреЛрд░реНрдЯ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рдФрд░ Mopidy рдХреЛ рдПрдХ рдХреНрд▓реАрдирд░ рдФрд░ рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ Python рдХреЛрдб рдмреЗрд╕ рдмрдирд╛рдПрдВрдЧреЗред

рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ рдХреА рдпреЛрдЬрдирд╛ рд▓рдЧрднрдЧ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • [x] Mopidy рд╕реЗ Python 2.7 рд╕рдкреЛрд░реНрдЯ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж рд╕рд╛рдл рдХрд░реЗрдВред
  • [x] рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд╛рдпрдерди 3.8 рд╕рдорд░реНрдерд┐рдд рд╣реИред
  • [x] рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмреНрд▓реИрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВред
  • [x] рдПрдХ рдФрд░ рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЬ рдХрд░реЗрдВред
  • [ ] v3.0 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░реЗрдВред
  • [ ] рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [ ] рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрдЬреЗ рдЧрдП рдХрд┐рд╕реА рднреА рдмрдЧ рдХреЛ рдареАрдХ рдХрд░реЗрдВред
  • [ ] рдПрдХ рд░рд┐рд▓реАрдЬ рдЙрдореНрдореАрджрд╡рд╛рд░ рдмрдирд╛рдПрдВред
  • [ ] рдПрдХ рдмрд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдкрд░реНрдпрд╛рдкреНрдд рдмрдбрд╝реЗ рд╕реЗрдЯ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░ рд▓рд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж...
  • [ ] рдореЛрдкрд┐рдбреА 3.0 рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ рдХрд░реЗрдВ .

рдорджрдж рдЪрд╛рд╣рд┐рдП :heart_eyes:

3.0 рдлрд╝рд╛рдЗрдирд▓ рдХреА рдУрд░ рдорд╛рд░реНрдЪ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░, рд╣рдореЗрдВ "mopidy" рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ рдкрд╛рдП рдЧрдП PyPI рдкрд░ 122 рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рдмрд╛рдХреА рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ ред

рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП:

  • [ ] рдкреЛрд░реНрдЯ рдЯреВ рдкрд╛рдпрдерди >= 3.7. рдкрд╛рдпрдерди 2.7 рд╕рдорд░реНрдерди рдбреНрд░реЙрдк рдХрд░реЗрдВред
  • [ ] рдПрдХреНтАНрд╕рдЯреЗрдВрд╢рди рдХреБрдХреАрдХрдЯрд░ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗрдЯрдЕрдк рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ . рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рд╕реНрд╡рдпрдВ рдХреБрдЫ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛, рддреЛ рдореИрдВ рдХреБрдХреАрдХрдЯрд░ рдХреЛ рдЬрд▓реНрдж рд╣реА рдЕрдкрдбреЗрдЯ рдХрд░ рджреВрдВрдЧрд╛ред
  • [ ] PyPI рдХреЛ рдкреЛрд░реНрдЯ рдХреА рдкреНрд░реА-рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред
  • [ ] Mopidy 3.0 рдлрд╝рд╛рдЗрдирд▓ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, PyPI рдХреЛ рдлрд╝рд╛рдЗрдирд▓ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред

76 рдХрдорд┐рдЯ, 204 рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓реА рдЧрдИрдВ, 9832 рдЗрдВрд╕рд░реНрд╢рди (+), 9612 рдбрд┐рд▓реАрдЯ (-) рдмрд╛рдж рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдкреНрд░реА-рд░рд┐рд▓реАрдЬрд╝ рд╣реИ: Mopidy 3.0.0a3 рдЕрдм PyPI рдкрд░ рд╣реИред рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

python3 -m pip install --pre mopidy

3.0.0a2 рдХреЗ рдмрд╛рдж рд╕реЗ рдирдпрд╛:

  • рдкрд╛рдпрдерди 2.7 рд╕рдорд░реНрдерди рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╡рд┐рд░рд╛рд╕рдд/рд╕рдВрдЧрддрддрд╛ рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

    • mopidy.compat рдореЙрдбреНрдпреВрд▓ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред

    • # encoding: utf-8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЪрд▓реА рдЧрдИрдВред

    • from __future__ ... рдЖрдпрд╛рдд рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП рд╣реИрдВред

    • object рд╕рднреА рдЙрдкрд╡рд░реНрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП рд╣реИрдВред

    • .encode() рдФрд░ .decode() рдЕрдм рд╕реНрдкрд╖реНрдЯ "utf-8" рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред

  • рд╕реНрд░реЛрдд рдХреЛрдб black рд╕рд╛рде рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реИред :рдХрд╛рд▓рд╛ рджрд┐рд▓:
  • isort рдЕрдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЖрдпрд╛рдд рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • mock рдХреЛ unittest.mock рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рдпреВрдирд┐рдЯреЗрд╕реНрдЯ рдЕрднрд┐рдХрдерди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд╛рдЗрдЯреЗрд╕реНрдЯ assert рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдмреЗрд╣рддрд░ рдкрдардиреАрдпрддрд╛ рдФрд░ рдмреЗрд╣рддрд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред
  • % рдФрд░ .format() рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ f-рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рд╕рднреА рд▓рд┐рдВрдЯрд░ рдкрд╛рдпрдерди 3 рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
  • рдбреЙрдХреНрд╕ рдкрд╛рдпрдерди 3 рдкрд░ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
  • CI рдореЗрдВ рдЯреЗрд╕реНрдЯ Python 3.7 рдХреЗ рдЕрд▓рд╛рд╡рд╛ Python 3.8 рдкрд░ рдЪрд▓рддрд╛ рд╣реИред
  • setup.py рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ setup.cfg рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • tox.ini , dev-requirements.txt , рдФрд░ docs/requirements.txt рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рд╕рднреА рдХреЛ setup.cfg рдореЗрдВ "рдЕрддрд┐рд░рд┐рдХреНрдд" рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛ рдЕрдм python3 -m pip install -e ".[dev]" рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЧрдИ рд╣реИред

рдЖрдЧреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЕрднреА рднреА рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред

Mopidy рдХреЛрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдпрд╣рд╛рдБ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

Mopidy 3.0 рдлрд╝рд╛рдЗрдирд▓ рдХреЗ рдмрд╛рдХреА рд░рд╛рд╕реНрддреЗ v3.0 рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдореЗрдВ рдЯреНрд░реИрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ:
https://github.com/mopidy/mopidy/milestone/55

рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЛрд░реНрдб рдкрд░ Python 3 рдХреЗ рдкреНрд░рдореБрдЦ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://github.com/orgs/mopidy/projects/2

рдпрджрд┐ рдЖрдк рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ Mopidy рдХреЛ Python 3 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдЦреЛрд▓реЗрдВ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

weilbith picture weilbith  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pnijhara picture pnijhara  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

altano picture altano  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

artjeck picture artjeck  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mczerski picture mczerski  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ