ru:develop:guidelines

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ru:develop:guidelines [2014/06/21 20:30] – [Глобальные/Общие/Приватные файлы заголовков] valerius2kru:develop:guidelines [2018/08/17 14:43] (current) – [Присылая патчи с исправлениями (FIX THIS!!!)] valerius
Line 24: Line 24:
   * [[http://regina-rexx.sf.net/]] для ReginaREXX   * [[http://regina-rexx.sf.net/]] для ReginaREXX
  
-Вы можете [[ru:download|загрузить]] нерегулярно обновляемые снапшоты исходников с этого сайта, или самые последние версии с SVN. Исходники osFree находятся на [[http://osfree.svn.sourceforge.net/viewvc/osfree/|Sourceforge SVN]]. Sourceforge также позволяет скачать любую ревизию в виде .tar.gz архива.+Вы можете [[ru:download|загрузить]] нерегулярно обновляемые снапшоты исходников с этого сайта, или самые последние версии из Git. Исходники osFree находятся на [[https://github.com/osfree-project/osfree/|GitHub]]. GitHub также позволяет скачать любую ревизию в виде .tar.gz архива.
  
 Перед сборкой проверьте файлы setvars-<somename>.cmd и <somename>.conf, И поменяйте настройки (в основном, пути к инструментам разработки). После этого откройте сеанс командной строки и запустите setvars-<somename>.cmd и введите Перед сборкой проверьте файлы setvars-<somename>.cmd и <somename>.conf, И поменяйте настройки (в основном, пути к инструментам разработки). После этого откройте сеанс командной строки и запустите setvars-<somename>.cmd и введите
Line 38: Line 38:
 ==== Дерево каталогов ==== ==== Дерево каталогов ====
  
-Посмотрите на код в SVN, для понимания принципа размещения файлов. Обратите внимание, что дерево файлов в SVN osFree состоит из исходных кодов операционной системы и инструментов тулкита. Пожалуйста, НЕ помещайте сюда приложения и инструменты, не соответствующие назначению тулкита. Тулкит это вспомогательные утилиты, собираемые под ту систему, под которой ведется сборка и необходимые для сборки файлов ОС.+Посмотрите на код в Git-репозитории, для понимания принципа размещения файлов. Обратите внимание, что дерево файлов в SVN osFree состоит из исходных кодов операционной системы и инструментов тулкита. Пожалуйста, НЕ помещайте сюда приложения и инструменты, не соответствующие назначению тулкита. Тулкит это вспомогательные утилиты, собираемые под ту систему, под которой ведется сборка и необходимые для сборки файлов ОС.
  
 ==== Глобальные/Общие/Приватные файлы заголовков ==== ==== Глобальные/Общие/Приватные файлы заголовков ====
  
-Каждый уровень дерева SVN содержит два стандартных каталога: <code>FIX THIS! Сейчас это немного не так!</code>+Каждый уровень дерева исходных текстов содержит два стандартных каталога: <code>FIX THIS! Сейчас это немного не так!</code>
  
 |//shared//   |Содержит код, общий для данного и более глубокого уровней вложенности каталогов | |//shared//   |Содержит код, общий для данного и более глубокого уровней вложенности каталогов |
 |//include//  |Содержит заголовки для всего выше перечисленного | |//include//  |Содержит заголовки для всего выше перечисленного |
  
-Каждая часть/уровень ОС должен иметь отдельный префикс (какталог верхнего уровня), позволяющий разработчику легко найти часть ОС, к которой заголовочный/библиотечный файл принадлежит. Например, код, общий для всего дерева исходников, должен включать:+Каждая часть/уровень ОС должен иметь отдельный префикс, позволяющий разработчику легко найти часть ОС, к которой заголовочный/библиотечный файл принадлежит. Например, код, общий для всего дерева исходников, должен включать:
  
 <code c>#include <all_shared.h></code> <code c>#include <all_shared.h></code>
Line 74: Line 74:
 </code> </code>
  
-==== Documentation ====+==== Документация ====
  
-  * Private code (not shared with other code) should be documented only in the source. +  * Приватный код (не разделяемый ни с каким другим кодом) должен быть документирован только внутри исходника. 
-  * Shared code (shared with code at the same level or at all levels) should be documented in source and in a “building and developing” document. +  * Разделяемый код (разделяемый на одном уровне, или же разделяемый со всеми уровнями) должен быть документирован в исходнике и в документе “[[en:develop:bldenv|Разработка и сборка исходников]]”. 
-  * The API of the OS and the tools documentation should NOT be documented in the source tree but in the toolkit and release tree. +  * ОС API и документация к утилитам тулкита НЕ должна находиться в дереве исходников, а должна быть в тулките и в комплекте каждого релиза. 
-  * Source code should be documented in the source file (not the header files). +  * Исходный код должен быть документирован в нем самом (но не во включаемых файлах). 
-  * Each function should be prefixed with a description of what it does, what parameters it uses (in and out) and any external references it uses. +  * Каждая функция должна предваряться специальным комментарием с описанием того, что она делает, какие параметры она использует (входные и выходные) и прочие внешние ссылки, которые она использует. 
-  * Place comments in the source that helps the reader to understand the logic and don't overdo it. +  * Размещайте комментарии в исходном коде таким образом, чтобы тот, кто его читает, легко мог разобраться в логике, но не переусердствуйте в деталях.
  
-==== When Developing ====+==== В процессе разработки ====
  
-  * Use static linking, do not use dynamic libraries (LIBC style) or dynamic runtime. +  * Используйте статическую линковку, не используйте динамических библиотек (LIBC style) или динамических рантаймов. 
-  * Use the makefiles provided with the source tree, don't “do your own”. +  * Пользуйтесь мейкфайлами из дерева исходников, не изобретайте свои собственные “велосипеды”. 
-  * Currently osFree development is done on OS/2 (minimum Warp 4) but in the future development will be hosted on osFree. +  * На текущий момент разработка osFree происходит в среде OS/2 (как минимум, Warp 4), но в будущем разработка будет производиться в самой osFree ("self-hosting"). 
-  * We use SVN to share code among developers. +  * Мы используем Git для совместной разработки. 
-  * We use Doxygen and Wiki to document our work.+  * Мы пользуемся Doxygen и Wiki для документирования своей работы.
  
-==== Submitting a Patch (FIX THIS!!!) ====+==== Присылая патчи с исправлениями (ИСПРАВИТЬ!!!) ====
  
-  * Make sure your changes follow the coding guidelines above. +  * Убедитесь, что ваши патчи удовлетворяют правилам, описанным выше. 
-  * Make sure you are using the current versions of the sources so that the resulting diffs are comparing your changes with the head of the source tree. +  * Убедитесь, что у вас исходники последней версии,чтобы ваши патчи соответствовали текущей головной ветви (master). 
-  * Create your patch either by using cvs diff -u (if you are using CVS) or diff -u original-file changed-file (if you are using a source archive - you can also create differences for the whole directory contents using diff -r) In the latter case include the old code first, the new code last – in the patch anything you added will be prefixed with a +. +  * Создавайте ваш патч используя git diff если вы используете Git) или diff -u original-file changed-file (если вы используетсе архив с исходниками, или просто изменения к целому дереву файлов, используйте diff -r). В последнем случае, исходный код указывайте первым параметром, и измененный -- вторым.  Тогда все ваши изменения будут добавлены в патч с префиксом "+". 
-  * Remove all/any lines that reference files without changes. +  * Удаляйте из патча все несущественные строки. 
-  * Send the patch file as an attachment in your email. Do not paste the patch directly into the email body. +  * Присылайте патчи в виде прикрепленного к письму файла. Не вставляйте его прямо в тело письма. 
-  * Maintainers will often reply in response to your patch, pointing out things to fix up, etc. before a patch can be checked in. Please always follow the maintainer suggestions closely and respond by sending a new corrected patch. Please do not expect the maintainers to rework your changes, you want to be able to claim all the credit for your great patches!+  * Мейнтейнеры могут ответить вам на ваш патч, указав необходимые исправления, и др. перед тем, как патч будет принят. Всегда внимательно относитесь к замечаниям мейнтейнера и в ответ присылайте исправенные патчи. Пожалуйста, не считайте, что мейнтейнеры должны сами дорабатывать ваши патчи, вы должны быть уверены в правильности ваших изменений, чтобы по праву требовать благодарности за ваши замечательные патчи с нашей стороны!
  
 ~~DISCUSSION~~ ~~DISCUSSION~~