--- description: 'Обзор процесса создания документации FreeBSD' next: books/fdp-primer/tools params: path: /books/fdp-primer/overview/ prev: books/fdp-primer/preface showBookMenu: 'true' tags: ["overview", "FreeBSD Documentation Project", "quick start"] title: 'Глава 1. Обзор' weight: 2 --- [[overview]] = Обзор :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: 1 :partnums: :source-highlighter: rouge :experimental: :images-path: books/fdp-primer/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] Добро пожаловать в Проект документации FreeBSD (FDP). Качественная документация крайне важна для успеха FreeBSD, и мы очень высоко ценим ваш вклад. Этот документ описывает организацию FDP, как писать и отправлять документацию, а также как эффективно использовать доступные инструменты. Все желающие могут внести свой вклад в FDP. Готовность помочь — единственное требование для участия. Это руководство показывает, как: * Понять роль документации и её место в экосистеме. * Определите, какие части FreeBSD поддерживаются FDP. * Установить необходимые инструменты и файлы документации. * Внести изменения в документацию. * Представить изменения для проверки и включения в документацию FreeBSD. [[overview-documentation-ecosystem]] == Документация в экосистеме FreeBSD Все документы создаются для пользы читателей, а не их авторов или сопровождающих. Они должны адаптироваться к читателю, а не ожидать, что читатель адаптируется к ним. Никогда не вините читателя за: * невозможность легко или вообще использовать документ * если документ показался ему непонятным * непонимание документа или того, как его применить * если он не нашел явный ответ или шаги, чтобы логически прийти к нему Вместо этого подтвердите, что документ: * недоступный * запутанный * трудно понимаемый или применимый * неполный Затем создайте документ: * более доступный * менее запутанный * более ясный * более полный Используйте следующие методы: * Примените link:https://webaim.org/intro/#principles[лучшие практики доступности], чтобы исправить выявленную проблему и любые подобные, которые обнаружите * переработайте или уточните запутанную структуру или язык * добавьте соответствующие примеры к части, которая трудна для понимания или применения * заполните пробелы или добавьте недостающие промежуточные этапы [[overview-quick-start]] == Быстрый старт Некоторые подготовительные шаги необходимо выполнить перед редактированием документации FreeBSD. Сначала подпишитесь на рассылку {freebsd-doc}. Некоторые участники команды также общаются в IRC-канале `#bsddocs` на http://www.efnet.org/[EFnet]. Эти люди могут помочь с вопросами или проблемами, связанными с документацией. [[freebsd-installation-process]] === Процесс установки FreeBSD [.procedure] ==== . Установите эти пакеты. _Мета-порт_ `docproj` устанавливает все приложения, необходимые для работы с документацией FreeBSD. + [source, shell] .... # pkg install docproj .... + . Установите локальную рабочую копию документации из репозитория FreeBSD в [.filename]#~/doc# (см. crossref:working-copy[working-copy,Рабочая копия]). + [source, shell] .... % git clone https://git.FreeBSD.org/doc.git ~/doc .... + . Отредактируйте файлы документации, которые требуют изменений. Если файлу нужны значительные изменения, обратитесь за советом в список рассылки. + Просмотрите вывод и отредактируйте файл, чтобы исправить указанные проблемы, затем повторно запустите команду для поиска оставшихся проблем. Повторяйте, пока все ошибки не будут устранены. + . *_Всегда_* собирайте и проверяйте изменения перед отправкой. Запуск команды `make` в подкаталогах `documentation` или `website` сгенерирует документацию в формате HTML. + [source, shell] .... % make .... + Для сокращения времени компиляции может быть скомпилирован только один язык: + [source, shell] .... % make DOC_LANG=en .... + Результаты сборки сохраняются в [.filename]#~/doc/documentation/public/en/articles/# и [.filename]#~/doc/documentation/public/en/books/#. + . Просмотрите вывод сборки и убедитесь, что правки не содержат опечаток, проблем с версткой или ошибок. Если в процессе сборки обнаружены ошибки, отредактируйте проблемные файлы, чтобы исправить все возникшие проблемы, затем снова запустите команду сборки, пока все ошибки не будут устранены. + . Добавьте все файлы с помощью `git add .`, затем просмотрите изменения с помощью `git diff`. Например: + [source, shell] .... % git add . % git diff --staged .... + Убедитесь, что все необходимые файлы включены, затем зафиксируйте изменение в вашей локальной ветке и создайте патч с помощью `git format-patch` + [source, shell] .... % git commit % git format-patch origin/main .... + Патч, созданный с помощью `git format-patch`, будет содержать идентификатор автора и адреса электронной почты, что упрощает применение разработчиками (с помощью `git am`) и правильное указание авторства. + [IMPORTANT] ====== Чтобы упростить применение патча коммиттерами в их рабочей копии дерева документации, пожалуйста, сгенерируйте файл [.filename]#.diff# из корня вашего дерева документации. ====== + В приведённом выше примере были внесены изменения в раздел *bsdinstall* Руководства. + . Отправьте патч или diff-файл с помощью веб-системы https://bugs.FreeBSD.org/bugzilla/enter_bug.cgi?product=Documentation[Problem Report]. При использовании веб-формы укажите в поле Summary _[patch] краткое описание проблемы_. Выберите Component `Documentation`. В поле Description введите краткое описание изменений и любые важные детали о них. Используйте кнопку btn:[Add an attachment], чтобы прикрепить патч или diff-файл. Наконец, нажмите кнопку btn:[Submit Bug], чтобы отправить ваш diff в систему отчётов об ошибках. ==== [[gnu-linux-installation-process]] === Процесс установки GNU/Linux [.procedure] ==== . Установите эти пакеты в системах на основе apt, таких как Debian или Ubuntu. В других дистрибутивах GNU/Linux названия пакетов могут отличаться. В случае сомнений обратитесь к менеджеру пакетов вашего дистрибутива. + [source, shell] .... # apt install hugo ruby-asciidoctor ruby-asciidoctor-pdf ruby-rouge git bmake .... + . Установите локальную рабочую копию документации из репозитория FreeBSD в [.filename]#~/doc# (см. crossref:working-copy[working-copy,Рабочая копия]). + [source, shell] .... % git clone https://git.FreeBSD.org/doc.git ~/doc .... + . Отредактируйте файлы документации, которые требуют изменений. Если файлу нужны значительные изменения, обратитесь за советом в список рассылки. + Просмотрите вывод и отредактируйте файлы, чтобы исправить обнаруженные проблемы, затем снова запустите команду, чтобы найти оставшиеся проблемы. Повторяйте, пока все ошибки не будут устранены. + . Всегда собирайте и тестируйте изменения перед их отправкой. Запуск `bmake` в подкаталогах `documentation` или `website` сгенерирует документацию в формате HTML. + [source, shell] .... % bmake run LOCALBASE=/usr .... + . Добавьте все файлы с помощью `git add .`, затем просмотрите изменения с помощью `git diff`. Например: + [source, shell] .... % git add . % git diff --staged .... + Убедитесь, что все необходимые файлы включены, затем зафиксируйте изменение в вашей локальной ветке и создайте патч с помощью `git format-patch` + [source, shell] .... % git commit % git format-patch origin/main .... + Патч, созданный с помощью `git format-patch`, будет содержать идентификатор автора и адреса электронной почты, что упрощает применение разработчиками (с помощью `git am`) и правильное указание авторства. + [IMPORTANT] ====== Чтобы упростить применение патча коммиттерами в их рабочей копии дерева документации, пожалуйста, сгенерируйте файл [.filename]#.diff# из корня вашего дерева документации. ====== + . Отправьте патч или diff-файл с помощью веб-системы https://bugs.FreeBSD.org/bugzilla/enter_bug.cgi?product=Documentation[Problem Report]. При использовании веб-формы укажите в поле _Summary_ краткое описание проблемы. Выберите компонент `Documentation`. В поле _Description_ введите краткое описание проблемы из поля _Summary_ и добавьте _patch_ в поле _Keywords_. Используйте кнопку btn:[Add an attachment], чтобы прикрепить патч или diff-файл. Наконец, нажмите кнопку btn:[Submit Bug], чтобы отправить ваш diff в систему отчётов об ошибках. ==== [[mac-os-installation-process]] === Процесс установки macOS(R) [.procedure] ==== . Установите эти пакеты с помощью link:https://brew.sh/[Homebrew] и link:https://rubygems.org/[RubyGem]. + [source, shell] .... $ brew install hugo ruby git bmake .... + . Добавьте Ruby в Path. + [source, shell] .... $ echo 'export PATH="$(brew --prefix ruby)/bin:$PATH"' >> ~/.zshrc $ echo 'export PATH="$(brew --prefix hugo)/bin:$PATH"' >> ~/.zshrc $ echo 'export GEM_PATH="$(gem environment gemdir)"' >> ~/.zshrc $ echo 'export PATH="${GEM_PATH}/bin:$PATH"' >> ~/.zshrc $ source ~/.zshrc .... . Установите пакет rouge с помощью RubyGem. + [source, shell] .... $ sudo gem install rouge asciidoctor asciidoctor-pdf asciidoctor-epub3 .... + . Установите локальную рабочую копию документации из репозитория FreeBSD в [.filename]#~/doc# (см. crossref:working-copy[working-copy,Рабочая копия]). + [source, shell] .... $ git clone https://git.FreeBSD.org/doc.git ~/doc .... + . Отредактируйте файлы документации, которые требуют изменений. Если файлу нужны значительные изменения, обратитесь за советом в список рассылки. + Просмотрите вывод и отредактируйте файлы, чтобы исправить обнаруженные проблемы, затем снова запустите команду, чтобы найти оставшиеся проблемы. Повторяйте, пока все ошибки не будут устранены. + . Всегда собирайте и тестируйте изменения перед их отправкой. Запуск `bmake` в подкаталогах `documentation` или `website` сгенерирует документацию в формате HTML. + [source, shell] .... $ bmake run USE_RUBYGEMS=YES RUBY_CMD="$(brew --prefix ruby)/bin/ruby" HUGO_CMD="$(brew --prefix hugo)/bin/hugo" .... . Добавьте все файлы с помощью `git add .`, затем просмотрите изменения с помощью `git diff`. Например: + [source, shell] .... % git add . % git diff --staged .... + Убедитесь, что все необходимые файлы включены, затем зафиксируйте изменение в вашей локальной ветке и создайте патч с помощью `git format-patch` + [source, shell] .... % git commit % git format-patch origin/main .... + Патч, созданный с помощью `git format-patch`, будет содержать идентификатор автора и адреса электронной почты, что упрощает применение разработчиками (с помощью `git am`) и правильное указание авторства. + [IMPORTANT] ====== Чтобы упростить применение патча коммиттерами в их рабочей копии дерева документации, пожалуйста, сгенерируйте файл [.filename]#.diff# из корня вашего дерева документации. ====== + . Отправьте патч или diff-файл с помощью веб-системы https://bugs.FreeBSD.org/bugzilla/enter_bug.cgi?product=Documentation[Problem Report]. При использовании веб-формы укажите в поле _Summary_ краткое описание проблемы. Выберите компонент `Documentation`. В поле _Description_ введите краткое описание проблемы из поля _Summary_ и добавьте _patch_ в поле _Keywords_. Используйте кнопку btn:[Add an attachment], чтобы прикрепить патч или diff-файл. Наконец, нажмите кнопку btn:[Submit Bug], чтобы отправить ваш diff в систему отчётов об ошибках. ==== [[overview-doc]] == Набор документации FreeBSD FDP отвечает за четыре категории документации FreeBSD. * _Руководство_: Руководство представляет собой всеобъемлющий онлайн-ресурс и справочник для пользователей FreeBSD. * _FAQ_: В разделе Часто задаваемых вопросов (FAQ) используется формат коротких вопросов и ответов для решения вопросов, часто задаваемых в различных почтовых рассылках и форумах, посвящённых FreeBSD. Такой формат не подразумевает длинных и развёрнутых ответов. * _Справочник_: Страницы Справочника (man-страницы) системы на английском языке обычно не создаются FDP, так как они являются частью базовой системы. Однако FDP может перефразировать части существующих руководств, чтобы сделать их понятнее или исправить неточности. * _Веб-сайт_: Это основное представительство FreeBSD в интернете, доступное по адресу https://www.freebsd.org/[https://www.FreeBSD.org/] и на множестве зеркал по всему миру. Веб-сайт обычно становится первым знакомством нового пользователя с FreeBSD. Команды переводчиков отвечают за перевод Руководства и веб-сайта на разные языки. На данный момент руководства (man-страницы) не переводятся. Исходные тексты документации для веб-сайта FreeBSD, Handbook и FAQ доступны в репозитории документации по адресу `https://cgit.freebsd.org/doc/`. Исходный код страниц справочника доступен в отдельном репозитории, расположенном по адресу `https://cgit.freebsd.org/src/`. Документация сообщений о фиксациях доступна с помощью `git log`. Сообщения о фиксациях также архивируются по ссылке link:{dev-commits-doc-all}. Веб-интерфейсы для обоих репозиториев доступны по адресам https://cgit.freebsd.org/doc/[] и https://cgit.freebsd.org/src/[]. Большое количество авторов участвовало в написании руководств или инструкций по FreeBSD. Некоторые из этих документов хранятся в рамках файлов FDP. В других случаях авторы предпочли опубликовать документацию отдельно. FDP стремится предоставить ссылки на как можно большее количество такой внешней документации.