О суффите

СУФФИТ (SUFFIT) – это web-инструмент, помогающий в ведении проектов и их версий. Помимо этого, СУФФИТ предоставляет возможность хранения файлов касающихся проектов (исходные материалы, дистрибутивы и т.д.). Свою функциональность SUFFIT позаимствовал от проекта SourceForge (http://sourceforge.net/). SourceForge чем-то уступает SUFFIT, а в чем-то, напротив, превосходит его. Одной из отличительных особенностей можно выделить то, что СУФФИТ полностью на русском языке; русский язык взят за основу.

СУФФИТ сочетает в себе систему ведения проектов (PCS) и систему отслеживания ошибок (Bag tracking). СУФФИТ привязан к системам контроля версий CVS и SVN, что позволяет вести проект использую полную информацию о нем.

Еще можно отметить, что СУФФИТ рассчитан на ограниченный круг лиц, список которых формируется по принципу «приглашения» а при версионинге СУФФИТ позволяет выбирать параметры отображения и поведений версий.

Термины и определения

В ходе работы с проектом SUFFIT у большинства пользователей возникают вопросы по используемой терминологии. Большинство терминов позаимствовано из проекта SourceForge.

Проекты

Проект, это любая разработка, задача и иной другой объект наблюдения. Каждый проект имеет ряд атрибутов (полей), описанных ниже.

Имя проекта (UNIX-Style) - сокращенное наименование проекта состоящее из строчных латинских букв, цифр и тире. Имя проекта уникально в системе в рамках одного пользователя, по имени проекта можно однозначно идентифицировать проект, его версии и другие связанные с проектом объекты.

Полное имя проекта – расшифровка «Имени проекта». Это человекочитабельное развернутое имя проекта, может содержать в себе любые символы.

Версия проекта – условный идентификатор проекта, отражающее текущее состояние проекта со всеми особенностями и свойствами. Более полная информация о версиях см. раздел «Версии».

Автор проекта – автор, решивший создать проект и начать вести данный проект. Важно заметить, что переносить проекты от одного автора другому не представляется возможным

Участник группы разработки (member) – автор проекта вправе набрать условную группу разработчиков, которые могут быть подписаны на рассылки относительно проекта. Участники группы разработки вправе добавлять, удалять и изменять артефакты.

Тэги (теги) – слова, вкратце описывающие область применения проекта. Например, сайт wikipedia.org можно описать тегами: «сайт библиотека знания». Каждый проект может иметь несколько тегов, в конечном итоге проект будет состоять в некой условной группе проектов, что облегчает навигацию по проектам.

Категория проекта – любой проект может принадлежать к абстрактной категории систематизированного дерева категорий. Например: «Проект: 1C» может принадлежать к категориям: «Бухгалтерия», «Кадры», «Предприятие».

Версии

Любой проект Проект имеет 3 версии: текущую, закрытую (утвержденную) и открытую.

Текущая версия – актуальная версия проекта, работа над которой может быть как приостановлена, так и вестись в данный момент времени.

Закрытая версия – версия проекта, которой присвоен признак запрещающий добавление и правку артефактов присвоенных данной версии. Закрытой версией следует помечать версии, выпущенные в промышленную эксплуатацию.

Открытая версия – версия проекта над которой в данный момент времени идет работа. К открытым версиям позволяется добавление артефактов. Если не указано закрытой версии то любая последняя открытая версия будет считаться текущей версией.

Семантический версионинг (Semantic Versioning) - термин взят с сайта http://semver.org/ Версионинг был переработан и при разработке его конечной версии были учтены все принятые «стандарты» и подходы к версионингу. Следует заметить, что все изложенное ниже следует принципам, детально описанных в RFC 2119.

Формы версий – Способ отображения версии. Каждая форма имеет различное значение и имеет различный способ написания. Так например, версия записанная как 1.0 не является синонимом записанного 1.0.0. К формам относится именованный список форм:

NORMAL FORM - Нормальная нумерация версии <major>.<minor>[.<patch>]

BUILD FORM - Нумерация с учетом номера компиляции <major>.<minor>.<build>[.{<revision>|<majRev>/<minRev>}]

SPECIAL FORM - Специальная нумерация версий <major>.<minor>[.<patch>][{-<devstat-short>|<devstat>}]

MS-DOS FORM - Нумерация версии принятая в операционной системе MS-DOS <major>.<minor><patch>

Изменение (исправление) – порядковый номер сиквенсированый в рамках текущей версии. Как правило, номер изменяется от артефакта к артефакту

Компиляция – порядковый номер сборки конечного продукта из исходных кодов с целью выпуска готового «продукта», тестирования работы «продукта» или же иной другой цели. Номер компиляции, как правило, увеличивается от изменения к изменению.

Ревизия – порядковый номер «отправки» рабочей копии в глобальный репозиторий, где происходит увеличение порядкового номера каждой такой отправки (фиксации). Термин широко используется в системах контроля версий CVS, SVN и др.

Статус разработки – «описатель» состояния этапа разработки версии. Бывает: стандартный, идея, пре-альфа, альфа, бета, релиз-кандидат, релиз, промышленное распространение (mature).

Артефакты

Артефакты – это единицы, имеющие отношение к процессу развития версии проекта, такие как: планы проектов, бизнес-кейсы, и оценки риска, замечания, варианты использования, диаграммы, указания на ошибки или неточности и т.п.

Термин «Артефакт» детально описан на странице wikipedia по адресу: http://en.wikipedia.org/wiki/Artifact_(software_development)

Категория артефакта – окружение влияния артефакта, например: интерфейс (API и т.п.), алгоритм, документация. Набор принятых категорий действует в рамках проекта для которого создается артефакт.

Группа артефакта – единица условной классификации артефактов, например: cледующая версия Major, cледующая версия Minor, платформа Windows, платформа Unix/Linux, нетипичные изменения и т.п. Набор принятых групп действует в рамках проекта для которого создается артефакт.

Приоритет артефакта – степень «важности» созданного артефакта. 9 – наивысший артефакт, требующий максимально быстрого реагирования, когда как 1 – наинизший, который встает в очередь на последние позиции. Для нормального приоритета существует значение приоритета равное 3, что соответствует значению «текущего приоритета».

Решение артефакта – краткое описание состояния разрешения артефакта (принято, отвергнуто, просрочено и т.д.)

Типовой ответ – ответ из списка ответов, наполняемых всеми членами проектной группы для ускорения процесса комментирования своих действий по части разрешения артефакта в фазе закрытия последнего.

Ассоциация – связь артефактов между собой в одном направлении. Например, артефакт «A» может быть связан с артефактом «B» ассоциацией «A->B». Когда как артефакт «B» может быть связан с артефактом «A» своей ассоциацией «B->A».

Формы версий

Целесообразность выбора формы версий зависит от решения автора проекта. В выборе формы Автор проекта руководствуется набором данных которые он ожидает увидеть.

NORMAL FORM

Нормальная нумерация версии <major>.<minor>[.<patch>]

Major (32 bits) – (Modification) - Главная составляющая версии, определяет значительные, глобальные изменения. Major часто изменяется когда меняется API продукта. Если major имеет значение «0», то это говорит о начальном (init) уровне разработки и такая версия является заведомо нестабильной. При инкрементировании major, значения minor и patch сбрасываются в «0».

Minor (32 bits) – (Correction) - Незначительная составляющая версия, определяет незначительные изменения связанные с удобствами, с расширением функционала и т.д. При инкрементировании minor, значение patch сбрасываются в «0».

Patch (32 bits) – (micro, bag fix, maintenance) – Особая составляющая, имеющая значение при изменениях связанных с исправлением ошибок и часто носит временный характер.

1.9.0 < 1.10.0 < 1.11.5

BUILD FORM

Нумерация с учетом номера компиляции <major>.<minor>.<build>[.{<revision>|<majRev>/<minRev>}]

Build (32 bits) – Номер компиляции. Инкрементируется каждый раз при компиляции. Не изменяется и не обнуляется при изменении других составляющих величин.

Revision (32 bits или 2 числа по 16 bits) – число либо 2 числа разделенные знаком «/». Ревизия определяет номер версии файла, полученного в результате компиляции. Дробный вариант записи (<majRev>/<minRev>) сейчас практически не используется. majRev – 16 h-bits (старшие биты), majRev – 16 l-bits (младшие биты)

SPECIAL FORM

Специальная нумерация версий <major>.<minor>[.<patch>][{-<devstat-short>|<devstat>}]

Devstat – полное слово, латинскими буквами, определяющее этап разработки (development stage) или степень готовности. [a-zA-Z0-9] Выделяется ряд этапов (в хронологическом порядке разработки):

1. Idea (Идея),
2. Pre-alpha (Предварительная версия, разработка компонентов),
3. Alpha (Внутреннее тестирование),
4. Beta (Публичное тестирование),
5. RC, Pre-release, Release-candidate (стадия-кандидат на то чтобы стать промышленной версией),
6. Release, RTM (Промышленное издание),
7. Mature (Детальная доработка),
8. Standard, GA (Конечный продукт).

Помимо этого этапы могут снабжаться суффиксом – порядковым номером этапа. Подчиняется формату: <Reason><Number>

1.0.0beta1 < 1.0.0beta2 < 1.0.0

Devstat-short – Короткое обозначения этапа разработки, которое по аналогии может быть дополнено суффиксом (см. выше).

i - Idea,
с - Pre-alpha
a - Alpha
b - Beta
rc - Release-candidate
r - Release
m - Mature
s – Standard

1.0.0-b1 < 1.0.0-b2 < 1.0.0

MS-DOS FORM

Нумерация версии принятая в операционной системе MS-DOS <major>.<minor><patch>

В этой форме minor и patch представляют собой конкантенат двух чисел от 0 до 9. Когда как major – чесло от 1 до 99.