stringtranslate.com

Система отслеживания ошибок Mantis

Mantis Bug Tracker — это бесплатная веб- система отслеживания ошибок с открытым исходным кодом . Наиболее распространенное использование MantisBT — отслеживание дефектов программного обеспечения . Однако пользователи часто настраивают MantisBT как более общую систему отслеживания проблем и инструмент управления проектами .

Название Mantis и логотип проекта отсылают к семейству насекомых Mantidae , известному тем, что выслеживают и питаются другими насекомыми, в просторечии называемыми «жуками». Название проекта обычно сокращается до MantisBT или просто Mantis .

История

Кензабуро Ито начал разработку проекта отслеживания ошибок Mantis в 2000 году. В 2002 году к Кензабуро присоединились Йерун Латур, Виктор Боктор и Джулиан Фитцелл в качестве администраторов, и проект стал командным. [2] Версия 1.0.0 была выпущена в феврале 2006 года. [3] Версия 1.1.0 была выпущена в декабре 2007 года. [4] В ноябре 2008 года, после долгого обсуждения, [5] проект отказался [6] от использования Инструмент контроля версий Subversion для Git , распределенного инструмента контроля версий. В феврале 2010 года вышла версия 1.2.0. [7] В июле 2012 года организация MantisBT на GitHub стала официальным репозиторием исходного кода проекта. [8]

Функции

Плагины

Система плагинов , управляемая событиями, была представлена ​​с выпуском версии 1.2.0. [9] Эта система плагинов позволяет расширять MantisBT как с помощью официально поддерживаемых, так и сторонних плагинов. По состоянию на ноябрь 2013 года в организации MantisBT-plugins на GitHub доступно более 50 плагинов.

До версии 1.2.0 пользователям была доступна сторонняя система плагинов, созданная Винсентом Дебаутом, а также множество различных плагинов. [10] Эта система официально не поддерживается проектом MantisBT и несовместима с MantisBT 1.2.0 и более поздних версий.

Уведомления

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

RSS- каналы доступны для пользователей, которые хотят отслеживать решенные проблемы. Кроме того, MantisBT имеет интеграцию с Twitter через плагин, позволяющий отправлять уведомления в Твиттере, когда проблема решена.

С помощью системы подключаемых модулей MantisBT , управляемой событиями , можно расширить встроенную поддержку уведомлений для запуска расширенных сценариев, которые выполняют дополнительные действия по уведомлению (например, отправку SMS- сообщений или обновление статусов во внешних системах управления проектами ).

Интеграция системы контроля версий

Версии MantisBT до 1.2.0 допускали ограниченную интеграцию с системой контроля версий CVS . [11] С появлением возможностей подключаемых модулей в MantisBT 1.2.0 интеграция контроля версий была переработана Amethyst Reese в подключаемом модуле SourceIntegration.

Первоначальная версия плагина SourceIntegration поддерживала GitHub , GitWeb, SourceForge и WebSVN. [12] Со временем были добавлены два дополнительных модуля, и по состоянию на ноябрь 2013 г. интеграция исходного кода поддерживается для следующих инструментов контроля версий и веб- поставщиков:

Upon committing changesets to a source code repository, post-commit hooks within Git or Subversion can be configured to automatically notify MantisBT that changes have been made to the repository. GitHub is also capable of remotely notifying a MantisBT installation of changes to a source code repository. Another technique used for integrating MantisBT with web-based source code hosting providers is the use of a job scheduler such as cron to manually check for changes to a repository every few minutes, reporting any changes back to MantisBT.[12]

SourceIntegration allows for issues within MantisBT to be automatically resolved when a changeset message contains special strings such as "Fixes #12345", which are configurable using regular expressions. This also allows for relationships to be automatically created between changesets and corresponding issues recorded in MantisBT. Multiple issue IDs can be specified in a single changeset message, although this is commonly discouraged as it indicates the changeset doesn't have a single, clear and logical purpose.[14]

Minor features

In addition to the features mentioned above, MantisBT also has support for:[15]

Technical design

Development languages

MantisBT is mainly written in PHP and uses SQL to interface with databases. The web-based user interface of MantisBT is written using HTML which is styled and presented using CSS.[16] The UI also uses the jQuery client-side JavaScript library to provide optional features such as Ajax and JSON powered dynamic page content.

Development tools and build scripts are written predominantly in Python with some Shell script and PHP.

MantisBT's codebase dates back to a time when PHP's support for object-oriented programming principles was in its infancy.[17] As of version 1.2.0, the majority of the MantisBT codebase still uses procedural programming principles, however some sections have been converted to make use of PHP 5's new object model.[18][19]

Database storage

Data is stored in a relational database management system by means of the ADOdb database abstraction library. MantisBT supports MySQL, MariaDB and PostgreSQL. It has experimental support for Microsoft SQL and Oracle.[20]

MantisBT maintains a database upgrade path between versions by modifying the database schema incrementally.[21] During the installation of MantisBT, database schema modifications are replayed all the way back from early versions of MantisBT to reach the latest state.

Requirements

MantisBT requires a configured web server, the PHP programming language interpreter and a relational database management system supported by MantisBT[11] and ADOdb.[22]

As of June 2022, the stable branch of MantisBT requires PHP 7.0 or later.[20]

Several PHP extensions are required[11] to enable specific functionality or for performance reasons; the extension for the RDBMS being used (i.e. mysqli) is mandatory.

MantisBT bundles a number of dependencies with each release including:[23]

For drawing graphs of relationships between issues, GraphViz is required. MantisBT also has an alternative dependency upon the commercial JpGraph graphics library for plotting of statistics.

See also

References

  1. ^ "Release 2.26.2". May 12, 2024. Retrieved May 23, 2024.
  2. ^ "team of MantisBT. This marks a new era in MantisBT lifetime where it is now a team project". GitHub. November 19, 2021.
  3. ^ "Mantis 1.0.0 (stable) Released". MantisBT announcements mailing list. SourceForge.net. February 4, 2006.
  4. ^ "Mantis 1.1.0 Released". Mantis Bug Tracker Blog. Mantisbt.org. December 20, 2007.
  5. ^ "Moving from SVN to Git". Mantisbt-dev mailing list. Sourceforge.net. November 4, 2008.
  6. ^ Amethyst Reese (November 10, 2008). "First MantisBT Git commit". Github.com.
  7. ^ "MantisBT 1.2.0 Released". Mantis Bug Tracker Blog. Mantisbt.org. February 22, 2010.
  8. ^ "MantisBT Moving to Github". MantisBT announcements mailing list. SourceForge.net. July 12, 2011.
  9. ^ "MantisBT 1.2.0rc1 Release Candidate 1". Mantis Bug Tracker Blog. Mantisbt.org. June 23, 2009.
  10. ^ "Mantis bugtracker plugins". Deboutv.free.fr. Retrieved July 14, 2010.
  11. ^ a b c d e "Mantis Bug Tracker Administration Guide". Archived from the original on December 2, 2013. Retrieved November 11, 2013.
  12. ^ a b Reese, Amethyst (January 7, 2009). "Integrating Git and SVN with the Mantis Bug Tracker". NoSwap.com. Retrieved November 11, 2013.
  13. ^ "Ton on LabVIEW: Connecting Mantis with Rhodecode". July 6, 2011.
  14. ^ "Subversion Best Practices". Retrieved August 22, 2012.
  15. ^ "Mantis Feature List". MantisBT wiki. Mantisbt.org. September 25, 2012. Retrieved November 11, 2013.
  16. ^ "Languages". Ohloh.net. Archived from the original on December 8, 2013. Retrieved November 12, 2013.
  17. ^ "History of PHP". PHP.net. November 8, 2013. Retrieved November 12, 2013.
  18. ^ "MantisBT source code". GitHub.com. June 11, 2009.
  19. ^ "MantisBT source code". GitHub.com. February 6, 2008.
  20. ^ a b "Admin Guide". mantisbt.org. Retrieved June 7, 2022.
  21. ^ "MantisBT source code - admin/schema.php". GitHub.com. Retrieved November 12, 2013.
  22. ^ "ADODB Manual". Phplens.com. Retrieved November 12, 2013.
  23. ^ "MantisBT source code - library/README.libs". GitHub.com. Retrieved November 12, 2013.

External links