Контроль изменений — пятница 4 сентября
v2.5.0Ничто из перечисленного ниже пока не живое. Это релиз, который выходит в пятницу утром. Черновик написан в четверг намеренно — каждое «до» на этой странице можно измерить, только пока живой магазин это ещё отдаёт, и оно исчезает в момент выкатки. Там, где измерение снять не удалось, строка говорит об этом красным, а не показывает число.
Одна вещь, которую стоит вынести с этой страницы, если больше ничего не читать. Этот релиз не может выйти в текущем виде. На живом сервисе поиска не хватает одной настройки, и новый код поиска без неё отказывается стартовать. Система устроена так, чтобы падать безопасно, поэтому последствие — пятничный релиз не состоится, а не магазин сломается. Настройка ставится за минуту, и это первый пункт ниже. Решение, которое нужно от этой страницы, — кто её выставит и в каком порядке выходят две половины смены адресов; эти два ответа и отделяют релиз от пятничного утра.
Девяносто два изменения с релиза 28 августа: пятьдесят восемь на сайте магазина, двадцать четыре в поиске, десять в сервисах заказов и оплаты. Почти всё это — три работы. Первая — схема запчастей на телефоне: она перестаёт быть картинкой, с которой борешься, и становится местом, где можно купить. Вторая — у каждой страницы запчасти меняется адрес, и это требует, чтобы сайт магазина и поиск договорились между собой в одно утро. Третья доводит до конца работу двух прошлых релизов о том, какие страницы запчастей приглашены к прочтению Google.
В отличие от прошлого релиза, здесь почти ничего не спрятано за переключателем. Релиз 28 августа выехал с главной работой в выключенном виде и спрашивал, какие переключатели включать; те четыре настройки остались там же, и этот релиз их не трогает. То, что здесь, вступает в силу в пятницу — поэтому вопрос порядка во втором разделе важнее обычного.
Три по-настоящему новые вещи всё же выезжают выключенными: место, где покупатель хранит свои машины, магазин крепежа и виджет чата. Ни одно из них в субботу утром недостижимо. Каждое — отдельное решение для будущей недели, и каждое описано в своём разделе, а не закопано в списке.
Что пятница реально меняет на живом магазине — измерено в четверг, это не прогноз
Для покупателя: три вещи. Схема запчастей на телефоне становится пригодной — один палец двигает, два пальца масштабируют, выноски достаточно крупные, чтобы попасть большим пальцем, а нажатие на выноску кладёт запчасть в корзину, не уводя со схемы. Фотографии переезжают на наш собственный адрес — этого никто не должен заметить, и в этом смысл. И исправлены несколько давних неверных ответов в поиске и в корзине: фильтры, которые предлагались, но никогда не применялись; две машины с одинаковым названием, которые нельзя было различить; счётчик количества в корзине, который не всегда соответствовал соседней запчасти.
Для Google: у каждой страницы запчасти меняется адрес. Сейчас страница запчасти живёт по адресу /parts/ct-nhl-100016, а будет по /parts/100016-nhl-ct. Каждый старый адрес отвечает одним постоянным перенаправлением на новый — это та форма, которую Google умеет следовать и которая сохраняет позиции. Это единственное изменение на этой странице, которое должно выйти на сайте магазина и в поиске в правильном порядке, и это второй пункт следующего раздела.
Что не меняется: что Google разрешено читать. Четыре настройки из релиза 28 августа считаны с живого магазина в четверг: индексирование включено, ослабленное индексирование выключено, «только с ценой» включено, страницы схем и дерева техники придержаны. Пятница ни одну из них не меняет. Работа в этом релизе заставляет сайт согласиться с этими настройками в большем числе мест — она не меняет того, что они говорят.
Что нужно решить на созвоне — найдено в четверг, до выкатки
Релиз не может выйти, пока на живой сервис поиска не добавят одну настройку блокирует релизэтого никто не видитsearch#999, search#1000
Поиск искал адрес фотографии в шести разных местах собственного кода, и в каждом этот адрес был вписан как запасной вариант. Этот релиз заменяет все шесть одной настройкой и намеренно убирает запасной вариант: если настройки нет, сервис отказывается стартовать, а не отдаёт тихо старый адрес.
До — живой сервис поиска сегодняЕго настройки считаны с работающего сервиса в четверг. В списке девятнадцать записей, и новой среди них нет.
После — что сделала бы пятницаНовая версия стартует, не находит настройку и останавливается. Поскольку платформа направляет покупателей только на успешно стартовавшую версию, все запросы остаются на той, что работает сегодня. Результат — релиз, который не состоялся, а не магазин, который сломался.
Что нужноОдна настройка на живом сервисе поиска до выкатки. Это примерно минута, а её значение — тот адрес, с которого фотографии отдаются сегодня, так что для покупателя ничего не меняется.
КтоВова, до выкатки. Изнутри релиза это сделать нельзя — настройка живёт на работающем сервисе, а не в коде.
У смены адресов две половины, и они должны выйти в одном порядке нужно решитьэто видит Googlefront#4044, search#996
Сайт магазина должен принимать новый адрес страницы запчасти до того, как поиск начнёт его раздавать. Половина сайта магазина — это то, что отвечает на запрос; половина поиска — то, что вписывает адрес в карту сайта, товарный фид и ссылки внутри схем.
В правильном порядкеПервым идёт сайт магазина. В те несколько минут между половинами поиск ещё раздаёт старые адреса, а сайт магазина отвечает и на старые, и на новые. Ни в один момент ничего не сломано.
В неправильном порядкеПоиск раздаёт адреса, на которые сайт магазина ещё не отвечает. Каждая свежевыданная ссылка ведёт на мёртвую страницу до прихода второй половины, а товарный фид и карта сайта — как раз те два места, которые в этом окне вероятнее всего прочитает машина.
Почему это решение, а не просто шагПоловины выкатываются разными механизмами — сайт магазина слиянием, поиск подменой работающего образа, — поэтому порядок ничем не обеспечивается автоматически. Его должен удержать тот, кто выполняет выкатку.
Одно изменение стоит в очереди прямо в живую ветку, в обход релизного поезда нужно решитьэтого никто не видитfront#4020
front#4020 нацелен прямо в живую ветку, а не в интеграционную, через которую проходит всё остальное. Кроме того, это вторая копия работы, уже входящей в этот релиз: виджет чата приехал 27 августа и есть в списке ниже.
Почему это важноИзменение, идущее сразу в живую ветку, пропускает неделю интеграционных проверок, которую прошло всё остальное на этой странице, и это ровно та форма изменения, которую процесс написан предотвращать.
РешениеЗакрыть как уже покрытое или перенацелить в интеграционную ветку, чтобы оно поехало поездом. Любое подходит; оставить как есть — нет.
Пересинхронизация цен New Holland откладывалась четыре раза и теперь ждёт нас нужно решитьэто видит покупательhub#349
Открыто с 27 июля. Сто двадцать две тысячи пятьсот тридцать три запчасти держат цену, расходящуюся с источником. 28 августа шаг проверки перешёл к Вове, где и стоит с тех пор.
РешениеДа или нет на этой неделе. Это не заблокировано ничем в релизе — это заблокировано тем, что никто не прогнал проверку.
На тестовый сайт на этой неделе ничего не выкладывали, и у приёмки нет владельца процессэтого никто не видитбез задачи
В процессе есть четверговый шаг, который копирует кандидата на тестовый сайт, чтобы его проверили до пятницы. На этой неделе он не выполнялся — на тестовом сайте до сих пор то, что положили туда 21 августа. Релиз 28 августа тоже вышел без него.
Почему это повторяетсяЧеловек, отвечавший за тестирование, ушёл 20 августа, и роль не закрыли. У шага нет владельца, поэтому его некому пропустить и некому выполнить.
РешениеЛибо названный человек проверяет кандидата до пятницы, либо действует существующее правило и всё непроверенное — это «нет». Оба ответа рабочие; нерабочее — нынешнее состояние, где правило есть, а исполнения нет.
Одно изменение базы выезжает без учётной записи, ради которой писалось, — и это безопасно действий не требуетэтого никто не видитsearch#982
Записано здесь, чтобы это не спутали с первым пунктом. Релиз даёт тяжёлой ночной работе по индексированию собственную ограниченную учётную запись базы, чтобы она не конкурировала с поисками покупателей. На живом сервисе эта запись не создана.
Что происходит без неёРабота откатывается на общую учётную запись и пишет предупреждение при старте сервиса. Это ровно то, что происходит сегодня, поэтому хуже не становится — просто изоляция пока не получена. В отличие от первого пункта, релиз это не останавливает.
Схема запчастей на телефоне — самая крупная работа релиза, обращённая к покупателю
Схема запчастей — это способ найти нужную деталь, не зная её номера: разнесённый чертёж узла с пронумерованными выносками. На настольном экране это работает. На телефоне это была картинка, с которой борешься, — а открывают их чаще всего именно с телефона.
Один палец двигает схему, два масштабируют, и страница под ней перестаёт уезжать выходит в пятницуэто видит покупательfront#4026, front#4034
Обработка жестов была написана вручную и не отличала перетаскивание схемы от прокрутки страницы, поэтому попытка сдвинуть чертёж уводила страницу от него. Теперь этим занимается поддерживаемая библиотека, которую использует любая мобильная карта, с привычным правилом: один палец двигает, два масштабируют.
Нажатие на выноску кладёт запчасть в корзину, не уводя со схемы выходит в пятницуэто видит покупательfront#4028, front#4048
Раньше выноска только называла запчасть, и покупателю приходилось заново искать её в списке ниже, чтобы купить. Теперь выноска ведёт к покупке, а строка на панели под схемой — поверхность покупки, а не легенда: цена, наличие и кнопка добавления прямо в строке.
Плавающая метка, закрывавшая схему, убрана, а выноски стали достаточно крупными выходит в пятницуэто видит покупательfront#4058, front#4057, front#4061
Над чертежом висела метка, показывавшая выбранную выноску, и на телефоне она садилась поверх того, что описывала. Обе её задачи переехали на панель. Выноски и элементы масштабирования были меньше размера, в который надёжно попадает большой палец, — увеличены. Шторка, закрывающая нижнюю половину экрана, теперь закрывается смахиванием вниз, а не поиском маленького крестика.
У каждой страницы запчасти меняется адрес — изменение с зависимостью по порядку
Номер запчасти переезжает в начало адреса выходит в пятницуэто видит Googlefront#4044, search#996, search#994
До — живой магазин сегодня/parts/ct-nhl-100016 отвечает 200. /parts/100016-nhl-ct отвечает «не найдено». Адрес, набранный заглавными, один раз перенаправляется на строчную форму.
ПослеЭти два меняются местами, и каждый старый адрес отвечает одним постоянным перенаправлением на новый. Один переход, никогда не два, — именно это сохраняет уже заработанные позиции страницы.
Зачем вообщеНомер запчасти — то, что покупатель узнаёт и что он ищет. Вынос его вперёд делает адрес читаемым и ставит опознавательный признак туда, где его ищут и человек, и поисковая система.
ПорядокСм. второй пункт в решениях выше. Это то изменение, у которого две половины должны выйти последовательно.
Две мелкие правки адресов, которые едут вместе с этим выходит в пятницуэто видит Googlefront#3991, front#3990
Все сегменты оставшихся семейств адресов теперь строчные, поэтому одну и ту же страницу нельзя открыть двумя написаниями. И снятая с производства запчасть больше не перенаправляет на замену, которая сама снята с производства, — цепочку, заканчивавшуюся мёртвой страницей.
Что Google разрешено читать — завершение работы двух прошлых релизов
Само решение принято и выехало 28 августа: какие страницы запчастей стоит предлагать Google. Этот релиз это решение не меняет. Он заставляет ему подчиниться остальную часть сайта — те шестнадцать мест, которые отвечали по своим более старым правилам.
Ссылка на придержанную запчасть больше вообще не пишется в страницу выходит в пятницуэто видит Googlefront#4047
Придержанные запчасти не попадали в карту сайта, но на них по-прежнему вели ссылки из списков и схем, поэтому Google находил их по ссылкам. Теперь ссылки отказывают в закрытую: если запчасть не предлагается, кликабельная ссылка на неё не пишется — ни на страницах запчастей, ни на страницах подбора.
Замечание для тех, кто проверяет живой магазин сегодняПроверка, находящая мёртвые ссылки в разделе подбора, находит ровно ту проблему, которую это изменение чинит, а не новую. На интеграционной ветке оно с 3 сентября, на живой магазин попадает в пятницу.
Списки, фильтры и счётчики теперь согласны с одним и тем же правилом выходит в пятницуэто видит Googlefront#3945, #3953, #3956, #3957, #3959, #3960, #3969, #3973, #3975, #3977, #3979, #3987, #3989, #3995search#944, #952, #956, #959, #961, #965, #980, #983
Двадцать два изменения одной формы: отфильтрованный список, счётчик фасета, страница бренда или автоматическая проверка применяли правило в одном месте и не применяли в другом, поэтому показанное число и показанные строки расходились. Теперь правило одно и в одном месте. Видимый эффект — счётчик совпадает с тем, что на странице.
Одно из них — решение, а не исправлениеОткрытие бренда для Google теперь записанное решение, а не то, что происходило автоматически, как только у бренда набиралось достаточно строк. Бренд, которому нечего предложить, прячется, а не публикует список страниц, отвечающих «не найдено».
Одно — про свежестьОпубликована ли запчасть, теперь читается вживую, а не из снимка, пересобираемого ночью, поэтому появившаяся в продаже запчасть предлагается в тот же день, а не на следующий.
Результаты поиска и фильтры — фильтры, которые предлагались, но не применялись
Каждый фильтр, который предлагает боковая панель, теперь действительно сужает выдачу выходит в пятницуэто видит покупательsearch#967, #971, #973, #975, #977, #978
Шесть изменений с одной причиной. Боковая панель и сетка строились разными путями кода, и панель рекламировала отсечения — по цене, по лидерам продаж и другие, — которые сетка никогда не выполняла. Покупатель ставил галочку, и результаты не менялись. Два фильтра, никогда и нигде не применявшиеся, удалены, а не починены, потому что за ними ничего не стояло.
Поиск перестаёт выдавать то, что нельзя купить или открыть выходит в пятницуэто видит покупательsearch#946, #949, #995front#3958
Навесное оборудование и комплекты возвращались как запчасти, что вело на адреса, отвечающие «не найдено». А когда сайт не может понять, какую запчасть имел в виду поиск, он теперь показывает страницу результатов, а не угадывает адрес страницы запчасти, которого может не быть.
Две правки поиска уже на живом магазине как аварийные уже живоеэто видит покупательfront#3963, front#3999
Записано, чтобы список сходился, а не как новость. Поиск, совпадающий ровно с одной запчастью, отвечал ошибкой вместо того, чтобы её показать, — та самая проблема, отмеченная на странице 28 августа как нерешённая. Исправлено и выкачено отдельно 29 августа. Отдельно: когда поиску тяжело, сайт теперь ненадолго запоминает отказ, вместо того чтобы упорно повторять запросы и делать хуже; это выехало 1 сентября. Оба входят в этот релиз штатно.
Корзина, оформление и аналитика — четыре мелких исправления
Счётчик количества в корзине теперь принадлежит правильной запчасти выходит в пятницуэто видит покупательfront#4045
Когда запчасть появляется внутри списка деталей узла, соседний счётчик опирался на значение, которое могли делить две разные строки, поэтому изменение количества в одной могло менять его в другой. Теперь он опирается на идентификатор, уникальный для строки.
Просмотры товаров снова считаются выходит в пятницуэтого никто не видитfront#4008
Событие, фиксирующее просмотр запчасти, перестало срабатывать, поэтому аналитика по просмотрам была занижена. Оно снова срабатывает и передаёт тот же идентификатор, что и остальной сайт, поэтому цифры можно связать между собой.
Две правки доставки уже на живом магазине и одна страховка оплаты уже живоеэто видит покупательfront#3983, front#3985, ps#715
Корзина показывала оценку перевозчика, а не то, что списывает оформление, и эта оценка описывала выдачу на стойке как доставку. Обе выкачены 30 августа. Отдельно: оплаченный заказ, не сумевший себя записать, помечался как обработанный, из-за чего его никто не повторял; теперь он не помечается обработанным без заказа. Это выехало 29 августа.
Фотографии переезжают на наш собственный адрес — незаметно, если сделано верно, и на весь сайт, если нет
Сейчас фотографии отдаются с отдельного адреса на нашем небольшом сервисе. Этот релиз переводит их на собственный адрес магазина, что убирает этот сервис из пути, по которому идёт браузер покупателя. Покупатель видит те же фотографии.
Почему эта половина должна выйти до того, как старый сервис можно выключить выходит в пятницуэто видит покупательfront#4051, front#4052, search#1000, ps#729
До — измерено в четвергФотография, запрошенная с собственного адреса магазина, отвечает 200 как изображение, с кэшем на неделю. Но этот запрос сейчас пробрасывается на тот самый сервис, который мы выводим. Поэтому сравнение, снятое на живом магазине сегодня, сравнивает этот сервис с самим собой и ничего не доказывает — записано так, а не подано как измерение.
ПослеМагазин читает фотографию из хранилища напрямую. Только тогда промежуточный сервис можно выключить, и это работа будущей недели.
Смежная правкаКак только магазин начал доверять собственному адресу для изображений, один внутренний запрос стал ходить сам к себе, — а на защищённых тестовых окружениях это возвращает страницу входа, которая затем кэшировалась как картинка. Теперь он читает из хранилища. Найдено до того, как дошло до живого магазина.
НастройкаЭто та половина, которой нужна недостающая настройка из первого решения. Её значение намеренно разное в разных окружениях, поэтому единое фиксированное значение выглядело бы верным на живом магазине и обнулило бы все фотографии на тестовом.
Три новые вещи, все выключены — ничего из этого в субботу недостижимо
Место, где покупатель хранит свои машины выключеноэтого пока никто не видитfront#4021, ps#710
Покупатель может записать принадлежащие ему машины и хранить по каждой фотографии, PDF-инструкции и ссылки, чтобы нужные запчасти находились от его собственной машины, а не поиском по каталогу. Половина хранения — в сервисах заказов, половина страниц — на сайте магазина за настройкой, которой на живом магазине нет.
Порядок, если это когда-нибудь включатСначала должна быть живой половина сервисов. Этот релиз её несёт, поэтому после пятницы переключатель становится возможным — он не становится включённым.
Магазин крепежа, выключенный вторым переключателем намеренно выключеноэтого пока никто не видитfront#4022, front#4046
Складской крепёж — болты, метизы и подобное — отдельным разделом. Выезжает выключенным и должен таким остаться по конкретной измеренной причине: из 629 номеров крепежа 585 вообще отсутствуют в каталоге, а 44 сталкиваются с запчастью New Holland под тем же номером. Отдельный выключатель добавлен уже после того, как раздел был построен, чтобы его можно было остановить, не отзывая релиз.
Решение, для будущей неделиНе включать ли его, а что делать с 44 номерами, означающими две разные запчасти.
Виджет чата, выключенный потому, что его нечем настроить выключеноэтого пока никто не видитfront#4004, front#4005
Виджет читает настройку, которой на живом магазине нет, поэтому не загружается. Подтверждено чтением настроек живого магазина в четверг, а не предположением. См. третье решение выше о дублирующей копии этой работы.
Одно, что выглядит выключенным, но таковым не является выходит в пятницу, включённымэто видит покупательsearch#988, search#989
Запчасти со ступенчатой ценой, но без простой, становятся покупаемыми — за настройкой. Эта настройка считана с живого сервиса поиска в четверг, и она уже включена. То есть это вступает в силу сразу при выкатке — оно указано здесь, потому что отнести его к выключенной работе было бы неверно.
Каталог и страницы брендов — три изменения
Две машины с одинаковым названием можно различить выходит в пятницуэто видит покупательfront#3970
Там, где две модели делят название, страница теперь называет то, что их различает, и заполняет колонку с тем, к чему подходит каждая запчасть. Более ранняя попытка была закрыта, так и не выехав, поэтому для живого магазина это по-настоящему новое, а не повтор.
Заголовок страницы бренда перестаёт прыгать при загрузке, и семь мёртвых ссылок убраны выходит в пятницуэто видит покупательfront#3951, front#4049
Место под вторую строку заголовка теперь зарезервировано, поэтому переключатель вида под ним не уезжает из-под курсора, пока страница устаканивается. Семь адресов брендового раздела, никуда не ведущих, удалены.
Уборка — снаружи ничего не видно
Двадцать восемь изменений: обновления безопасности стороннего кода, удаление двух выведенных сервисов, исправление сборочных проверок и документация. Два стоит назвать. Сборочная проверка сообщала о критической находке безопасности на каждой сборке, хотя её не было, — а это приучает людей игнорировать проверку; исправлено. И два сервиса, месяцы назад убранные с серверов, всё ещё существовали в коде; теперь они удалены, и это разница между «выключено» и «нет».
Всё в этом релизе — 92 изменения, у каждого строка описания
Сайт магазина58 изменений 37 заметны покупателю или Google
| Изменение | Что это | Что сдвинулось | Сделал |
|---|---|---|---|
| front#4068 | Панель запчастей несла мёртвое состояние и две строки, описывавшие поведение, которого у неё уже не было. | мёртвое состояние и комментарии убраны | Вова |
| front#4063 | Несколько написаний одного и того же адреса фотографии сведены к одному пути на своём домене. | единый путь для медиа | Вова |
| front#4067 | Проверка доступности аудировала страницу «не найдено» и проходила её. | проверка смотрит на реальный маршрут поиска | Вова |
| front#4061 | Мобильная шторка запчастей закрывается смахиванием, а не крестиком. | жест закрытия шторки | Вова |
| front#4055 | Три комментария обещали поведение, которое сборка опровергает. | комментарии исправлены | Вова |
| front#4058 | Плавающая метка закрывала схему, которую описывала; её задачи переехали на панель. | плавающая метка удалена | Вова |
| front#4057 | Выноски схемы и элементы масштабирования были слишком мелкими для пальца. | области нажатия увеличены | Вова |
| front#4047 | До придержанной запчасти всё ещё можно было дойти по ссылке, в том числе через страницы подбора. | ссылки отказывают в закрытую | Вова |
| front#4054 | Защитная проверка сообщала о критической находке безопасности на каждой сборке, хотя её не было. | ложное срабатывание убрано | Вова |
| front#4051 | Оптимизатор изображений читает хранилище напрямую, чтобы ни одна страница не называла выводимый адрес медиа. | оптимизатор смотрит в хранилище | Вова |
| front#4048 | Строка под схемой — поверхность покупки, а не легенда. | в строке цена и добавление | Вова |
| front#4053 | Проверка цветов ругалась на одну запись цвета, пропуская две идентичные. | запись цвета нормализуется | Вова |
| front#4035 | Аудитор индексного правила знал две из трёх выданных ему форм адреса. | аудитор покрывает все три формы | Вова |
| front#4046 | Отдельный выключатель раздела крепежа, чтобы его можно было остановить, не отзывая релиз. | переключатель, по умолчанию выключен | Вова |
| front#4049 | Семь адресов брендового раздела, никуда не ведущих. | мёртвые адреса удалены | Вова |
| front#4044 | Номер запчасти переезжает в начало адреса каждой страницы; старые адреса перенаправляют один раз. | адрес начинается с номера | Вова |
| front#4040 | Бесполезный фрагмент кода делал проверку стиля на интеграционной ветке красной. | фрагмент убран | Вова |
| front#4021 | Место, где покупатель записывает свои машины с фотографиями, инструкциями и ссылками. Выезжает выключенным. | «Мой ангар» за переключателем | Джон |
| front#4045 | Счётчик количества у запчасти внутри узла мог менять не ту строку. | счётчик привязан к уникальному идентификатору | Вова |
| front#4034 | Один палец двигает схему, два масштабируют, страница под ней больше не уезжает. | жесты панорамы и масштаба | Вова |
| front#4022 | Раздел складского крепежа. Выезжает выключенным. | магазин крепежа за флагом | Джон |
| front#4028 | Нажатие на выноску схемы кладёт запчасть в корзину, не уводя со схемы. | добавление из выноски | Вова |
| front#4026 | Самописная обработка жестов заменена поддерживаемой библиотекой. | библиотека вместо самописного хука | Вова |
| front#4027 | Сторонний код с уязвимостями, опубликованными в тот же день. | зависимость поднята | Вова |
| front#4008 | Событие, считающее просмотр запчасти, перестало срабатывать, занижая цифры. | событие просмотра восстановлено | Вова |
| front#4014 | Устаревшие библиотеки браузерных данных и идентификаторов. | зависимости обновлены | Вова |
| front#4005 | Тест виджета загружал настоящий сторонний скрипт во время прогона. | скрипт подменён заглушкой | Вова |
| front#4003 | Сырые значения цветов, о которых всё ещё сообщал аудит токенов. | литералы названы | Вова |
| front#3999 | Когда поиску тяжело, сайт упорно повторял запросы и делал хуже; теперь он ненадолго запоминает отказ. Уже живое. | вердикт отказа кэшируется | Вова |
| front#3995 | Модификация модели становилась недостижимой, когда карточка обрезала текст. | полная модификация достижима | Вова |
| front#3993 | Автоматическое заведение задач использовало несуществующие метки. | указаны действующие семейства меток | Вова |
| front#3992 | Дымовой тест проходил, если не сгнили все эталонные запчасти сразу. | падает на любой сгнившей | Вова |
| front#3986 | Эталонные запчасти прод-прогонов указывали на запчасти без страниц. | эталоны перенаправлены | Вова |
| front#3991 | Одну и ту же страницу можно было открыть двумя написаниями адреса. | все сегменты строчные | Вова |
| front#3990 | Снятая с производства запчасть перенаправляла на замену, снятую с производства. | нет перенаправления на снятую | Вова |
| front#3989 | Сетка всех категорий теряла собственный тип техники каждой модели. | тип техники сохраняется | Вова |
| front#3987 | Открытие бренда для Google происходило автоматически по числу строк; теперь это записанное решение. | открытие бренда — решение | Вова |
| front#3985 | Корзина показывала оценку перевозчика, а не списываемую сумму. Уже живое. | корзина называет списываемую сумму | Вова |
| front#3983 | Оценка доставки описывала выдачу на стойке как доставку. Уже живое. | оценка считает доставку | Вова |
| front#3979 | Модификация модели отсутствовала на карточке, которую реально рисует сетка. | модификация на отрисованной карточке | Вова |
| front#3977 | Боковая панель считала строки, которые сетка показать не может. | счётчик совпадает с сеткой | Вова |
| front#3975 | Сетка бренда теряла индексное правило при словесном поиске. | правило соблюдается при словесном поиске | Вова |
| front#3973 | Поиск по сайту не находил придержанные запчасти. | придержанные находятся | Вова |
| front#3970 | Две модели с одинаковым названием было не различить, а колонка «подходит к» пустовала. | различающий признак назван | Вова |
| front#3969 | Сетка словесного поиска показывала строки, исключённые индексным правилом. | сетка подчинена правилу | Вова |
| front#3965 | Проверка дублирования сравнивала не с той базой. | сравнение с собственной базой изменения | Вова |
| front#3963 | Поиск, совпадающий ровно с одной запчастью, отвечал ошибкой. Уже живое. | единственное точное совпадение рисуется | Вова |
| front#3962 | Реестровая половина товарного фида живая, а масштаб класса вчетверо больше заявленного. | документация исправлена | Вова |
| front#3950 | Сжатый блок документации по прокси, перенесённый с живой ветки. | обратный перенос документации | Вова |
| front#3960 | Строка списка деталей без страницы оценивалась не по тому полю. | оценка по несущему коду поставщика | Вова |
| front#3959 | Проверка карты сайта вычитала одни и те же придержанные строки дважды. | двойное вычитание убрано | Вова |
| front#3958 | Когда сайт не может разобрать поиск, он показывает результаты, а не угадывает адрес. | промах ведёт на результаты | Вова |
| front#3957 | Долг комментариев вокруг придержанных брендов и прогон, игнорировавший правило. | комментарии подчищены | Вова |
| front#3956 | Оболочка навигации считала бренд открытым, когда не знала. | пессимистичный запасной вариант | Вова |
| front#3953 | Бренд без предлагаемых запчастей публиковал список страниц «не найдено». | пустой бренд прячется | Вова |
| front#3945 | Проверки тестового сайта следовали лишь одной половине индексного правила. | обе половины правила | Вова |
| front#3951 | Вторая строка заголовка бренда сдвигала переключатель вида при загрузке. | место под вторую строку зарезервировано | Вова |
| front#3871 | Витрина техники писала «1 совпадений». | строка счётчика согласована | Вова |
Поиск24 изменения 17 заметны покупателю или Google
| Изменение | Что это | Что сдвинулось | Сделал |
|---|---|---|---|
| search#1000 | Адрес фотографий был вписан в код в шести местах; теперь одна настройка, и без неё сервис не стартует. | настройка обязательна, запасного варианта нет | Вова |
| search#998 | Вызов автоматизации был закреплён на устаревшей версии. | версия поднята | Вова |
| search#996 | Карта сайта, товарный фид, списки деталей и канонические ссылки выдают новый адрес страницы запчасти. | выдаётся адрес с номером впереди | Вова |
| search#995 | Навесное оборудование выдавалось так, будто это запчасти. | такие адреса не выдаются | Вова |
| search#994 | Строчный номер запчасти не отвечал на пути узлов. | регистронезависимый поиск узлов | Вова |
| search#991 | Тестовые образцы ответов разошлись с реальными. | образцы обновлены | Вова |
| search#982 | Тяжёлая ночная работа по индексированию делила учётную запись базы с покупателями. | отдельный пул, безопасный откат | Вова |
| search#989 | Настройка ступенчатых цен включена на тестовом сервисе. | флаг включён на dev | Вова |
| search#988 | Запчасти со ступенчатой ценой становятся покупаемыми. Настройка на проде уже включена. | ступенчатые цены продаются | Вова |
| search#987 | Опубликованность запчасти читалась из ночного снимка. | читается вживую | Вова |
| search#985 | Индексное правило вычислялось из ночного представления, а не из реестра, который его решает. | правило берётся из реестра | Алекс |
| search#984 | Шаблоны задач ссылались на несуществующие метки. | шаблоны исправлены | Вова |
| search#983 | Залоговая позиция опережала покупаемую запчасть в выдаче. | покупаемая строка выше | Вова |
| search#980 | Счётчик результатов включал строки, которые сетка не может показать. | счётчик совпадает с сеткой | Вова |
| search#978 | Негейтованная сетка игнорировала принятые фильтры боковой панели. | каждое принятое отсечение выполняется | Вова |
| search#977 | Гейтованная сетка игнорировала принятый фильтр лидеров продаж. | отсечение выполняется | Вова |
| search#975 | Фильтр цены принимался и не применялся к сетке. | отсечение по цене выполняется | Вова |
| search#973 | Лента результатов рекламировала фильтры, которые её сетка выполнить не могла. | предлагаются только выполнимые | Вова |
| search#971 | Фильтр лидеров продаж ничего не делал, а два фильтра не применялись нигде. | два фильтра удалены | Вова |
| search#969 | Проверка здоровья при выкатке гонялась с холодным стартом и роняла хороший деплой. | проверка повторяется | Вова |
| search#967 | Часть счётчиков фильтров игнорировала отсечение по цене. | цена учитывается везде | Вова |
| search#965 | Список придержанного бренда игнорировал введённый запрос. | запрос сохраняется | Вова |
| search#961 | Счётчики фильтров игнорировали индексное правило. | правило учитывается в фасетах | Вова |
| search#959 | Основная лента результатов игнорировала индексное правило. | правило учитывается в выдаче | Вова |
Сервисы заказов и оплаты10 изменений 2 заметны покупателю
| Изменение | Что это | Что сдвинулось | Сделал |
|---|---|---|---|
| ps#729 | Адрес фотографий был вписан в код без возможности переопределить. | база читается из окружения | Вова |
| ps#726 | Пакеты полагались на зависимости, которых не объявляли. | импорты объявлены | Вова |
| ps#710 | Фотографии, PDF-инструкции и ссылки по каждой машине покупателя. Выезжает неиспользуемым. | вложения к технике | Вова |
| ps#724 | Вызов автоматизации был закреплён на устаревшей версии. | версия поднята | Вова |
| ps#722 | Шаг сборки использовал плавающую версию действия кэша. | версия закреплена | Вова |
| ps#721 | Корневые зависимости объявлялись так, будто едут в продакшен. | объявлены как для разработки | Вова |
| ps#720 | Описание DNS-инфраструктуры, не используемое с момента смены провайдера. | мёртвое описание удалено | Вова |
| ps#718 | Два сервиса, уже отсутствующие на серверах, всё ещё существовали в коде. | два сервиса удалены | Вова |
| ps#715 | Оплаченный заказ, не сумевший себя записать, помечался обработанным. Уже живое. | без заказа не помечается | Вова |
| ps#714 | Шаблон бага ссылался на несуществующую метку. | шаблон исправлен | Вова |
Что живое сейчас и чем пятница это заменит — точная точка возврата
Левая часть каждой пары считана с работающих систем в четверг 3 сентября. Правая — то, что положила бы туда выкатка. Вернуться означает вернуться к левой.
| Магазин | 28a3ec001 → 3a0e72f26 | Считано с живого адреса, а не с новейшей сборки, — это не всегда одно и то же. Левая часть уже включает три аварийные правки, выкаченные с 29 августа по 1 сентября; все три штатно входят в этот релиз, поэтому возврат к ней ничего не теряет. Vercel хранит предыдущую сборку, так что возврат — одна кнопка. |
|---|---|---|
| Поиск | crop-search:97ac9eb4 → crop-search:1184c465 | Поиск выкатывается подменой работающего образа, а не слиянием. Это та половина, которая не стартует без недостающей настройки — см. первое решение. |
| Имя для отката поиска | search-api-00026-zl2 | Версия, на которую вернуть трафик. Она достижима по имени, пока не удалена, поэтому безопасный откат вообще не трогает образы. |
| Сервисы | a5bfb9b7 → 0c3a3f07 | Каталог, пользователи и доставка работают на левой версии. Оплата работает на 4e34a766 — она дальше, потому что несёт аварийную правку от 29 августа; эта правка входит и в релиз. |
| Тестовый сайт | на этой неделе не выкладывали | На тестовом сайте по-прежнему выкладка от 21 августа. Ничто из этого релиза через него не проходило — см. пятое решение. |
| База | без изменений | С этим релизом миграции не выполняются. |
| Четыре индексных переключателя | без изменений | Индексирование включено, ослабленное выключено, «только с ценой» включено, схемы и дерево техники придержаны. Считано с живого магазина в четверг. Выкатка их не меняет. |
| Три новых переключателя | отсутствуют → отсутствуют | Ни у раздела машин, ни у раздела крепежа, ни у виджета чата нет настройки на живом магазине, и выкатка её не создаёт. Именно это делает их выключенными, а не просто нерекламируемыми. |