Servo: рдХрд┐рд╕реА рднреА рд╕рдкреЛрд░реНрдЯ рдХреНрд░реЗрдЯ рдХреЛ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдпрд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕-рдЪреЗрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рд╕рд┐рддре░ 2013  ┬╖  27рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: servo/servo

рдпреЗ tidy.py рдореЗрдВ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╣рд░ рдЪреАрдЬ рдкрд░ рдорд╛рдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ tidy.py рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдпрд╣ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡реЗ рдкрд░рд┐рд╡рд░реНрддрди рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде ./mach test-tidy рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ

"рд╣рдорд╛рд░реЗ" рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ (рдЬрд┐рд╕реЗ https://github.com/servo/ рдХреЗ рддрд╣рдд рдЧреИрд░-рдХрд╛рдВрдЯреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдЕрд▓рдЧ-рдЕрд▓рдЧ рднрдВрдбрд╛рд░реЛрдВ рдореЗрдВ рд╣реИ рдФрд░ рдХрд╛рд░реНрдЧреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП tidy.py рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рдирд╣реАрдВ рд╣реИред рддреЛ рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдм рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рдордиреЗ рдХрд╛рд░реНрдЧреЛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдерд╛ред

рдХреНрдпрд╛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдкреЛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ? рд╡реЗ рд░реЗрдкреЛ рд╕рднреА рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдкреЛ рдХрд╛ рдЕрдкрдирд╛ рдЕрд▓рдЧ рд╕реАрдЖрдИ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ tidy.py рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рддрд┐рдпрд╛рдВред

рдПрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ? рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ CI рдХреЗ рджреМрд░рд╛рди рдЪрд▓рд╛рдПрдВ? рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрдкрд╛рдп рд╣реИрдВред

рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк: tidy рдХреЛ PyPi рдореЗрдВ servo_tidy рд░реВрдк рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЬрдм рднреА рд╣рдо рд╕рд╛рдл рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЬреИрдХ рдиреЗ рдореБрдЭреЗ рд╣рд░рд╛ рджрд┐рдпрд╛

@frewsxcv рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрд░реА рдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдЕрдзрд┐рдХ рдареЛрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдареАрдХ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрд╛ рд╣реИ рдФрд░ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЪреБрдиреМрддреА рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред рдореИрдВ рдХреБрдЫ рднреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛; рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде #6999 рдПрдХ рд╕рд╛рде рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреБрдЫ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдБ:

  1. рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг (рдмреНрд▓реАрд╣?) рдХрд┐рд╕реА рднреА mach рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдкрд░, рдкрд╛рдпрдерди рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг (рдЬреЛ рдХрд╣реАрдВ .pyenv/ рдпрд╛ python/.pyenv/ ) рдмрдирд╛/рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдЧрд╛ред рдлрд┐рд░ рд╣рдо python/requirements.txt рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд/рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗ)ред рдпрд╣ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкреЗрдбрд╝ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ PyPi рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛:

    • python/mozdebug

    • python/mozinfo

    • python/mozlog

    • dependencies/*

    • python/toml

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

  1. рдкреИрдХреЗрдЬ tidy.py ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╕рд┐рд░реНрдл python/tidy/tidy.py рдФрд░ python/tidy/setup.py ред
  2. рдЕрдиреНрдп рд░реЗрдкреЛ рдореЗрдВ tidy.py ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВ:

    1. рдЗрд╕реЗ PyPi рдкрд░ рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВред рдЬрдм рддрдХ рд╣рдо рдкрд╛рдЗрдерди рдкреИрдХреЗрдЬ рдХреЛ рдмрджрд▓рдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдирд╣реАрдВ рдмрдирд╛рддреЗ, рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░рдирд╛ рдПрдХ рджрд░реНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

    2. рдЕрдиреНрдп рд╕рднреА рднрдВрдбрд╛рд░ рдмрд╕ рдХрд░реЗрдВ:

pip install -e git+https://github.com/servo/servo.git#egg=servo_tidy&subdirectory=python/tidy

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ

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

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

рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ред рдореИрдВ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ рдХрд┐ рд╣рдо рдкреЗрдбрд╝ рд╕реЗ tests/wpt/harness (wptrunner) рдХреЛ рднреА рд╣рдЯрд╛ рджреЗрдВ (рдФрд░ рдЗрд╕реЗ рдПрдХ рдкрд╛рдЗрдк рдирд┐рд░реНрднрд░рддрд╛ рдмрдирд╛ рджреЗрдВ), рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╣рдорд╛рд░реА рдХреЙрдкреА-рдЗрди-рдЯреНрд░реА рдореЗрдВ рдХреБрдЫ рд╕рдВрдкрд╛рджрди рдХрд┐рдП рд╣реИрдВ: рдкреА

рдЙрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрд╕реНрдЯреНрд░реАрдо https://github.com/w3c/wptrunner рд╣реИ , рдФрд░ рд╣рдорд╛рд░реА рдХреЙрдкреА рдореЗрдВ рдХрд┐рдП рдЧрдП рдмрджрд▓рд╛рд╡ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдкреАрдИрдкреАрдЖрдИ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝реЗ рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯрдХрд░ рд╣реИ, рдмреЗрдЭрд┐рдЭрдХ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдореИрдВ tests/wpt/_virtualenv (рдЬреЛ рддрдм рдмрдирддрд╛ рд╣реИ рдЬрдм рдЖрдк ./mach test-wpt рдЪрд▓рд╛рддреЗ рд╣реИрдВ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рди рдХрд┐ tests/wpt/harness ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рд╡рд╣ _virtualenv рдЕрдзрд┐рдХ рдХрд░реНрддрд╡реНрдпреЛрдВ (рдЬреЛ рдареАрдХ рд╣реИ) рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ рдкреЗрдбрд╝ рд╕реЗ рдКрдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдкрд░реАрдХреНрд╖рдг/wpt/_virtualenv рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ (рдЬреЛ рддрдм рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдк ./mach test-wpt рдЪрд▓рд╛рддреЗ рд╣реИрдВ), рдкрд░реАрдХреНрд╖рдг/wpt/рд╣рд╛рд░реНрдиреЗрд╕ рдирд╣реАрдВред

рд╕рд╣реА, рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдЙрддреНрдкрдиреНрди/рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдХрднреА рднреА рднрд╡рд┐рд╖реНрдп рдореЗрдВ WPT рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рд╕рд╛рдл-рд╕реБрдерд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдпрд╛ рдЬреЛ рднреА рд╣реЛ) рддреЛ рдпрд╣ рдЙрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдкрде рдХреЛ python/_virtualenv рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рди рдкрд░ рд▓реЗ рдЬрд╛рдиреЗ рдХрд╛ рднреА рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдФрд░ рдлрд┐рд░ рднреА, рдЬреИрдХ рдиреЗ рдореБрдЭреЗ рд╣рд░рд╛ рджрд┐рдпрд╛

python/_virtualenv рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдордЪ рдЕрдм python/_virtualenv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, #6999 рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

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

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

@shinglyu , рдХреНрдпрд╛ рдЖрдк рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдЪрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдореИрдВ рдХрд░реВрдВрдЧрд╛?

@edunham : рдореИрдВ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред :)

рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА @askeing рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЙрди рдкрд░ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред

рд╣рд╛рдп @edunham ,
рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ (рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде) рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ: https://github.com/askeing/servo_tidy

@askeing рдзрдиреНрдпрд╡рд╛рдж! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЬрд╝реНрдпрд╛рджрд╛рддрд░ рдореЗрд╣рдирдд рдкрд╣рд▓реЗ рд╣реА рдХрд░ рд▓реА рд╣реИред рдореЗрд░рд╛ рдПрдХрдорд╛рддреНрд░ рдирд╛рдЗрдЯрдкрд┐рдХ рдпрд╣ рд╣реИ рдХрд┐ setup() рдореЗрдВ setup.py рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛

entry_points={
        'console_scripts': [
            'servo-tidy=servo_tidy:scan',
        ],
    },

рддрд╛рдХрд┐ рд╣рдо рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ .travis.yml рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕реАрдзреЗ servo-tidy рдЖрд╣реНрд╡рд╛рди рдХрд░ рд╕рдХреЗрдВред

@frewsxcv @larsbergstrom @metajack рд╕рд░реНрд╡реЛ рдЯреНрд░реА рдмрдирд╛рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реЗрдкреЛ рдореЗрдВ рд░рд╣рдиреЗ рд╡рд╛рд▓реЗ tidy рдкрд░ рдЖрдкрдХреЗ рдХреНрдпрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ? рд╡рд░реНрддрдорд╛рди рдкреЗрдбрд╝ рд╕реЗ tidy git рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд░рдЦрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдЗрддрд┐рд╣рд╛рд╕ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд░рд╛рдп рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ tidy.py рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдпрд╣ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╡реЗ рдкрд░рд┐рд╡рд░реНрддрди рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рдордзреНрдпрд╡рд░реНрддреА рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде ./mach test-tidy рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдУрд╣, рдЙрд╕ рдкреАрдЖрд░ рдореЗрдВ "рдлрд┐рдХреНрд╕" рдХрд╣рдирд╛ рдереЛрдбрд╝рд╛ рджреВрд░ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рдХреНрд░реЗрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рддрдХ рдЕрдкрдиреЗ рд╕реАрдЖрдИ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рддрдХ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдХрд┐ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдиреЗ рдЗрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред

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

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

CYBAI picture CYBAI  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kmcallister picture kmcallister  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pshaughn picture pshaughn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ayelen912 picture ayelen912  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Grishy picture Grishy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ