Эта страница доступна также на следующих языках: English

# Что сделать

Эти списки задумывались как напоминание разработчикам о незавершённых проектах. Кроме того, здесь ещё есть список с пожеланиями пользователей насчёт новой функциональности. Новые разработчики также могут поискать здесь проекты, над которыми им было бы интересно поработать.

Задачи для не-программистов см. в списке задач.

Отдельная страница выделена для стратегии развития pcb.

## Задачи для программистов

- Программист списков соединений
  Нужен человек, знакомый с созданием/управлением списками соединений, готовый помочь в работе над программой gnetlist и в её улучшении. Будет ли использоваться существующая программа gnetlist, или нужно всё переписывать заново — выбор за ним. Должен очень хорошо владеть программированием в UNIX/C/C++.
- Программист библиотеки символов
  Нужен человек для помощи в работе по приведению библиотеки символов к их современной спецификации. Этот человек мог бы также помогать в интеграции новых символов и обеспечении их соответствия спецификации. Задача поддержки библиотеки символов в соответствии со спецификацией состоит из ручной работы и автообновления (такого рода автообновление очень хорошо подходит для лиц, знакомых с написанием скриптов на shell/perl).
- Программист/менеджер портирования в Windows
  Нужен человек, компетентный в сборке и тестировании gEDA на UNIX-системах и знакомый с платформой MS Windows 95/98/NT, для управления портированием gEDA в Windows. Этот человек был бы в основном ответственен за тестирование, устранение ошибок, сборку пакетов и выпуск gEDA для платформы Windows. Эта задача требует знания программирования C, gtk+, UNIX и MS Windows. Версия для Windows НЕ будет развиваться, если эта задача не выполняется.
- Менеджер портирования в MacOS: Вопросы, упомянутые в «Разводка печатных плат средствами open-source») уже решены?
- Программист выпусков
  Нужен человек, желающий заниматься подготовкой и управлением выпусками. Новая версия выпускается в тот момент, когда для неё готов код, поэтому давления рынка здесь нет. Эта задача требует знакомства со сборкой/тестированием gEDA и может быть немного программирования.

## Стратегия выпусков следующих версий

В данном разделе должен быть перечень только тех вопросов, которые считаются настолько важными, что выпуск не будет производиться до тех пор, пока они не будут решены. Если ошибка или новая возможность будет перенесена, или её важность уменьшится, удалите, пожалуйста, её из списка или переместите в список следующего подходящего выпуска.

### Список пожеланий для следующих выпусков

Описание | Сообщение об ошибке на Launchpad | Разработчик(и) | Состояние
--- | --- | --- | ---
Общие задачи выпуска |  |  |
Снимки экрана выпускаемой версии для рекламной модернизации веб-сайта gEDA. | — | Peter C |
Слияние переводов с текущими переводами на Launchpad | — | Peter C |
Проверка, что заголовки с авторскими правами соответствуют текущей дате | 1086316 |  |
Общие задачи |  |  |
Обеспечить, где возможно, что gEDA будет компилироваться без ошибок с отключением нерекомендуемого («deprecated») API GTK / GLib |  |  |
gschem |  |  |
Вылечить все “warning : ignoring return value of ‘…’, declared with attribute warn_unused_result” при компилировании с последними версиями GCC |  |  |
Избавиться от прямого использования /tmp/ для отмены изменений в схеме |  |  |
Графический интерфейс настройки gschem (и gattrib?) |  | Peter B |
Больше немодальных диалоговых окон в gschem |  | Edward H |
Переработка конечного автомата для действий gschem и кода диспетчеризации событий |  | Edward H |
Редактирование внедрённых символов |  |  |
Сохранение символов в проектах для обеспечения независимости схем от библиотеки символов |  |  |
Поддержка буфера обмена для копирования/вставки текстового представления данных схем gEDA |  |  |
Поддержка буфера обмена для копирования/вставки графического представления данных схем gEDA |  |  |
Переработка кода отрисовки для возможности его использования вне gschem |  | Peter C |
Переработка виджета предпросмотра для возможности его использования вне gschem |  | Peter C |
gschem: интерфейс для редактирования контуров и вставки/удаления их узлов | — |  |
libgeda |  |  |
Ошибки, относящиеся к кодировкам, связанные с UTF-8, системными данными или данными из файловой системы | 1868072 |  |
TinyScheme вместо Guile |  | Peter B |
Новый механизм настроек для поддержки не тьюринг-полной системы настроек |  | Peter B | Начато!
gnetlist |  |  |
Постраничное создание списков соединений в libgeda |  | Peter C |
Переработка / улучшение gnetlist |  | Peter C |
Поддержка шин в gnetlist |  | Peter C | Начато!
Символы |  |  |
Использование контуров для улучшения символов (например, логических) | — |  |

## Желательные улучшения для отдельных программ с расчётом на более длительный срок

- libgeda:
  - Добавить поддержку файлов .sch с символами, некоторые (но не все) выводы которых вынесены в файл .sch. Это позволит осуществлять перестановку выводов при обратном аннотировании из pcb. (Архитектурное изменение)
  - Слияние постраничных списков соединений, созданных программой gnetlist (или перезапись, если надо).
- gschem:
  - Сделать в gschem кнопку вызова gsch2pcb для создания файла списка соединений, готового для чтения программой pcb.
  - Добавить поддержку иерархических шин. (Архитектурное изменение)
  - Сделать, чтобы переменные gschemrc устанавливались собственно из gschem с помощью (нового) пункта меню «Настройки» («Settings»). Идея состоит в запуске из меню обновления содержимого файлов gschemrc или gafrc и записи изменений в нужный rc-файл.
  - Улучшить библиотеку символов для улучшения работы с большими наборами символов.
  - Теперь тип SELECTION представляет собой GedaList, и мы можем получить «изменённые» сигналы, сделать больше диалоговых окон немодальными:
    - редактор одного атрибута;
    - окно правки свойств текста;
    - окно правки типа и толщины линии;
    - окно правки типа заполнения;
    - окно правки номера секции;
    - окно правки цвета;
    - окно изменения размера текста (задаёт размер для нового текста, поэтому никак не полагается на SELECTION)
  - Поддержка отрисовки внедренной в текст математики LaTeX.
    - Можно было бы поддерживать либо только вывод, либо генерировать и кешировать растровые картинки с помощью вызова LaTeX, dvips и ps2epsi.
    - Стоит ли добавлять для этого новый тип объекта, или разрешить прикрепление атрибута «latex=1» к самому текстовому объекту?
- gattrib:
  - Заставить работать печать.
  - Разрешить прикрепление атрибутов к соединениям. (Архитектурное изменение)
- garchive:
  - Подключить Guile, чтобы rc-файлы читались с помощью такого же механизма, как и в остальных программах gEDA/gaf.
- refdes_renum:
  - В настоящее время не работает должным образом с многосекционными компонентами (задаёт новые номера позиционных обозначений для многосекционных компонентов). Исправить скрипт, чтобы он распознавал многосекционные компоненты и соответствующим образом назначал позиционные обозначения.
- pcb
  - Добавить в основное меню разные команды, которые доступны сейчас только через `:command(foo)`. Новички хотят видеть, какие действия есть в меню, так как таким образом они могут узнать, что можно делать в pcb.
  - Добавить панель инструментов с кнопками для общих действий.
  - Более очевидно обозначить различие между редактированием посадочного места и топологии платы. Может быть изменять цвет фона в режиме редактирования посадочных мест. (Архитектурное изменение)
  - Создать диалоговое окно «Файл → Сохранить» («File → Save»). В данном диалоговом окне предусмотреть меню с выбором сохранения либо как топологии платы (по умолчанию), либо как посадочного места.

## Идеи, касающиеся новых утилит или общих улучшений в gEDA Suite

- Разработать схему обратного аннотирования изменений из pcb в gschem. Это потребует изменений в libgeda для поддержки, например, выноса выводов из файла .sym в .sch (возможности перестановки выводов). (Архитектурное изменение)
- Написать средство преобразования Gerber → .pcb. В результате должен получаться слой металлизации или посадочное место, которое можно будет редактировать в pcb. Это может быть скрипт на Perl.
- Реализовать файлы блокировок между gattrib и gschem.

## Реорганизация и чистка кода

- Убрать использование связанных списков, не относящихся к типу GList. Это очень агрессивная работа, но она позволит хорошо почистить код там, где перемешаны старые и новые методы на основе GList.
- Удалить из различных структур неиспользуемые переменные и функции. К «неиспользуемым» можно отнести также используемые, но малоэффективные.

- Удалить из gschem и других «клиентов» библиотеки libgeda обратный экспорт указателей глобальных функций в эту библиотеку. Они не являются переносимыми.
- Почистить/создать базовые программные интерфейсы (API) для работы с объектами любого типа или со списками объектов.
- Преобразовать функции, используемые внутри одного файла «.c» и непригодные для общедоступного API, в статические, и удалить их из prototype.h.