Home | History | Annotate | Line # | Download | only in dist
      1  1.1.1.8  mrg Pixman
      2  1.1.1.8  mrg ======
      3  1.1.1.8  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.8  mrg Questions should be directed to the pixman mailing list:
      8      1.1  mrg 
      9  1.1.1.8  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.8  mrg     https://gitlab.freedesktop.org/pixman/pixman/-/issues/new
     14  1.1.1.8  mrg 
     15  1.1.1.8  mrg or submit improvements in form of a Merge Request via
     16  1.1.1.8  mrg 
     17  1.1.1.8  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.8  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.8  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.8  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.8  mrg     https://gitlab.freedesktop.org/pixman/pixman
     46  1.1.1.5  mrg 
     47  1.1.1.5  mrg 
     48  1.1.1.7  mrg Sending patches
     49  1.1.1.7  mrg ---------------
     50  1.1.1.5  mrg 
     51  1.1.1.8  mrg Patches should be submitted in form of Merge Requests via Gitlab.
     52  1.1.1.5  mrg 
     53  1.1.1.8  mrg You will first need to create a fork of the main pixman repository at
     54  1.1.1.6  mrg 
     55  1.1.1.8  mrg     https://gitlab.freedesktop.org/pixman/pixman
     56  1.1.1.6  mrg 
     57  1.1.1.8  mrg via the Fork button on the top right. Once that is done you can add your
     58  1.1.1.8  mrg personal repository as a remote to your local pixman development git checkout:
     59  1.1.1.5  mrg 
     60  1.1.1.8  mrg     git remote add my-gitlab git (a] gitlab.freedesktop.org:YOURUSERNAME/pixman.git
     61  1.1.1.5  mrg 
     62  1.1.1.8  mrg     git fetch my-gitlab
     63  1.1.1.5  mrg 
     64  1.1.1.8  mrg Make sure to have added ssh keys to your gitlab profile at
     65  1.1.1.6  mrg 
     66  1.1.1.8  mrg     https://gitlab.freedesktop.org/profile/keys
     67  1.1.1.6  mrg 
     68  1.1.1.8  mrg Once that is set up, the general workflow for sending patches is to create a
     69  1.1.1.8  mrg new local branch with your improvements and once it's ready push it to your
     70  1.1.1.8  mrg personal pixman fork:
     71  1.1.1.6  mrg 
     72  1.1.1.8  mrg     git checkout -b fix-some-bug
     73  1.1.1.8  mrg     ...
     74  1.1.1.8  mrg     git push my-gitlab
     75  1.1.1.8  mrg 
     76  1.1.1.8  mrg The output of the `git push` command will include a link that allows you to
     77  1.1.1.8  mrg create a Merge Request against the official pixman repository.
     78  1.1.1.8  mrg 
     79  1.1.1.8  mrg Whenever you make changes to your branch (add new commits or fix up commits)
     80  1.1.1.8  mrg you push them back to your personal pixman fork:
     81  1.1.1.8  mrg 
     82  1.1.1.8  mrg     git push -f my-gitlab
     83  1.1.1.8  mrg 
     84  1.1.1.8  mrg If there is an open Merge Request Gitlab will automatically pick up the
     85  1.1.1.8  mrg changes from your branch and pixman developers can review them anew.
     86  1.1.1.8  mrg 
     87  1.1.1.8  mrg In order for your patches to be accepted, please consider the
     88  1.1.1.8  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.8  mrg        meson test -C builddir
    101  1.1.1.5  mrg 
    102  1.1.1.5  mrg    It will take around two minutes to run on a modern PC.
    103  1.1.1.5  mrg 
    104  1.1.1.5  mrg  - Follow the coding style described in the CODING_STYLE file
    105  1.1.1.5  mrg 
    106  1.1.1.5  mrg  - For bug fixes, include an update to the test suite to make sure
    107  1.1.1.5  mrg    the bug doesn't reappear.
    108  1.1.1.5  mrg 
    109  1.1.1.5  mrg  - For new features, add tests of the feature to the test
    110  1.1.1.5  mrg    suite. Also, add a program demonstrating the new feature to the
    111  1.1.1.5  mrg    demos/ directory.
    112  1.1.1.5  mrg 
    113  1.1.1.5  mrg  - Write descriptive commit messages. Useful information to include:
    114  1.1.1.5  mrg         - Benchmark results, before and after
    115  1.1.1.5  mrg 	- Description of the bug that was fixed
    116  1.1.1.5  mrg 	- Detailed rationale for any new API
    117  1.1.1.5  mrg 	- Alternative approaches that were rejected (and why they
    118  1.1.1.5  mrg           don't work)
    119  1.1.1.5  mrg 	- If review comments were incorporated, a brief version
    120  1.1.1.5  mrg           history describing what those changes were.
    121  1.1.1.5  mrg 
    122  1.1.1.8  mrg  - For big patch series, write an introductory post with an overall
    123  1.1.1.5  mrg    description of the patch series, including benchmarks and
    124  1.1.1.5  mrg    motivation. Each commit message should still be descriptive and
    125  1.1.1.5  mrg    include enough information to understand why this particular commit
    126  1.1.1.5  mrg    was necessary.
    127      1.1  mrg 
    128  1.1.1.5  mrg Pixman has high standards for code quality and so almost everybody
    129  1.1.1.5  mrg should expect to have the first versions of their patches rejected.
    130      1.1  mrg 
    131  1.1.1.5  mrg If you think that the reviewers are wrong about something, or that the
    132  1.1.1.8  mrg guidelines above are wrong, feel free to discuss the issue. The purpose
    133  1.1.1.8  mrg of the guidelines and code review is to ensure high code quality; it is
    134  1.1.1.8  mrg not an exercise in compliance.
    135