1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Puma_old1

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
History.md 250 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 18.04.2025 12:28 f6c362e

6.6.0 / 2025-01-29

  • Функции

    • Опция для отключения ловли SIGUSR2 ([#3570], [#3567])
    • Укорочение названий потоков обрезки и сборки ThreadPool ([#3383])
    • Добавление хука after_refork ([#3386])
    • Добавление статистики активных потоков ([#3517])
    • Добавление отладочного лога перед запуском каждого типа хука ([#3375])
    • Добавление альтернативных схем в Binder ([#3348], [#3302])
    • Предотвращение запуска потока Threadpool#trim, если размер пула фиксирован ([#3384])
  • Исправления ошибок

    • Изменение HttpParserError на подкласс StandardError ([#3590], [#3552])
    • Добавление тестовых случаев
    • Исправление обновления символической ссылки папки перезапуска по фазам
  • Улучшение производительности

    • Пинг только рабочего 0 во время перезапуска по фазам, если используется рабочий процесс fork ([#3568])
  • Переработка

    • Исправление разбиения по нескольким разделителям для получения токена приложения ([#3505])
    • Изменение пинга для использования констант ([#3595])
    • Исправление использования констант Puma::Const::PipeRequest ([#3565])
    • Обновление логики обработки хуков DSL для обеспечения последовательности ([#3376])

6.5.0 / 2024-11-23* Функции

  • Вывод RUBY_DESCRIPTION при запуске Puma ([#3407])

  • Автоматическое установление количества рабочих процессов при использовании WEB_CONCURRENCY=auto ([#3439], [#3437])

  • Маркировка как безопасной для использования Ractor ([#3486], [#3422])

  • Добавление опции enable_keep_alive. true имитирует существующее поведение, но теперь можно использовать false для отключения keepalive для снижения задержки в хвосте очереди ([#3496])

  • Добавление параметров методов Puma для изменения ENV в изоляции для CI ([#3485])

  • Добавление опции ssl_ciphersuites для шифров TLSv1.3 ([#3359], [#3343])

  • Теперь можно использовать --threads 5 или threads 5 для конфигурации максимального/минимального количества потоков одним числом (ранее требовалось указывать 5:5) ([#3309])

  • Опция для отключения плагина systemd ([#3425], [#3424])

  • Добавление хука on_stopped ([#3411], [#3380])

  • Исправления ошибок

    • Обработка пустых переменных окружения при загрузке конфигурации ([#3539])
    • lib/rack/handler/puma.rb - исправление для rackup v1.0.1, корректировка Gemfile ([#3532], [#3531])
    • null_io.rb - добавление external_encoding, set_encoding, binmode, binmode? ([#3214])
    • Реализация NullIO#seek и #pos для имитации IO ([#3468])
    • Добавление поддержки в rack handler и исправление регрессии в binder для линуксовских абстрактных пространств сокетов ([#3508])
    • Использование фактических локальных потоков для Puma::Server.current ([#3360])
    • client.rb - исправление обработки частей тела запроса ([#3338], [#3337])
    • Правильная обработка двух запросов, видимых в начальном буфере ([#3332]) * Исправление повторяющейся строки состояния ответа при недействительном запросе или возникновении ошибок ([#3308], [#3307])
    • Исправление несобранности дочерних процессов при использовании Process.detach ([#3314], [#3313])
    • JRuby
    • Делает константы длины HTTP запросов настраиваемыми ([#3518])
    • Исправляет jruby_restart.rb и launcher.rb для работы с ARM64 macOS JRuby ([#3467])* Оптимизация производительности
    • Избегает проверки, достигли ли все рабочие процессы тайм-аута, если тайм-аут в режиме ожидания не настроен ([#3341])
    • Увеличивает размер чтения тела запроса до 64 кБ ([#3548])
    • В режиме single mode пропускает wait_for_less_busy_worker ([#3325])
  • Переработка кода

    • Огромное количество улучшений CI/тестов от @MSP-Greg, как обычно.
    • Добавляет ThreadPool#stats и изменяет Server#stats для использования его ([#3527])
    • Нормализует пробелы в строке статистики рабочих процессов ([#3513])
    • rack/handler/puma.rb - ssl - использует start_with?, добавляет тест ([#3510])
    • extconf.rb - добавляет логирование версий OpenSSL ([#3370])
    • Лениво требует Puma::Rack::Builder ([#3340])
    • Перерабатывает: Константизирует типы запросов рабочих процессов ([#3318])
  • Документация

    • Улучшает stats.md ([#3514])
    • control_cli.rb: Уравнивает сообщение о помощи с bin/puma ([#3434])
    • dsl.rb: Уточняет аргумент обратного вызова ([#3435])
    • lib/rack/handler/puma.rb - переносит и исправляет комментарий модуля ([#3495])

6.4.3 / 2024-09-19

  • Безопасность
    • Отбрасывает любые заголовки, использующие подчеркивания, если версия без подчеркиваний также существует. Без этого, атакующий может перезаписать значения, установленные промежуточными прокси (например, X-Forwarded-For). (CVE-2024-45614/GHSA-9hf4-67fc-4vf4)

6.4.2 / 2024-01-08* Безопасность

  • Ограничивает размер расширений блока. Без этого ограничения, атакующий может вызвать неограниченное потребление ресурсов (CPU, пропускная способность сети). (GHSA-c2f4-cvqm-65w2)## 6.4.1 / 2024-01-03

  • Исправление ошибок

    • DSL#warn_if_in_single_mode - исправляет при установке рабочих процессов через CLI ([#3256])
    • Исправляет idle-timeout не работающий в режиме кластера ([#3235], [#3228], [#3282], [#3283])
    • Исправляет рабочий процесс 0, выходящий из фазированного перезапуска ([#3225], [#2786])
    • context_builder.rb - требует openssl, если verify_mode != 'none' ([#3179])
    • Делает процесс кластера Puma подходящим для PID 1 ([#3255])
    • Улучшает согласованность Puma::NullIO с реальным IO ([#3276])
    • extconf.rb - исправляет обнаружение информации OpenSSL в сборке Ruby ([#3271], [#3266])
    • MiniSSL.java - устанавливает serialVersionUID, исправляет устаревшее RaiseException ([#3270])
    • dsl.rb - исправляет warn_if_in_single_mode при установке WEB_CONCURRENCY ([#3265], [#3264])
  • Поддержка

    • Огромное количество рефакторинга тестов для повышения их устойчивости и упрощения написания - спасибо @MSP-Greg!
    • Исправление ошибки в тестах относительно TestPuma::HOST4 ([#3254])
    • Dockerfile для минимальных воспроизводимых примеров: использование Ruby 3.2, ожидание установленного bundler ([#3245])
    • Исправление вызовов define_method, использование параметра Symbol вместо String ([#3293])
  • Документация

    • README.md - добавление плагина puma-acme ([#3301])
    • Удаление флага --keep-file-descriptors из документации systemd ([#3248])
    • Примечание о механизме симлинков в документации по перезапуску для горячего перезапуска ([#3298])

6.4.0 / 2023-09-21* Функции

  • on_thread_exit hook ([#2920])

  • on_thread_start_hook ([#3195])

  • Выключение при простоях ([#3209], [#2580])

  • Новое сообщение об ошибке при использовании занятого порта сервера управления ([#3204])* Рефакторинг

  • Удаление зависимости от Forwardable ([#3191], #3190)

  • Обновление использования URLMap Regexp для Ruby v3.3 ([#3165])

  • Исправления ошибок

    • Приведение параметра cert_pem в соответствие с параметром cert для ssl_bind ([#3174])
    • Исправление использования сервера управления с IPv6 хостом ([#3181])
    • control_cli.rb - добавление require_relative 'log_writer' ([#3187])
    • Исправление случаев, когда падающий обратный ответ Rack не отправлялся клиенту ([#3094])

6.3.1 / 2023-08-18

  • Безопасность
    • Устранение уязвимостей HTTP request smuggling с нулевой длиной заголовка Content Length и полями trailer (GHSA-68xg-gqqm-vgj8)

6.3.0 / 2023-05-31

  • Функции

    • Добавление метода dsl supported_http_methods ([#3106], [#3014])
    • Ответы на ошибки Puma больше не содержат отпечатков, указывающих на Puma ([#3161], [#3037])
    • Поддержка расшифровки SSL ключа ([#3133], [#3132])
  • Исправления ошибок

    • Не отправлять ответ 103 early hints при использовании только недействительных заголовков ([#3163])
    • Обработка некорректного пути запроса ([#3155], [#3148])
    • Разные исправления файлов библиотеки - перехват дополнительных ошибок, помощник CI ([#3129])
    • Исправление загрузки файла данных запроса с "r\n" конечными строками ([#3137])
    • Восстановление совместимости с rack 1.6 ([#3156])
  • Рефакторинг

    • const.rb - Обновление Puma::HTTP_STATUS_CODES ([#3162])
    • Уточнение Reactor#initialize ([#3151])

6.2.2 / 2023-04-17* Исправления ошибок

  • Исправление ошибки NameError Rack-связанной путем добавления :: оператора ([#3118], [#3117])

6.2.1 / 2023-03-31

  • Исправления ошибок
    • Исправление совместимости с Java 8 ([#3109], [#3108])
    • Всегда записывать io_buffer при ветке "enum bodies" ([#3113], [#3112])
    • Исправление некорректного сообщения warn_if_in_single_mode ([#3111])

6.2.0 / 2023-03-29

  • Функции

    • Возможность использовать пользовательский логгер ([#2770], [#2511])
    • Предупреждение при определении кластерных режимных хуков в одиночном режиме ([#3089])
    • Добавление события on_booted ([#2709])
  • Исправления ошибок

    • Логгеры - внутренний_write - перехват Errno::EINVAL ([#3091])
    • commonlogger.rb - исправление формата времени HIJACK, использование констант вместо строк ([#3074])
    • Исправление некоторых краевых случаев, связанных с захватом запросов ([#3072])

6.1.1 / 2023-02-28

  • Исправления ошибок
    • Больше не пытаемся использовать плагин systemd для JRuby ([#3079])
    • Разрешение на выполнение ::Rack::Handler::Puma.run независимо от загрузки Rack/Rackup ([#3080])

6.1.0 / 2023-02-12

  • Функции

    • Поддержка WebSocket через частичный захват ([#3058], [#3007])
    • Добавление встроенной поддержки systemd notify ([#3011])
    • Периодическая отправка статуса systemd ([#3006], [#2604])
    • Введение возможности возвращения кода 413: загруженный пакет слишком большой для запросов ([#3040])
    • Логирование загруженных расширений при установке переменной PUMA_DEBUG ([#3036], [#3020])* Исправления ошибок
    • Исправление проблемы совместимости с rack 3 относительно rackup ([#3061], [#3057])
    • Разрешение на установку TCP low_latency с SSL слушателем ([#3065])
  • Улучшение производительности

    • Уменьшение использования памяти для загрузки больших файлов ([#3062])

6.0.2 / 2023-01-01

  • Переработка
    • Удаление использования библиотек etc и time в Puma ([#3035], [#3033])
    • Переработка const.rb - заморозка ([#3016])

6.0.1 / 2022-12-20

  • Исправления ошибок
    • Обработка пробуждения закрытого селектора в Reactor#add ([#3005])
    • Исправление обработки ответов, перечисляемых телом ([#3004], [#3000])
    • Правильное закрытие тела приложения для всех путей выполнения ([#3002], [#2999])
  • Переработка
    • Добавление IOBuffer к Client, удаление из экземпляров потока ThreadPool ([#3013])

6.0.0 / 2022-10-14* Перерывы совместимости

  • Отказ от поддержки Ruby 2.2 и 2.3 (теперь 2.4+) ([#2919])

  • Изменение функциональности remote_addr ([#2652], [#2653])

  • Больше не поддерживается Java 1.7 или ниже (последний выпуск JRuby, поддерживающий это, был JRuby 9.1) ([#2849])

  • Удаление nakayoshi GC ([#2933], [#2925])

  • wait_for_less_busy_worker теперь по умолчанию включен ([#2940])

  • Предварительное добавление всех переменных окружения с префиксом PUMA_ ([#2924], [#2853])

  • Удаление некоторых констант ([#2957], [#2958], [#2959], [#2960])

  • Следующие классы теперь являются частью приватного API Puma: Client, Cluster::Worker, Cluster::Worker, HandleRequest. ([#2988])

  • Конфигурационные константы, такие как DefaultRackup, удалены ([#2928])

  • Извлечение LogWriter из Events ([#2798])

  • Принятие только стандартных 8 HTTP методов, другие отклоняются с кодом 501. ([#2932])

  • Функции

    • Увеличение пропускной способности для больших (100кБ+) тел ответов на 3-10 раз ([#2896], [#2892])
    • Увеличение пропускной способности для файловых ответов ([#2923])
    • Добавление поддержки потокового тела в Rack. ([#2740])
    • Разрешение повторного использования сессий OpenSSL через метод 'reuse' ssl_bind или параметр запроса bind string ([#2845])
    • Разрешение передачи хэша в блоки run_hooks для использования позже ([#2917], [#2915])
    • Разрешение использования preload_app! с fork_worker ([#2907])
    • Поддержка метрики request_body_wait с более высокой точностью ([#2953])
    • Разрешение использования массивов в заголовках (Rack 3) ([#2936], [#2931])
    • Экспорт версий Puma/Ruby в /stats ([#2875]) * Разрешение настройки максимальной длины URI запроса и максимальной длины пути запроса ([#2840])
    • Добавление нескольких публичных доступников ([#2774])
    • Логирование полного backtrace при неудачном запуске рабочего процесса ([#2891])
    • [jruby] Включение поддержки TLSv1.3 ([#2886])
    • [jruby] Поддержка установки TLS протоколов и переименование ssl_cipher_list ([#2899])
    • [jruby] Поддержка опции truststore ([#2849], [#2904], [#2884])* Исправления ошибок
    • Загрузка конфигурации перед передачей её binder ([#2897])
    • Не поднимать ошибку, возникающую при HTTP методах, которые мы не распознаем или не поддерживаем, например CONNECT ([#2932], [#1441])
    • Исправление утечки памяти при создании нового SSL прослушивателя ([#2956])
  • Переработка

    • log_writer.rb - добавление внутреннего метода internal_write ([#2888])
    • Извлечение кода prune_bundler в отдельный класс. ([#2797])
    • Переработка Launcher#run для увеличения читаемости (без изменения логики) ([#2795])
    • Ruby 3.2 будет иметь встроенные методы IO#wait_*, не требуя io/wait ([#2903])
    • Разные переработки внутреннего API ([#2942], [#2921], [#2922], [#2955])

5.6.9 / 2024-09-19

  • Безопасность
    • Отбрасывание любых заголовков, использующих подчеркивания, если версия без подчеркиваний также существует. Без этого, атакующий может перезаписать значения, установленные промежуточными прокси (например, X-Forwarded-For). (CVE-2024-45614/GHSA-9hf4-67fc-4vf4)
  • JRuby
    • Необходимо использовать Java >= 9 для компиляции. Вы больше не можете собирать из исходного кода на Java 8.

5.6.8 / 2024-01-08

  • Безопасность
    • Ограничение размера расширений блока. Без этого ограничения, атакующий может вызвать неограниченное потребление ресурсов (CPU, пропускная способность сети). (GHSA-c2f4-cvqm-65w2)

5.6.7 / 2023-08-18* Безопасность

  • Исправлены уязвимости HTTP request smuggling с использованием заголовка Content-Length длиной ноль и поля trailer (GHSA-68xg-gqqm-vgj8)

5.6.6 / 2023-06-21

  • Исправление ошибок
    • Предотвращено использование rack 3 ([#3166])

5.6.5 / 2022-08-23

  • Новые возможности

    • Puma::ControlCLI - разрешено отправлять команду refork как запрос ([#2868], [#2866])
  • Исправление ошибок

    • NullIO#closed должен возвращать false ([#2883])
    • [jruby] Исправлен висящий процесс TLS проверки ([#2890], [#2729])
    • extconf.rb - не использовать pkg_config('openssl'), если используется '--with-openssl-dir' ([#2885], [#2839])
    • MiniSSL - обнаружение SSL_CTX_set_dh_auto ([#2864], [#2863])
    • Исправлены исключения rack.after_reply, которые прерывают соединения ([#2861], [#2856])
    • Экранирование SSL сертификатов и имен файлов ([#2855])
    • Твердое прерывание, если SSL сертификаты или ключи недействительны ([#2848])
    • Твердое прерывание, если SSL сертификаты или ключи не могут быть прочитаны пользователем ([#2847])
    • Исправлено построение с Opaque DH в LibreSSL 3.5. ([#2838])
    • Удален предыдущий файл сокета при получении команды TERM после USR2 (если puma работает в режиме кластера) ([#2817])
    • Исправлено несовместимое поведение Puma::StateFile#load ([#2810])

5.6.4 / 2022-03-30

  • Безопасность
    • Закрыты несколько эксплоитов HTTP Request Smuggling (CVE-2022-24790)

5.6.2 / 2022-02-11

  • Исправление ошибок/Безопасность

    • Тело ответа всегда будет закрыто. (GHSA-rmj8-8hhh-gv5h, связано с [#2809])## 5.6.1 / 2022-01-26
  • Исправление ошибок

    • Отменен коммит, который, по-видимому, вызывал периодически пустые значения заголовков ([#2809])

5.6.0 / 2022-01-25

  • Новые возможности

    • Поддержка localhost интеграции в ssl_bind ([#2764], [#2708])
    • Разрешено установление параметра backlog с помощью ssl_bind DSL ([#2780])
    • Удалена зависимость yaml (psych) в StateFile ([#2784])
    • Разрешено уменьшение числа старейших рабочих процессов, ранее это было возможно только для самых молодых ([#2773], [#2794])
    • Добавлена конфигурационная опция worker_check_interval ([#2759])
    • Всегда отправляется низкоуровневый ответ об ошибке клиенту ([#2731], [#2341])
    • Поддержка cert_pem и key_pem с помощью ssl_bind DSL ([#2728])
  • Исправление ошибок

    • Поддержка названий потоков длиной до 15 символов, предотвращает разрыв на некоторых ОС ([#2733])
    • Исправлены два предупреждения компиляции 'old-style-definition' ([#2807], [#2806])
    • Корректное логирование окружения с использованием опции value ([#2799])
    • Исправлено предупреждение от Ruby master (будет 3.2.0) ([#2785])
    • extconf.rb - исправлено использование openssl с старыми сборками Windows ([#2757])
    • server.rb - обработка исключений (Errno::EBADF) для @notify.close ([#2745])
  • Улучшение кода

    • server.rb - улучшение кода с использованием @options[:remote_address] ([#2742])
    • [jruby] несколько улучшений - избегание копирования байтов ([#2730])

5.5.2 / 2021-10-12

  • Исправления ошибок

    • Разрешение UTF-8 в значениях HTTP-заголовков## 5.5.1 / 2021-10-12
  • Новая функция (добавлена по ошибке — обычно мы не добавляем новые функции в исправления ошибок, извините!)

    • Разрешение установки APP_ENV в приоритете перед RACK_ENV или RAILS_ENV ([#2702])
  • Безопасность

    • Запрет на использование LF как конца строки в заголовке (CVE-2021-41136)

5.5.0 / 2021-09-19

  • Новые функции

    • Автоматическое предоставление SSL-сертификатов для localhost через gem localhost ([#2610], [#2257])
    • Поддержка протокола PROXY (только версия 1) ([#2654], [#2651])
    • Добавление семантического CLI-параметра для отсутствия конфигурационного файла ([#2689])
  • Исправления ошибок

    • Более сложная обработка исключений — позволяет некоторым "мертвым" пумам умереть. ([#2700], [#2699])
    • Разрешение нескольких after_worker_fork-хуков ([#2690])
    • Сохранение BUNDLE_APP_CONFIG при форке рабочего процесса ([#2688], [#2687])
  • Улучшение производительности

    • Исправление производительности закрытия SSL-соединения серверной части. ([#2675])

5.4.0 / 2021-07-28

  • Новые функции
    • Лучшие/расширенные названия для потоков пула потоков ([#2657])
    • Разрешение pkg_config для OpenSSL ([#2648], [#1412])
    • Добавление rack_url_scheme к Puma::DSL, позволяет установку заголовка rack.url_scheme ([#2586], [#2569])* Исправления ошибок
    • Binder#parse - разрешение симлинков unix-пути, добавление create_activated_fds отладочного ENV ([#2643], [#2638])
    • Исправление предупреждения устаревания: minissl.c - использование Random.bytes, если доступно ([#2642])
    • Сертификаты клиента: установка контекста сессии при создании SSLContext ([#2633])
    • Исправление проблемы мёртвого замка в пуле потоков ([#2656])* Улучшение кода
    • Замена IO.select на IO#wait_* при проверке одного IO ([#2666])

5.3.2 / 2021-05-21

  • Исправления ошибок
    • Грациозное обработывание отказа Rack от принятия CLI-параметров ([#2630], [#2626])
    • Исправление неправильного поведения при получении сигнала SIGTERM ([#2629])
    • Улучшение отсева подключений keepalive ([#2628])

5.3.1 / 2021-05-11

  • Безопасность
    • Закрытие подключений keepalive после максимального числа быстрых встроенных запросов (CVE-2021-29509) ([#2625])

5.3.0 / 2021-05-07

  • Новые функции

    • Поддержка абстрактных сокетов Linux ([#2564], [#2526])
    • Добавление отладки к таймауту и запуску рабочего процесса ([#2559], [#2528])
    • Вывод предупреждения при запуске кластера с одним рабочим процессом ([#2565], [#2534])
    • Не закрывать активированный сокет systemd при перезапуске pumactl ([#2563], [#2504])
  • Исправления ошибок

    • systemd - исправление срабатывания события ([#2591], [#2572])
    • Немедленное удаление временных файлов ([#2613])
    • Улучшение парсинга заголовка HTTP_HOST ([#2605], [#2584])
    • Обработка критической ошибки без трассировки ([#2607], [#2552])
    • Исправление слишком раннего завершения запросов ([#2606], [#2574])
    • Обработка segfault в Ruby 2.6.6 на thread-locals ([#2567], [#2566])
    • Server#closed_socket? - параметр может быть MiniSSL::Socket ([#2596])
    • Определение UNPACK_TCP_STATE_FROM_TCP_INFO в правильном месте ([#2588], [#2556])
    • request.rb - исправление сборки chunked для ascii-несовместимых кодировок, добавление теста ([#2585], [#2583])* Улучшения производительности
    • Сброс peerip только если remote_addr_header установлен ([#2609])
    • Уменьшение размера структуры puma_parser ([#2590])
  • Переработка

    • Переработка drain при завершении ([#2600])
    • Микро-оптимизации в функции wait_for_less_busy_worker ([#2579])
    • Много исправлений тестов

5.2.2 / 2021-02-22

  • Исправления ошибок
    • Добавление методов #flush и #sync к Puma::NullIO ([#2553])
    • Восстановление sync=true для потоков STDOUT и STDERR ([#2557])

5.2.1 / 2021-02-05

  • Исправления ошибок
    • Исправление операций TCP cork/uncork для работы с ssl-клиентами ([#2550])
    • Явное указание rack/common_logger, если :verbose=true ([#2547])
    • MiniSSL::Socket#write - использование data.byteslice(wrote..-1) ([#2543])
    • Установка значения @env[CONTENT_LENGTH] как строки ([#2549])

5.2.0 / 2021-01-27

  • Новые возможности

    • 10-кратное улучшение задержки для MRI на ssl-соединениях за счет уменьшения перегрузки ([#2519])
    • Добавление опции для указания желаемого IO-селектора для libev ([#2522])
    • Добавление возможности установки флагов проверки OpenSSL (только для MRI) ([#2490])
    • Использование flush после записи сообщений для предотвращения изменения $stdout и $stderr с помощью sync=true ([#2486])* Исправления ошибок
    • MiniSSL - обновление dhparam до 2048 бит для использования с SSL_CTX_set_tmp_dh ([#2535])
    • Изменение сообщения 'Пока!' для вывода после закрытия прослушивателей ([#2529])
    • Исправление логирования ssl bind с 0.0.0.0 и localhost ([#2533])
    • Исправление предупреждений компилятора, но пропуск предупреждений, связанных с сгенерированным кодом машины состояний ragel ([#1953])
    • Исправление ошибок фазированного перезапуска, связанных с gem nio4r при использовании сервера управления Puma ([#2516])
    • Добавление метода #string к Puma::NullIO ([#2520])
    • Исправление привязки через обработчик Rack к IPv6-адресам ([#2521])
  • Улучшения

    • Улучшение MiniSSL::Context на MRI, исправление MiniSSL::Socket#write ([#2519])
    • Удаление Server#read_body ([#2531])
    • Увеличение уровня ошибок сборки, если компиляция расширений вызывает предупреждения на GH Actions, настраиваемый через MAKE_WARNINGS_INTO_ERRORS ([#1953])## 5.1.1 / 2020-12-10
  • Исправления ошибок

    • Исправить излишне агрессивное совпадение с запрещенными именами заголовков ([#2510])

5.1.0 / 2020-11-30

  • Новые возможности

    • Доступность фазированного перезапуска теперь всегда записывается в лог, даже если он недоступен.
    • Выводить загруженную конфигурацию, если присутствует переменная окружения PUMA_LOG_CONFIG ([#2472])
    • Интеграция с функциями watchdog и уведомлений systemd ([#2438])
    • Добавить max_fast_inline как опцию конфигурации для объекта Server ([#2406])
    • Теперь можно форкать рабочие процессы от worker 0 с помощью SIGURG без включения fork_worker [#2449]
    • Добавить опцию для привязки к активированным сокетам systemd ([#2362])
    • Добавить опцию компиляции для изменения максимальной длины QUERY_STRING ([#2485])
  • Исправления ошибок

    • Исправить обработку JRuby в Puma::DSL#ssl_bind ([#2489])
    • control_cli.rb - все обычные выводы должны быть направлены в @stdout ([#2487])
    • Обработать 'Error in reactor loop escaped: mode not supported for this object: r' ([#2477])
    • Игнорировать незаконный (по спецификации Rack) заголовок ответа ([#2439])
    • Закрывать пустые соединения сразу при остановке ([#2460])
    • Исправить некоторые случаи ошибок фазированного перезапуска, связанные с гемом json ([#2473])
    • Удалить использование гема json для исправления ошибок фазированного перезапуска ([#2479])
    • Исправить группировку регулярного выражения ILLEGAL_HEADER_KEY_REGEX ([#2495])## 5.0.4 / 2020-10-27
  • Исправления ошибок

    • Передать предварительно загруженное приложение в новые рабочие процессы, если доступно, при использовании preload_app ([#2461], [#2454])

5.0.3 / 2020-10-26

  • Исправления ошибок
    • Добавить Client#io_ok?, проверку перед Reactor#register ([#2432])
    • Исправить зависание при остановке в refork ([#2442])
    • Исправить ошибки Bundler::GemNotFound для гема nio4r при фазированном перезапуске ([#2427], [#2018])
    • Исправить потокобезопасность запуска сервера ([#2435])
    • Вызвать on_booted после запуска сервера ([#2431], [#2212])
    • Очистить демонизацию в скрипте rc.d ([#2409])
  • Переработка
    • Удаление accept_nonblock.rb, добавление test_integration_ssl.rb ([#2448])
    • Переработка status.rb - уменьшение дублирования ([#2450])
    • Извлечение методов req/resp в новый файл request.rb из server.rb ([#2419])
    • Переработка Reactor и буферизации запросов Client ([#2279])
    • client.rb - удаление специфического для JRuby кода завершения 'finish' ([#2412])
    • Сконсолидировать вызовы fast_write в Server, извлечение сборки early_hints ([#2405])
    • Удаление upstart из документации ([#2408])
    • Извлечение рабочего процесса в отдельный класс ([#2374])
    • Сконсолидировать обработку опций в Server, небольшие переработки Server, изменения в документации ([#2389])

5.0.2 / 2020-09-28

  • Исправления ошибок
    • Отменены изменения API для Сервера.

5.0.1 / 2020-09-28* Исправления ошибок

  • Исправлено исключение LoadError в CentOS 8 ([#2381])
  • Улучшено обработывание ошибок при принудительном завершении ([#2271])
  • Предотвращены соединения, которые вступают в Reactor после начала завершения ([#2377])
  • Исправлено отладочное логирование ошибок и отладочной информации; не логировать дамп запроса, если он не был распаршен ([#2376])
  • Разделены TCP_CORK и TCP_INFO ([#2372])
  • Не логировать исключение EOFError при закрытии соединения клиента без записи ([#2384])* Переработка
  • Изменена сигнатура метода Events#ssl_error с (error, peeraddr, peercert) на (error, ssl_socket) ([#2375])
  • Упрощена обработка опций в Сервере, небольшие переработки Сервера, изменения в документации ([#2373])

5.0.0 / 2020-09-17* Новые возможности

  • Добавлена возможность сборки без OpenSSL и динамической загрузки файлов, необходимых для SSL. Добавлен 'no ssl' CI ([#2305])

  • ПЕРВЫЙ ПОДХОД: Добавлена опция fork_worker и команда refork для уменьшения использования памяти путем форка из рабочего процесса вместо главного процесса. ([#2099])

  • ПЕРВЫЙ ПОДХОД: Добавлена конфигурация wait_for_less_busy_worker. Это может уменьшить задержку на MRI путем вставки небольшой задержки перед заново-слушанием сокета, если рабочий процесс занят. ([#2079])

  • ПЕРВЫЙ ПОДХОД: Добавлена опция nakayoshi_fork. Уменьшение использования памяти в предзагруженных приложениях режима кластера путем очистки памяти перед форком и компактации, где это возможно. ([#2093], [#2256])

  • Добавлена команда thread-backtraces в pumactl для вывода отладочной информации о потоках. ([#2054])

  • Добавлено увеличение requests_count в Puma.stats. ([#2106])

  • Увеличена максимальная длина URI пути с 2048 до 8192 байт. ([#2167], [#2344])

  • lowlevel_error_handler теперь вызывается при принудительном завершении пула потоков, и если задан вызываемый с тремя аргументами, мы теперь также передаем код состояния. ([#2203])

  • Ускорено фазированное перезапуск и таймаут рабочего процесса. ([#2220])

  • Добавлена конфигурация state_permission для установки разрешений файла состояния. ([#2238])

  • Добавлен Puma.stats_hash, который возвращает статистику в виде Hash вместо JSON строки. ([#2086], [#2253])

  • rack.multithread и rack.multiprocessтеперь динамически разрешаются черезmax_threadиworkers` соответственно ([#2288]). Устаревшие функции, удаления и изменения API, нарушающие совместимость:

  • --control был удален. Используйте --control-url ([#1487]).

  • worker_directory был удален. Используйте directory ([#1487]).

  • min_threads теперь устанавливается с помощью переменных окружения PUMA_MIN_THREADS и MIN_THREADS ([#2143]).

  • max_threads теперь устанавливается с помощью переменных окружения PUMA_MAX_THREADS и MAX_THREADS ([#2143]).

  • max_threads по умолчанию равен 5 для MRI или 16 для всех других интерпретаторов ([#2143]).

  • preload_app! по умолчанию включен, если количество рабочих процессов больше 1 и устанавливается через WEB_CONCURRENCY ([#2143]).

  • Puma::Plugin.workers_supported? был удален. Используйте Puma.forkable? вместо него ([#2143]).

  • tcp_mode был удален без замены ([#2169]).

  • Демонизация была удалена без замены ([#2170]).

  • Изменено #connected_port на #connected_ports ([#2076]).

  • Конфигурация: environment считается из RAILS_ENV, если RACK_ENV не найден ([#2022]).

  • Привязка лога на http:// для TCP-привязок, чтобы сделать её кликабельной ([#2300]). Исправления ошибок:

  • Исправление проблем загрузки JSON при фазовых перезапусках ([#2269]).

  • Улучшение надежности завершения работы ([#2312], [#2338]).

  • Закрытие клиентских HTTP-соединений, установленных с SSL-сервером с TLSv1.3 ([#2116]).

  • Не устанавливать user_config по умолчанию в тихом режиме для возможности использования конфигурации файла ([#2074]).

  • Всегда закрывать SSL-соединение в Puma::ControlCLI ([#2211]).

  • Обновление extconf.rb для Windows для использования с ssp и различными комбинациями Ruby/MSYS2 ([#2069])

  • Убедиться, что Unix-сокет сервера управления закрывается при завершении работы ([#2112])

  • Сохранение переменной окружения BUNDLE_GEMFILE при использовании prune_bundler ([#1893])

  • Отправка 408 ошибки таймаута запроса даже при отключенной очереди запросов ([#2119])

  • Обработка IO::WaitReadable вместо EAGAIN для блокирующего чтения ([#2121])

  • Убедиться, что BUNDLE_GEMFILE не указан в рабочих процессах, если не указан в основном процессе при использовании prune_bundler ([#2154])

  • Обработка и логирование исключений в хуках, определенных пользователем (on_worker_boot, after_worker_fork и т. д.) ([#1551])

  • Прямое чтение из сокета в #read_and_drop для избежания дополнительных ошибок SSL ([#2198])

  • Установка заголовка Connection: closed при отключенной очереди запросов ([#2216])

  • Передача очередных запросов в пулы потоков при завершении работы сервера ([#2122])

  • Исправление нескольких мелких ошибок конкурентности в ThreadPool, которые могли повлиять на неглобальные Ruby ([#2220])

  • Исправление out_of_band хука, который никогда не выполняется, если количество рабочих потоков больше 1 ([#2177])

  • Исправление точности таймаута завершения работы ThreadPool ([#2221])

  • Исправление UserFileDefaultOptions#fetch для правильного использования default ([#2233])

  • Улучшение out_of_band хука ([#2234])

  • Предпочтение файла rackup, указанного CLI ([#2225])

  • Исправление для запуска подпроцессов с опцией fork_worker ([#2267]) * Установка CONTENT_LENGTH для разбитых запросов ([#2287])

  • JRuby - Добавление методов Puma::MiniSSL::Engine#init? и #teardown, выполнение всех тестов SSL ([#2317])

  • Улучшение надежности завершения работы ([#2312])

  • Решение проблемы с счетчиком ожидания пула потоков при убийстве потока

  • Ограничение версии rake-compiler до 0.9.4 для исправления исключения ClassNotFound при использовании MiniSSL с Java8

  • Исправление рекурсивного prune_bundler ([#2319])

  • Убедиться, что TCP_CORK может быть использован

  • Исправление краевых случаев при разбитом теле запроса ([#2326])

  • Исправление утечки файловых дескрипторов в MiniSSL ([#2299])

  • Упрощение и рефакторинг

  • Удаление неиспользуемого аргумента загрузчика из инициализатора плагина ([#2095])

  • Упрощение Configuration.random_token и удаление несуществующего несущейся замены ([#2102])

  • Упрощение парсинга URL в Runner#start_control ([#2111])

  • Удаление расширения IOBuffer и замена его на Ruby ([#1980])

  • Обновление Rack::Handler::Puma.run для использования **options ([#2189])

  • Рефакторинг потока управления потоками ([#2220])

  • Парсинг статистики рабочих процессов кластера с помощью JSON вместо регулярных выражений ([#2124])

  • Поддержка параллельных тестов в отчетах о прогрессе в режиме verbose ([#2223])

  • Рефакторинг обработки ошибок в цикле принятия соединений сервера ([#2239])## 4.3.12 / 2022-03-30

  • Безопасность

    • Закрытие нескольких уязвимостей HTTP Request Smuggling (CVE-2022-24790)

4.3.11 / 2022-02-11

  • Безопасность
    • Всегда закрывать тело ответа (GHSA-rmj8-8hhh-gv5h)

4.3.10 / 2021-10-12

  • Исправление ошибок
    • Разрешение UTF-8 в значениях HTTP-заголовков

4.3.9 / 2021-10-12

  • Безопасность
    • Запрет на использование LF как конца строки в заголовках (CVE-2021-41136)

4.3.8 / 2021-05-11

  • Безопасность
    • Закрытие поддерживаемых соединений после максимального числа быстрых встроенных запросов (CVE-2021-29509) ([#2625])

4.3.7 / 2020-11-30

  • Исправление ошибок
    • Возврат CONTENT_LENGTH для фрагментированных запросов (Оригинальный: [#2287], возврат: [#2496])

4.3.6 / 2020-09-05

  • Исправление ошибок
    • Явное включение ctype.h для устранения предупреждений компиляции и ошибок сборки на macOS с Xcode 12 ([#2304])
    • Не требовать json при загрузке ([#2269])

4.3.4/4.3.5 и 3.12.5/3.12.6 / 2020-05-22

Каждое исправление содержит отдельное исправление безопасности. Рекомендуется просто обновиться до 4.3.5/3.12.6.

  • Безопасность
    • Исправление: Устранение двух отдельных уязвимостей HTTP smuggling, использующих заголовок Transfer-Encoding. CVE-2020-11076 и CVE-2020-11077.

4.3.3 и 3.12.4 / 2020-02-28

  • Исправление ошибок

    • Исправление: Исправление проблемы, связанной с неправильным разделением заголовков на новой строке ([#2132])
  • Безопасность

    • Исправление: Предотвращение разделения HTTP ответа через CR в early hints. CVE-2020-5249.## 4.3.2 и 3.12.3 / 2020-02-27 (YANKED)
  • Безопасность

    • Исправление: Предотвращение разделения HTTP-ответа через CR/LF в значениях заголовков. CVE-2020-5247.

4.3.1 и 3.12.2 / 2019-12-05

  • Безопасность
    • Исправление: Неправильное поведение клиента могло использовать keepalive-запросы для монополизации реактора Puma и создания атаки отказа от обслуживания. CVE-2019-16770.

4.3.0 / 2019-11-07

  • Функции

    • Удаление пробелов в конце HTTP-заголовков ([#2010])
    • Оптимизация парсера HTTP для JRuby ([#2012])
    • Добавление поддержки SSL для приложения управления и CLI ([#2046], [#2052])
  • Исправления ошибок

    • Исправление Errno::EINVAL при включенной SSL и отклонении сертификата браузером ([#1564])
    • Исправление дефолтного режима Puma в режиме разработки при отсутствии указанной среды ([#2035])
    • Исправление закрытия потока файла при чтении PID из файла PID ([#2048])
    • Исправление опечатки в конфигурационном параметре --extra_runtime_dependencies ([#2050])

4.2.1 / 2019-10-07

  • 3 исправления ошибок
    • Исправление активации сокета systemd для предварительно существующих файлов Unix-биндинга ([#1842], [#1988])
    • Корректное обработывание множественных вызовов bind ([#1986], [#1994], [#2006])
    • Принятие символов для verify_mode ([#1222])

4.2.0 / 2019-09-23* 6 функций

  • Pumactl имеет новый параметр окружения -e и читает конфигурационные файлы config/puma/<окружение>.rb ([#1885])

  • Точки с запятой теперь разрешены в путях URL (только MRI), полезно для Angular или Redmine ([#1934])

  • Разрешение определения дополнительных зависимостей при использовании prune_bundler ([#1105])

  • Puma теперь отображает правильный порт при привязке к порту 0, также отображает другие прослушиватели при привязке к локальному хосту ([#1786])

  • Отправка SIGINFO любому рабочему процессу Puma теперь выводит активные потоки и их трассировки стека ([#1320])

  • Все потоки Puma теперь имеют установленное имя на Ruby 2.3+ ([#1968])

  • 4 исправления ошибок

    • Исправление некорректного поведения при фазированном перезапуске и рабочих процессах, завершенных внешним SIGTERM ([#1908], [#1952])
    • Исправление закрытия сокета при ошибке ([#1941])
    • Удаление необязательного ловушки SIGINT для JRuby, вызывающей некоторые условия гонки ([#1961])
    • Исправление оставления файлов сокета после завершения процесса ([#1970])
  • Абсолютно тысячи строк улучшений и исправлений тестов благодаря @MSP-Greg## 4.1.1 / 2019-09-05

  • 3 исправления ошибок

    • Откат попытки не дублировать STDOUT/STDERR ([#1946])
    • Исправление закрытия сокета при ошибке ([#1941])
    • Исправление некорректного завершения рабочих процессов ([#1908])

4.1.0 / 2019-08-08

  • 4 новых функций

    • Добавление REQUEST_PATH в сообщение об ошибке при парсинге ([#1831])
    • Теперь можно легко добавлять пользовательские форматы логов с помощью конфигурационного параметра log_formatter ([#1816])
    • Puma.stats теперь предоставляет время запуска процесса ([#1844])
    • Добавление поддержки отключения TLSv1.1 ([#1836])
  • 7 устранений ошибок

    • Исправление проблемы, при которой Puma создает записи о зомби-процессах ([#1887])
    • Исправление ошибок с окончаниями строк и разбитым кодированием ([#1812])
    • RACK_URL_SCHEME теперь правильно устанавливается во всех условиях ([#1491])
    • Больше не изменяется глобальный STDOUT/STDERR, особенно параметр sync ([#1837])
    • Чтение SSL read_nonblock больше не блокирует ([#1857])
    • Подавление ошибок соединения при отправке ранних подсказок ([#1822])
    • Больше не выводится трассировка стека при выполнении недействительных команд pumactl ([#1863])
  • 5 других изменений

    • Устранение двойного преобразования worker_timeout ([#1838])
    • Удаление вызова приватного метода, который ничего не делал ([#1882])
    • Чистка README, Rakefile, документации и тестов ([#1848], [#1847], [#1846], [#1853], [#1859], [#1850], [#1866], [#1870], [#1872], [#1833], [#1888])
    • Puma.io теперь имеет правильную документацию (https://puma.io/puma/)
    • Добавлена Кодекс поведения Contributor Covenant* 1 известная проблема
    • Некоторые пользователи все еще сталкиваются с проблемами, связанными с активацией сокета и Unix-сокетами ([#1842])

4.0.1 / 2019-07-11

  • 2 устранения ошибок
    • Исправление удаления сокета после перезагрузки — должно исправить проблемы с активацией сокета systemd. ([#1829])
    • Добавление тестов extconf для DTLS_method & TLS_server_method, использование в minissl.rb. Должно исправить "неопределенный символ: DTLS_method" при компиляции против старых версий OpenSSL. ([#1832])
  • 1 другое изменение
    • Удаление ненужных проверок RUBY_VERSION. ([#1827])

4.0.0 / 2019-06-25* 9 новых функций

  • Добавление поддержки отключения TLSv1.0 ([#1562])
  • Метрика времени чтения тела запроса ([#1569])
  • Добавление out_of_band хука ([#1648])
  • Переработка (нативного) IOBuffer для JRuby ([#1691])
  • Минимальное значение worker_timeout ([#1716])
  • Добавление опции для подавления исключения SignalException на SIGTERM ([#1690])
  • Разрешение установки взаимной TLS-CA с помощью ssl_bind DSL ([#1689])
  • Reactor теперь использует nio4r вместо select ([#1728])
  • Добавление статуса к pumactl с pidfile ([#1824])
  • 10 устранений ошибок
    • Не принимать новые запросы при выключении ([#1685], [#1808])
    • Исправление 3 случаев, когда тело запроса разбито на части ([#1508])
    • Изменение условий ветвления проверки наличия pid ([#1650])
    • Не вызывать .stop для сервера, который не существует ([#1655])
    • Реализация кривой NID_X9_62_prime256v1 (P-256) над P-521 ([#1671])
    • Исправление @notify.close не может изменить замороженный IOError (RuntimeError) ([#1583])
    • Исправление поддержки Java 8 ([#1773])
    • Исправление ошибки неинициализированная константа Puma::Cluster ([#1731])
    • Исправление not_token может быть установлено в true ([#1803])
    • Исправление "Замедление при SIGTERM с ruby 2.6 в режиме кластера" (PR [#1741], [#1674], [#1720], [#1730], [#1755])

3.12.1 / 2019-03-19* 1 новая функция

  • Внутренние строки теперь заморожены ([#1649])
  • 3 исправления ошибок
    • Исправлено проверку завершения блока ([#1607])
    • Обработчик Rack должен использовать предоставленный по умолчанию хост ([#1700])
    • Улучшена поддержка обнаружения сред выполнения, поддерживающих fork ([#1630])

3.12.0 / 2018-07-13

  • 5 новых функций:

    • Теперь можно указать, какие SSL-шифры должен поддерживать сервер, значение по умолчанию не изменилось ([#1478])
    • Настройка для max_threads Puma теперь находится в Puma.stats ([#1604])
    • Емкость пула теперь находится в Puma.stats ([#1579])
    • Установка теперь ограничена Ruby 2.2+ ([#1506])
    • --control теперь устарел в пользу --control-url ([#1487])
  • 2 исправления ошибок:

    • Рабочие процессы больше не будут принимать больше веб-запросов, чем они способны обработать. Это предотвращает проблему, когда один рабочий процесс принимает множество запросов, оставляя другие без запросов ([#1563])
    • В тестовой среде Puma теперь выводит стек при исключении ([#1557])

3.11.4 / 2018-04-12

  • 2 новых функции:

    • Управление Puma как службы с помощью rc.d ([#1529])
    • Статистика сервера теперь доступна из метода верхнего уровня ([#1532])
  • 5 исправлений ошибок:

    • Исправлено парсинг CLI-опций ([#1482])
    • Порядок stderr и stdout теперь устанавливается до перенаправления в файл лога ([#1511])
    • Исправлено Init.d для ps -p для проверки наличия pid ([#1545])
    • Исправлено ошибку early hints ([#1550])
    • Очистка очереди прерываний при неудачной попытке закрыть сокет ([#1553])## 3.11.3 / 2018-03-05
  • 3 исправления ошибок:

    • Добавлено closed? к MiniSSL::Socket для использования в reactor ([#1510])
    • Обработка EOFError на верхнем уровне потока сервера ([#1524]) ([#1507])
    • Обработка нулевых размерных тел при использовании SSL ([#1483])

3.11.2 / 2018-01-19

  • 1 исправление ошибки:
    • Обработка возврата nil при чтении блока

3.11.1 / 2018-01-18

  • 1 исправление ошибки:
    • Обработка возврата nil при чтении блока при закрытии сокета ([#1502])

3.11.0 / 2017-11-20

  • 2 новых функции:

    • HTTP 103 Early Hints ([#1403])
    • Статусные коды 421/451 теперь имеют правильные сообщения статуса ([#1435])
  • 9 исправлений ошибок:

    • Файлы конфигурации окружения (/config/puma/.rb) загружаются правильно ([#1340])
    • Правильное указание зависимостей для Windows ([#1434], [#1436])
    • puma/events требуется в тестовом помощнике ([#1418])
    • Правильное исправление текста помощи для опций CLI управления ([#1416])
    • Удаление предупреждения о неиспользуемой переменной в mini_ssl ([#1409])
    • Правильное исправление порядка аргументов в документации pumactl ([#1427])
    • Исправление предупреждения об неинициализированной переменной в server.rb ([#1430])
    • Исправление опечатки/ошибки в документации Launcher init ([#1429])
    • Обработка начальных пробелов в RUBYOPT ([#1455])
  • 2 других:

    • Добавлены документы о внутренней структуре ([#1425], [#1452])
    • Много исправлений тестов от @MSP-Greg ([#1439], [#1442], [#1464])

3.10.0 / 2017-08-17* 3 новых функции:

  • Сервер состояния теперь имеет новые команды /gc и /gc-status. ([#1384])

  • Постоянные и первые временные задержки теперь настраиваются. ([#1111])

  • Реализован RFC 2324. ([#1392])

  • 12 исправлений ошибок:

    • Не совсем ошибка Puma, но @NickolasVashchenko создал gem для обхода ошибки Ruby, с которой сталкиваются некоторые пользователи Puma. См. README для дополнительной информации. ([#1347])
    • Исправлены проблемы с SSL и постоянными соединениями. ([#1334])
    • Исправлены проблемы с двойным привязыванием Rails к порту. ([#1383])
    • Исправлены неправильные имена потоков. ([#1368])
    • Исправлены проблемы с /etc/hosts и JRuby, где адреса localhost были некорректными. ([#1318])
    • Исправлена совместимость с RUBYOPT="--enable-frozen-string-literal". ([#1376])
    • Исправлены некоторые предупреждения компилятора. ([#1388])
    • Теперь мы запускаем интеграционные тесты в CI. ([#1390])
    • Больше не доставляются ненужные директории в gemfile. ([#1391])
    • Если RUBYOPT равен nil, больше не происходит ошибки при перезапуске. ([#1385])
    • Корректный ответ на SIGINT. ([#1377])
    • Правильный код завершения возвращается при получении сигнала TERM. ([#1337])
  • 3 рефакторинга:

    • Разные улучшения тестов от @grosser
    • Rubocop. ([#1325])
    • Hoe был удален. ([#1395])
  • 1 известная проблема:

    • Активация сокета не работает в JRuby. Это их ошибка, а не наша. ([#1367])

3.9.1 / 2017-06-03

  • 2 исправления ошибок:

    • Исправлена совместимость с более старыми версиями Bundler. ([#1314])
    • Некоторая внутренняя очистка тестов/разработки. ([#1311], [#1313])## 3.9.0 / 2017-06-01
  • 2 новых функции:

    • ENV теперь сбрасывается до исходных значений при перезапуске Puma через USR1/USR2 ([#1260]) (только для MRI, JRuby не поддерживается)
    • Puma больше не принимает больше клиентов, чем максимально допустимое число потоков. ([#1278])
  • 9 исправлений ошибок:

    • Уменьшена утечка информации, предотвращено записывание хэшей окружения в STDERR при ошибках парсинга HTTP ([#1306])
    • Исправлена совместимость SSL/WebSocket ([#1274])
    • HTTP-заголовки с пустыми значениями больше не опускаются из ответов. ([#1261])
    • Исправлен ключ env Rack, который был установлен в nil. ([#1259])
    • Реализован peercert для JRuby ([#1248])
    • Исправлены настройки порта при использовании rails s ([#1277], [#1290])
    • Исправлена совместимость с LibreSSL ([#1285])
    • Исправлена совместимость при перезапуске Puma с символическими ссылками и новым Gemfile ([#1282])
    • Заменено Dir.exists? на Dir.exist? ([#1294])
  • 1 известная проблема:

    • Ошибка в MRI 2.2+ может привести к IOError: поток закрыт. См. [#1206]. Эта проблема существует с Puma 3.6, и, вероятно, еще раньше.
  • 1 рефакторинг:

    • Много исправлений тестов от @grosser.

3.8.2 / 2017-03-14

  • 1 исправление ошибки:
    • Обработка getsockopt с TCP_INFO, которая может не удачно завершиться для сокетов, которые заявляют, что они TCP, но на самом деле не являются. ([#1241])

3.8.1 / 2017-03-10

  • 1 исправление ошибки:

    • Удаление вызова метода, который больше не существует ([#1239])## 3.8.0 / 2017-03-09
  • 2 исправления ошибок:

    • Порт из обработчика Rack не имеет приоритета перед конфигурационным файлом в Rails 5.1.0.beta2+ и 5.0.1.rc3+ ([#1234])
    • Плагин tmp/restart.txt больше не ограничивает пользователя запуском более одного сервера из одного и того же каталога одновременно ([#1226])
  • 1 новая функция:

    • Закрытые клиенты прерываются для сохранения ресурсов ([#1227])
  • 1 рефакторинг:

    • Bundler больше не является зависимостью для тестов ([#1213])

3.7.1 / 2017-02-20

  • 2 исправления ошибок:
    • Исправление опечатки, которое приводило к ошибке в MiniSSL ([#1182])
    • Остановка перезаписи командных параметров конфигурационным файлом ([#1203])

3.7.0 / 2017-01-04

  • 6 небольших функций:
    • Разрешение обработчику Rack принимать ssl-хост ([#1129])
    • Рефакторинг обработки TTOU. TTOU теперь обрабатывает несколько сигналов одновременно ([#1165])
    • Использование оставшихся данных блока как следующего запроса
    • Предотвращение кратковременного переключения потоков - увеличение значения по умолчанию для автоматического обрезания до 30 секунд
    • Вызов ошибки, когда stdout или stderr не являются записываемыми ([#1175])
    • Добавление поддержки Rack 2.0 в gemspec ([#1068])* 5 рефакторингов:
    • Сравнение хоста и имени сервера только один раз на вызов. ([#1091])
    • Мелкий рефакторинг пула потоков ([#1088])
    • Удаление большого количества неиспользуемых констант, переменных и файлов.
    • Использование макросов MRI при выделении памяти кучи.
    • Использование хуков для события on_booted. ([#1160])
  • 14 исправлений ошибок:
    • Добавлен метод eof? для NullIO. ([#1169])
    • Исправлена инициализация Puma в предоставленном init.d скрипте. ([#1061])
    • Восстановлено значение по умолчанию SSL режима до none. ([#1036])
    • Исправлена проблема с получением nil io для @listeners. ([#1120])
    • Сделано get_dh1024 совместимым с OpenSSL v1.1.0. ([#1178])
    • Более грациозное обращение с SSL сессиями. Исправлено [#1002]
    • Перемещено puma.rb для автоматической загрузки. Исправлено [#1063]
    • MiniSSL: Предоставлен write как <<. Исправлено [#1089]
    • Prune bundler должен наследовать fds. ([#1114])
    • Заменен использованный Process.getpgid, который не работает так, как задумано на всех платформах. ([#1110])
    • Заголовок Transfer encoding должен быть приведен к нижнему регистру перед сравнением. ([#1135])
    • Использование одной и той же логики записи для захваченных запросов. ([#1081])
    • Исправлено неинициализированная константа Puma::StateFile. ([#1138])
    • Исправлены приоритеты доступа каждого уровня в LeveledOptions. ([#1118])
  • 3 других: * Добавлено/исправлено/улучшено много тестов. Переключено на Minitest с Test::Unit. Благодарим @frodsan.
    • Добавлено/улучшено много документации.
    • Добавлены лицензионные указатели к HTTP-расширению. ([#1075])

3.6.2 / 2016-11-22

  • 1 исправление ошибки:

    • Откат [#1118]/Исправление приоритетов доступа каждого уровня в LeveledOptions. Это имело непреднамеренное побочное действие, изменившее важность параметров командной строки, таких как -p.

3.6.1 / 2016-11-21

  • 8 исправлений ошибок:

    • Исправление запуска Puma в init.d-скрипте.
    • Возврат по умолчанию SSL-режима к none. Исправление [#1036]
    • Исправление проблемы @listeners, получающих nil io, исправление перезапуска Rails ([#1120])
    • Более грациозное обращение с SSL-сессиями. Исправление [#1002]
    • Предотвращение краткосрочной перегрузки потоков.
    • Предоставление записи как <<. Исправление [#1089]
    • Исправление приоритетов доступа каждого уровня в LeveledOptions - исправление TTIN.
    • Обновление файлов описания stub для init.d.
  • 2 новых участника проекта:

    • Nate Berkopec (@nateberkopec)
    • Richard Schneeman (@schneems)

3.6.0 / 2016-07-24* 12 исправлений ошибок:

  • Добавление возможности обнаружения закрывающегося сервера. Исправление [#932]

  • Добавление поддержки Expect: 100-continue. Исправление [#519]

  • Лучшее проверение SSLContext. Исправление [#828]

  • Уточнение поведения '-t num'. Исправление [#984]

  • Отказ от дефолтного VERIFY_PEER. Исправление [#1028]

  • Отказ от использования ENV['PWD'] на Windows. Исправление [#1023]

  • Расширение области перехвата исключений приложения. Исправление [#1027]

  • Выполнение фоновых хуков после демонизации. Исправление [#925]

  • Обработка HUP как остановки, если нет переадресации IO. Исправление [#911]

  • Реализация обработки разбитых запросов. Исправление [#620]

  • Исключение только для возврата 500. Исправление [#1027]

  • Переадресация IO в режиме джавароя демона. Исправление [#778]## 3.5.2 / 2016-07-20

  • 1 исправление ошибки:

    • Убедитесь, что persistent_timeout не является nil
  • 1 внесённый PR:

    • Объединение запроса на включение [#1021] из benzrf/patch-1

3.5.1 / 2016-07-20

  • 1 исправление ошибки:
    • Убедитесь, что вы слушаете только на комбинациях host:port один раз. Исправление [#1022]

3.5.0 / 2016-07-18

  • 1 небольшое улучшение:

    • Разрешение настройки persistent_timeout через DSL.
  • 9 исправлений ошибок:

    • Разрешить голый % в строке запроса. Исправляет [#958]
    • Явно прослушивать все локальные адреса localhost. Исправляет [#782]
    • Исправление ошибки логирования TCPLogger в режиме tcp-кластера.
    • Исправление puma/puma[#968] Невозможность привязки SSL-порта из-за отсутствия опции verify_mode
    • Исправление puma/puma[#968] Установка по умолчанию verify_mode на peer
    • Логирование любых исключений в ThreadPool. Исправляет [#1010]
    • Устранение ошибок соединения в реакторе. Исправляет [#959]
    • Мелкие исправления в документации по хукам для [#840]
    • Необходимо не логировать запросы, если требуется тишина
  • 5 исправлений документации:

    • Добавить "Как остановить Puma на Heroku с помощью плагинов" в каталог примеров
    • Предоставить как горячую, так и фазированную перезагрузку в скрипте jungle
    • Обновить ссылку на скрипт управления экземплярами
    • Обновить стандартное количество потоков
    • Исправить опечатку в примере конфигурации* 14 вливаний PR:
    • Влить запрос на вливание [#1007] из willnet/patch-1
    • Влить запрос на вливание [#1014] из jeznet/patch-1
    • Влить запрос на вливание [#1015] из bf4/patch-1
    • Влить запрос на вливание [#1017] из jorihardman/configurable_persistent_timeout
    • Влить запрос на вливание [#954] из jf/master
    • Влить запрос на вливание [#955] из jf/add-request-info-to-standard-error-rescue
    • Влить запрос на вливание [#956] из maxkwallace/master
    • Влить запрос на вливание [#960] из kmayer/kmayer-plugins-heroku-restart
    • Влить запрос на вливание [#969] из frankwong15/master
    • Влить запрос на вливание [#970] из willnet/delete-blank-document
    • Влить запрос на вливание [#974] из rocketjob/feature/name_threads
    • Влить запрос на вливание [#977] из snow/master
    • Влить запрос на вливание [#981] из zach-chai/patch-1
    • Влить запрос на вливание [#993] из scorix/master

3.4.0 / 2016-04-07

  • 2 небольших функции:

    • Добавить возможность принудительного останова потоков при завершении. Исправляет [#938]
    • Обнаруживать и совершать самоуничтожение при неудаче fork(2). Исправляет [#529]
  • 3 неизвестных:

    • Игнорировать ошибки при попытке обновления таблиц backport. Исправляет [#788]
    • Вызывать lowlevel_error в более местах для отслеживания исключений. Исправляет [#894]
    • Обновить строку запроса при использовании абсолютного URI. Исправляет [#937]
  • 5 исправлений документации:

    • Добавить раздел "Process Monitors" в верхнеуровневый README
    • Лучше документировать хуки. Исправляет [#840]
    • Примеры конфигурации и уточнения в docs/system.md
    • Исправить опечатки в нескольких местах.
    • Устранить предупреждения* 3 вливания PR:
    • Влить запрос на вливание [#945] из dekellum/systemd-docs-refined
    • Влить запрос на вливание [#946] из vipulnsward/rm-pid
    • Влить запрос на вливание [#947] из vipulnsward/housekeeping-typos

3.3.0 / 2016-04-05

  • 2 небольших функции:

    • Разрешить переопределение опций объекта Configuration
    • Переименовать в inherit_ssl_listener как inherit_tcp|unix
  • 2 исправления документации:

    • Добавить docs/systemd.md (с подразделом о socket activation)
    • Документировать UNIX сигналы с кластером в README.md
  • 3 вливания PR:

    • Влить запрос на вливание [#936] из prathamesh-sonpatki/allow-overriding-config-options
    • Влить запрос на вливание [#940] из kyledrake/signalsdoc
    • Влить запрос на вливание [#942] из dekellum/socket-activate-improve

3.2.0 / 2016-03-20

  • 1 устаревшее изменение:

    • Удалено capistrano.rb
  • 3 исправления ошибок:

    • Обнаружение gems.rb, а также Gemfile
    • Упрощение и исправление логики для использования директории при перезапуске для всех фаз
    • Ускорение запуска phased-restart
  • 2 вливания pull request:

    • Вливание pull request [#927] из jlecour/gemfile_variants
    • Вливание pull request [#931] из joneslee85/patch-10

3.1.1 / 2016-03-17

  • 4 исправления ошибок:

    • Отключение использования USR1 на JRuby
    • Исправление [#922] - Правильное определение кодировки файла как UTF-8
    • Установка более явного SERVER_SOFTWARE Rack переменной
    • Отображение RUBY_ENGINE_VERSION, если доступно. Исправление [#923]
  • 3 вливания pull request:

    • Вливание pull request [#912] из tricknotes/fix-allow-failures-in-travis-yml
    • Вливание pull request [#921] из swrobel/patch-1
    • Вливание pull request [#924] из tbrisker/patch-1## 3.1.0 / 2016-03-05
  • 1 улучшение:

    • Добавление директивы 'import' в конфигурационный файл. Исправление [#916]
  • 5 исправлений ошибок:

    • Добавление 'fetch' в опции. Исправление [#913]
    • Исправление демонизации jruby. Исправление [#918]
    • Пересоздание правильных аргументов вручную. Исправление [#910]
    • Требование 'time' для получения iso8601. Исправление [#914]

3.0.2 / 2016-02-26

  • 5 исправлений ошибок:

    • Исправление 'неопределённой локальной переменной или метода pid для #Puma::ControlCLI:0x007f185fcef968' при выполнении pumactl с опцией --pid.
    • Исправление 'неопределённого метода windows? для Puma:Module' при выполнении pumactl.
    • Усиление tmp_restart против ошибок, связанных с файлом перезапуска.
    • Устранение поведения plugin :tmp_restart в Windows.
    • Исправление неинициализированной константы Puma::ControlCLI::StateFile.
  • 3 внесённых pull request:

    • Вливание pull request [#901] из mitto/fix-pumactl-uninitialized-constant-statefile.
    • Вливание pull request [#902] из corrupt952/fix_undefined_method_and_variable_when_execute_pumactl.
    • Вливание pull request [#905] из Eric-Guo/master.

3.0.1 / 2016-02-25

  • 1 исправление ошибки:

    • Удаление экспериментальной поддержки async.callback, так как она полностью сломала websockets. Судя по всему, ни один сервер не имеет одновременно hijack и async.callback, и поэтому faye полностью запутывается, что делать, и не работает.

3.0.0 / 2016-02-25

  • 2 значительных изменения: * Ruby пред-2.0 больше не поддерживается. Мы постараемся не добавлять функции, которые сломают эти версии Ruby, но больше не будем тестировать их.

    • По умолчанию не логировать запросы. Исправление [#852]. 2 основных функции: * Поддержка плагинов! Плагины могут взаимодействовать с конфигурацией и расширять функциональность сервера!
    • Поддержка экспериментального env['async.callback']
  • 4 незначительные функции:

    • Слушает UNIX-сокет с заданным backlog, если он указан
    • Улучшает статистику режима кластера для отчета о статусе рабочих процессов
    • Передает env в обработчик lowlevel_error. Исправляет [#854]
    • Обрабатывает хосты в виде путей как UNIX-сокеты. Исправляет [#824]
  • 5 исправлений ошибок:

    • Очищает thread locals при использовании keepalive. Исправляет [#823]
    • Устраняет предупреждения компилятора. Исправляет [#815]
    • Предоставляет closed? для использования реактором. Исправляет [#835]
    • Перемещает обработчики сигналов в отдельный метод для предотвращения утечек памяти. Исправляет [#798]
    • Не уведомляет о полной загрузке при выходе рабочего процесса [#876]
  • 5 исправлений документации:

    • Обновляет README.md с исправлением грамматических ошибок
    • Использует новую версию Minitest
    • Добавляет документацию по конфигурации директорий, исправляет опечатку [ci skip]
    • Удаляет старое сообщение COPYING. Исправляет [#849]
  • 10 объединённых PR: * Объединяет pull request [#871] из deepj/travis

    • Объединяет pull request [#874] из wallclockbuilder/master
    • Объединяет pull request [#883] из dadah89/igor/trim_only_worker
    • Объединяет pull request [#884] из uistudio/async-callback
    • Объединяет pull request [#888] из mlarraz/tick_minitest
    • Объединяет pull request [#890] из todd/directory_docs
    • Объединяет pull request [#891] из ctaintor/improve_clustered_status
    • Объединяет pull request [#893] из spastorino/add_missing_require
    • Объединяет pull request [#897] из zendesk/master
    • Объединяет pull request [#899] из kch/kch-readme-fixes## 2.16.0 / 2016-01-27
  • 7 незначительных функций:

    • Добавляет опцию конфигурации set_remote_address
    • Разрешает запуск puma в тихом режиме
    • Предоставляет CLI опции в DSL
    • Поддерживает передачу информации о keystore JRuby в ssl_bind DSL
    • Разрешает использование umask для unix:/// стиля контрольных URL
    • Предоставляет old_worker_count в статистическом URL
    • Поддерживает TLS клиентскую аутентификацию (verify_mode) в JRuby
  • 7 исправлений ошибок:

    • Не сохраняет before_fork hook в файле состояния
    • Перезагружает bundler перед загрузкой rack. Исправляет [#859]
    • Удаляет переменную окружения NEWRELIC_DISPATCHER
    • Устраняет предупреждения компилятора
    • Использует Timeout.timeout вместо Object.timeout
    • Ускоряет фазовые перезапуски
    • Игнорирует регистр определенных заголовков, так как HTTP
  • 1 изменение документации:

    • Тестирует против последней Ruby 2.1, 2.2, 2.3, head и JRuby 9.0.4.0 на Travis
  • 12 объединённых PR * Объединение запроса на вливание [#822] из kwugirl/remove_NEWRELIC_DISPATCHER

    • Объединение запроса на вливание [#833] из joemiller/jruby-client-tls-auth
    • Объединение запроса на вливание [#837] из YuriSolovyov/ssl-keystore-jruby
    • Объединение запроса на вливание [#839] из mezuka/master
    • Объединение запроса на вливание [#845] из deepj/timeout-deprecation
    • Объединение запроса на вливание [#846] из sriedel/strip_before_fork
    • Объединение запроса на вливание [#850] из deepj/travis
    • Объединение запроса на вливание [#853] из Jeffrey6052/patch-1
    • Объединение запроса на вливание [#857] из zendesk/faster_phased_restarts
    • Объединение запроса на вливание [#858] из mlarraz/fix_some_warnings
    • Объединение запроса на вливание [#860] из zendesk/expose_old_worker_count
    • Объединение запроса на вливание [#861] из zendesk/allow_control_url_umask## 2.15.3 / 2015-11-07
  • 1 исправление ошибки:

    • Исправление парсера JRuby

2.15.2 / 2015-11-06

  • 2 исправления ошибок:

    • ext/puma_http11: обработка повторяющихся заголовков в соответствии с RFC
    • Установка ctx.ca только если есть параметр 'ca' для установки.
  • 2 объединённых PR:

    • Объединение запроса на вливание [#818] из unleashed/support-duplicate-headers
    • Объединение запроса на вливание [#819] из VictorLowther/fix-ca-and-verify_null-exception

2.15.1 / 2015-11-06

  • 1 исправление ошибки:

    • Поддержка более старых версий OpenSSL

2.15.0 / 2015-11-06

  • 6 небольших улучшений:

    • Поддержка установки ca без установки режима проверки
    • Добавление поддержки rbenv для init.d
    • Использование SSL_CTX_use_certificate_chain_file для полной цепочки
    • cluster: добавление опции worker_boot_timeout
    • конфигурация: поддержка пустых тегов для указания отсутствия желаемого тега
    • puma/cli: поддержка указания переадресации STD{OUT,ERR} и режима добавления
  • 5 исправлений ошибок:

    • Отключение SSL Compress
    • Исправление ошибки установки worker_directory при использовании символической ссылки
    • Исправление неточного сообщения об ошибке в DSL
    • Pumactl: установка правильного имени процесса. Исправляет [#563]
    • thread_pool: исправление условия гонки при завершении работы рабочих процессов* 10 исправлений документации:
    • Добавление объяснения before_fork в Readme.md
    • Исправление орфографических ошибок в DEPLOYMENT.md
    • Исправление орфографических ошибок в docs/nginx.md
    • Исправление орфографических ошибок.
    • Исправление опечатки в описании развертывания
    • Исправление опечаток (it's -> its) в events.rb и server.rb
    • Исправление опечатки, упомянутой в [#803]
    • Исправление орфографических ошибок в README
    • thread_pool: исправление опечаток в комментариях
    • Более явное описание для worker_timeout

18 PRs объединены:

  • Объединение запроса на слияние [#768] из nathansamson/patch-1

  • Объединение запроса на слияние [#773] из rossta/spelling_corrections

  • Объединение запроса на слияние [#774] из snow/master

  • Объединение запроса на слияние [#781] из sunsations/fix-typo

  • Объединение запроса на слияние [#791] из unleashed/allow_empty_tags

  • Объединение запроса на слияние [#793] из robdimarco/fix-working-directory-symlink-bug

  • Объединение запроса на слияние [#794] из peterkeen/patch-1

  • Объединение запроса на слияние [#795] из unleashed/redirects-from-cmdline

  • Объединение запроса на слияние [#796] из cschneid/fix_dsl_message

  • Объединение запроса на слияние [#799] из annafw/master

  • Объединение запроса на слияние [#800] из liamseanbrady/fix_typo

  • Объединение запроса на слияние [#801] из scottjg/ssl-chain-file

  • Объединение запроса на слияние [#802] из scottjg/ssl-crimes

  • Объединение запроса на слияние [#804] из burningTyger/patch-2

  • Объединение запроса на слияние [#809] из unleashed/threadpool-fix-race-in-shutdown * Объединение запроса на слияние [#810] из vlmonk/fix-pumactl-restart-bug

  • Объединение запроса на слияние [#814] из schneems/schneems/worker_timeout-docs

  • Объединение запроса на слияние [#817] из unleashed/worker-boot-timeout## 2.14.0 / 2015-09-18

  • 1 небольшая функциональная возможность:

    • Делать сборку с поддержкой SSL опциональной
  • 1 исправление ошибки:

    • Использовать Rack::Builder, если доступно. Исправляет [#735]

2.13.4 / 2015-08-16

  • 1 исправление ошибки:
    • Использовать среду, возможно установленную конфигурацией, рано, а из конфигурационного файла позже (если установлена).

2.13.3 / 2015-08-15

Серьёзно, мне нужно переработать конфигурацию с тестами.

  • 1 исправление ошибки:
    • Исправить сохранение опций перед очисткой состояния. Исправляет [#769]

2.13.2 / 2015-08-15

Релиз "очевидно, мне недостаточно тестов для конфигурации".

  • 1 исправление ошибки:
    • Исправить ещё одно место, где binds не было инициализировано. Исправляет [#767]

2.13.1 / 2015-08-15

  • 2 исправления ошибок:
    • Исправить маскировку binds в конфигурационных файлах. Исправляет [#765]
    • Использовать опции из конфигурационного файла правильно в pumactl. Исправляет [#764]

2.13.0 / 2015-08-14

  • 1 небольшая функциональная возможность:

    • Добавить опцию before_fork.
  • 3 исправления ошибок:

    • Проверить наличие OPENSSL_NO_ECDH перед использованием ECDH
    • Устранить избыточные затраты на логирование из JRuby SSL
    • Предпочитать опции командной строки конфигурационным файлам. Исправляет [#669]
  • 1 устаревание:

    • Добавить предупреждение об устаревании в capistrano.rb. Исправляет [#673]* 4 PRs объединены:
    • Объединение запроса на слияние [#668] из kcollignon/patch-1
    • Объединение запроса на слияние [#754] из nathansamson/before_boot
    • Объединение запроса на слияние [#759] из BenV/fix-centos6-build
    • Объединение запроса на слияние [#761] из looker/no-log

2.12.3 / 2015-08-03

  • 8 мелких багов исправлено:

    • Исправлено сообщение об ошибке Capistrano 'uninitialized constant Puma'.
    • Исправлено древнее и неверное кодирование обработки ошибок.
    • Исправлено сообщение об ошибке 'uninitialized constant'.
    • Удалено топ-уровневое разбиение Rack, теперь Rack подключается при загрузке.
    • Пропуск пустых частей при разбиении.
    • Переключение с inject на each при итерации config_ru_binds.
    • Оборачивание спецификации SSLv3 в версионный блок.
    • Патчи для совместимости с ruby 1.8.7.
  • 4 PR объединены:

    • Объединение pull request [#742] из deivid-rodriguez/fix_missing_require.
    • Объединение pull request [#743] из matthewd/skip-empty-chunks.
    • Объединение pull request [#749] из huacnlee/fix-cap-uninitialized-puma-error.
    • Объединение pull request [#751] из costi/compat_1_8_7.
  • 1 исправление теста:

    • Добавление 1.8.7, rbx-1 (разрешение на неудачу) в Travis.

2.12.2 / 2015-07-17

  • 2 исправления багов:
    • Перенос и использование Rack::URLMap. Исправляет [#741].
    • Подмена peercert на JRuby временно. Исправляет [#739].

2.12.1 / 2015-07-16

  • 2 исправления багов:

    • Использование постоянного формата. Исправляет [#737].
    • Использование strerror для Windows. Исправляет [#733].
  • 1 изменение документации:

    • Исправление опечатки: occured -> occurred.* 1 объединённый PR:
    • Объединение pull request [#736] из paulanunda/paulanunda/typo-fix.

2.12.0 / 2015-07-14

  • 13 исправлений багов:
    • Добавление сборки потоков в пуле потоков.
    • Отключение автоматического использования разбитых ответов при захвате.
    • Отключение подавления Content-Length при частичном захвате.
    • Отключение прерывания потока любыми исключениями.
    • Обработка ENOTCONN отключения клиента при установлении REMOTE_ADDR.
    • Обработка очень раннего выхода из режима кластера. Исправляет [#722].
    • Установка Rack при запуске тестов на Travis для использования rack/lint.
    • Добавление успешного кода выхода для puma -v и -h.
    • Добавление загрузки config/puma.rb по умолчанию для pumactl.
    • Передача опций из pumactl правильно при обрезке. Исправляет [#694].
    • Удаление зависимости от Rack. Исправляет [#705].
    • Удаление стандартного Content-Type: text/plain.
    • Добавление аутентификации с клиентскими сертификатами.* 8 изменений документации и тестов:
    • Добавление примера источника переменных окружения.
    • Добавление тестов для конфигурации привязки в файле rackup.
    • Исправление примерного текста конфигурации.
    • Обновление DEPLOYMENT.md.
    • Обновление Readme с примером пользовательского обработчика ошибок.
    • Улучшение настроек Travis.
    • Начало запуска тестов против JRuby 9.0 на Travis.
    • Преобразование в контейнерную инфраструктуру для travisci.
  • 2 изменения в операциях:
    • Проверка наличия rbenv на уровне всей системы.
    • capistrano: Добавление дополнительной среды при запуске rails.* 16 внесённых pull request:
    • Вливание pull request [#686] из jjb/patch-2
    • Вливание pull request [#693] из rob-murray/update-example-config
    • Вливание pull request [#697] из spk/tests-bind-on-rackup-file
    • Вливание pull request [#699] из deees/fix/require_rack_builder
    • Вливание pull request [#701] из deepj/master
    • Вливание pull request [#702] из Jimdo/thread-reaping
    • Вливание pull request [#703] из deepj/travis
    • Вливание pull request [#704] из grega/master
    • Вливание pull request [#709] из lian/master
    • Вливание pull request [#711] из julik/master
    • Вливание pull request [#712] из yakara-ltd/pumactl-default-config
    • Вливание pull request [#715] из RobotJiang/master
    • Вливание pull request [#725] из rwz/master
    • Вливание pull request [#726] из strenuus/handle-client-disconnect
    • Вливание pull request [#729] из allaire/patch-1
    • Вливание pull request [#730] из iamjarvo/container-infrastructure

2.11.3 / 2015-05-18

  • 5 исправлений ошибок:

    • Убедитесь, что временные файлы отвязываются после запроса. Исправляет [#690]
    • Преобразование ключа в строку перед проверкой. (там могут быть символы). Исправляет [#684]
    • Исправление зависания при плохом SSL рукопожатии
    • Удаление поддержки enable_SSLv3 для JRuby
  • 1 внесённый pull request:

    • Вливание pull request [#698] из looker/hang-handshake

2.11.2 / 2015-04-11

  • 2 небольших улучшения:

    • Добавление хука on_worker_fork, который позволяет имитировать поведение Unicorn
    • Добавление опции конфигурации shutdown_debug* 4 исправления ошибок:
    • Исправление недоступности констант Config в DSL. Исправляет [#683]
    • Игнорирование множественных объявлений порта
    • Правильная обработка заголовка 'Connection' совместимая с протоколами HTTP 1.[01]
    • Использование "Puma" вместо "puma" для отчетности в New Relic* 1 исправление документации:
    • Добавление значка Gitter.
  • 6 внесённых pull request:

    • Вливание pull request [#657] из schneems/schneems/puma-once-port
    • Вливание pull request [#658] из Tomohiro/newrelic-dispatcher-default-update
    • Вливание pull request [#662] из basecrm/connection-compatibility
    • Вливание pull request [#664] из fxposter/on-worker-fork
    • Вливание pull request [#667] из JuanitoFatas/doc/gemspec
    • Вливание pull request [#672] из chulkilee/refactor

2.11.1 / 2015-02-11

  • 2 исправления ошибок:

    • Предотвращение аварийного завершения при странных условиях перезапуска
    • Внедрение GEM_HOME, используемого bundler в puma-wild's env. Исправляет [#653]
  • 2 объединённых pull request:

    • Объединить запрос на слияние [#644] из bpaquet/master
    • Объединить запрос на слияние [#646] из mkonecny/master

2.11.0 / 2015-01-20

  • 9 исправлений ошибок:

    • Добавить режим как дополнительный параметр привязки для unix сокетов. Исправляет [#630]
    • Правильно рекламировать HTTPS после горячего перезапуска
    • Не записывать lowlevel_error_handler в состояние
    • Исправить фазированный перезапуск с застрявшими запросами
    • Правильно обрабатывать пробелы в пути. Исправляет [#622]
    • Установить по умолчанию REMOTE_ADDR для избежания использования peeraddr на unix сокетах. Исправляет [#583]
    • Пропустить проверку номера устройства на jruby. Исправляет [#586]
    • Обновить extconf.rb для правильной компиляции на OS X
    • Перенаправить io сразу после демонизации, чтобы ошибки запуска отображались. Исправляет [#359]* 6 небольших улучшений:
    • Добавить конфигурационный параметр, который предотвращает puma от очереди запросов.
    • Добавить reload_worker_directory.
    • Добавить возможность передачи переменных окружения в инициализационный скрипт (для Jungle).
    • Добавить тег proctitle для worker. Исправляет [#633].
    • Установить тег proctitle на основе директории.
    • Обновить сообщение об ошибке низкого уровня для большей осмысленности.
  • 10 PRs объединены:

    • Объединить запрос на слияние [#478] из rubencaro/master.
    • Объединить запрос на слияние [#610] из kwilczynski/master.
    • Объединить запрос на слияние [#611] из jasonl/better-lowlevel-message.
    • Объединить запрос на слияние [#616] из jc00ke/master.
    • Объединить запрос на слияние [#623] из raldred/patch-1.
    • Объединить запрос на слияние [#628] из rdpoor/master.
    • Объединить запрос на слияние [#634] из deepj/master.
    • Объединить запрос на слияние [#637] из raskhadafi/patch-1.
    • Объединить запрос на слияние [#639] из ebeigarts/fix-phased-restarts.
    • Объединить запрос на слияние [#640] из codehotter/issue-612-dependent-requests-deadlock.

2.10.2 / 2014-11-26

  • 1 исправление ошибки:
    • Условно очистить локальные переменные потока, исправляет снижение производительности. Код для очистки всех локальных переменных потока добавляет значительную нагрузку на каждый запрос, поэтому он должен быть включен явно, если пользователь этого требует.

2.10.1 / 2014-11-24

  • 1 исправление ошибки:

    • Загрузить приложение после демонизации, так как приложение может запустить потоки. Это изменение означает, что ошибки загрузки приложения теперь отображаются только в перенаправленном stdout/stderr.

    Если у вашего приложения есть проблемы с запуском, начните его без режима демонизации вначале для тестирования.

2.10.0 / 2014-11-23

  • 3 небольших улучшения:

    • Добавлен механизм hook on_worker_shutdown
    • Разрешена привязка к ipv6 адресам для ssl URI
    • Предупреждение о любых потоках, запущенных во время предзагрузки приложения
  • 5 устранений ошибок:

    • Очистка локальных данных потока перед выполнением работы
    • Отключение SSLv3. Исправляет [#591]
    • Сначала изменение директории для использования правильного Gemfile.
    • Использование привязок config.ru только при их указании. Исправляет [#606]
    • Сильная шифровальная группа с поддержкой FS для некоторых браузеров
  • 2 изменения в документации:

    • Изменение примеров umask на более лояльные значения
    • Исправление опечатки в README.md
  • 9 объединённых PR:

    • Объединение запроса на включение [#560] от raskhadafi/prune_bundler-bug
    • Объединение запроса на включение [#566] от sheltond/master
    • Объединение запроса на включение [#593] от andruby/patch-1
    • Объединение запроса на включение [#594] от hassox/thread-cleanliness
    • Объединение запроса на включение [#596] от burningTyger/patch-1
    • Объединение запроса на включение [#601] от sorentwo/friendly-umask
    • Объединение запроса на включение [#602] от 1334/patch-1
    • Объединение запроса на включение [#608] от Gu1/master
    • Объединение запроса на включение [#538] от memiux/?## 2.9.2 / 2014-10-25
  • 8 устранений ошибок:

    • Исправление обработки перезапуска puma-wild. Исправляет [#550]
    • Обновление JRuby SSL POODLE
    • Сохранение предупреждений о устаревших функциях
    • Запись текущего времени при завершении Puma
    • Исправление обнаружения библиотек расширений на кросс-платформенной основе
    • Использование правильных имен Windows для OpenSSL
    • Улучшение логирования ошибок при запуске
    • Исправление сексистских сообщений об ошибках
  • 6 объединённых PR:

    • Объединение запроса на включение [#549] от bsnape/log-shutdown-time
    • Объединение запроса на включение [#553] от lowjoel/master
    • Объединение запроса на включение [#568] от mariuz/patch-1
    • Объединение запроса на включение [#578] от danielbuechele/patch-1
    • Объединение запроса на включение [#581] от alexch/slightly-better-logging
    • Объединение запроса на включение [#590] от looker/jruby_disable_sslv3

2.9.1 / 2014-09-05

  • 4 устранения ошибок:

    • Правильная очистка структур SSL, исправляет утечку памяти
    • Исправление краевых случаев запуска потока
    • Выполнение проверки работника после его запуска, не ждать 5 секунд. Исправляет [#574]
    • Реализация SIGHUP для перезапуска логов
  • 2 объединённых PR:

    • Объединение запроса на включение [#561] от theoldreader/sighup
    • Объединение запроса на включение [#570] от havenwood/spawn-thread-edge-case

2.9.0 / 2014-07-12

  • 1 небольшое улучшение:

    • Добавление поддержки SSL для JRuby* 3 устранения ошибок:
    • Опечатка BUNDLER_GEMFILE -> BUNDLE_GEMFILE
    • Использование fast_write, так как мы не можем доверять syswrite
    • pumactl - не изменять оригинальный ARGV
  • 4 улучшения документации:

    • BSD-3-Clause вместо BSD для избежания путаницы
    • Деплой документация: уточнение GIL
    • Исправление опечатки в DEPLOYMENT.md
    • Обновление README.md
  • 6 объединённых PRs:

    • Объединить запрос на слияние [#520] из misfo/patch-2
    • Объединить запрос на слияние [#530] из looker/jruby-ssl
    • Объединить запрос на слияние [#537] из vlmonk/patch-1
    • Объединить запрос на слияние [#540] из allaire/patch-1
    • Объединить запрос на слияние [#544] из chulkilee/bsd-3-clause
    • Объединить запрос на слияние [#551] из jcxplorer/patch-1

2.8.2 / 2014-04-12

  • 4 исправления ошибок:

    • В процессе обновления, измените директорию в основном процессе вместо рабочих процессов.
    • Правильно закройте клиента при ошибке.
    • Capistrano: переход от фазированного перезапуска к запуску, если не запущен.
    • Разрешите опцию тега в конфигурационном файле.
  • 4 улучшения документации:

    • Исправление опечатки в README для службы Puma-демона.
    • preload_app! вместо preload_app.
    • Добавить preload_app и prune_bundler в пример конфигурации.
    • Разрешить изменение worker_timeout в конфигурационном файле.* 11 объединённых PR:
    • Объединить запрос на слияние [#487] из ckuttruff/master
    • Объединить запрос на слияние [#492] из ckuttruff/master
    • Объединить запрос на слияние [#493] из alepore/config_tag
    • Объединить запрос на слияние [#503] из mariuz/patch-1
    • Объединить запрос на слияние [#505] из sammcj/patch-1
    • Объединить запрос на слияние [#506] из FlavourSys/config_worker_timeout
    • Объединить запрос на слияние [#510] из momer/rescue-block-handle-servers-fix
    • Объединить запрос на слияние [#511] из macool/patch-1
    • Объединить запрос на слияние [#514] из edogawaconan/refactor_env
    • Объединить запрос на слияние [#517] из misfo/patch-1
    • Объединить запрос на слияние [#518] из LongMan/master## 2.8.1 / 2014-03-06
  • 1 исправление ошибок:

    • Запустите puma-wild с правильными зависимостями для prune_bundler
  • 2 изменения документации:

    • Описано поведение поиска конфигурационного файла, добавленное в 2.8.0, и как его отключить.
    • Начало документации по развертыванию
  • 6 объединённых PR:

    • Объединить запрос на слияние [#471] из arthurnn/fix_test
    • Объединить запрос на слияние [#485] из joneslee85/patch-9
    • Объединить запрос на слияние [#486] из joshwlewis/patch-1
    • Объединить запрос на слияние [#490] из tobinibot/patch-1
    • Объединить запрос на слияние [#491] из brianknight10/clarify-no-config

2.8.0 / 2014-02-28* 8 небольших функций:

  • Добавлена возможность автоматической загрузки конфигурационного файла. Исправляет [#438]

  • Добавлена возможность обнаружения и завершения работы зависших рабочих процессов. Исправляет [#333]

  • Добавлен booted_workers в ответ статистики

  • Добавлена конфигурация для настройки стандартного сообщения об ошибке

  • Добавлена опция prune_bundler

  • Добавлены индексы рабочих процессов, доступны через on_worker_boot. Исправляет [#440]

  • Добавлено красивое имя процесса

  • Отображение используемой версии Ruby* 7 устранений ошибок:

  • Добавлен статус 408 при таймауте.

  • Будьте более агрессивны с сокетами, которые блокируют запись. Исправляет [#449]

  • Ожидайте, что at_exit исключительно удаляет pidfile. Исправляет [#444]

  • Раскройте задержку и очередь прослушивания через запрос bind. Исправляет [#370]

  • JRuby поднимает исключение IOError, если сокет существует. Исправляет [#377]

  • Обрабатывайте запросы справедливо. Исправляет [#406]

  • Обрабатывайте SystemCallError также. Исправляет [#425]* 4 изменения в документации:

  • Добавлен 2.1.0 в матрицу

  • Добавлен бейдж Code Climate в README

  • Создан signals.md

  • Установлен лицензионный тип BSD. Исправляет [#432]

  • 14 объединённых запросов на включение:

    • Объединён запрос на включение [#428] из alexeyfrank/capistrano_default_hooks
    • Объединён запрос на включение [#429] из namusyaka/revert-const_defined
    • Объединён запрос на включение [#431] из mrb/master
    • Объединён запрос на включение [#433] из alepore/process-name
    • Объединён запрос на включение [#437] из ibrahima/master
    • Объединён запрос на включение [#446] из sudara/master
    • Объединён запрос на включение [#451] из pwiebe/status_408
    • Объединён запрос на включение [#453] из joevandyk/patch-1
    • Объединён запрос на включение [#470] из arthurnn/fix_458
    • Объединён запрос на включение [#472] из rubencaro/master
    • Объединён запрос на включение [#480] из jjb/docs-on-running-test-suite
    • Объединён запрос на включение [#481] из schneems/master
    • Объединён запрос на включение [#482] из prathamesh-sonpatki/signals-doc-cleanup
    • Объединён запрос на включение [#483] из YotpoLtd/master

2.7.1 / 2013-12-05

  • 1 устранение ошибок:
    • Сохраните STDOUT/STDERR в правильном режиме. Исправляет [#422]

2.7.0 / 2013-12-03

  • 1 небольшое улучшение:

    • Добавлены сигналы TTIN и TTOU для увеличения/уменьшения рабочих процессов* N устранений ошибок:
    • Всегда используйте наш Process.daemon, так как он не сломан
    • Добавьте capistrano restart failback для запуска.
    • Измените позицию cd, чтобы загрузить rvm gemset
    • Уточните некоторые платформенные особенности
    • Не закрывайте сокеты-каналы при повторной попытке
    • Исправьте String#byteslice для Ruby 1.9.1, 1.9.2
    • Исправьте совместимость с 1.8.7.
    • Обработайте IOError закрытого потока в IO.select
    • Увеличьте максимальную длину пути URI до 2048 символов с 1024 символов
    • Upstart jungle использует config/puma.rb вместо## 2.6.0 / 2013-09-13
  • 2 небольших улучшения:

    • Добавлена поддержка событийных хуков ** Добавлен хук для переходов состояния
    • Добавлен фазированный перезапуск в capistrano рецепт.
  • 4 устранения ошибок:

    • Убедитесь, что рабочие процессы останавливаются SIGKILL после таймаута
    • Определите RSTRING_NOT_MODIFIED для производительности Rubinius
    • Обработайте BrokenPipe, StandardError и IOError в fat_wrote и выйдите
    • Верните успешный статус вызывающей среде

2.5.1 / 2013-08-13

  • 2 исправления ошибок:
    • Предотвратить повторную попытку запуска при горячем перезапуске для jruby daemon mode
    • Извлечь версию из const.rb в gemspec

2.5.0 / 2013-08-08

  • 2 небольших улучшения:

    • Разрешить настройку pumactl с помощью config.rb
    • Добавить pumactl restart, чтобы запустить puma, если он не запущен
  • 6 исправлений ошибок:

    • Автоматически определять менеджеры ruby и домашнюю директорию в скрипте upstart
    • Преобразовать заголовочные значения в строки перед отправкой
    • Правильно отображать доступность phased-restart
    • Исправить проблему с распределением pidfile при daemonизации jruby
    • Использовать целые числа при сравнении количества потоков
    • Исправить опечатку в использовании lopez express (raw tcp) режима* 6 различных изменений:
    • Исправить опечатку в ответе phased-restart
    • Отменить комментарий setuid/setgid по умолчанию в upstart
    • Использовать Puma::Const::PUMA_VERSION в gemspec
    • Обновить комментарии upstart для отображения нового командного строки
    • Удалить устаревшие инструкции pumactl; ссылаться на pumactl для подробностей
    • Сделать Bundler использование puma.gemspec версией агнозной## 2.4.1 / 2013-08-07
  • 1 экспериментальное улучшение:

    • Поддержка серверов raw TCP (также известных как Lopez Express режим)

2.4.0 / 2013-07-22

  • 5 небольших улучшений:

    • Добавить PUMA_JRUBY_DAEMON_OPTS для обхода запуска агента дважды
    • Добавить возможность дренажа accept socket при завершении
    • Добавить порт в DSL
    • Добавить поддержку использования файла конфигурации Puma в деплоях Capistrano
    • Сделать phased_restart падающим обратно на restart, если он недоступен
  • 10 исправлений ошибок:

    • Убедиться, что pid удаляется только в мастере. Исправляет [#334]
    • Вызвать -C/--config флаги
    • Изменить символы парсера, чтобы избежать конфликта. Исправляет [#179]
    • Преобразовать размеры пула потоков в целые числа
    • Определить, когда дочерний процесс JRuby daemon не запускается правильно
    • Исправить опечатку в помощи CLI
    • Улучшить вывод логирования при использовании hijack. Исправляет [#332]
    • Удалить ненужные преобразования размеров пула потоков
    • Настроить :worker_boot как Array. Исправляет [#317]
    • Использовать 127.0.0.1 как REMOTE_ADDR для unix клиента. Исправляет [#309]

2.3.2 / 2013-07-08

  • 1 исправление ошибки:
    • Переместить запуск сервера управления после daemonization.

2.3.1 / 2013-07-06

  • 2 исправления ошибок:

    • Включить правильные файлы в Manifest.
    • Отключить наследование соединений при перезапуске на Windows. Исправляет [#166]
  • 1 изменение документации:

    • Лучше документировать некоторые ограничения платформы## 2.3.0 / 2013-07-05
  • 1 основное исправление ошибки:

    • Стабилизация сервера управления, добавлена поддержка в режиме кластера
    • 5 мелких исправлений ошибок:
      • Добавлена возможность очистки устаревших Unix сокетов
      • Улучшена проверка статусных данных. Исправляет [#292]
      • Преобразование ошибок ввода-вывода в ConnectionError. Исправляет [#274]
      • Исправление отправки Content-Type и Content-Length для статуса без тела. Исправляет [#304]
      • Передача пути состояния в pumactl start. Исправляет [#287]
  • 2 внутренних изменения:

    • Переработка режимов в отдельные классы, используемые CLI
    • Изменение CLI для передачи объекта Events вместо stdout/stderr (изменение API)

2.2.2 / 2013-07-02

  • 1 исправление ошибки:
    • Исправление restart_command в конфигурации

2.2.1 / 2013-07-02

  • 1 небольшое нововведение:

    • Введение флага preload
  • 1 исправление ошибки:

    • Передача пользовательской команды перезапуска в JRuby

2.2.0 / 2013-07-01

  • 1 основное нововведение:

    • Добавлена возможность предзагрузки приложения Rack
  • 2 небольших исправления ошибок:

    • Не утечка информации при отсутствии режима разработки. Исправляет [#256]
    • Загрузка приложения перед привязкой портов

2.1.1 / 2013-06-20

  • 2 небольших исправления ошибок:

    • Исправление демонизации на jruby
    • Загрузка приложения перед демонизацией. Исправляет [#285]

2.1.0 / 2013-06-18* 3 небольших улучшения:

  • Разрешение настройки прослушивающего сокета через переменную Capistrano

  • Вывод результатов команды 'stat' при использовании pumactl

  • Поддержка systemd socket activation* 15 исправлений ошибок:

  • Обработка закрытия труб при остановке. Исправляет [#270]

  • Выход с ошибкой при отсутствии настроек приложения

  • Обработка ConnectionError вместо низкоуровневых исключений

  • Настройка с помощью -C файла конфигурации и on_worker_boot

  • Использование -w

  • Исправление некоторых опечаток в скриптах upstart

  • Убедитесь, что используется bytesize вместо size (MiniSSL write)

  • Исправление ошибки в puma-manager.conf

  • Исправление: остановка утечки сокетов при перезапуске (влияет на ruby 1.9.3 или более ранние версии)

  • Игнорирование ошибок на кросс-потоковой трубе. Исправляет [#246]

  • Игнорирование ошибок при разгерметизации сокета (он может уже быть закрыт)

  • Игнорирование тела при запросе HEAD. Исправляет [#278]

  • Обработка всех данных движка, когда это возможно. Исправляет [#251]

  • Правильная обработка всех исключений чтения. Исправляет [#252]

  • Лучшее обработание ошибок от сервера

  • 3 изменения в документации:

    • Добавление примечания о хуке on_worker_boot Yöntem: Clustering режима документация добавлена
    • Добавление кавычек в /etc/puma.conf

2.0.1 / 2013-04-30

  • 1 исправление ошибок:
    • Исправление проблемы запуска на JRuby

2.0.0 / 2013-04-29

Версия для RailsConf 2013!* 2 изменения в документации:

  • Начинайте с rackup -s Puma, а не rackup -s puma.
  • Мелкие исправления документации в разделе README.md, Capistrano

  • 15 исправлений ошибок:

    • Обработка закрытия труб при остановке. Исправляет [#270]
    • Выход с ошибкой при отсутствии настроек приложения
    • Обработка ConnectionError вместо низкоуровневых исключений
    • Настройка с помощью -C файла конфигурации и on_worker_boot
    • Использование -w
    • Исправление некоторых опечаток в скриптах upstart
    • Убедитесь, что используется bytesize вместо size (MiniSSL write)
    • Исправление ошибки в puma-manager.conf
    • Исправление: остановка утечки сокетов при перезапуске (влияет на ruby 1.9.3 или более ранние версии)
    • Игнорирование ошибок на кросс-потоковой трубе. Исправляет [#246]
    • Игнорирование ошибок при разгерметизации сокета (он может уже быть закрыт)
    • Игнорирование тела при запросе HEAD. Исправляет [#278]
    • Обработка всех данных движка, когда это возможно. Исправляет [#251]
    • Правильная обработка всех исключений чтения. Исправляет [#252]
    • Лучшее обработание ошибок от сервера
  • 3 изменения в документации:

    • Добавление примечания о хуке on_worker_boot
    • Добавление документации для режима Clustering
    • Добавление кавычек в /etc/puma.conf

2.0.1 / 2013-04-30

  • 1 исправление ошибок:
    • Исправление проблемы запуска на JRuby

2.0.0 / 2013-04-29

Версия для RailsConf 2013!* 2 изменения в документации:

  • Начинайте с rackup -s Puma, а не rackup -s puma.

  • Мелкие исправления документации в разделе README.md, Capistrano* 2 исправления ошибок:

  • Исправление чтения RACK_ENV правильно. Исправляет [#234]

  • Добавление обработки tmp/sockets в cap рецепт; исправляет [#228]

  • 3 мелких изменения:

    • Исправление рецепта capistrano
    • Исправление stdout/stderr журналов для синхронизации вывода
    • Разрешение привязки к IPv6 адресам

2.0.0.b7 / 2013-03-18

  • 5 мелких улучшений:

    • Добавление опции -q для :start
    • Добавление -V, --version
    • Добавление вспомогательной функции по умолчанию для обработчика Rack
    • Поддержка Upstart
    • Установка рабочей директории из файла конфигурации
  • 12 исправлений ошибок:

    • Закрытие binder в правильном месте. Исправляет [#192]
    • Обработка раннего завершения в рабочих процессах. Исправляет [#206]
    • Убедитесь, что порт по умолчанию 80, когда запрос не включает HTTP_X_FORWARDED_PROTO.
    • Предотвращение ошибок Errno::EBADF при перезапуске при использовании ruby 2.0
    • Запись правильного @master_pid
    • Уважение заголовка HTTP_X_FORWARDED_PROTO, когда хост не включает номер порта.
    • Повторная попытка EAGAIN/EWOULDBLOCK во время syswrite
    • Правильное выполнение exec для перезапуска. Исправляет [#154]
    • Установка Rack run_once в false
    • Синхронизация всех доступов к @timeouts. Исправляет [#208]
    • Запись состояния после демонизации. Исправляет [#189]
    • Предотвращение аварийного завершения, когда все рабочие процессы завершены

2.0.0.b6 / 2013-02-06* 2 небольших улучшения:

  • Добавление хука для выполнения при запуске рабочего процесса
  • Объявление объекта конфигурации для использования приложениями* 1 исправление ошибки:
  • Изменение рабочей директории во время обновления. Исправляет [#185]

2.0.0.b5 / 2013-02-05

  • 2 основных функции:

    • Добавление постепенного обновления рабочих процессов
    • Добавление поддержки протокола hijack Rack
  • 2 мелких функции:

    • Добавление -R для указания команды перезапуска
    • Добавление опции файла конфигурации для указания команды перезапуска
  • 5 исправлений ошибок:

    • Правильная очистка труб. Исправляет [#182]
    • Демонизация раньше, чтобы не потерять потоки приложения. Исправляет [#183]
    • Очистка уведомительной трубы. Исправляет [#176], спасибо @cryo28
    • Перемещение write_pid после демонизации. Исправляет [#180]
    • Правильное перенаправление IO и вывод сообщений для контрольных точек

2.0.0.b4 / 2012-12-12

  • 4 исправления ошибок:
    • Правильная проверка значения #syswrite для переменных буферов. Исправляет [#170]
    • Правильное завершение сервера статуса
    • Обработка char vs byte и смешивания syswrite с write правильно
    • Добавление проверки существования файлов ключа и сертификата в MiniSSL

2.0.0.b3 / 2012-11-22

  • 1 исправление ошибки:
    • Правильное упаковывание файлов в gem

2.0.0.b2 / 2012-11-18

  • 5 небольших улучшений:
    • Теперь Puma включает рецепты Capistrano. Просто включите 'puma/capistrano' в ваш deploy.rb
    • Внедрение CommonLogger только в режиме разработки
    • Добавление опции -p к pumactl
    • Добавление возможности использовать pumactl для запуска сервера
    • Добавление опций для запуска Puma в режиме демона* 7 исправлений ошибок:
    • Правильное сбросирование IOBuffer. Исправляет [#148]
    • Грациозное завершение работы на JRuby при нажатии Ctrl-C
    • Разные методы для запуска newrelic. Исправляет [#128]
    • Исправление синтаксической ошибки в рецепте Capistrano
    • Принудительное закрытие соединения при возврате nil
    • Убедитесь, что todo дренаж пуст перед завершением работы. Исправляет [#155]
    • Поддержка альтернативных расположений для приложения статуса

2.0.0.b1 / 2012-09-11

  • 1 основное улучшение:

    • Опциональный режим рабочего процесса (-w) для возможности масштабирования процессов, а не только потоков
  • 1 исправление ошибки:

    • Введение Puma::MiniSSL для правильного управления неблокирующим SSL

ЗАМЕЧАНИЕ: Поддержка SSL в JRuby в настоящее время недоступна. Поддержка будет добавлена в будущем, когда будет добавлен java Puma::MiniSSL.

1.6.3 / 2012-09-04

  • 1 исправление ошибки:
    • Закрытие сокетов, ожидающих в реакторе, при горячем перезапуске, чтобы браузеры могли переподключиться к следующему запросу

1.6.2 / 2012-08-27

  • 1 исправление ошибки:
    • Обработка StandardError вместо IOError для обработки SystemCallErrors и других исключений приложения в реакторе.

1.6.1 / 2012-07-23

  • 1 исправление ошибки упаковки:
    • Включение отсутствующих файлов

1.6.0 / 2012-07-23

  • 1 основное исправление ошибки:

    • Предотвращение того, чтобы медленные клиенты не лишали сервер ресурсов, путем введения отдельного потока реактора IO. Благодарности за отчет принадлежат @meh.## 1.5.0 / 2012-07-19
  • 7 участников этого выпуска:

    • Christian Mayer
    • Darío Javier Cravero
    • Dirkjan Bussink
    • Gianluca Padovani
    • Santiago Pastorino
    • Thibault Jouan
    • tomykaira
  • 6 исправлений ошибок:

    • Определение RSTRING_NOT_MODIFIED для Rubinius
    • Преобразование статуса в целое число. Исправляет [#123]
    • Удаление pidfile при остановке сервера
    • Разрешение компиляции с опцией -Werror=format-security
    • Исправление неправильной версии HTTP для запроса HTTP/1.0
    • Использование String#bytesize вместо String#length
  • 3 небольших улучшения:

    • Добавление поддержки для установки RACK_ENV через CLI, файл конфигурации и приложение Rack
    • Разрешение запуска Server#run в синхронном режиме. Исправляет [#111]
    • Puma теперь может запускаться на Windows

1.4.0 / 2012-06-04

  • 1 исправление ошибки:

    • SCRIPT_NAME должен передаваться из окружения для возможности монтирования приложений
  • 1 экспериментальная функция:

    • Добавлен ключ puma.socket для прямого доступа к сокету

1.3.1 / 2012-05-15

  • 2 исправления ошибок:
    • Использование #bytesize вместо #length для заголовка Content-Length
    • Правильное использование StringIO. Исправляет [#98]

1.3.0 / 2012-05-08

  • 2 небольшие функции:
    • Возврат корректных ответов Rack (проходит проверку Lint) от сервера статуса
    • Добавление опции -I для указания директорий $LOAD_PATH* 4 исправления ошибок:
    • Не объединять поток сервера внутри обработчика сигнала. Исправляет [#94]
    • Делать NullIO#read аналогичным IO#read
    • Останавливать сервер статуса только если он запущен. Исправляет [#84]
    • Установка RACK_ENV рано в CLI также. Исправляет [#78]* 1 новый вкладчик:
    • Джесси Коук

1.2.2 / 2012-04-28

  • 4 исправления ошибок:
    • Отчет о низкоуровневой ошибке в stderr
    • Установка запасного SERVER_NAME и SERVER_PORT
    • Сохранение правильного кодирования тела. Исправляет [#79]
    • Показ ошибки.to_s вместе с трассировкой низкоуровневой ошибки

1.2.1 / 2012-04-11

  • 1 исправление ошибки:
    • Исправление rack.url_scheme для серверов SSL. Исправляет [#65]

1.2.0 / 2012-04-11

  • 1 основная функция:

    • Когда это возможно, внутреннее перезапуск выполняется "горячим перезапуском", что означает, что сокеты сервера остаются открытыми, поэтому нет потери соединений.
  • 1 небольшая функция:

    • Более полезное сообщение об ошибке по умолчанию
  • 6 исправлений ошибок:

    • Передача правильных аргументов в unknown_error. Исправляет [#54], [#58]
    • Остановка сервера управления перед перезапуском. Исправляет [#61]
    • Исправление отчета только https на настоящем SSL соединении
    • Установка по умолчанию типа содержимого 'text/plain'. Исправляет [#63]
    • Использование REUSEADDR. Исправляет [#60]
    • Грациозное завершение при SIGTERM. Исправляет [#53]
  • 2 новых вкладчика:

    • Сиам Абшер
    • Стив Ричерт

1.1.1 / 2012-03-30

  • 1 исправление ошибки:
    • Включение puma/compat.rb в gem (ошибка!)

1.1.0 / 2012-03-30

  • 1 исправление ошибки:

    • Убедитесь, что unix сокет имеет разрешения 0777 по умолчанию
  • 1 небольшая функция:

    • Добавление параметра umask к привязке unix:// для установки umask## 1.0.0 / 2012-03-29
  • Выпущен!

Ignore - это для поддержки копирования-вставки во время выпуска

Master

  • Функции
    • Ваша функция здесь <Наиболее недавняя сверху, как в GitHub> (#Github Number)* Исправления ошибок
    • Ваше исправление ошибки здесь <Наиболее недавнее сверху, как в GitHub> (#Github Number)[#3570]:https://github.com/puma/puma/pull/3570 "Пулл-запрос от @mohamedhafez, объединён 2024-12-30" [#3567]:https://github.com/puma/puma/issues/3567 "Задача от @mohamedhafez, закрыта 2024-12-30" [#3383]:https://github.com/puma/puma/pull/3383 "Пулл-запрос от @joshuay03, объединён 2024-11-29" [#3386]:https://github.com/puma/puma/pull/3386 "Пулл-запрос от @Drakula2k, объединён 2024-11-27" [#3517]:https://github.com/puma/puma/pull/3517 "Пулл-запрос от @jjb, объединён 2024-11-26" [#3375]:https://github.com/puma/puma/pull/3375 "Пулл-запрос от @joshuay03, объединён 2024-11-23" [#3348]:https://github.com/puma/puma/pull/3348 "Пулл-запрос от @tomurb, объединён 2024-11-23" [#3302]:https://github.com/puma/puma/issues/3302 "Задача от @benburkert, закрыта 2024-11-23" [#3384]:https://github.com/puma/puma/pull/3384 "Пулл-запрос от @joshuay03, объединён 2024-11-23" [#3590]:https://github.com/puma/puma/pull/3590 "Пулл-запрос от @MSP-Greg, объединён 2025-01-01" [#3552]:https://github.com/puma/puma/issues/3552 "Задача от @utay, закрыта 2025-01-01" [#3568]:https://github.com/puma/puma/pull/3568 "Пулл-запрос от @joshuay03, объединён 2024-12-11" [#3505]:https://github.com/puma/puma/pull/3505 "Пулл-запрос от @AnthonyClark, объединён 2025-01-27" [#3595]:https://github.com/puma/puma/pull/3595 "Пулл-запрос от @nateberkopec, объединён 2025-01-07" [#3565]:https://github.com/puma/puma/pull/3565 "Пулл-запрос от @MSP-Greg, объединён 2024-11-28" [#3376]:https://github.com/puma/puma/pull/3376 "Пулл-запрос от @joshuay03, объединён 2024-11-23" [#3407]:https://github.com/puma/puma/pull/3407 "Пулл-запрос от @JacobEvelyn, объединён 2024-11-05" [#3439]:https://github.com/puma/puma/pull/3439 "Пулл-запрос от @codergeek121, объединён 2024-11-04" [#3437]:https://github.com/puma/puma/issues/3437 "Задача от @rafaelfranca, закрыта 2024-11-04" [#3486]:https://github.com/puma/puma/pull/3486com/puma/puma/pull/3486 "Пулл-запрос от @mohamedhafez, объединён 2024-09-26" [#3422]:https://github.com/puma/puma/issues/3422 "Задача от @mohamedhafez, закрыта 2024-09-26" [#3496]:https://github.com/puma/puma/pull/3496 "Пулл-запрос от @slizco, объединён 2024-09-26" [#3485]:https://github.com/puma/puma/pull/3485 "Пулл-запрос от @MSP-Greg, объединён 2024-09-21" [#3359]:https://github.com/puma/puma/pull/3359 "Пулл-запрос от @willayton, объединён 2024-04-11" [#3343]:https://github.com/puma/puma/issues/3343 "Задача от @willayton, закрыта 2024-04-11" [#3309]:https://github.com/puma/puma/pull/3309 "Пулл-запрос от @byroot, объединён 2024-01-09" [#3425]:https://github.com/puma/puma/pull/3425 "Пулл-запрос от @mohamedhafez, объединён 2024-07-14" [#3424]:https://github.com/puma/puma/issues/3424 "Задача от @mohamedhafez, закрыта 2024-07-14" [#3411]:https://github.com/puma/puma/pull/3411 "Пулл-запрос от @OuYangJinTing, включена 2024-06-15" [#3380]:https://github.com/puma/puma/pull/3380 "Пулл-запрос от @emilyst, закрыта 2024-06-15" [#3539]:https://github.com/puma/puma/pull/3539 "Пулл-запрос от @caius, включена 2024-11-20" [#3532]:https://github.com/puma/puma/pull/3532 "Пулл-запрос от @MSP-Greg, включена 2024-10-24" [#3531]:https://github.com/puma/puma/issues/3531 "Задача от @tagliala, закрыта 2024-10-24" [#3214]:https://github.com/puma/puma/pull/3214 "Пулл-запрос от @MSP-Greg, включена 2024-10-15" [#3468]:https://github.com/puma/puma/pull/3468 "Пулл-запрос от @foca, включена 2024-10-04" [#3508]:https://github.com/puma/puma/pull/3508 "Пулл-запрос от @MayCXC, включена 2024-10-02" [#3360]:https://github.com/puma/puma/pull/3360 "Пулл-запрос от @ioquatix, включена 2024-04-24" [#3338]:https://github.com/puma/puma/pull/3338 "Пулл-запрос от @MSP-Greg, включена 2024-04-11" [#3337]:https://github.com/puma/puma/issues/3337 "Задача от @skliew, закрыта 2024-04-11" [#3332]:https://github.com/puma/puma/pull/3332 "Пулл-запрос от @evanphx, включена 2024-02-18" [#3308]:https://github.com/puma/puma/pull/3308 "Пулл-запрос от @MSP-Greg, включена 2024-01-31" [#3307]:https://github.com/puma/puma/issues/3307 "Задача от @nateberkopec, закрыта 2024-01-31" [#3314]:https://github.com/puma/puma/pull/3314com/puma/puma/pull/3314 "[Пулл-реквест от @stanhu, включена 2024-01-26]" [#3313]:https://github. com/puma/puma/issues/3313 "[Задача от @stanhu, закрыта 2024-01-26]" [#3518]:https://github. com/puma/puma/pull/3518 "[Пулл-реквест от @roque86, включена 2024-11-15]" [#3467]:https://github. com/puma/puma/pull/3467 "[Пулл-реквест от @MSP-Greg, включена 2024-09-21]" [#3341]:https://github. com/puma/puma/pull/3341 "[Пулл-реквест от @joshuay03, включена 2024-03-11]" [#3548]:https://github. com/puma/puma/pull/3548 "[Пулл-реквест от @MSP-Greg, включена 2024-11-21]" [#3325]:https://github. com/puma/puma/pull/3325 "[Пулл-реквест от @OuYangJinTing, включена 2024-10-22]" [#3527]:https://github. com/puma/puma/pull/3527 "[Пулл-реквест от @MSP-Greg, включена 2024-10-26]" [#3513]:https://github. com/puma/puma/pull/3513 "[Пулл-реквест от @jjb, включена 2024-10-11]" [#3510]:https://github. com/puma/puma/pull/3510 "[Пулл-реквест от @MSP-Greg, включена 2024-10-03]" [#3370]:https://github. com/puma/puma/pull/3370 "[Пулл-реквест от @MSP-Greg, включена 2024-04-15]" [#3340]:https://github. com/puma/puma/pull/3340 "[Пулл-реквест от @joshuay03, включена 2024-03-10]" [#3318]:https://github. com/puma/puma/pull/3318 "[Пулл-реквест от @joshuay03, объединён 2024-01-15]" [#3514]:https://github. com/puma/puma/pull/3514 "[Пулл-реквест от @jjb, объединён 2024-10-11]" [#3434]:https://github. com/puma/puma/pull/3434 "[Пулл-реквест от @olleolleolle, объединён 2024-09-19]" [#3435]:https://github. com/puma/puma/pull/3435 "[Пулл-реквест от @olleolleolle, объединён 2024-09-19]" [#3495]:https://github. com/puma/puma/pull/3495 "[Пулл-реквест от @MSP-Greg, объединён 2024-09-19]" [#3256]:https://github. com/puma/puma/pull/3256 "[Пулл-реквест от @MSP-Greg, объединён 2023-10-16]" [#3235]:https://github. com/puma/puma/pull/3235 "[Пулл-реквест от @joshuay03, объединён 2023-10-03]" [#3228]:https://github. com/puma/puma/issues/3228 "[Задача от @davidalejandroaguilar, закрыта 2023-10-03]" [#3282]:https://github. com/puma/puma/issues/3282 "[Задача от @bensheldon, закрыта 2024-01-02]" [#3283]:https://github. com/puma/puma/pull/3283 "[Пулл-реквест от @joshuay03, объединён 2024-01-02]" [#3225]:https://github. com/puma/puma/com/puma/puma/pull/3225 "Пулл-реквест от @joshuay03, объединён 27 сентября 2023" [#2786]:https://github. com/puma/puma/issues/2786 "Задача от @vitiokss, закрыта 27 сентября 2023" [#3179]:https://github. com/puma/puma/pull/3179 "Пулл-реквест от @MSP-Greg, объединён 26 сентября 2023" [#3255]:https://github. com/puma/puma/pull/3255 "Пулл-реквест от @casperisfine, объединён 19 октября 2023" [#3276]:https://github. com/puma/puma/pull/3276 "Пулл-реквест от @casperisfine, объединён 16 ноября 2023" [#3271]:https://github. com/puma/puma/pull/3271 "Пулл-реквест от @MSP-Greg, объединён 30 октября 2023" [#3266]:https://github. com/puma/puma/issues/3266 "Задача от @Dragonicity, закрыта 30 октября 2023" [#3270]:https://github. com/puma/puma/pull/3270 "Пулл-реквест от @MSP-Greg, объединён 30 октября 2023" [#3265]:https://github. com/puma/puma/pull/3265 "Пулл-реквест от @MSP-Greg, объединён 25 октября 2023" [#3264]:https://github. com/puma/puma/issues/3264 "Задача от @dentarg, закрыта 25 октября 2023" [#3254]:https://github. com/puma/puma/pull/3254 "Пулл-реквест от @casperisfine, объединён 11 октября 2023" [#3245]:https://github. com/puma/puma/pull/3245 "Пулл-реквест от @olleolleolle, объединён 2 октября 2023" [#3293]:https://github. com/puma/puma/pull/3293 "Пулл-реквест от @MSP-Greg, объединён 21 декабря 2023" [#3301]:https://github. com/puma/puma/pull/3301 "Пулл-реквест от @benburkert, объединён 29 декабря 2023" [#3248]:https://github. com/puma/puma/pull/3248 "Пулл-реквест от @dentarg, объединён 4 октября 2023" [#3298]:https://github. com/puma/puma/pull/3298 "Пулл-реквест от @til, объединён 26 декабря 2023" [#2920]:https://github. com/puma/puma/pull/2920 "Пулл-реквест от @biinari, объединён 11 июля 2023" [#3195]:https://github. com/puma/puma/pull/3195 "Пулл-реквест от @binarygit, объединён 15 августа 2023" [#3209]:https://github. com/puma/puma/pull/3209 "Пулл-реквест от @joshuay03, объединён 4 сентября 2023" [#2580]:https://github. com/puma/puma/issues/2580 "Задача от @schuetzm, закрыта 4 сентября 2023" [#3204]:https://github.com/puma/puma/pull/3204 "Пулл-реквест от @dhavalsingh, объединён 2023-08-25" [#3191]:https://github. com/puma/puma/pull/3191 "Пулл-реквест от @MSP-Greg, объединён 2023-08-31" [#3165]:https://github. com/puma/puma/pull/3165 "Пулл-реквест от @fallwith, объединён 2023-06-06" [#3174]:https://github. com/puma/puma/pull/3174 "Пулл-реквест от @copiousfreetime, объединён 2023-06-11" [#3181]:https://github. com/puma/puma/pull/3181 "Пулл-реквест от @MSP-Greg, объединён 2023-06-23" [#3187]:https://github. com/puma/puma/pull/3187 "Пулл-реквест от @MSP-Greg, объединён 2023-06-30" [#3094]:https://github. com/puma/puma/pull/3094 "Пулл-реквест от @Vuta, объединён 2023-07-23" [#3106]:https://github. com/puma/puma/pull/3106 "Пулл-реквест от @MSP-Greg, объединён 2023-05-29" [#3014]:https://github. com/puma/puma/issues/3014 "Задача от @kyledrake, закрыта 2023-05-29" [#3161]:https://github. com/puma/puma/pull/3161 "Пулл-реквест от @MSP-Greg, объединён 2023-05-27" [#3037]:https://github. com/puma/puma/issues/3037 "Задача от @daisy1754, закрыта 2023-05-27" [#3133]:https://github. com/puma/puma/pull/3133 "Пулл-реквест от @stanhu, объединён 2023-04-30" [#3132]:https://github. com/puma/puma/issues/3132 "Задача от @stanhu, закрыта 2023-04-30" [#3163]:https://github. com/puma/puma/pull/3163 "Пулл-реквест от @MSP-Greg, объединён 2023-05-27" [#3155]:https://github. com/puma/puma/pull/3155 "Пулл-реквест от @dentarg, объединён 2023-05-14" [#3148]:https://github. com/puma/puma/issues/3148 "Задача от @dentarg, закрыта 2023-05-14" [#3129]:https://github. com/puma/puma/pull/3129 "Пулл-реквест от @MSP-Greg, объединён 2023-05-02" [#3137]:https://github. com/puma/puma/pull/3137 "Пулл-реквест от @MSP-Greg, объединён 2023-04-30" [#3156]:https://github. com/puma/puma/pull/3156 "Пулл-реквест от @severin, объединён 2023-05-16" [#3162]:https://github. com/puma/puma/pull/3162 "Пулл-реквест от @MSP-Greg, объединён 2023-05-23" [#3151]:https://github. com/puma/puma/pull/3151com/puma/puma/pull/3151 "Пулл-реквест от @nateberkopec, объединён 2023-05-12" [#3118]:https://github. com/puma/puma/pull/3118 "Пулл-реквест от @ninoseki, объединён 2023-04-01" [#3117]:https://github. com/puma/puma/issues/3117 "Задача от @ninoseki, закрыта 2023-04-01" [#3109]:https://github. com/puma/puma/pull/3109 "Пулл-реквест от @ahorek, объединён 2023-03-31" [#3108]:https://github. com/puma/puma/issues/3108 "Задача от @treviateo, закрыта 2023-03-31" [#3113]:https://github. com/puma/puma/pull/3113 "Пулл-реквест от @collinsauve, включена 2023-03-31" [#3112]:https://github. com/puma/puma/issues/3112 "Задача от @dmke, закрыта 2023-03-31" [#3111]:https://github. com/puma/puma/pull/3111 "Пулл-реквест от @adzap, включена 2023-03-30" [#2770]:https://github. com/puma/puma/pull/2770 "Пулл-реквест от @vzajkov, включена 2023-03-29" [#2511]:https://github. com/puma/puma/issues/2511 "Задача от @jchristie55332, закрыта 2021-12-12" [#3089]:https://github. com/puma/puma/pull/3089 "Пулл-реквест от @Vuta, включена 2023-03-06" [#2709]:https://github. com/puma/puma/pull/2709 "Пулл-реквест от @rodzyn, включена 2023-02-20" [#3091]:https://github. com/puma/puma/pull/3091 "Пулл-реквест от @MSP-Greg, включена 2023-03-28" [#3074]:https://github. com/puma/puma/pull/3074 "Пулл-реквест от @MSP-Greg, включена 2023-03-14" [#3072]:https://github. com/puma/puma/pull/3072 "Пулл-реквест от @MSP-Greg, включена 2023-02-17" [#3079]:https://github. com/puma/puma/pull/3079 "Пулл-реквест от @mohamedhafez, включена 2023-02-24" [#3080]:https://github. com/puma/puma/pull/3080 "Пулл-реквест от @MSP-Greg, включена 2023-02-16" [#3058]:https://github. com/puma/puma/pull/3058 "Пулл-реквест от @dentarg, включена 2023-01-29" [#3007]:https://github. com/puma/puma/issues/3007 "Задача от @MSP-Greg, закрыта 2023-01-29" [#3011]:https://github. com/puma/puma/pull/3011 "Пулл-реквест от @joaomarcos96, включена 2023-01-03" [#3006]:https://github. com/puma/puma/pull/3006 "Пулл-реквест от @QWYNG, включена 2023-02-09" [#2604]:https://github. com/puma/puma/issues/2604 "Задача от @dgoetz, закрыта 2023-02-09" [#3040]:https://github.com/puma/puma/pull/3040 "Пулл-запрос от @shayonj, включён 2023-01-02" [#3036]:https://github. com/puma/puma/pull/3036 "Пулл-запрос от @MSP-Greg, включён 2023-01-13" [#3020]:https://github. com/puma/puma/issues/3020 "Задача от @dentarg, закрыта 2023-01-13" [#3061]:https://github. com/puma/puma/pull/3061 "Пулл-запрос от @MSP-Greg, включён 2023-02-12" [#3057]:https://github. com/puma/puma/issues/3057 "Задача от @mmarvb8h, закрыта 2023-02-12" [#3065]:https://github. com/puma/puma/pull/3065 "Пулл-запрос от @MSP-Greg, включён 2023-02-11" [#3062]:https://github. com/puma/puma/pull/3062 "Пулл-запрос от @willkoehler, включён 2023-01-29" [#3035]:https://github. com/puma/puma/pull/3035 "Пулл-запрос от @MSP-Greg, включён 2022-12-24" [#3033]:https://github. com/puma/puma/issues/3033 "Задача от @jules-w2, закрыта 2022-12-24" [#3016]:https://github. com/puma/puma/pull/3016 "Пулл-запрос от @MSP-Greg, объединён 2022-12-24" [#3005]:https://github. com/puma/puma/pull/3005 "Пулл-запрос от @JuanitoFatas, объединён 2022-11-04" [#3004]:https://github. com/puma/puma/pull/3004 "Пулл-запрос от @MSP-Greg, объединён 2022-11-24" [#3000]:https://github. com/puma/puma/issues/3000 "Задача от @dentarg, закрыта 2022-11-24" [#3002]:https://github. com/puma/puma/pull/3002 "Пулл-запрос от @MSP-Greg, объединён 2022-11-03" [#2999]:https://github. com/puma/puma/issues/2999 "Задача от @aymeric-ledorze, закрыта 2022-11-03" [#3013]:https://github. com/puma/puma/pull/3013 "Пулл-запрос от @MSP-Greg, объединён 2022-11-13" [#2919]:https://github. com/puma/puma/pull/2919 "Пулл-запрос от @MSP-Greg, объединён 2022-08-30" [#2652]:https://github. com/puma/puma/issues/2652 "Задача от @Roguelazer, закрыта 2022-09-04" [#2653]:https://github. com/puma/puma/pull/2653 "Пулл-запрос от @Roguelazer, закрыт 2022-03-07" [#2849]:https://github. com/puma/puma/pull/2849 "Пулл-запрос от @kares, объединён 2022-04-09" [#2933]:https://github. com/puma/puma/pull/2933 "Пулл-запрос от @cafedomancer, объединён 2022-09-09" [#2925]:https://github.com/puma/puma/issues/2925 "Задача от @nateberkopec, закрыта 2022-09-09" [#2940]:https://github. com/puma/puma/pull/2940 "Пулл-запрос от @cafedomancer, объединён 2022-09-10" [#2924]:https://github. com/puma/puma/pull/2924 "Пулл-запрос от @cafedomancer, объединён 2022-09-07" [#2853]:https://github. com/puma/puma/issues/2853 "Задача от @nateberkopec, закрыта 2022-09-07" [#2957]:https://github. com/puma/puma/pull/2957 "Пулл-запрос от @JuanitoFatas, объединён 2022-09-16" [#2958]:https://github. com/puma/puma/pull/2958 "Пулл-запрос от @JuanitoFatas, объединён 2022-09-16" [#2959]:https://github. com/puma/puma/pull/2959 "Пулл-запрос от @JuanitoFatas, объединён 2022-09-16" [#2960]:https://github. com/puma/puma/pull/2960 "Пулл-запрос от @JuanitoFatas, объединён 2022-09-16" [#2988]:https://github. com/puma/puma/pull/2988 "Пулл-запрос от @MSP-Greg, объединён 2022-10-12" [#2928]:https://github. com/puma/puma/pull/2928 "Пулл-запрос от @nateberkopec, объединён 2022-09-10" [#2798]:https://github. com/puma/puma/pull/2798 "Пулл-запрос от @johnnyshields, объединён 2022-02-05" [#2932]:https://github. com/puma/puma/pull/2932 "Пулл-запрос от @mrzasa, объединён 2022-09-12" [#2896]:https://github. com/puma/puma/pull/2896 "Пулл-запрос от @MSP-Greg, объединён 2022-09-13" [#2892]:https://github. com/puma/puma/pull/2892 "Пулл-запрос от @guilleiguaran, закрыт 2022-09-13" [#2923]:https://github. com/puma/puma/pull/2923 "Пулл-запрос от @nateberkopec, объединён 2022-09-09" [#2740]:https://github. com/puma/puma/pull/2740 "Пулл-запрос от @ioquatix, объединён 2022-01-29" [#2845]:https://github. com/puma/puma/issues/2845 "Задача от @donv, закрыта 2022-03-22" [#2917]:https://github. com/puma/puma/pull/2917 "Пулл-запрос от @MSP-Greg, объединён 2022-09-19" [#2915]:https://github. com/puma/puma/issues/2915 "Задача от @mperham, закрыта 2022-09-19" [#2907]:https://github. com/puma/puma/pull/2907 "Пулл-запрос от @casperisfine, объединён 2022-09-15" [#2953]:https://github. com/puma/puma/pull/2953com/puma/puma/pull/2953 "Пулл-запрос от @JuanitoFatas, объединён 14.09.2022" [#2936]:https://github. com/puma/puma/pull/2936 "Пулл-запрос от @MSP-Greg, объединён 09.09.2022" [#2931]:https://github. com/puma/puma/issues/2931 "Задача от @dentarg, закрыта 09.09.2022" [#2875]:https://github. com/puma/puma/pull/2875 "Пулл-запрос от @ylecuyer, объединён 19.05.2022" [#2840]:https://github. com/puma/puma/pull/2840 "Пулл-запрос от @LukaszMaslej, объединён 13.04.2022" [#2774]:https://github. com/puma/puma/pull/2774 "Пулл-запрос от @ob-stripe, объединён 31.01.2022" [#2891]:https://github. com/puma/puma/pull/2891 "Пулл-запрос от @gingerlime, объединён 02.06.2022" [#2886]:https://github. com/puma/puma/pull/2886 "Пулл-запрос от @kares, объединён 30.05.2022" [#2899]:https://github. com/puma/puma/pull/2899 "Пулл-запрос от @kares, объединён 04.07.2022" [#2904]:https://github. com/puma/puma/pull/2904 "Пулл-запрос от @kares, объединён 27.08.2022" [#2884]:https://github. com/puma/puma/pull/2884 "Пулл-запрос от @kares, объединён 30.05.2022" [#2897]:https://github. com/puma/puma/pull/2897 "Пулл-запрос от @Edouard-chin, объединён 27.08.2022" [#1441]:https://github. com/puma/puma/issues/1441 "Задача от @nirvdrum, закрыта 12.09.2022" [#2956]:https://github. com/puma/puma/pull/2956 "Пулл-запрос от @MSP-Greg, объединён 15.09.2022" [#2888]:https://github. com/puma/puma/pull/2888 "Пулл-запрос от @MSP-Greg, объединён 01.06.2022" [#2797]:https://github. com/puma/puma/pull/2797 "Пулл-запрос от @johnnyshields, объединён 01.02.2022" [#2795]:https://github. com/puma/puma/pull/2795 "Пулл-запрос от @johnnyshields, объединён 31.01.2022" [#2903]:https://github. com/puma/puma/pull/2903 "Пулл-запрос от @MSP-Greg, объединён 27.08.2022" [#2942]:https://github. com/puma/puma/pull/2942 "Пулл-запрос от @nateberkopec, объединён 15.09.2022" [#2921]:https://github. com/puma/puma/issues/2921 "Задача от @MSP-Greg, закрыта 15.09.2022" [#2922]:https://github. com/puma/puma/issues/2922 "Задача от @MSP-Greg, закрыта 10.09.2022" [#2955]:https://github. com/puma/puma/pull/2955com/puma/puma/pull/2955 "Пулл-запрос от @cafedomancer, объединён 15.09.2022" [#3166]:https://github. com/puma/puma/pull/3166 "Пулл-запрос от @JoeDupuis, объединён 08.06.2023" [#2868]:https://github. com/puma/puma/pull/2868 "Пулл-запрос от @MSP-Greg, объединён 02.06.2022" [#2866]:https://github. com/puma/puma/issues/2866 "Задача от @slondr, закрыта 02.06.2022" [#2883]:https://github. com/puma/puma/pull/2883 "Пулл-запрос от @MSP-Greg, объединён 02.06.2022" [#2890]:https://github. com/puma/puma/pull/2890 "Пулл-запрос от @kares, объединён 01.06.2022" [#2729]:https://github. com/puma/puma/issues/2729 "Задача от @kares, закрыта 01.06.2022" [#2885]:https://github. com/puma/puma/pull/2885 "Пулл-запрос от @MSP-Greg, объединён 30.05.2022" [#2839]:https://github. com/puma/puma/issues/2839 "Задача от @wlipa, закрыта 30.05.2022" [#2864]:https://github. com/puma/puma/pull/2864 "Пулл-запрос от @MSP-Greg, объединён 26.04.2022" [#2863]:https://github. com/puma/puma/issues/2863 "Задача от @eradman, закрыта 26.04.2022" [#2861]:https://github. com/puma/puma/pull/2861 "Пулл-запрос от @BlakeWilliams, объединён 17.04.2022" [#2856]:https://github. com/puma/puma/issues/2856 "Задача от @nateberkopec, закрыта 17.04.2022" [#2855]:https://github. com/puma/puma/pull/2855 "Пулл-запрос от @stanhu, объединён 09.04.2022" [#2848]:https://github. com/puma/puma/pull/2848 "Пулл-запрос от @stanhu, объединён 02.04.2022" [#2847]:https://github. com/puma/puma/pull/2847 "Пулл-запрос от @stanhu, объединён 02.04.2022" [#2838]:https://github. com/puma/puma/pull/2838 "Пулл-запрос от @epsilon-0, объединён 03.03.2022" [#2817]:https://github. com/puma/puma/pull/2817 "Пулл-запрос от @khustochka, объединён 20.02.2022" [#2810]:https://github. com/puma/puma/pull/2810 "Пулл-запрос от @kzkn, объединён 27.01.2022" [#2809]:https://github. com/puma/puma/pull/2809 "Пулл-запрос от @dentarg, объединён 26.01.2022" [#2764]:https://github. com/puma/puma/pull/2764com/puma/puma/pull/2764 "Пулл-запрос от @dentarg, объединён 18 января 2022" [#2708]:https://github. com/puma/puma/issues/2708 "Задача от @erikaxel, закрыта 18 января 2022" [#2780]:https://github. com/puma/puma/pull/2780 "Пулл-запрос от @dalibor, объединён 1 января 2022" [#2784]:https://github. com/puma/puma/pull/2784 "Пулл-запрос от @MSP-Greg, объединён 1 января 2022" [#2773]:https://github. com/puma/puma/pull/2773 "Пулл-запрос от @ob-stripe, объединён 1 января 2022" [#2794]:https://github. com/puma/puma/pull/2794 "Пулл-запрос от @johnnyshields, объединён 10 января 2022" [#2759]:https://github. com/puma/puma/pull/2759 "Пулл-запрос от @ob-stripe, объединён 11 декабря 2021" [#2731]:https://github. com/puma/puma/pull/2731 "Пулл-запрос от @baelter, объединён 2 ноября 2021" [#2341]:https://github. com/puma/puma/issues/2341 "Задача от @cjlarose, закрыта 23 июля 2023" [#2728]:https://github. com/puma/puma/pull/2728 "Пулл-запрос от @dalibor, влит 31 октября 2021" [#2733]:https://github. com/puma/puma/pull/2733 "Пулл-запрос от @ob-stripe, влит 12 декабря 2021" [#2807]:https://github. com/puma/puma/pull/2807 "Пулл-запрос от @MSP-Greg, влит 25 января 2022" [#2806]:https://github. com/puma/puma/issues/2806 "Задача от @olleolleolle, закрыта 25 января 2022" [#2799]:https://github. com/puma/puma/pull/2799 "Пулл-запрос от @ags, влит 22 января 2022" [#2785]:https://github. com/puma/puma/pull/2785 "Пулл-запрос от @MSP-Greg, влит 2 января 2022" [#2757]:https://github. com/puma/puma/pull/2757 "Пулл-запрос от @MSP-Greg, влит 24 ноября 2021" [#2745]:https://github. com/puma/puma/pull/2745 "Пулл-запрос от @MSP-Greg, влит 3 ноября 2021" [#2742]:https://github. com/puma/puma/pull/2742 "Пулл-запрос от @MSP-Greg, влит 12 декабря 2021" [#2730]:https://github. com/puma/puma/pull/2730 "Пулл-запрос от @kares, влит 1 ноября 2021" [#2702]:https://github. com/puma/puma/pull/2702 "Пулл-запрос от @jacobherrington, влит 21 сентября 2021" [#2610]:https://github. com/puma/puma/pull/2610 "Пулл-запрос от @ye-lin-aung, влит 18 августа 2021" [#2257]:https://github.com/puma/puma/issues/2257 "Задача от @nateberkopec, закрыта 2021-08-18" [#2654]:https://github. com/puma/puma/pull/2654 "Пулл-запрос от @Roguelazer, влит 2021-09-07" [#2651]:https://github. com/puma/puma/issues/2651 "Задача от @Roguelazer, закрыта 2021-09-07" [#2689]:https://github. com/puma/puma/pull/2689 "Пулл-запрос от @jacobherrington, влит 2021-09-05" [#2700]:https://github. com/puma/puma/pull/2700 "Пулл-запрос от @ioquatix, влит 2021-09-16" [#2699]:https://github. com/puma/puma/issues/2699 "Задача от @ioquatix, закрыта 2021-09-16" [#2690]:https://github. com/puma/puma/pull/2690 "Пулл-запрос от @doits, влит 2021-09-06" [#2688]:https://github. com/puma/puma/pull/2688 "Пулл-запрос от @jdelStrother, влит 2021-09-03" [#2687]:https://github. com/puma/puma/issues/2687 "Задача от @jdelStrother, закрыта 2021-09-03" [#2675]:https://github. com/puma/puma/pull/2675 "Пулл-запрос от @devwout, влит 2021-09-08" [#2657]:https://github. com/puma/puma/pull/2657 "Пулл-запрос от @olivierbellone, влит 2021-07-13" [#2648]:https://github. com/puma/puma/pull/2648 "Пулл-запрос от @MSP-Greg, влит 2021-06-27" [#1412]:https://github. com/puma/puma/issues/1412 "Задача от @x-yuri, закрыта 2021-06-27" [#2586]:https://github. com/puma/puma/pull/2586 "Пулл-запрос от @MSP-Greg, влит 2021-05-26" [#2569]:https://github. com/puma/puma/issues/2569 "Задача от @tarragon, закрыта 2021-05-26" [#2643]:https://github. com/puma/puma/pull/2643 "Пулл-запрос от @MSP-Greg, влит 2021-06-27" [#2638]:https://github. com/puma/puma/issues/2638 "Задача от @gingerlime, закрыта 2021-06-27" [#2642]:https://github. com/puma/puma/pull/2642 "Пулл-запрос от @MSP-Greg, влит 2021-06-16" [#2633]:https://github. com/puma/puma/pull/2633 "Пулл-запрос от @onlined, влит 2021-06-04" [#2656]:https://github. com/puma/puma/pull/2656 "Пулл-запрос от @olivierbellone, влит 2021-07-07" [#2666]:https://github. com/puma/puma/pull/2666 "Пулл-запрос от @MSP-Greg, влит 2021-07-25" [#2630]:https://github. com/puma/puma/pull/2630com/puma/puma/pull/2630 "Запрос на слияние от @seangoedecke, влит 2021-05-20" [#2626]:https://github. com/puma/puma/issues/2626 "Задача от @rorymckinley, закрыта 2021-05-20" [#2629]:https://github. com/puma/puma/pull/2629 "Запрос на слияние от @ye-lin-aung, влит 2021-05-20" [#2628]:https://github. com/puma/puma/pull/2628 "Запрос на слияние от @wjordan, влит 2021-05-20" [#2625]:https://github. com/puma/puma/issues/2625 "Задача от @jarthod, закрыта 2021-05-11" [#2564]:https://github. com/puma/puma/pull/2564 "Запрос на слияние от @MSP-Greg, влит 2021-04-24" [#2526]:https://github. com/puma/puma/issues/2526 "Задача от @nerdrew, закрыта 2021-04-24" [#2559]:https://github. com/puma/puma/pull/2559 "Запрос на слияние от @ylecuyer, влит 2021-03-11" [#2528]:https://github. com/puma/puma/issues/2528 "Задача от @cjlarose, закрыта 2021-03-11" [#2565]:https://github. com/puma/puma/pull/2565 "Запрос на слияние от @CGA1123, влит 2021-03-09" [#2534]:https://github. com/puma/puma/issues/2534 "Задача от @nateberkopec, закрыта 2021-03-09" [#2563]:https://github. com/puma/puma/pull/2563 "Запрос на слияние от @MSP-Greg, влит 2021-03-06" [#2504]:https://github. com/puma/puma/issues/2504 "Задача от @fsateler, закрыта 2021-03-06" [#2591]:https://github. com/puma/puma/pull/2591 "Запрос на слияние от @MSP-Greg, влит 2021-05-05" [#2572]:https://github. com/puma/puma/issues/2572 "Задача от @josef-krabath, закрыта 2021-05-05" [#2613]:https://github. com/puma/puma/pull/2613 "Запрос на слияние от @smcgivern, влит 2021-04-27" [#2605]:https://github. com/puma/puma/pull/2605 "Запрос на слияние от @pascalbetz, влит 2021-04-26" [#2584]:https://github. com/puma/puma/issues/2584 "Задача от @kaorihinata, закрыта 2021-04-26" [#2607]:https://github. com/puma/puma/pull/2607 "Запрос на слияние от @calvinxiao, влит 2021-04-23" [#2552]:https://github. com/puma/puma/issues/2552 "Задача от @feliperaul, закрыта 2021-05-24" [#2606]:https://github. com/puma/puma/pull/2606com/puma/puma/pull/2606 "Пулл-запрос от @wjordan, объединён 2021-04-20" [#2574]:https://github. com/puma/puma/issues/2574 "Задача от @darkhelmet, закрыта 2021-04-20" [#2567]:https://github. com/puma/puma/pull/2567 "Пулл-запрос от @kddnewton, объединён 2021-04-19" [#2566]:https://github. com/puma/puma/issues/2566 "Задача от @kddnewton, закрыта 2021-04-19" [#2596]:https://github. com/puma/puma/pull/2596 "Пулл-запрос от @MSP-Greg, объединён 2021-04-18" [#2588]:https://github. com/puma/puma/pull/2588 "Пулл-запрос от @dentarg, объединён 2021-04-02" [#2556]:https://github. com/puma/puma/issues/2556 "Задача от @gamecreature, закрыта 2021-04-02" [#2585]:https://github. com/puma/puma/pull/2585 "Пулл-запрос от @MSP-Greg, объединён 2021-03-26" [#2583]:https://github. com/puma/puma/issues/2583 "Задача от @jboler, закрыта 2021-03-26" [#2609]:https://github. com/puma/puma/pull/2609 "Пулл-запрос от @calvinxiao, объединён 2021-04-26" [#2590]:https://github. com/puma/puma/pull/2590 "Пулл-запрос от @calvinxiao, объединён 2021-04-05" [#2600]:https://github. com/puma/puma/pull/2600 "Пулл-запрос от @wjordan, объединён 2021-04-30" [#2579]:https://github. com/puma/puma/pull/2579 "Пулл-запрос от @ghiculescu, объединён 2021-03-17" [#2553]:https://github. com/puma/puma/pull/2553 "Пулл-запрос от @olivierbellone, объединён 2021-02-10" [#2557]:https://github. com/puma/puma/pull/2557 "Пулл-запрос от @cjlarose, объединён 2021-02-22" [#2550]:https://github. com/puma/puma/pull/2550 "Пулл-запрос от @MSP-Greg, объединён 2021-02-05" [#2547]:https://github. com/puma/puma/pull/2547 "Пулл-запрос от @wildmaples, объединён 2021-02-03" [#2543]:https://github. com/puma/puma/pull/2543 "Пулл-запрос от @MSP-Greg, объединён 2021-02-01" [#2549]:https://github. com/puma/puma/pull/2549 "Пулл-запрос от @nmb, объединён 2021-02-04" [#2519]:https://github. com/puma/puma/pull/2519 "Пулл-запрос от @MSP-Greg, объединён 2021-01-26" [#2522]:https://github.com/puma/puma/pull/2522 "Пулл-запрос от @jcmfernandes, объединён 2021-01-12" [#2490]:https://github. com/puma/puma/pull/2490 "Пулл-запрос от @Bonias, объединён 2020-12-07" [#2486]:https://github. com/puma/puma/pull/2486 "Пулл-запрос от @karloscodes, объединён 2020-12-02" [#2535]:https://github. com/puma/puma/pull/2535 "Пулл-запрос от @MSP-Greg, объединён 2021-01-27" [#2529]:https://github. com/puma/puma/pull/2529 "Пулл-запрос от @MSP-Greg, объединён 2021-01-24" [#2533]:https://github. com/puma/puma/pull/2533 "Пулл-запрос от @MSP-Greg, объединён 2021-01-24" [#1953]:https://github. com/puma/puma/issues/1953 "Задача от @nateberkopec, закрыта 2020-12-01" [#2516]:https://github. com/puma/puma/pull/2516 "Пулл-запрос от @cjlarose, объединён 2020-12-17" [#2520]:https://github. com/puma/puma/pull/2520 "Пулл-запрос от @dentarg, объединён 2021-01-04" [#2521]:https://github. com/puma/puma/pull/2521 "Пулл-запрос от @ojab, объединён 2021-01-04" [#2531]:https://github. com/puma/puma/pull/2531 "Пулл-запрос от @wjordan, объединён 2021-01-19" [#2510]:https://github. com/puma/puma/pull/2510 "Пулл-запрос от @micke, объединён 2020-12-10" [#2472]:https://github. com/puma/puma/pull/2472 "Пулл-запрос от @karloscodes, объединён 2020-11-02" [#2438]:https://github. com/puma/puma/pull/2438 "Пулл-запрос от @ekohl, объединён 2020-10-26" [#2406]:https://github. com/puma/puma/pull/2406 "Пулл-запрос от @fdel15, объединён 2020-10-19" [#2449]:https://github. com/puma/puma/pull/2449 "Пулл-запрос от @MSP-Greg, объединён 2020-10-28" [#2362]:https://github. com/puma/puma/pull/2362 "Пулл-запрос от @ekohl, объединён 2020-11-10" [#2485]:https://github. com/puma/puma/pull/2485 "Пулл-запрос от @elct9620, объединён 2020-11-18" [#2489]:https://github. com/puma/puma/pull/2489 "Пулл-запрос от @MSP-Greg, объединён 2020-11-27" [#2487]:https://github. com/puma/puma/pull/2487 "Пулл-запрос от @MSP-Greg, объединён 2020-11-17" [#2477]:https://github. com/puma/puma/pull/2477com/puma/puma/pull/2477 "Пулл-запрос от @MSP-Greg, объединён 2020-11-16" [#2475]:https://github. com/puma/puma/pull/2475 "Пулл-запрос от @nateberkopec, объединён 2020-11-02" [#2439]:https://github. com/puma/puma/pull/2439 "Пулл-запрос от @kuei0221, объединён 2020-10-26" [#2460]:https://github. com/puma/puma/pull/2460 "Пулл-запрос от @cjlarose, объединён 2020-10-27" [#2473]:https://github. com/puma/puma/pull/2473 "Пулл-запрос от @cjlarose, объединён 2020-11-01" [#2479]:https://github. com/puma/puma/pull/2479 "Пулл-запрос от @cjlarose, объединён 2020-11-10" [#2495]:https://github. com/puma/puma/pull/2495 "Пулл-запрос от @JuanitoFatas, объединён 2020-11-27" [#2461]:https://github. com/puma/puma/pull/2461 "Пулл-запрос от @cjlarose, объединён 2020-10-27" [#2454]:https://github. com/puma/puma/issues/2454 "Задача от @majksner, закрыта 2020-10-27" [#2432]:https://github. com/puma/puma/pull/2432 "Пулл-запрос от @MSP-Greg, объединён 2020-10-25" [#2442]:https://github. com/puma/puma/pull/2442 "Пулл-запрос от @wjordan, объединён 2020-10-22" [#2427]:https://github. com/puma/puma/pull/2427 "Пулл-запрос от @cjlarose, объединён 2020-10-20" [#2018]:https://github. com/puma/puma/issues/2018 "Задача от @gingerlime, закрыта 2020-10-20" [#2435]:https://github. com/puma/puma/pull/2435 "Пулл-запрос от @wjordan, объединён 2020-10-20" [#2431]:https://github. com/puma/puma/pull/2431 "Пулл-запрос от @wjordan, объединён 2020-10-16" [#2212]:https://github. com/puma/puma/issues/2212 "Проблема от @junaruga, закрыта 2020-10-16" [#2409]:https://github. com/puma/puma/pull/2409 "Вклад от @fliiiix, влит 2020-10-03" [#2448]:https://github. com/puma/puma/pull/2448 "Вклад от @MSP-Greg, влит 2020-10-25" [#2450]:https://github. com/puma/puma/pull/2450 "Вклад от @MSP-Greg, влит 2020-10-25" [#2419]:https://github. com/puma/puma/pull/2419 "Вклад от @MSP-Greg, влит 2020-10-09" [#2279]:https://github. com/puma/puma/pull/2279 "Вклад от @wjordan, влит 2020-10-06"com/puma/puma/pull/2412 "Вклад от @MSP-Greg, влит 2020-10-06" [#2405]:https://github. com/puma/puma/pull/2405 "Вклад от @MSP-Greg, влит 2020-10-05" [#2408]:https://github. com/puma/puma/pull/2408 "Вклад от @fliiiix, влит 2020-10-03" [#2374]:https://github. com/puma/puma/pull/2374 "Вклад от @cjlarose, влит 2020-09-29" [#2389]:https://github. com/puma/puma/pull/2389 "Вклад от @MSP-Greg, влит 2020-09-29" [#2381]:https://github. com/puma/puma/pull/2381 "Вклад от @joergschray, влит 2020-09-24" [#2271]:https://github. com/puma/puma/pull/2271 "Вклад от @wjordan, влит 2020-09-24" [#2377]:https://github. com/puma/puma/pull/2377 "Вклад от @cjlarose, влит 2020-09-23" [#2376]:https://github. com/puma/puma/pull/2376 "Вклад от @alexeevit, влит 2020-09-22" [#2372]:https://github. com/puma/puma/pull/2372 "Вклад от @ahorek, влит 2020-09-22" [#2384]:https://github. com/puma/puma/pull/2384 "Вклад от @schneems, влит 2020-09-27" [#2375]:https://github. com/puma/puma/pull/2375 "Вклад от @MSP-Greg, влит 2020-09-23" [#2373]:https://github. com/puma/puma/pull/2373 "Вклад от @MSP-Greg, влит 2020-09-23" [#2305]:https://github. com/puma/puma/pull/2305 "Вклад от @MSP-Greg, влит 2020-09-14" [#2099]:https://github. com/puma/puma/pull/2099 "Вклад от @wjordan, влит 2020-05-11" [#2079]:https://github. com/puma/puma/pull/2079 "Вклад от @ayufan, влит 2020-05-11" [#2093]:https://github. com/puma/puma/pull/2093 "Вклад от @schneems, влит 2019-12-18" [#2256]:https://github. com/puma/puma/pull/2256 "Вклад от @nateberkopec, влит 2020-05-11" [#2054]:https://github. com/puma/puma/pull/2054 "Вклад от @composerinteralia, влит 2019-11-11" [#2106]:https://github. com/puma/puma/pull/2106 "Вклад от @ylecuyer, влит 2020-02-11" [#2167]:https://github. com/puma/puma/pull/2167 "Вклад от @ChrisBr, закрыт 2020-07-06" [#2344]:https://github. com/puma/puma/pull/2344 "Пулл-реквест от @dentarg, объединён 2020-08-26" [#2203]:https://github. com/puma/puma/pull/2203 "Пулл-реквест от @zanker-stripe, объединён 2020-03-31" [#2220]:https://github. com/puma/puma/pull/2220 "Пулл-реквест от @wjordan, объединён 2020-04-14" [#2238]:https://github. com/puma/puma/pull/2238com/puma/puma/pull/2238 "Пулл-запрос от @sthirugn, объединён 2020-05-07" [#2086]:https://github. com/puma/puma/pull/2086 "Пулл-запрос от @bdewater, объединён 2019-12-17" [#2253]:https://github. com/puma/puma/pull/2253 "Пулл-запрос от @schneems, объединён 2020-05-11" [#2288]:https://github. com/puma/puma/pull/2288 "Пулл-запрос от @FTLam11, объединён 2020-06-02" [#1487]:https://github. com/puma/puma/pull/1487 "Пулл-запрос от @jxa, объединён 2018-05-09" [#2143]:https://github. com/puma/puma/pull/2143 "Пулл-запрос от @jalevin, объединён 2020-04-21" [#2169]:https://github. com/puma/puma/pull/2169 "Пулл-запрос от @nateberkopec, объединён 2020-03-10" [#2170]:https://github. com/puma/puma/pull/2170 "Пулл-запрос от @nateberkopec, объединён 2020-03-10" [#2076]:https://github. com/puma/puma/pull/2076 "Пулл-запрос от @drews256, объединён 2020-02-27" [#2022]:https://github. com/puma/puma/pull/2022 "Пулл-запрос от @olleolleolle, объединён 2019-11-11" [#2300]:https://github. com/puma/puma/pull/2300 "Пулл-запрос от @alexeevit, объединён 2020-07-06" [#2269]:https://github. com/puma/puma/pull/2269 "Пулл-запрос от @MSP-Greg, объединён 2020-08-31" [#2312]:https://github. com/puma/puma/pull/2312 "Пулл-запрос от @MSP-Greg, объединён 2020-07-20" [#2338]:https://github. com/puma/puma/issues/2338 "Задача от @micahhainlinestitchfix, закрыта 2020-08-18" [#2116]:https://github. com/puma/puma/pull/2116 "Пулл-запрос от @MSP-Greg, объединён 2020-05-15" [#2074]:https://github. com/puma/puma/issues/2074 "Задача от @jchristie55332, закрыта 2020-02-19" [#2211]:https://github. com/puma/puma/pull/2211 "Пулл-запрос от @MSP-Greg, объединён 2020-03-30" [#2069]:https://github. com/puma/puma/pull/2069 "Пулл-запрос от @MSP-Greg, объединён 2019-11-09" [#2112]:https://github. com/puma/puma/pull/2112 "Пулл-запрос от @wjordan, объединён 2020-03-03" [#1893]:https://github. com/puma/puma/pull/1893com/puma/puma/pull/1893 "Пулл-реквест от @seven1m, объединён 2020-02-18" [#2119]:https://github. com/puma/puma/pull/2119 "Пулл-реквест от @wjordan, объединён 2020-02-20" [#2121]:https://github. com/puma/puma/pull/2121 "Пулл-реквест от @wjordan, объединён 2020-02-21" [#2154]:https://github. com/puma/puma/pull/2154 "Пулл-реквест от @cjlarose, объединён 2020-03-10" [#1551]:https://github. com/puma/puma/issues/1551 "Задача от @austinthecoder, закрыта 2020-03-10" [#2198]:https://github. com/puma/puma/pull/2198 "Пулл-реквест от @eregon, объединён 2020-03-24" [#2216]:https://github. com/puma/puma/pull/2216 "Пулл-реквест от @praboud-stripe, объединён 2020-04-06" [#2122]:https://github. com/puma/puma/pull/2122 "Пулл-реквест от @wjordan, объединён 2020-04-10" [#2177]:https://github. com/puma/puma/issues/2177 "Задача от @GuiTeK, закрыта 2020-04-08" [#2221]:https://github. com/puma/puma/pull/2221 "Пулл-реквест от @wjordan, объединён 2020-04-17" [#2233]:https://github. com/puma/puma/pull/2233 "Пулл-реквест от @ayufan, объединён 2020-04-25" [#2234]:https://github. com/puma/puma/pull/2234 "Пулл-реквест от @wjordan, объединён 2020-04-30" [#2225]:https://github. com/puma/puma/issues/2225 "Задача от @nateberkopec, закрыта 2020-04-27" [#2267]:https://github. com/puma/puma/pull/2267 "Пулл-реквест от @wjordan, объединён 2020-05-20" [#2287]:https://github. com/puma/puma/pull/2287 "Пулл-реквест от @eugeneius, объединён 2020-05-31" [#2317]:https://github. com/puma/puma/pull/2317 "Пулл-реквест от @MSP-Greg, объединён 2020-09-01" [#2319]:https://github. com/puma/puma/issues/2319 "Задача от @AlexWayfer, закрыта 2020-09-03" [#2326]:https://github. com/puma/puma/pull/2326 "Пулл-реквест от @rkistner, закрыт 2020-09-04" [#2299]:https://github. com/puma/puma/issues/2299 "Задача от @JohnPhillips31416, закрыта 2020-09-17" [#2095]:https://github. com/puma/puma/pull/2095 "Пулл-реквест от @bdewater, объединён 2019-12-25" [#2102]:https://github.com/puma/puma/pull/2102 "Пулл-реквест от @bdewater, объединён 2020-02-07" [#2111]:https://github. com/puma/puma/pull/2111 "Пулл-реквест от @wjordan, объединён 2020-02-20" [#1980]:https://github. com/puma/puma/pull/1980 "Пулл-реквест от @nateberkopec, объединён 2020-02-27" [#2189]:https://github. com/puma/puma/pull/2189 "Пулл-реквест от @jkowens, объединён 2020-03-19" [#2124]:https://github. com/puma/puma/pull/2124 "Пулл-реквест от @wjordan, объединён 2020-04-14" [#2223]:https://github. com/puma/puma/pull/2223 "Пулл-реквест от @wjordan, объединён 2020-04-20" [#2239]:https://github. com/puma/puma/pull/2239 "Пулл-реквест от @wjordan, объединён 2020-05-15" [#2496]:https://github. com/puma/puma/pull/2496 "Пулл-реквест от @TheRusskiy, объединён 2020-11-30" [#2304]:https://github. com/puma/puma/issues/2304 "Задача от @mpeltomaa, закрыта 2020-09-05" [#2132]:https://github. com/puma/puma/issues/2132 "Задача от @bmclean, закрыта 2020-02-28" [#2010]:https://github. com/puma/puma/pull/2010 "Пулл-реквест от @nateberkopec, объединён 2019-10-07" [#2012]:https://github. com/puma/puma/pull/2012 "Пулл-реквест от @headius, объединён 2019-10-07" [#2046]:https://github. com/puma/puma/pull/2046 "Пулл-реквест от @composerinteralia, объединён 2019-10-21" [#2052]:https://github. com/puma/puma/pull/2052 "Пулл-реквест от @composerinteralia, объединён 2019-11-02" [#1564]:https://github. com/puma/puma/issues/1564 "Задача от @perlun, закрыта 2019-10-07" [#2035]:https://github. com/puma/puma/pull/2035 "Пулл-реквест от @AndrewSpeed, объединён 2019-10-18" [#2048]:https://github. com/puma/puma/pull/2048 "Пулл-реквест от @hahmed, объединён 2019-10-21" [#2050]:https://github. com/puma/puma/pull/2050 "Пулл-реквест от @olleolleolle, объединён 2019-10-25" [#1842]:https://github. com/puma/puma/issues/1842 "Задача от @nateberkopec, закрыта 2019-09-18" [#1988]:https://github. com/puma/puma/issues/1988 "Задача от @mcg, закрыта 2019-10-01" [#1986]:https://github. com/puma/puma/issues/1986com/puma/puma/issues/1986 "Задача от @flaminestone, закрыта 2019-10-01" [#1994]:https://github. com/puma/puma/issues/1994 "Задача от @LimeBlast, закрыта 2019-10-01" [#2006]:https://github. com/puma/puma/pull/2006 "Пулл-запрос от @nateberkopec, объединён 2019-10-01" [#1222]:https://github. com/puma/puma/issues/1222 "Задача от @seanmckinley, закрыта 2019-10-04" [#1885]:https://github. com/puma/puma/pull/1885 "Пулл-запрос от @spk, объединён 2019-08-10" [#1934]:https://github. com/puma/puma/pull/1934 "Пулл-запрос от @zarelit, объединён 2019-08-28" [#1105]:https://github. com/puma/puma/pull/1105 "Пулл-запрос от @daveallie, объединён 2019-09-02" [#1786]:https://github. com/puma/puma/pull/1786 "Пулл-запрос от @evanphx, объединён 2019-09-11" [#1320]:https://github. com/puma/puma/pull/1320 "Пулл-запрос от @nateberkopec, объединён 2019-09-12" [#1968]:https://github. com/puma/puma/pull/1968 "Пулл-запрос от @nateberkopec, объединён 2019-09-15" [#1908]:https://github. com/puma/puma/pull/1908 "Пулл-запрос от @MSP-Greg, объединён 2019-08-23" [#1952]:https://github. com/puma/puma/pull/1952 "Пулл-запрос от @MSP-Greg, объединён 2019-09-19" [#1941]:https://github. com/puma/puma/pull/1941 "Пулл-запрос от @MSP-Greg, объединён 2019-09-02" [#1961]:https://github. com/puma/puma/pull/1961 "Пулл-запрос от @nateberkopec, объединён 2019-09-11" [#1970]:https://github. com/puma/puma/pull/1970 "Пулл-запрос от @MSP-Greg, объединён 2019-09-18" [#1946]:https://github. com/puma/puma/pull/1946 "Пулл-запрос от @nateberkopec, объединён 2019-09-02" [#1831]:https://github. com/puma/puma/pull/1831 "Пулл-запрос от @spk, объединён 2019-07-27" [#1816]:https://github. com/puma/puma/pull/1816 "Пулл-запрос от @ylecuyer, объединён 2019-08-01" [#1844]:https://github. com/puma/puma/pull/1844 "Пулл-запрос от @ylecuyer, объединён 2019-08-01" [#1836]:https://github. com/puma/puma/pull/1836 "Пулл-запрос от @MSP-Greg, объединён 2019-08-06" [#1887]:https://github. com/puma/puma/pull/1887com/puma/puma/pull/1887 "Пулл-запрос от @MSP-Greg, объединён 2019-08-06" [#1812]:https://github. com/puma/puma/pull/1812 "Пулл-запрос от @kou, объединён 2019-08-03" [#1491]:https://github. com/puma/puma/pull/1491 "Пулл-запрос от @olleolleolle, объединён 2019-07-17" [#1837]:https://github. com/puma/puma/pull/1837 "Пулл-запрос от @montanalow, объединён 2019-07-25" [#1857]:https://github. com/puma/puma/pull/1857 "Пулл-запрос от @Jesus, объединён 2019-08-03" [#1822]:https://github. com/puma/puma/pull/1822 "Пулл-запрос от @Jesus, объединён 2019-08-01" [#1863]:https://github. com/puma/puma/pull/1863 "Пулл-запрос от @dzunk, объединён 2019-08-04" [#1838]:https://github. com/puma/puma/pull/1838 "Пулл-запрос от @bogn83, объединён 2019-07-14" [#1882]:https://github. com/puma/puma/pull/1882 "Пулл-запрос от @okuramasafumi, объединён 2019-08-06" [#1848]:https://github. com/puma/puma/pull/1848 "Пулл-запрос от @nateberkopec, объединён 2019-07-16" [#1847]:https://github. com/puma/puma/pull/1847 "Пулл-запрос от @nateberkopec, объединён 2019-07-16" [#1846]:https://github. com/puma/puma/pull/1846 "Пулл-запрос от @nateberkopec, объединён 2019-07-16" [#1853]:https://github. com/puma/puma/pull/1853 "Пулл-запрос от @Jesus, объединён 2019-07-18" [#1850]:https://github. com/puma/puma/pull/1850 "Пулл-запрос от @nateberkopec, объединён 2019-07-27" [#1866]:https://github. com/puma/puma/pull/1866 "Пулл-запрос от @josacar, объединён 2019-07-28" [#1870]:https://github. com/puma/puma/pull/1870 "Пулл-запрос от @MSP-Greg, объединён 2019-07-30" [#1872]:https://github. com/puma/puma/pull/1872 "Пулл-запрос от @MSP-Greg, объединён 2019-07-30" [#1833]:https://github. com/puma/puma/issues/1833 "Задача от @julik, закрыта 2019-07-09" [#1888]:https://github. com/puma/puma/pull/1888 "Пулл-запрос от @ClikeX, объединён 2019-08-06" [#1829]:https://github. com/puma/puma/pull/1829 "Пулл-запрос от @Fudoshiki, объединён 2019-07-09" [#1832]:https://github. com/puma/puma/pull/1832com/puma/puma/pull/1832 "Пулл-запрос от @MSP-Greg, объединён 2019-07-08" [#1827]:https://github. com/puma/puma/pull/1827 "Пулл-запрос от @amrrbakry, объединён 2019-06-27" [#1562]:https://github. com/puma/puma/pull/1562 "Пулл-запрос от @skrobul, объединён 2019-02-20" [#1569]:https://github. com/puma/puma/pull/1569 "Пулл-запрос от @rianmcguire, объединён 2019-02-20" [#1648]:https://github. com/puma/puma/pull/1648 "Пулл-запрос от @wjordan, объединён 2019-02-20" [#1691]:https://github. com/puma/puma/pull/1691 "Пулл-запрос от @kares, объединён 2019-02-20" [#1716]:https://github. com/puma/puma/pull/1716 "Пулл-запрос от @mdkent, объединён 2019-02-20" [#1690]:https://github. com/puma/puma/pull/1690 "Пулл-запрос от @mic-kul, объединён 2019-03-11" [#1689]:https://github. com/puma/puma/pull/1689 "Пулл-запрос от @michaelherold, объединён 2019-03-11" [#1728]:https://github. com/puma/puma/pull/1728 "Пулл-запрос от @evanphx, объединён 2019-03-20" [#1824]:https://github. com/puma/puma/pull/1824 "Пулл-запрос от @spk, объединён 2019-06-24" [#1685]:https://github. com/puma/puma/pull/1685 "Пулл-запрос от @mainameiz, объединён 2019-02-20" [#1808]:https://github. com/puma/puma/pull/1808 "Пулл-запрос от @schneems, объединён 2019-06-10" [#1508]:https://github. com/puma/puma/pull/1508 "Пулл-запрос от @florin555, объединён 2019-02-20" [#1650]:https://github. com/puma/puma/pull/1650 "Пулл-запрос от @adam101, объединён 2019-02-20" [#1655]:https://github. com/puma/puma/pull/1655 "Пулл-запрос от @mipearson, объединён 2019-02-20" [#1671]:https://github. com/puma/puma/pull/1671 "Пулл-запрос от @eric-norcross, объединён 2019-02-20" [#1583]:https://github. com/puma/puma/pull/1583 "Пулл-запрос от @chwevans, объединён 2019-02-20" [#1773]:https://github. com/puma/puma/pull/1773 "Пулл-запрос от @enebo, объединён 2019-04-14" [#1731]:https://github. com/puma/puma/issues/1731 "Пулл-запрос от @Fudoshiki, закрыт 2019-03-20" [#1803]:https://github. com/puma/puma/pull/1803com/puma/puma/pull/1803 "Пулл-реквест от @Jesus, объединён 28 мая 2019" [#1741]:https://github. com/puma/puma/pull/1741 "Пулл-реквест от @MSP-Greg, объединён 19 марта 2019" [#1674]:https://github. com/puma/puma/issues/1674 "Заявка от @atitan, закрыта 12 июня 2019" [#1720]:https://github. com/puma/puma/issues/1720 "Заявка от @voxik, закрыта 20 марта 2019" [#1730]:https://github. com/puma/puma/issues/1730 "Заявка от @nearapogee, закрыта 16 июля 2019" [#1755]:https://github. com/puma/puma/issues/1755 "Заявка от @vbalazs, закрыта 26 июля 2019" [#1649]:https://github. com/puma/puma/pull/1649 "Пулл-реквест от @schneems, объединён 17 октября 2018" [#1607]:https://github. com/puma/puma/pull/1607 "Пулл-реквест от @harmdewit, объединён 15 августа 2018" [#1700]:https://github. com/puma/puma/pull/1700 "Пулл-реквест от @schneems, объединён 5 января 2019" [#1630]:https://github. com/puma/puma/pull/1630 "Пулл-реквест от @eregon, объединён 11 сентября 2018" [#1478]:https://github. com/puma/puma/pull/1478 "Пулл-реквест от @eallison91, объединён 9 мая 2018" [#1604]:https://github. com/puma/puma/pull/1604 "Пулл-реквест от @schneems, объединён 2 июля 2018" [#1579]:https://github. com/puma/puma/pull/1579 "Пулл-реквест от @schneems, объединён 14 июня 2018" [#1506]:https://github. com/puma/puma/pull/1506 "Пулл-реквест от @dekellum, объединён 9 мая 2018" [#1563]:https://github. com/puma/puma/pull/1563 "Запрос на слияние (PR) от @dannyfallon, объединён 1 мая 2018" [#1557]:https://github. com/puma/puma/pull/1557 "Запрос на слияние (PR) от @swrobel, объединён 9 мая 2018" [#1529]:https://github. com/puma/puma/pull/1529 "Запрос на слияние (PR) от @desnudopenguino, объединён 20 марта 2018" [#1532]:https://github. com/puma/puma/pull/1532 "Запрос на слияние (PR) от @schneems, объединён 21 марта 2018" [#1482]:https://github. com/puma/puma/pull/1482 "Запрос на слияние (PR) от @shayonj, объединён 19 марта 2018" [#1511]:https://github. com/puma/puma/pull/1511 "Запрос на слияние (PR) от @jemiam, объединён 19 марта 2018" [#1545]:https://github.com/puma/puma/pull/1545 "Запрос на слияние (PR) от @hoshinotsuyoshi, объединён 28 марта 2018" [#1550]:https://github.com/puma/puma/pull/1550 "Запрос на слияние (PR) от @eileencodes, объединён 29 марта 2018" [#1553]:https://github.com/puma/puma/pull/1553 "Запрос на слияние (PR) от @eugeneius, объединён 2 апреля 2018" [#1510]:https://github.com/puma/puma/issues/1510 "Заявка от @vincentwoo, закрыта 6 марта 2018" [#1524]:https://github.com/puma/puma/pull/1524 "Запрос на слияние (PR) от @tuwukee, закрыт 6 марта 2018" [#1507]:https://github.com/puma/puma/issues/1507 "Заявка от @vincentwoo, закрыта 19 марта 2018" [#1483]:https://github.com/puma/puma/issues/1483 "Заявка от @igravious, закрыта 6 марта 2018" [#1502]:https://github.com/puma/puma/issues/1502 "Заявка от @vincentwoo, закрыта 9 марта 2020" [#1403]:https://github.com/puma/puma/pull/1403 "Запрос на слияние (PR) от @eileencodes, объединён 4 октября 2017" [#1435]:https://github.com/puma/puma/pull/1435 "Запрос на слияние (PR) от @juliancheal, объединён 11 октября 2017" [#1340]:https://github.com/puma/puma/pull/1340 "Запрос на слияние (PR) от @ViliusLuneckas, объединён 16 октября 2017" [#1434]:https://github.com/puma/puma/pull/1434 "Запрос на слияние (PR) от @jumbosushi, объединён 10 октября 2017" [#1436]:https://github.com/puma/puma/pull/1436 "Запрос на слияние (PR) от @luislavena, объединён 11 октября 2017" [#1418]:https://github.com/puma/puma/pull/1418 "Запрос на слияние (PR) от @eileencodes, объединён 22 сентября 2017" [#1416]:https://github.com/puma/puma/pull/1416 "Запрос на слияние (PR) от @hiimtaylorjones, объединён 22 сентября 2017" [#1409]:https://github.com/puma/puma/pull/1409 "Запрос на слияние (PR) от @olleolleolle, объединён 13 сентября 2017" [#1427]:https://github.com/puma/puma/issues/1427 "Заявка от @garybernhardt, закрыта 4 октября 2017" [#1430]:https://github.com/puma/puma/pull/1430 "Запрос на слияние (PR) от @MSP-Greg, объединён 9 октября 2017" [#1429]:https://github.com/puma/puma/com/puma/puma/pull/1429 "Запрос на слияние (PR) от @perlun, объединён 2017-10-09" [#1455]:https://github. com/puma/puma/pull/1455 "Запрос на слияние (PR) от @perlun, объединён 2017-11-16" [#1425]:https://github. com/puma/puma/pull/1425 "Запрос на слияние (PR) от @vizcay, объединён 2017-10-01" [#1452]:https://github. com/puma/puma/pull/1452 "Запрос на слияние (PR) от @eprothro, объединён 2017-11-16" [#1439]:https://github. com/puma/puma/pull/1439 "Запрос на слияние (PR) от @MSP-Greg, объединён 2017-10-16" [#1442]:https://github. com/puma/puma/pull/1442 "Запрос на слияние (PR) от @MSP-Greg, объединён 2017-10-19" [#1464]:https://github. com/puma/puma/pull/1464 "Запрос на слияние (PR) от @MSP-Greg, объединён 2017-11-20" [#1384]:https://github. com/puma/puma/pull/1384 "Запрос на слияние (PR) от @noahgibbs, объединён 2017-08-03" [#1111]:https://github. com/puma/puma/pull/1111 "Запрос на слияние (PR) от @alexlance, объединён 2017-06-04" [#1392]:https://github. com/puma/puma/pull/1392 "Запрос на слияние (PR) от @hoffm, объединён 2017-08-11" [#1347]:https://github. com/puma/puma/pull/1347 "Запрос на слияние (PR) от @NikolayRys, объединён 2017-06-28" [#1334]:https://github. com/puma/puma/pull/1334 "Запрос на слияние (PR) от @respire, объединён 2017-06-13" [#1383]:https://github. com/puma/puma/pull/1383 "Запрос на слияние (PR) от @schneems, объединён 2017-08-02" [#1368]:https://github. com/puma/puma/pull/1368 "Запрос на слияние (PR) от @bongole, объединён 2017-08-03" [#1318]:https://github. com/puma/puma/pull/1318 "Запрос на слияние (PR) от @nateberkopec, объединён 2017-08-03" [#1376]:https://github. com/puma/puma/pull/1376 "Запрос на слияние (PR) от @pat, объединён 2017-08-03" [#1388]:https://github. com/puma/puma/pull/1388 "Запрос на слияние (PR) от @nateberkopec, объединён 2017-08-08" [#1390]:https://github. com/puma/puma/pull/1390 "Запрос на слияние (PR) от @junaruga, объединён 2017-08-16" [#1391]:https://github. com/puma/puma/pull/1391 "Запрос на слияние (PR) от @junaruga, объединён 2017-08-16" [#1385]:https://github.com/puma/puma/pull/1385 "Пулл-запрос от @grosser, объединён 2017-08-16" [#1377]:https://github. com/puma/puma/pull/1377 "Пулл-запрос от @shayonj, объединён 2017-08-16" [#1337]:https://github. com/puma/puma/pull/1337 "Пулл-запрос от @shayonj, объединён 2017-08-16" [#1325]:https://github. com/puma/puma/pull/1325 "Пулл-запрос от @palkan, объединён 2017-06-04" [#1395]:https://github. com/puma/puma/pull/1395 "Пулл-запрос от @junaruga, объединён 2017-08-16" [#1367]:https://github. com/puma/puma/issues/1367 "Задача от @dekellum, закрыта 2017-08-17" [#1314]:https://github. com/puma/puma/pull/1314 "Пулл-запрос от @grosser, объединён 2017-06-02" [#1311]:https://github. com/puma/puma/pull/1311 "Пулл-запрос от @grosser, объединён 2017-06-02" [#1313]:https://github. com/puma/puma/pull/1313 "Пулл-запрос от @grosser, объединён 2017-06-03" [#1260]:https://github. com/puma/puma/pull/1260 "Пулл-запрос от @grosser, объединён 2017-04-11" [#1278]:https://github. com/puma/puma/pull/1278 "Пулл-запрос от @evanphx, объединён 2017-04-28" [#1306]:https://github. com/puma/puma/pull/1306 "Пулл-запрос от @jules2689, объединён 2017-05-31" [#1274]:https://github. com/puma/puma/pull/1274 "Пулл-запрос от @evanphx, объединён 2017-05-01" [#1261]:https://github. com/puma/puma/pull/1261 "Пулл-запрос от @jacksonrayhamilton, объединён 2017-04-07" [#1259]:https://github. com/puma/puma/pull/1259 "Пулл-запрос от @jacksonrayhamilton, объединён 2017-04-07" [#1248]:https://github. com/puma/puma/pull/1248 "Пулл-запрос от @davidarnold, объединён 2017-04-18" [#1277]:https://github. com/puma/puma/pull/1277 "Пулл-запрос от @schneems, объединён 2017-05-01" [#1290]:https://github. com/puma/puma/pull/1290 "Пулл-запрос от @schneems, объединён 2017-05-12" [#1285]:https://github. com/puma/puma/pull/1285 "Пулл-запрос от @fmauNeko, объединён 2017-05-12" [#1282]:https://github. com/puma/puma/pull/1282 "Пулл-запрос от @grosser, объединён 2017-05-09" [#1294]:https://github. com/puma/puma/pull/1294com/puma/puma/pull/1294 "Пулл-запрос от @masry707, объединён 2017-05-15" [#1206]:https://github. com/puma/puma/pull/1206 "Пулл-запрос от @NikolayRys, закрыт 2017-06-27" [#1241]:https://github. com/puma/puma/issues/1241 "Задача от @renchap, закрыта 2017-03-14" [#1239]:https://github. com/puma/puma/pull/1239 "Пулл-запрос от @schneems, объединён 2017-03-10" [#1234]:https://github. com/puma/puma/pull/1234 "Пулл-запрос от @schneems, объединён 2017-03-09" [#1226]:https://github. com/puma/puma/pull/1226 "Пулл-запрос от @eileencodes, объединён 2017-03-09" [#1227]:https://github. com/puma/puma/pull/1227 "Пулл-запрос от @sirupsen, объединён 2017-02-27" [#1213]:https://github. com/puma/puma/pull/1213 "Пулл-запрос от @junaruga, объединён 2017-02-28" [#1182]:https://github. com/puma/puma/issues/1182 "Задача от @brunowego, закрыта 2017-02-09" [#1203]:https://github. com/puma/puma/pull/1203 "Пулл-запрос от @twalpole, объединён 2017-02-09" [#1129]:https://github. com/puma/puma/pull/1129 "Пулл-запрос от @chtitux, объединён 2016-12-12" [#1165]:https://github. com/puma/puma/pull/1165 "Пулл-запрос от @sriedel, объединён 2016-12-21" [#1175]:https://github. com/puma/puma/pull/1175 "Пулл-запрос от @jemiam, объединён 2016-12-21" [#1068]:https://github. com/puma/puma/pull/1068 "Пулл-запрос от @junaruga, объединён 2016-09-05" [#1091]:https://github. com/puma/puma/pull/1091 "Пулл-запрос от @frodsan, объединён 2016-09-17" [#1088]:https://github. com/puma/puma/pull/1088 "Пулл-запрос от @frodsan, объединён 2016-11-20" [#1160]:https://github. com/puma/puma/pull/1160 "Пулл-запрос от @frodsan, объединён 2016-11-24" [#1169]:https://github. com/puma/puma/pull/1169 "Пулл-запрос от @scbrubaker02, объединён 2016-12-12" [#1061]:https://github. com/puma/puma/pull/1061 "Пулл-запрос от @michaelsauter, объединён 2016-09-05" [#1036]:https://github. com/puma/puma/pull/1036 "Пулл-запрос от @matobinder, закрыт 2016-08-03"com/puma/puma/pull/1120 "Запрос на слияние от @prathamesh-sonpatki, объединён 2016-11-21" [#1178]:https://github. com/puma/puma/pull/1178 "Запрос на слияние от @Koronen, объединён 2016-12-21" [#1002]:https://github. com/puma/puma/issues/1002 "Задача от @mattyb, закрыта 2016-07-26" [#1063]:https://github. com/puma/puma/issues/1063 "Задача от @mperham, закрыта 2016-09-05" [#1089]:https://github. com/puma/puma/issues/1089 "Задача от @AdamBialas, закрыта 2016-09-17" [#1114]:https://github. com/puma/puma/pull/1114 "Запрос на слияние от @sj26, объединён 2016-12-13" [#1110]:https://github. com/puma/puma/pull/1110 "Запрос на слияние от @montdidier, объединён 2016-12-12" [#1135]:https://github. com/puma/puma/pull/1135 "Запрос на слияние от @jkraemer, объединён 2016-11-19" [#1081]:https://github. com/puma/puma/pull/1081 "Запрос на слияние от @frodsan, объединён 2016-09-08" [#1138]:https://github. com/puma/puma/pull/1138 "Запрос на слияние от @skull-squadron, объединён 2016-12-13" [#1118]:https://github. com/puma/puma/pull/1118 "Запрос на слияние от @hiroara, объединён 2016-11-20" [#1075]:https://github. com/puma/puma/issues/1075 "Задача от @pvalena, закрыта 2016-09-06" [#932]:https://github. com/puma/puma/issues/932 "Задача от @everplays, закрыта 2016-07-24" [#519]:https://github. com/puma/puma/issues/519 "Задача от @tmornini, закрыта 2016-07-25" [#828]:https://github. com/puma/puma/issues/828 "Задача от @Zapotek, закрыта 2016-07-24" [#984]:https://github. com/puma/puma/issues/984 "Задача от @erichmenge, закрыта 2016-07-24" [#1028]:https://github. com/puma/puma/issues/1028 "Задача от @matobinder, закрыта 2016-07-24" [#1023]:https://github. com/puma/puma/issues/1023 "Задача от @fera2k, закрыта 2016-07-24" [#1027]:https://github. com/puma/puma/issues/1027 "Задача от @rosenfeld, закрыта 2016-07-24" [#925]:https://github. com/puma/puma/issues/925 "Задача от @lokenmakwana, закрыта 2016-07-24" [#911]:https://github.com/puma/puma/issues/911 "Задача от @veganstraightedge, закрыта 2016-07-24" [#620]:https://github. com/puma/puma/issues/620 "Задача от @javanthropus, закрыта 2016-07-25" [#778]:https://github. com/puma/puma/issues/778 "Задача от @niedhui, закрыта 2016-07-24" [#1021]:https://github. com/puma/puma/pull/1021 "Запрос на слияние от @sarahzrf, объединён 2016-07-20" [#1022]:https://github. com/puma/puma/issues/1022 "Задача от @AKovtunov, закрыта 2017-08-16" [#958]:https://github. com/puma/puma/issues/958 "Задача от @lalitlogical, закрыта 2016-04-23" [#782]:https://github. com/puma/puma/issues/782 "Задача от @Tonkpils, закрыта 2016-07-19" [#1010]:https://github. com/puma/puma/issues/1010 "Задача от @mneumark, закрыта 2016-07-19" [#959]:https://github. com/puma/puma/issues/959 "Задача от @mwpastore, закрыта 2016-04-22" [#840]:https://github. com/puma/puma/issues/840 "Задача от @marisawallace, закрыта 2016-04-07" [#1007]:https://github. com/puma/puma/pull/1007 "Вклад от @willnet, включен 2016-06-24" [#1014]:https://github. com/puma/puma/pull/1014 "Вклад от @szymon-jez, включен 2016-07-11" [#1015]:https://github. com/puma/puma/pull/1015 "Вклад от @bf4, включен 2016-07-19" [#1017]:https://github. com/puma/puma/pull/1017 "Вклад от @jorihardman, включен 2016-07-19" [#954]:https://github. com/puma/puma/pull/954 "Вклад от @jf, включен 2016-04-12" [#955]:https://github. com/puma/puma/pull/955 "Вклад от @jf, включен 2016-04-22" [#956]:https://github. com/puma/puma/pull/956 "Вклад от @marisawallace, включен 2016-04-12" [#960]:https://github. com/puma/puma/pull/960 "Вклад от @kmayer, включен 2016-04-15" [#969]:https://github. com/puma/puma/pull/969 "Вклад от @frankwong15, включен 2016-05-10" [#970]:https://github. com/puma/puma/pull/970 "Вклад от @willnet, включен 2016-04-26" [#974]:https://github. com/puma/puma/pull/974 "Вклад от @reidmorrison, включен 2016-05-10" [#977]:https://github. com/puma/puma/pull/977 "Вклад от @snow, включен 2016-05-10" [#981]:https://github. com/puma/puma/pull/981 "Вклад от @zach-chai, включен 2016-07-19" [#993]:https://github.com/puma/puma/pull/993 "[Вклад от @scorix, включен 2016-07-19]" [#938]:https://github. com/puma/puma/issues/938 "[Задача от @vandrijevik, закрыта 2016-04-07]" [#529]:https://github. com/puma/puma/issues/529 "[Задача от @mperham, закрыта 2016-04-07]" [#788]:https://github. com/puma/puma/issues/788 "[Задача от @herregroen, закрыта 2016-04-07]" [#894]:https://github. com/puma/puma/issues/894 "[Задача от @rafbm, закрыта 2016-04-07]" [#937]:https://github. com/puma/puma/issues/937 "[Задача от @huangxiangdan, закрыта 2016-04-07]" [#945]:https://github. com/puma/puma/pull/945 "[Вклад от @dekellum, включен 2016-04-07]" [#946]:https://github. com/puma/puma/pull/946 "[Вклад от @vipulnsward, включен 2016-04-07]" [#947]:https://github. com/puma/puma/pull/947 "[Вклад от @vipulnsward, включен 2016-04-07]" [#936]:https://github. com/puma/puma/pull/936 "[Вклад от @prathamesh-sonpatki, включен 2016-04-01]"com/puma/puma/pull/940 "Пулл-реквест от @kyledrake, объединён 2016-04-01" [#942]:https://github. com/puma/puma/pull/942 "Пулл-реквест от @dekellum, объединён 2016-04-01" [#927]:https://github. com/puma/puma/pull/927 "Пулл-реквест от @jlecour, объединён 2016-03-18" [#931]:https://github. com/puma/puma/pull/931 "Пулл-реквест от @runlevel5, объединён 2016-03-18" [#922]:https://github. com/puma/puma/issues/922 "Задача от @LavirtheWhiolet, закрыта 2016-03-07" [#923]:https://github. com/puma/puma/issues/923 "Задача от @donv, закрыта 2016-03-06" [#912]:https://github. com/puma/puma/pull/912 "Пулл-реквест от @tricknotes, объединён 2016-03-06" [#921]:https://github. com/puma/puma/pull/921 "Пулл-реквест от @swrobel, объединён 2016-03-06" [#924]:https://github. com/puma/puma/pull/924 "Пулл-реквест от @tbrisker, объединён 2016-03-07" [#916]:https://github. com/puma/puma/issues/916 "Задача от @ma11hew28, закрыта 2016-03-06" [#913]:https://github. com/puma/puma/issues/913 "Задача от @Casara, закрыта 2016-03-06" [#918]:https://github. com/puma/puma/issues/918 "Задача от @rodrigdav, закрыта 2016-03-06" [#910]:https://github. com/puma/puma/com/puma/puma/issues/910 "Задача от @ball-hayden, закрыта 2016-03-05" [#914]:https://github. com/puma/puma/issues/914 "Задача от @osheroff, закрыта 2016-03-06" [#901]:https://github. com/puma/puma/pull/901 "Пулл-реквест от @mitto, объединён 2016-02-26" [#902]:https://github. com/puma/puma/pull/902 "Пулл-реквест от @corrupt952, объединён 2016-02-26" [#905]:https://github. com/puma/puma/pull/905 "Пулл-реквест от @Eric-Guo, объединён 2016-02-26" [#852]:https://github. com/puma/puma/issues/852 "Задача от @asia653, закрыта 2016-02-25" [#854]:https://github. com/puma/puma/issues/854 "Задача от @ollym, закрыта 2016-02-25" [#824]:https://github. com/puma/puma/issues/824 "Задача от @MattWalston, закрыта 2016-02-25" [#823]:https://github. com/puma/puma/issues/823 "Задача от @pneuman, закрыта 2016-02-25" [#815]:https://github. com/puma/puma/issues/815 "Задача от @nate-dipiazza, закрыта 2016-02-25" [#835]:https://github. com/puma/puma/issues/835 "Задача от @mwpastore, закрыта 2016-02-25" [#798]:https://github. com/puma/puma/issues/798 "Задача от @schneems, закрыта 2016-02-25" [#876]:https://github. com/puma/puma/issues/876 "Задача от @osheroff, закрыта 2016-02-25" [#849]:https://github. com/puma/puma/issues/849 "Задача от @apotheon, закрыта 2016-02-25" [#871]:https://github. com/puma/puma/pull/871 "Пулл-реквест от @deepj, объединён 2016-02-25" [#874]:https://github. com/puma/puma/pull/874 "Пулл-реквест от @wallclockbuilder, объединён 2016-02-25" [#883]:https://github. com/puma/puma/pull/883 "Пулл-реквест от @dadah89, объединён 2016-02-25" [#884]:https://github. com/puma/puma/pull/884 "Пулл-реквест от @furkanmustafa, объединён 2016-02-25" [#888]:https://github. com/puma/puma/pull/888 "Пулл-реквест от @mlarraz, объединён 2016-02-25" [#890]:https://github. com/puma/puma/pull/890 "Пулл-реквест от @todd, объединён 2016-02-25" [#891]:https://github. com/puma/puma/pull/891 "Пулл-реквест от @ctaintor, объединён 2016-02-25" [#893]:https://github. com/puma/puma/pull/893 "Пулл-реквест от @josevalim, объединён 2016-02-25"com/puma/puma/pull/893 "Пулл-запрос от @spastorino, объединён 25 февраля 2016" [#897]:https://github. com/puma/puma/pull/897 "Пулл-запрос от @vanchi-zendesk, объединён 25 февраля 2016" [#899]:https://github. com/puma/puma/pull/899 "Пулл-запрос от @kch, объединён 25 февраля 2016" [#859]:https://github. com/puma/puma/issues/859 "Задача от @boxofrad, закрыта 28 января 2016" [#822]:https://github. com/puma/puma/pull/822 "Пулл-запрос от @kwugirl, объединён 28 января 2016" [#833]:https://github. com/puma/puma/pull/833 "Пулл-запрос от @joemiller, объединён 28 января 2016" [#837]:https://github. com/puma/puma/pull/837 "Пулл-запрос от @YurySolovyov, объединён 28 января 2016" [#839]:https://github. com/puma/puma/pull/839 "Пулл-запрос от @ka8725, объединён 15 января 2016" [#845]:https://github. com/puma/puma/pull/845 "Пулл-запрос от @deepj, объединён 28 января 2016" [#846]:https://github. com/puma/puma/pull/846 "Пулл-запрос от @sriedel, объединён 15 января 2016" [#850]:https://github. com/puma/puma/pull/850 "Пулл-запрос от @deepj, объединён 15 января 2016" [#853]:https://github. com/puma/puma/pull/853 "Пулл-запрос от @xuqiyong666, объединён 28 января 2016" [#857]:https://github. com/puma/puma/pull/857 "Пулл-запрос от @osheroff, объединён 15 января 2016" [#858]:https://github. com/puma/puma/pull/858 "Пулл-запрос от @mlarraz, объединён 28 января 2016" [#860]:https://github. com/puma/puma/pull/860 "Пулл-запрос от @osheroff, объединён 15 января 2016" [#861]:https://github. com/puma/puma/pull/861 "Пулл-запрос от @osheroff, объединён 15 января 2016" [#818]:https://github. com/puma/puma/pull/818 "Пулл-запрос от @unleashed, объединён 6 ноября 2015" [#819]:https://github. com/puma/puma/pull/819 "Пулл-запрос от @VictorLowther, объединён 6 ноября 2015" [#563]:https://github. com/puma/puma/issues/563 "Задача от @deathbob, закрыта 6 ноября 2015" [#803]:https://github. com/puma/puma/issues/803 "Задача от @burningTyger, закрыта 7 апреля 2016" [#768]:https://github.com/puma/puma/pull/768 "Пулл-запрос от @nathansamson, объединён 2015-11-06" [#773]:https://github. com/puma/puma/pull/773 "Пулл-запрос от @rossta, объединён 2015-11-06" [#774]:https://github. com/puma/puma/pull/774 "Пулл-запрос от @snow, объединён 2015-11-06" [#781]:https://github. com/puma/puma/pull/781 "Пулл-запрос от @sunsations, объединён 2015-11-06" [#791]:https://github. com/puma/puma/pull/791 "Пулл-запрос от @unleashed, объединён 2015-10-01" [#793]:https://github. com/puma/puma/pull/793 "Пулл-запрос от @robdimarco, объединён 2015-11-06" [#794]:https://github. com/puma/puma/pull/794 "Пулл-запрос от @peterkeen, объединён 2015-11-06" [#795]:https://github. com/puma/puma/pull/795 "Пулл-запрос от @unleashed, объединён 2015-11-06" [#796]:https://github. com/puma/puma/pull/796 "Пулл-запрос от @cschneid, объединён 2015-10-13" [#799]:https://github. com/puma/puma/pull/799 "Пулл-запрос от @annawinkler, объединён 2015-11-06" [#800]:https://github. com/puma/puma/pull/800 "Пулл-запрос от @liamseanbrady, объединён 2015-11-06" [#801]:https://github. com/puma/puma/pull/801 "Пулл-запрос от @scottjg, объединён 2015-11-06" [#802]:https://github. com/puma/puma/pull/802 "Пулл-запрос от @scottjg, объединён 2015-11-06" [#804]:https://github. com/puma/puma/pull/804 "Пулл-запрос от @burningTyger, объединён 2015-11-06" [#809]:https://github. com/puma/puma/pull/809 "Пулл-запрос от @unleashed, объединён 2015-11-06" [#810]:https://github. com/puma/puma/pull/810 "Пулл-запрос от @vlmonk, объединён 2015-11-06" [#814]:https://github. com/puma/puma/pull/814 "Пулл-запрос от @schneems, объединён 2015-11-04" [#817]:https://github. com/puma/puma/pull/817 "Пулл-запрос от @unleashed, объединён 2015-11-06" [#735]:https://github. com/puma/puma/pull/735com/puma/puma/issues/735 "Заявка от @trekr5, закрыта 2015-08-04" [#769]:https://github. com/puma/puma/issues/769 "Заявка от @dovestyle, закрыта 2015-08-16" [#767]:https://github. com/puma/puma/issues/767 "Заявка от @kapso, закрыта 2015-08-15" [#765]:https://github. com/puma/puma/issues/765 "Заявка от @monfresh, закрыта 2015-08-15" [#764]:https://github. com/puma/puma/issues/764 "Заявка от @keithpitt, закрыта 2015-08-15" [#669]:https://github. com/puma/puma/pull/669 "Заявка на слияние от @chulkilee, закрыта 2015-08-14" [#673]:https://github. com/puma/puma/pull/673 "Заявка на слияние от @chulkilee, закрыта 2015-08-14" [#668]:https://github. com/puma/puma/pull/668 "Заявка на слияние от @kcollignon, объединена 2015-08-14" [#754]:https://github. com/puma/puma/pull/754 "Заявка на слияние от @nathansamson, объединена 2015-08-14" [#759]:https://github. com/puma/puma/pull/759 "Заявка на слияние от @BenV, объединена 2015-08-14" [#761]:https://github. com/puma/puma/pull/761 "Пулл-реквест от @dmarcotte, объединён 2015-08-14" [#742]:https://github. com/puma/puma/pull/742 "Пулл-реквест от @deivid-rodriguez, объединён 2015-07-17" [#743]:https://github. com/puma/puma/pull/743 "Пулл-реквест от @matthewd, объединён 2015-07-18" [#749]:https://github. com/puma/puma/pull/749 "Пулл-реквест от @huacnlee, объединён 2015-08-04" [#751]:https://github. com/puma/puma/pull/751 "Пулл-реквест от @costi, объединён 2015-07-31" [#741]:https://github. com/puma/puma/issues/741 "Задача от @GUI, закрыта 2015-07-17" [#739]:https://github. com/puma/puma/issues/739 "Задача от @hab278, закрыта 2015-07-17" [#737]:https://github. com/puma/puma/issues/737 "Задача от @dmill, закрыта 2015-07-16" [#733]:https://github. com/puma/puma/issues/733 "Задача от @Eric-Guo, закрыта 2015-07-15" [#736]:https://github. com/puma/puma/pull/736 "Пулл-реквест от @paulanunda, объединён 2015-07-15" [#722]:https://github.com/puma/puma/issues/722 "Задача от @mikeki, закрыта 2015-07-14" [#694]:https://github. com/puma/puma/issues/694 "Задача от @yld, закрыта 2015-06-10" [#705]:https://github. com/puma/puma/issues/705 "Задача от @TheTeaNerd, закрыта 2015-07-14" [#686]:https://github. com/puma/puma/pull/686 "Пулл-реквест от @jjb, объединён 2015-06-10" [#693]:https://github. com/puma/puma/pull/693 "Пулл-реквест от @rob-murray, объединён 2015-06-10" [#697]:https://github. com/puma/puma/pull/697 "Пулл-реквест от @spk, объединён 2015-06-10" [#699]:https://github. com/puma/puma/pull/699 "Пулл-реквест от @deees, объединён 2015-05-19" [#701]:https://github. com/puma/puma/pull/701 "Пулл-реквест от @deepj, объединён 2015-05-19" [#702]:https://github. com/puma/puma/pull/702 "Пулл-реквест от @OleMchls, объединён 2015-06-10" [#703]:https://github. com/puma/puma/pull/703 "Пулл-реквест от @deepj, объединён 2015-06-10" [#704]:https://github. com/puma/puma/pull/704 "Пулл-реквест от @grega, объединён 2015-06-10" [#709]:https://github. com/puma/puma/pull/709 "Пулл-реквест от @lian, объединён 2015-06-10" [#711]:https://github. com/puma/puma/pull/711 "Пулл-реквест от @julik, объединён 2015-06-10" [#712]:https://github. com/puma/puma/pull/712 "Пулл-реквест от @chewi, объединён 2015-07-14" [#715]:https://github. com/puma/puma/pull/715 "Пулл-реквест от @raymondmars, объединён 2015-07-14" [#725]:https://github. com/puma/puma/pull/725 "Пулл-реквест от @rwz, объединён 2015-07-14" [#726]:https://github. com/puma/puma/pull/726 "Пулл-реквест от @jshafton, объединён 2015-07-14" [#729]:https://github. com/puma/puma/pull/729 "Пулл-реквест от @allaire, объединён 2015-07-14" [#730]:https://github. com/puma/puma/pull/730 "Пулл-реквест от @iamjarvo, объединён 2015-07-14" [#690]:https://github. com/puma/puma/issues/690 "Задача от @bachue, закрыта 2015-04-21" [#684]:https://github. com/puma/puma/issues/684com/puma/puma/issues/684 "Задача от @tomquas, закрыта 2015-04-13" [#698]:https://github. com/puma/puma/pull/698 "Пулл-реквест от @dmarcotte, объединён 2015-05-04" [#683]:https://github. com/puma/puma/issues/683 "Задача от @indirect, закрыта 2015-04-11" [#657]:https://github. com/puma/puma/pull/657 "Пулл-реквест от @schneems, объединён 2015-02-19" [#658]:https://github. com/puma/puma/pull/658 "Пулл-реквест от @tomohiro, объединён 2015-02-23" [#662]:https://github. com/puma/puma/pull/662 "Пулл-реквест от @iaintshine, объединён 2015-03-06" [#664]:https://github. com/puma/puma/pull/664 "Пулл-реквест от @fxposter, объединён 2015-03-09" [#667]:https://github. com/puma/puma/pull/667 "Пулл-реквест от @JuanitoFatas, объединён 2015-03-12" [#672]:https://github. com/puma/puma/pull/672 "Пулл-реквест от @chulkilee, объединён 2015-03-15" [#653]:https://github. com/puma/puma/issues/653 "Задача от @dvrensk, закрыта 2015-02-11" [#644]:https://github. com/puma/puma/pull/644 "Пулл-реквест от @bpaquet, объединён 2015-01-29" [#646]:https://github. com/puma/puma/pull/646 "Пулл-реквест от @mkonecny, объединён 2015-02-05" [#630]:https://github. com/puma/puma/issues/630 "Задача от @jelmd, закрыта 2015-01-20" [#622]:https://github. com/puma/puma/issues/622 "Задача от @sabamotto, закрыта 2015-01-20" [#583]:https://github. com/puma/puma/issues/583 "Задача от @rwojsznis, закрыта 2015-01-20" [#586]:https://github. com/puma/puma/issues/586 "Задача от @ponchik, закрыта 2015-01-20" [#359]:https://github. com/puma/puma/issues/359 "Задача от @natew, закрыта 2014-12-13" [#633]:https://github. com/puma/puma/issues/633 "Задача от @joevandyk, закрыта 2015-01-20" [#478]:https://github. com/puma/puma/pull/478 "Пулл-реквест от @rubencaro, объединён 2015-01-20" [#610]:https://github. com/puma/puma/pull/610 "Пулл-реквест от @kwilczynski, объединён 2014-11-27" [#611]:https://github. com/puma/puma/pull/611com/puma/puma/pull/611 "Пулл-запрос от @jasonl, объединён 2015-01-20" [#616]:https://github. com/puma/puma/pull/616 "Пулл-запрос от @jc00ke, объединён 2014-12-10" [#623]:https://github. com/puma/puma/pull/623 "Пулл-запрос от @raldred, объединён 2015-01-20" [#628]:https://github. com/puma/puma/pull/628 "Пулл-запрос от @rdpoor, объединён 2015-01-20" [#634]:https://github. com/puma/puma/pull/634 "Пулл-запрос от @deepj, объединён 2015-01-20" [#637]:https://github. com/puma/puma/pull/637 "Пулл-запрос от @raskhadafi, объединён 2015-01-20" [#639]:https://github. com/puma/puma/pull/639 "Пулл-запрос от @ebeigarts, объединён 2015-01-20" [#640]:https://github. com/puma/puma/pull/640 "Пулл-запрос от @bailsman, объединён 2015-01-20" [#591]:https://github. com/puma/puma/issues/591 "Задача от @renier, закрыта 2014-11-24" [#606]:https://github. com/puma/puma/issues/606 "Задача от @, закрыта 2014-11-24" [#560]:https://github. com/puma/puma/pull/560 "Пулл-запрос от @raskhadafi, объединён 2014-11-24" [#566]:https://github. com/puma/puma/pull/566 "Пулл-запрос от @sheltond, объединён 2014-11-24" [#593]:https://github. com/puma/puma/pull/593 "Пулл-запрос от @andruby, объединён 2014-10-30" [#594]:https://github. com/puma/puma/pull/594 "Пулл-запрос от @hassox, объединён 2014-10-31" [#596]:https://github. com/puma/puma/pull/596 "Пулл-запрос от @burningTyger, объединён 2014-11-01" [#601]:https://github. com/puma/puma/pull/601 "Пулл-запрос от @sorentwo, объединён 2014-11-24" [#602]:https://github. com/puma/puma/pull/602 "Пулл-запрос от @1334, объединён 2014-11-24" [#608]:https://github. com/puma/puma/pull/608 "Пулл-запрос от @Gu1, объединён 2014-11-24" [#538]:https://github. com/puma/puma/pull/538 "Пулл-запрос от @memiux, объединён 2014-11-24" [#550]:https://github. com/puma/puma/issues/550 "Задача от @, закрыта 2014-10-30" [#549]:https://github.com/puma/puma/pull/549 "Пулл-реквест от @bsnape, объединён 2014-10-16" [#553]:https://github. com/puma/puma/pull/553 "Пулл-реквест от @lowjoel, объединён 2014-10-16" [#568]:https://github. com/puma/puma/pull/568 "Пулл-реквест от @mariuz, объединён 2014-10-16" [#578]:https://github. com/puma/puma/pull/578 "Пулл-реквест от @danielbuechele, объединён 2014-10-16" [#581]:https://github. com/puma/puma/pull/581 "Пулл-реквест от @alexch, объединён 2014-10-16" [#590]:https://github. com/puma/puma/pull/590 "Пулл-реквест от @dmarcotte, объединён 2014-10-16" [#574]:https://github. com/puma/puma/issues/574 "Задача от @minasmart, закрыта 2014-09-05" [#561]:https://github. com/puma/puma/pull/561 "Пулл-реквест от @krasnoukhov, объединён 2014-08-04" [#570]:https://github. com/puma/puma/pull/570 "Пулл-реквест от @havenwood, объединён 2014-08-20" [#520]:https://github. com/puma/puma/pull/520 "Пулл-реквест от @misfo, объединён 2014-06-16" [#530]:https://github. com/puma/puma/pull/530 "Пулл-реквест от @dmarcotte, объединён 2014-06-16" [#537]:https://github. com/puma/puma/pull/537 "Пулл-реквест от @vlmonk, объединён 2014-06-16" [#540]:https://github. com/puma/puma/pull/540 "Пулл-реквест от @allaire, объединён 2014-05-27" [#544]:https://github. com/puma/puma/pull/544 "Пулл-реквест от @chulkilee, включена 2014-06-03" [#551]:https://github. com/puma/puma/pull/551 "Пулл-реквест от @jcxplorer, включена 2014-07-02" [#487]:https://github. com/puma/puma/pull/487 "Пулл-реквест от @, включена 2014-03-06" [#492]:https://github. com/puma/puma/pull/492 "Пулл-реквест от @, включена 2014-03-06" [#493]:https://github. com/puma/puma/pull/493 "Пулл-реквест от @alepore, включена 2014-03-07" [#503]:https://github. com/puma/puma/pull/503 "Пулл-реквест от @mariuz, включена 2014-04-12" [#505]:https://github. com/puma/puma/pull/505 "Пулл-реквест от @sammcj, включена 2014-04-12" [#506]:https://github. com/puma/puma/pull/506 "Пулл-реквест от @dsander, включена 2014-04-12" [#510]:https://github. com/puma/puma/pull/510 "Пулл-реквест от @momer, включена 2014-04-12" [#511]:https://github. com/puma/puma/pull/511com/puma/puma/pull/511 "Пул-запрос от @macool, включён 2014-04-12" [#514]:https://github. com/puma/puma/pull/514 "Пул-запрос от @nanaya, включён 2014-04-12" [#517]:https://github. com/puma/puma/pull/517 "Пул-запрос от @misfo, включён 2014-04-12" [#518]:https://github. com/puma/puma/pull/518 "Пул-запрос от @alxgsv, включён 2014-04-12" [#471]:https://github. com/puma/puma/pull/471 "Пул-запрос от @arthurnn, включён 2014-02-28" [#485]:https://github. com/puma/puma/pull/485 "Пул-запрос от @runlevel5, включён 2014-03-01" [#486]:https://github. com/puma/puma/pull/486 "Пул-запрос от @joshwlewis, включён 2014-03-02" [#490]:https://github. com/puma/puma/pull/490 "Пул-запрос от @tobinibot, включён 2014-03-06" [#491]:https://github. com/puma/puma/pull/491 "Пул-запрос от @brianknight10, включён 2014-03-06" [#438]:https://github. com/puma/puma/issues/438 "Заявка от @mperham, закрыта 2014-01-25" [#333]:https://github. com/puma/puma/issues/333 "Заявка от @SamSaffron, закрыта 2014-01-26" [#440]:https://github. com/puma/puma/issues/440 "Заявка от @sudara, закрыта 2014-01-25" [#449]:https://github. com/puma/puma/issues/449 "Заявка от @cezarsa, закрыта 2014-02-04" [#444]:https://github. com/puma/puma/issues/444 "Заявка от @le0pard, закрыта 2014-01-25" [#370]:https://github. com/puma/puma/issues/370 "Заявка от @pelcasandra, закрыта 2014-01-26" [#377]:https://github. com/puma/puma/issues/377 "Заявка от @mrbrdo, закрыта 2014-01-26" [#406]:https://github. com/puma/puma/issues/406 "Заявка от @simonrussell, закрыта 2014-01-25" [#425]:https://github. com/puma/puma/issues/425 "Заявка от @jhass, закрыта 2014-01-26" [#432]:https://github. com/puma/puma/issues/432com/puma/puma/pull/432 "Заявка на слияние от @anatol, закрыта 2014-01-25" [#428]:https://github. com/puma/puma/pull/428 "Заявка на слияние от @alexeyfrank, принята 2014-01-25" [#429]:https://github. com/puma/puma/pull/429 "Заявка на слияние от @namusyaka, принята 2013-12-16" [#431]:https://github. com/puma/puma/pull/431 "Заявка на слияние от @mrb, принята 2014-01-25" [#433]:https://github.com/puma/puma/pull/433 "Пулл-запрос от @alepore, принят 2014-02-28" [#437]:https://github. com/puma/puma/pull/437 "Пулл-запрос от @ibrahima, принят 2014-01-25" [#446]:https://github. com/puma/puma/pull/446 "Пулл-запрос от @sudara, принят 2014-01-27" [#451]:https://github. com/puma/puma/pull/451 "Пулл-запрос от @pwiebe, принят 2014-02-04" [#453]:https://github. com/puma/puma/pull/453 "Пулл-запрос от @joevandyk, принят 2014-02-28" [#470]:https://github. com/puma/puma/pull/470 "Пулл-запрос от @arthurnn, принят 2014-02-28" [#472]:https://github. com/puma/puma/pull/472 "Пулл-запрос от @rubencaro, принят 2014-02-21" [#480]:https://github. com/puma/puma/pull/480 "Пулл-запрос от @jjb, принят 2014-02-26" [#481]:https://github. com/puma/puma/pull/481 "Пулл-запрос от @schneems, принят 2014-02-25" [#482]:https://github. com/puma/puma/pull/482 "Пулл-запрос от @prathamesh-sonpatki, принят 2014-02-26" [#483]:https://github. com/puma/puma/pull/483 "Пулл-запрос от @maxilev, принят 2014-02-26" [#422]:https://github. com/puma/puma/issues/422 "Заявка от @alexandru-calinoiu, закрыта 2013-12-05" [#334]:https://github. com/puma/puma/issues/334 "Заявка от @srgpqt, закрыта 2013-07-18" [#179]:https://github. com/puma/puma/issues/179 "Заявка от @betelgeuse, закрыта 2013-07-18" [#332]:https://github. com/puma/puma/issues/332 "Заявка от @SamSaffron, закрыта 2013-07-18" [#317]:https://github. com/puma/puma/issues/317 "Заявка от @masterkain, закрыта 2013-07-11" [#309]:https://github. com/puma/puma/issues/309 "Заявка от @masterkain, закрыта 2013-07-09" [#166]:https://github. com/puma/puma/issues/166 "Заявка от @emassip, закрыта 2013-07-06" [#292]:https://github. com/puma/puma/issues/292 "Заявка от @pulse00, закрыта 2013-07-06" [#274]:https://github. com/puma/puma/issues/274 "Заявка от @mrbrdo, закрыта 2013-07-06" [#304]:https://github. com/puma/puma/issues/304com/puma/puma/issues/304 "Заявка от @nandosola, закрыта 2013-07-06" [#287]:https://github. com/puma/puma/issues/287 "Заявка от @runlevel5, закрыта 2013-07-06" [#256]:https://github. com/puma/puma/issues/256 "Заявка от @rkh, закрыта 2013-07-01" [#285]:https://github. com/puma/puma/issues/285 "Задача от @mkwiatkowski, закрыта 2013-06-20" [#270]:https://github. com/puma/puma/issues/270 "Задача от @iamroody, закрыта 2013-06-01" [#246]:https://github. com/puma/puma/issues/246 "Задача от @amencarini, закрыта 2013-06-01" [#278]:https://github. com/puma/puma/issues/278 "Задача от @titanous, закрыта 2013-06-18" [#251]:https://github. com/puma/puma/issues/251 "Задача от @cure, закрыта 2013-06-18" [#252]:https://github. com/puma/puma/issues/252 "Задача от @vixns, закрыта 2013-06-01" [#234]:https://github. com/puma/puma/issues/234 "Задача от @jgarber, закрыта 2013-04-08" [#228]:https://github. com/puma/puma/issues/228 "Задача от @joelmats, закрыта 2013-04-29" [#192]:https://github. com/puma/puma/issues/192 "Задача от @steverandy, закрыта 2013-02-09" [#206]:https://github. com/puma/puma/issues/206 "Задача от @moll, закрыта 2013-03-19" [#154]:https://github. com/puma/puma/issues/154 "Задача от @trevor, закрыта 2013-03-19" [#208]:https://github. com/puma/puma/issues/208 "Задача от @ochronus, закрыта 2013-03-18" [#189]:https://github. com/puma/puma/issues/189 "Задача от @tolot27, закрыта 2013-02-09" [#185]:https://github. com/puma/puma/issues/185 "Задача от @nicolai86, закрыта 2013-02-06" [#182]:https://github. com/puma/puma/issues/182 "Задача от @sriedel, закрыта 2013-02-05" [#183]:https://github. com/puma/puma/issues/183 "Задача от @concept47, закрыта 2013-02-05" [#176]:https://github. com/puma/puma/issues/176 "Задача от @cryo28, закрыта 2013-02-05" [#180]:https://github. com/puma/puma/issues/180 "Задача от @tscolari, закрыта 2013-02-05" [#170]:https://github. com/puma/puma/issues/170 "Задача от @nixme, закрыта 2012-11-29"com/puma/puma/issues/148 "Задача от @rafaelss, закрыта 2012-11-18" [#128]:https://github. com/puma/puma/issues/128 "Задача от @fbjork, закрыта 2012-10-20" [#155]:https://github. com/puma/puma/issues/155 "Задача от @ehlertij, закрыта 2012-10-13" [#123]:https://github. com/puma/puma/pull/123 "Внесение изменений от @jcoene, закрыто 2012-07-19" [#111]:https://github. com/puma/puma/pull/111 "Внесение изменений от @kenkeiter, закрыто 2012-07-19" [#98]:https://github. com/puma/puma/pull/98 "Внесение изменений от @Flink, закрыто 2012-05-15" [#94]:https://github. com/puma/puma/issues/94 "Задача от @ender672, закрыта 2012-05-08" [#84]:https://github. com/puma/puma/issues/84 "Задача от @sigursoft, закрыта 2012-04-29" [#78]:https://github. com/puma/puma/issues/78 "Задача от @dstrelau, закрыта 2012-04-28" [#79]:https://github. com/puma/puma/issues/79 "Задача от @jammi, закрыта 2012-04-28" [#65]:https://github. com/puma/puma/issues/65 "Задача от @bporterfield, закрыта 2012-04-11" [#54]:https://github. com/puma/puma/issues/54 "Задача от @masterkain, закрыта 2012-04-10" [#58]:https://github. com/puma/puma/pull/58 "Внесение изменений от @paneq, закрыто 2012-04-10" [#61]:https://github. com/puma/puma/issues/61 "Задача от @dustalov, закрыта 2012-04-10" [#63]:https://github. com/puma/puma/issues/63 "Задача от @seamusabshere, закрыта 2012-04-11" [#60]:https://github. com/puma/puma/issues/60 "Задача от @paneq, закрыта 2012-04-11" [#53]:https://github. com/puma/puma/pull/53 "Внесение изменений от @sxua, закрыто 2012-04-11"

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Puma_old1.git
git@api.gitlife.ru:oschina-mirror/mirrors-Puma_old1.git
oschina-mirror
mirrors-Puma_old1
mirrors-Puma_old1
master