https://git.altlinux.org/tasks/archive/done/_388/397670/ How it happened: 1. ssh build.alt task run 397670 (try 3) TESTED 2. ssh build.alt task run 397670 --commit (try 4) FAILED 3. ssh build.alt task run 397670 (try 5) DONE The problem here is that at try 5 I didn't want the task to be committed.
(Ответ для ildar на комментарий #0) > https://git.altlinux.org/tasks/archive/done/_388/397670/ > > How it happened: > 1. ssh build.alt task run 397670 (try 3) TESTED > 2. ssh build.alt task run 397670 --commit (try 4) FAILED > 3. ssh build.alt task run 397670 (try 5) DONE > > The problem here is that at try 5 I didn't want the task to be committed. Это база. Таск запоминает последнее состояние - commit или test-only. Чтобы таск снова начал запускаться в режиме test-only нужно было явно указать --test-only: ssh build.alt task run 397670 --test-only Как мне рассказывали, раньше вообще самое первое состояние было commit. И многие так коммитили тестовые таски, в которых забывали указывать --test-only. История старая, скорее всего изменять не будут. Вроде как не баг.
(Ответ для Ajrat Makhmutov на комментарий #1) > Как мне рассказывали, раньше вообще самое первое состояние было commit. > И многие так коммитили тестовые таски, в которых забывали указывать > --test-only. Вместо того, чтобы стать внимательными, присобачили костыль. Зачем вам вообще тестовые таски?
(In reply to Ajrat Makhmutov from comment #1) > Это база. Таск запоминает последнее состояние - commit или test-only. итересно. Не знал. > История старая, скорее всего изменять не будут. Вроде как не баг. Для кого как. Принцип наименьшего сюрприза (POLA/POLS). Его нарушение является багом для многих. (In reply to Grigory Ustinov from comment #2) > Зачем вам вообще тестовые таски? Собрать-показать-обсудить-закоммитить.
Поскольку заговорили про историю: * сначала не было никакого test-only, все задания были в репозиторий и только ошибка могла спасти от коммита; * потом появился режим task run --test-only, который нужно было указывать каждый раз, если хотелось протестировать задание; * потом интерфейс поменяли: задания стали по умолчанию test-only, флаг test-only стал оставаться привязан к заданию после его обработки, т.е. task run не меняет флаг, а чтобы его поменять нужно передать либо --test-only, либо --commit. ======== В этом месте я пошёл читать обсуждение этого решения в devel@ и понял, что там были достаточно здравые идеи на эту тему (порой выраженные в форме, которая мне совсем не нравится, но что поделать). ======== Поэтому с сегодняшнего дня есть сверхновое продолжение этой истории: * появились команды task commit и task test, которые являются алиасами (для команд task run --commit и task run --test-only). Я думаю, что в таком виде эти алиасы дают хороший уровень в смысле least astonishment, а run сохраняет обратную совместимость. Ещё я заодно добавил у run сообщение "neither --test-only nor --commit is specified, assuming ..." в случае если режим не выбран явно.
А для команды build можно так же сделать?=)
(In reply to Grigory Ustinov from comment #5) > А для команды build можно так же сделать?=) А зачем? Ведь у неё очень предсказуемый интерфейс: test-only если не сказали иначе.
(In reply to Gleb F-Malinovskiy from comment #4) > * появились команды task commit и task test, которые являются алиасами (для команд task run --commit и task run --test-only). Великолепно! Большое спасибо!