Development guide for librsvg

Welcome to the developer’s guide for librsvg. This is for people who want to work on the development of librsvg itself, not for users of the library or the rsvg-convert program.

If you want to modify this document, please see its source code.

Introduction

Librsvg is a project with a long history; it started 2001 as a way to use the then-new Scalable Vector Graphics format (SVG) for GNOME’s icons and other graphical assets on the desktop. Since then, it has evolved into a few different tools.

Getting started

Understand the code

Test suite - move tests/readme here?

Design documents

Before embarking on big changes to librsvg, please write a little design document modeled on the following ones, and submit a merge request. We can then discuss it before coding. This way we will have a sort of big-picture development history apart from commit messages.

See https://rustc-dev-guide.rust-lang.org/walkthrough.html, section Overview, to formalize the RFC process for features vs. drive-by contributions.

Information for maintainers

Overview of the maintainer’s workflow.

Marge-bot.

Documentation on the CI.

Documentation on the OSS-Fuzz integration and its maintenance.

References

Talks on librsvg.