1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
Development guide for librsvg
=============================
.. toctree::
product
roadmap
devel_environment
architecture
adding_a_property
memory_leaks
contributing
ci
text_layout
api_observability
releasing
:maxdepth: 1
:caption: Contents:
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
<https://gitlab.gnome.org/GNOME/librsvg/-/tree/main/devel-docs>`_.
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.
- :doc:`product` - What comes out of this repository once it is compiled?
- :doc:`roadmap` - Ever-changing list of priorities for the
maintainers; check this often!
Getting started
---------------
- :doc:`devel_environment`
FIXME: link to doc with stuff from CONTRIBUTING.md's "Hacking on librsvg"
Add basic info on cloning the repo, getting a gitlab account, forking.
Understand the code
-------------------
Tour of the code - load a file, render it.
Test suite - move tests/readme here?
- `Documentation of the library's internals <https://gnome.pages.gitlab.gnome.org/librsvg/internals/librsvg/index.html>`_
- :doc:`architecture`
- :doc:`adding_a_property`
- :doc:`memory_leaks`
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.
- :doc:`text_layout`
- :doc:`api_observability`
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
---------------------------
- :doc:`releasing`
Overview of the maintainer's workflow.
Marge-bot.
Documentation on the CI.
References
----------
Link to SVG/CSS specs; other useful bits.
Links to Mozilla's SVG, WebKit, resvg, Inkscape.
Talks on librsvg.
Indices and tables
------------------
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
|