README revision 1.1.1.6 1 1.1.1.6 mrg Pixman
2 1.1.1.6 mrg ======
3 1.1.1.6 mrg
4 1.1.1.5 mrg Pixman is a library that provides low-level pixel manipulation
5 1.1 mrg features such as image compositing and trapezoid rasterization.
6 1.1 mrg
7 1.1.1.6 mrg Questions should be directed to the pixman mailing list:
8 1.1 mrg
9 1.1.1.6 mrg https://lists.freedesktop.org/mailman/listinfo/pixman
10 1.1 mrg
11 1.1.1.5 mrg You can also file bugs at
12 1.1.1.4 mrg
13 1.1.1.6 mrg https://gitlab.freedesktop.org/pixman/pixman/-/issues/new
14 1.1.1.6 mrg
15 1.1.1.6 mrg or submit improvements in form of a Merge Request via
16 1.1.1.6 mrg
17 1.1.1.6 mrg https://gitlab.freedesktop.org/pixman/pixman/-/merge_requests
18 1.1.1.4 mrg
19 1.1.1.5 mrg For real time discussions about pixman, feel free to join the IRC
20 1.1.1.5 mrg channels #cairo and #xorg-devel on the FreeNode IRC network.
21 1.1.1.5 mrg
22 1.1.1.5 mrg
23 1.1.1.5 mrg Contributing
24 1.1.1.5 mrg ------------
25 1.1.1.5 mrg
26 1.1.1.5 mrg In order to contribute to pixman, you will need a working knowledge of
27 1.1.1.5 mrg the git version control system. For a quick getting started guide,
28 1.1.1.5 mrg there is the "Everyday Git With 20 Commands Or So guide"
29 1.1.1.5 mrg
30 1.1.1.6 mrg https://www.kernel.org/pub/software/scm/git/docs/everyday.html
31 1.1.1.5 mrg
32 1.1.1.5 mrg from the Git homepage. For more in depth git documentation, see the
33 1.1.1.5 mrg resources on the Git community documentation page:
34 1.1.1.5 mrg
35 1.1.1.6 mrg https://git-scm.com/documentation
36 1.1.1.5 mrg
37 1.1.1.5 mrg Pixman uses the infrastructure from the freedesktop.org umbrella
38 1.1.1.5 mrg project. For instructions about how to use the git service on
39 1.1.1.5 mrg freedesktop.org, see:
40 1.1.1.5 mrg
41 1.1.1.6 mrg https://www.freedesktop.org/wiki/Infrastructure/git/Developers
42 1.1.1.5 mrg
43 1.1.1.5 mrg The Pixman master repository can be found at:
44 1.1 mrg
45 1.1.1.6 mrg https://gitlab.freedesktop.org/pixman/pixman
46 1.1.1.5 mrg
47 1.1.1.5 mrg
48 1.1.1.5 mrg Sending patches
49 1.1.1.5 mrg ---------------
50 1.1.1.5 mrg
51 1.1.1.6 mrg Patches should be submitted in form of Merge Requests via Gitlab.
52 1.1.1.5 mrg
53 1.1.1.6 mrg You will first need to create a fork of the main pixman repository at
54 1.1.1.5 mrg
55 1.1.1.6 mrg https://gitlab.freedesktop.org/pixman/pixman
56 1.1.1.5 mrg
57 1.1.1.6 mrg via the Fork button on the top right. Once that is done you can add your
58 1.1.1.6 mrg personal repository as a remote to your local pixman development git checkout:
59 1.1.1.5 mrg
60 1.1.1.6 mrg git remote add my-gitlab git (a] gitlab.freedesktop.org:YOURUSERNAME/pixman.git
61 1.1.1.5 mrg
62 1.1.1.6 mrg git fetch my-gitlab
63 1.1.1.5 mrg
64 1.1.1.6 mrg Make sure to have added ssh keys to your gitlab profile at
65 1.1.1.6 mrg
66 1.1.1.6 mrg https://gitlab.freedesktop.org/profile/keys
67 1.1.1.6 mrg
68 1.1.1.6 mrg Once that is set up, the general workflow for sending patches is to create a
69 1.1.1.6 mrg new local branch with your improvements and once it's ready push it to your
70 1.1.1.6 mrg personal pixman fork:
71 1.1.1.5 mrg
72 1.1.1.6 mrg git checkout -b fix-some-bug
73 1.1.1.6 mrg ...
74 1.1.1.6 mrg git push my-gitlab
75 1.1.1.5 mrg
76 1.1.1.6 mrg The output of the `git push` command will include a link that allows you to
77 1.1.1.6 mrg create a Merge Request against the official pixman repository.
78 1.1.1.5 mrg
79 1.1.1.6 mrg Whenever you make changes to your branch (add new commits or fix up commits)
80 1.1.1.6 mrg you push them back to your personal pixman fork:
81 1.1.1.6 mrg
82 1.1.1.6 mrg git push -f my-gitlab
83 1.1.1.6 mrg
84 1.1.1.6 mrg If there is an open Merge Request Gitlab will automatically pick up the
85 1.1.1.6 mrg changes from your branch and pixman developers can review them anew.
86 1.1.1.6 mrg
87 1.1.1.6 mrg In order for your patches to be accepted, please consider the
88 1.1.1.6 mrg following guidelines:
89 1.1.1.5 mrg
90 1.1.1.5 mrg - At each point in the series, pixman should compile and the test
91 1.1.1.5 mrg suite should pass.
92 1.1.1.5 mrg
93 1.1.1.5 mrg The exception here is if you are changing the test suite to
94 1.1.1.5 mrg demonstrate a bug. In this case, make one commit that makes the
95 1.1.1.5 mrg test suite fail due to the bug, and then another commit that fixes
96 1.1.1.5 mrg the bug.
97 1.1.1.5 mrg
98 1.1.1.5 mrg You can run the test suite with
99 1.1.1.5 mrg
100 1.1.1.5 mrg make check
101 1.1.1.5 mrg
102 1.1.1.6 mrg if you built pixman with autotools or
103 1.1.1.6 mrg
104 1.1.1.6 mrg meson test -C builddir
105 1.1.1.6 mrg
106 1.1.1.6 mrg if you built pixman with meson.
107 1.1.1.6 mrg
108 1.1.1.5 mrg It will take around two minutes to run on a modern PC.
109 1.1.1.5 mrg
110 1.1.1.5 mrg - Follow the coding style described in the CODING_STYLE file
111 1.1.1.5 mrg
112 1.1.1.5 mrg - For bug fixes, include an update to the test suite to make sure
113 1.1.1.5 mrg the bug doesn't reappear.
114 1.1.1.5 mrg
115 1.1.1.5 mrg - For new features, add tests of the feature to the test
116 1.1.1.5 mrg suite. Also, add a program demonstrating the new feature to the
117 1.1.1.5 mrg demos/ directory.
118 1.1.1.5 mrg
119 1.1.1.5 mrg - Write descriptive commit messages. Useful information to include:
120 1.1.1.5 mrg - Benchmark results, before and after
121 1.1.1.5 mrg - Description of the bug that was fixed
122 1.1.1.5 mrg - Detailed rationale for any new API
123 1.1.1.5 mrg - Alternative approaches that were rejected (and why they
124 1.1.1.5 mrg don't work)
125 1.1.1.5 mrg - If review comments were incorporated, a brief version
126 1.1.1.5 mrg history describing what those changes were.
127 1.1.1.5 mrg
128 1.1.1.6 mrg - For big patch series, write an introductory post with an overall
129 1.1.1.5 mrg description of the patch series, including benchmarks and
130 1.1.1.5 mrg motivation. Each commit message should still be descriptive and
131 1.1.1.5 mrg include enough information to understand why this particular commit
132 1.1.1.5 mrg was necessary.
133 1.1 mrg
134 1.1.1.5 mrg Pixman has high standards for code quality and so almost everybody
135 1.1.1.5 mrg should expect to have the first versions of their patches rejected.
136 1.1 mrg
137 1.1.1.5 mrg If you think that the reviewers are wrong about something, or that the
138 1.1.1.6 mrg guidelines above are wrong, feel free to discuss the issue. The purpose
139 1.1.1.6 mrg of the guidelines and code review is to ensure high code quality; it is
140 1.1.1.6 mrg not an exercise in compliance.
141