Development: Difference between revisions

From Scribus Wiki
Jump to navigation Jump to search
m (add code style hints)
m (provide patches)
 
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].
Provide patches that have been thoroughfully tested in the [http://bugs.scribus.net Scribus bug tracker].


Some hints about C++ code style :
Some hints about C++ code style :
Line 34: Line 36:


===Bug triage===
===Bug triage===
[http://bugs.scribus.net 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.
[http://bugs.scribus.net 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===
===Scribus packaging===

Latest revision as of 13:43, 21 June 2020


Icon cpp qt4.png Core Coding Project - C++/Qt4 development of the main Scribus program. Icon packaging.png 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.

Provide patches that have been thoroughfully tested in the Scribus bug tracker.

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.