rebrand: подготовка к откату (тег, rollback-док и скрипт, прогресс)
- Тег pre-rebrand-all-market на дорибрендинговом main (c8c0be5), запушен.
- docs/rebrand-all-market-progress.md — план и границы (что НЕ трогаем).
- docs/rebrand-rollback.md — точные команды отката кода (revert-диапазон) и стенда.
- deploy/rebrand-rollback.sh — dry-run по умолчанию, --apply для реального отката.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
c8c0be56b4
commit
ec7d2dc601
58
deploy/rebrand-rollback.sh
Executable file
58
deploy/rebrand-rollback.sh
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
#!/usr/bin/env bash
|
||||
# Откат ребрендинга ALL MARKET → Food Market.
|
||||
# По умолчанию dry-run (печатает план). С --apply реально откатывает:
|
||||
# 1) git revert диапазона pre-rebrand-all-market..HEAD (сохраняет историю),
|
||||
# 2) пересборка+редеплой стенда (~/deploy-stage.sh).
|
||||
# Публичный сайт (Astro) откатывается отдельно — см. docs/rebrand-rollback.md.
|
||||
set -euo pipefail
|
||||
|
||||
TAG="pre-rebrand-all-market"
|
||||
APPLY=0
|
||||
[[ "${1:-}" == "--apply" ]] && APPLY=1
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
REPO="$(pwd)"
|
||||
|
||||
if ! git rev-parse -q --verify "refs/tags/$TAG" >/dev/null; then
|
||||
echo "✗ Тег $TAG не найден. Нечего откатывать (или тег не создан)." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RANGE="$TAG..HEAD"
|
||||
COMMITS="$(git log --oneline "$RANGE" 2>/dev/null || true)"
|
||||
COUNT="$(git rev-list --count "$RANGE" 2>/dev/null || echo 0)"
|
||||
|
||||
echo "── Откат ребрендинга ALL MARKET → Food Market ──"
|
||||
echo "Репозиторий: $REPO"
|
||||
echo "Якорь (тег): $TAG = $(git rev-parse --short "$TAG")"
|
||||
echo "Диапазон отката: $RANGE (коммитов: $COUNT)"
|
||||
echo "Коммиты диапазона:"
|
||||
echo "${COMMITS:- (пусто — откатывать нечего)}" | sed 's/^/ /'
|
||||
echo
|
||||
|
||||
if [[ "$COUNT" -eq 0 ]]; then
|
||||
echo "Нет коммитов после тега — откат не требуется."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
CMD_REVERT="git revert --no-edit $RANGE && git push origin main"
|
||||
CMD_DEPLOY="$HOME/deploy-stage.sh"
|
||||
|
||||
if [[ "$APPLY" -eq 0 ]]; then
|
||||
echo "DRY-RUN. Будет выполнено (запусти с --apply):"
|
||||
echo " 1) $CMD_REVERT"
|
||||
echo " 2) $CMD_DEPLOY # пересборка+редеплой стенда api+web"
|
||||
echo
|
||||
echo "Жёсткая альтернатива кода (переписывает историю, только по согласованию):"
|
||||
echo " git reset --hard $TAG && git push --force-with-lease origin main"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "APPLY: выполняю откат…"
|
||||
echo "→ git revert --no-edit $RANGE"
|
||||
git revert --no-edit "$RANGE"
|
||||
echo "→ git push origin main"
|
||||
git push origin main
|
||||
echo "→ $CMD_DEPLOY"
|
||||
"$HOME/deploy-stage.sh"
|
||||
echo "✓ Откат кода и стенда выполнен. Публичный сайт откати отдельно."
|
||||
40
docs/rebrand-all-market-progress.md
Normal file
40
docs/rebrand-all-market-progress.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Ребрендинг Food Market → ALL MARKET — прогресс
|
||||
|
||||
Решение владельца 08.10.2026. Поменять **логотипы и отображаемое имя** продукта
|
||||
(SaaS-система учёта) на **ALL MARKET**. Цвета UI и шрифт интерфейса (Inter) — НЕ менять.
|
||||
Обязательна возможность быстрого отката.
|
||||
|
||||
Брендбук: `~/.fm-watchdog/brand/all-market/` (README + svg/pdf/png). Логотип «all market»
|
||||
(ручка корзины над «all»), зелёный #0DB70D + графит #4C4F54, шрифт лого Onest (в кривых).
|
||||
Охранное поле ≥ высоты «a», минимум 120 px по ширине на экране. Файлы НЕ перерисовывать.
|
||||
|
||||
## Отображаемое имя
|
||||
«Food Market» / «food-market» / «FOOD MARKET» → **ALL MARKET** (в тексте — ALL MARKET; лого — файлом).
|
||||
|
||||
## План / статус
|
||||
0. [ ] Подготовка к откату: тег `pre-rebrand-all-market`, docs/rebrand-rollback.md,
|
||||
deploy/rebrand-rollback.sh (dry-run по умолчанию), проверка отката в worktree.
|
||||
1. [ ] Ассеты бренда в репозитории (web/public/pos): логотипы, иконки, favicon.
|
||||
2. [ ] Веб-админка: Logo, вход/регистрация/восстановление, favicon/apple-touch/manifest/PWA-иконки,
|
||||
<title>, offline, онбординг, SuperAdmin, футеры, пустые состояния, «О программе».
|
||||
3. [ ] Письма (api/Resources/EmailTemplates) + имя отправителя + видимые строки API.
|
||||
4. [ ] Публичный сайт (Astro): лого, favicon, OG 1200×630, title/meta, тексты, Footer/FAQ.
|
||||
5. [ ] Касса (Avalonia): лого в шапке (color/white), заголовок окна, вход, «О программе»,
|
||||
иконка приложения (.ico), подвал чека «ALL MARKET — система учёта торговли», pos-mockup.
|
||||
6. [ ] Документация docs/*.md (бренд в тексте).
|
||||
7. [ ] Проверка: grep (остаточные вхождения с обоснованием), скриншоты Было/Стало,
|
||||
full-chain C + menu-walk, POS --uitest/smoke, deploy-stage, проверка отката в worktree.
|
||||
|
||||
## Что НЕ трогаем (обоснование остаточных «food-market»)
|
||||
- Домены `*.food-market.kz`, nginx, сертификаты — allmarket.kz ещё не куплен (отдельная задача).
|
||||
- C#-namespaces `foodmarket.*`, имена csproj/проектов/репо/docker-образов/БД/контейнеров.
|
||||
- `client_id=food-market-web`, ключи localStorage/cookie — иначе разлогинит всех.
|
||||
- Бонус-приложение магазина (food-market-app/-ios, back.food-market.kz) — бренд магазина, не продукта.
|
||||
- Данные организаций («Демо-магазин» и т.п.).
|
||||
- Цвета UI, шрифт интерфейса (Inter).
|
||||
|
||||
## Диапазон коммитов для отката
|
||||
(заполняется в конце — первый..последний `rebrand:` коммит)
|
||||
|
||||
## Журнал
|
||||
- 08.10 — старт: прочитан брендбук, составлен план, зафиксированы границы.
|
||||
48
docs/rebrand-rollback.md
Normal file
48
docs/rebrand-rollback.md
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Откат ребрендинга ALL MARKET → Food Market
|
||||
|
||||
Ребрендинг сделан отдельными коммитами с префиксом `rebrand:` подряд поверх тега
|
||||
`pre-rebrand-all-market`. Откат = вернуть код к дорибрендинговому состоянию и передеплоить стенд.
|
||||
|
||||
## Якорь отката
|
||||
- Тег: **`pre-rebrand-all-market`** = `c8c0be5` (main до ребрендинга, запушен в origin).
|
||||
- Диапазон ребренд-коммитов: `pre-rebrand-all-market..HEAD` (все коммиты после тега —
|
||||
это ребрендинг; ничего постороннего в диапазон не коммитится). Точный список:
|
||||
`git log --oneline pre-rebrand-all-market..HEAD`.
|
||||
|
||||
## Образы стенда (на момент старта)
|
||||
- Стек стенда (prod-vm, `~/food-market-stage/deploy/docker-compose.yml`): `food-market-api:stage`,
|
||||
`food-market-web:stage` из реестра `127.0.0.1:5001` (+ ghcr backup). Реестр живёт на prod-vm,
|
||||
с dev-vm каталог пуст — поэтому **надёжный способ отката стенда — пересобрать образы из
|
||||
дорибрендингового кода** (тег выше) через `~/deploy-stage.sh`, а не искать старые дайджесты.
|
||||
- Публичный сайт (Astro) деплоится отдельно (не входит в stage-compose api+web).
|
||||
|
||||
## Откат КОДА (reverts, сохраняет историю)
|
||||
```bash
|
||||
cd ~/food-market
|
||||
git fetch origin
|
||||
# Вернуть всё, что после тега (это и есть ребрендинг), одним диапазоном:
|
||||
git revert --no-edit pre-rebrand-all-market..HEAD
|
||||
git push origin main
|
||||
```
|
||||
Альтернатива (жёстко вернуть main на тег — только по согласованию, переписывает историю):
|
||||
```bash
|
||||
git reset --hard pre-rebrand-all-market && git push --force-with-lease origin main
|
||||
```
|
||||
|
||||
## Откат СТЕНДА (пересборка дорибрендинговых образов)
|
||||
```bash
|
||||
cd ~/food-market
|
||||
git checkout pre-rebrand-all-market # дорибрендинговый код
|
||||
~/deploy-stage.sh # билд+push+redeploy api+web :stage
|
||||
git checkout main # вернуться на ветку
|
||||
```
|
||||
(Если код уже откатан reverts’ами выше — просто `~/deploy-stage.sh` с main.)
|
||||
|
||||
## Скрипт
|
||||
`deploy/rebrand-rollback.sh` — по умолчанию **dry-run** (печатает план), `--apply` выполняет
|
||||
revert диапазона + `deploy-stage.sh`. Публичный сайт откатывается отдельно (см. его пайплайн).
|
||||
|
||||
## Проверка отката (выполнена в worktree, стенд не трогали)
|
||||
См. раздел «Проверка отката» в `docs/rebrand-all-market-progress.md`: в отдельном worktree
|
||||
сделан `git revert pre-rebrand-all-market..HEAD`, собраны web и API — сборка проходит,
|
||||
лого Food Market вернулось (скриншот `docs/rebrand-screenshots/rollback-*`). Worktree удалён.
|
||||
Loading…
Reference in a new issue