Development: Difference between revisions
No edit summary |
m (add code style hints) |
||
Line 18: | Line 18: | ||
===Core coding=== | ===Core coding=== | ||
The development of Scribus has many aspects. The core software is written in C++ usint [http://qt.nokia.com/ Qt4 UI framework]. In addition, it's drawing on a number of libraries such as [http://lib2geom.sourceforge.net/ lib2geom] that are included with the Scribus source and many shared libraries including [http://cairographics.org/ Cairo], [http://www.zlib.net/ Zlib], [http://www.littlecms.com/ LittleCMS], [http://www.libtiff.org/ libTIFF], [http://www.cups.org/index.php Cups], [http://xmlsoft.org/ libXml2], [http://python.org/ Python], [http://www.boost.org/ Boost], [http://aspell.net/ aSpell], and [http://podofo.sourceforge.net/ PoDoFo]. | The development of Scribus has many aspects. The core software is written in C++ usint [http://qt.nokia.com/ Qt4 UI framework]. In addition, it's drawing on a number of libraries such as [http://lib2geom.sourceforge.net/ lib2geom] that are included with the Scribus source and many shared libraries including [http://cairographics.org/ Cairo], [http://www.zlib.net/ Zlib], [http://www.littlecms.com/ LittleCMS], [http://www.libtiff.org/ libTIFF], [http://www.cups.org/index.php Cups], [http://xmlsoft.org/ libXml2], [http://python.org/ Python], [http://www.boost.org/ Boost], [http://aspell.net/ aSpell], and [http://podofo.sourceforge.net/ PoDoFo]. | ||
Some hints about C++ code style : | |||
* braces must be on their own line | |||
* if a code block has a single line, then no braces | |||
* variable naming: dont use names as m_import_text_as_vectors but m_importTextAsVectors | |||
===Plugin and script writing=== | ===Plugin and script writing=== |
Revision as of 13:41, 21 June 2020
Core Coding Project - C++/Qt4 development of the main Scribus program. | Packaging Project - packaging Scribus for Linux distributions, MacOS X, Windows, and eComStation (OS/2 Warp). |
Overview of the Scribus Development Projects
Introduction
Following are an overview of the available Scribus development projects and links to the respective project areas in the wiki. Potential contributors who would like more information are encouraged to contact the Scribus Team in the #scribus IRC channel on FreeNode.net, scribus-dev mailing list, and this wiki.
Core coding
The development of Scribus has many aspects. The core software is written in C++ usint Qt4 UI framework. In addition, it's drawing on a number of libraries such as lib2geom that are included with the Scribus source and many shared libraries including Cairo, Zlib, LittleCMS, libTIFF, Cups, libXml2, Python, Boost, aSpell, and PoDoFo.
Some hints about C++ code style :
- braces must be on their own line
- if a code block has a single line, then no braces
- variable naming: dont use names as m_import_text_as_vectors but m_importTextAsVectors
Plugin and script writing
A number of C++ plugins and python scripts extend the Scribus feature list and enhance the user experience. There are many opportunities for interested developers to work on the existing plugins and scripts or write new ones.
Interface translation
Work on the translation of the Scribus user interface is a very important on-going project that could always use more effort in order to keep the many available or new translations up-to-date. This project is a good entry point for new contributors as it does not require skills beyond the ability to communicate in English and the translator's native language.
Documentation writing
Documentation writing is another area that requires constant attention and effort to keep the discrepancies between the Scribus functionality and the information available to the users to minimum. Lack of the appropriate documentation, out-of-date documents, and poor documentation structure lead to user confusion, misrepresentation of the capabilities of Scribus, and waste of efforts that go into the other parts of the project. Scribus Wiki is the central hub for the documentation efforts.
Bug triage
Scribus BTS (Bug Tracking System) is an important interface between the problems encountered by the users of Scribus and Scribus Team and the Community that can help solve those problems. Bug reporting and triage are essential for keeping the developmental efforts focused on the most productive and important areas.
Scribus packaging
Packaging Scribus for the multitude of Linux distributions, Windows, MacOS X, and OS/2 Warp (eComStation) is a combined efforts of the packagers from downstream distributions, Scribus Team's members, and representatives from the Scribus Community. In addition, the Scribus Team provides archives and repositories with Suse and Fedora RPMs, Debian and Ubuntu packages, Windows installers, and MacOS X packages to make up-to-date versions of Scribus available to the users.
User support
The strength of the Scribus Community is apparent from the activity of the Scribus mailing list and the #scribus freenode IRC channel where many Scribus users, DTP professionals, and Scribus Team members provide advice and directions, help solve problems and find workarounds for Scribus limitations. Our channels of communication with the users could always be enriched by additional presence, goodwill, and sincere efforts of additional contributors.
Website and wiki editing
Web infrastructure of the Scribus project is in a constant flux. There always are opportunities to fix errors, expand coverage, improve structure, and streamline presentation of the materials that can help people around the world use Scribus effectively, develop and improve it, and support other users.