{"id":15063898,"url":"https://github.com/tych0/xcffib","last_synced_at":"2025-04-06T08:14:10.522Z","repository":{"id":17157471,"uuid":"19924380","full_name":"tych0/xcffib","owner":"tych0","description":"xcffib is the XCB binding for Python","archived":false,"fork":false,"pushed_at":"2025-02-04T16:38:53.000Z","size":509,"stargazers_count":97,"open_issues_count":11,"forks_count":28,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-30T07:08:30.621Z","etag":null,"topics":["cffi","haskell","python","x11","xcb","xcb-proto","xpyb"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tych0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-05-19T00:17:58.000Z","updated_at":"2025-03-14T07:19:12.000Z","dependencies_parsed_at":"2024-05-14T03:30:06.546Z","dependency_job_id":"07420b34-f027-4c9c-9f7b-9f0b79ba7ae8","html_url":"https://github.com/tych0/xcffib","commit_stats":{"total_commits":532,"total_committers":18,"mean_commits":"29.555555555555557","dds":0.3120300751879699,"last_synced_commit":"b5c8dafa4dc225f854af8b9592107176d4bddaa9"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tych0%2Fxcffib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tych0%2Fxcffib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tych0%2Fxcffib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tych0%2Fxcffib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tych0","download_url":"https://codeload.github.com/tych0/xcffib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451665,"owners_count":20940944,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cffi","haskell","python","x11","xcb","xcb-proto","xpyb"],"created_at":"2024-09-25T00:08:32.328Z","updated_at":"2025-04-06T08:14:10.498Z","avatar_url":"https://github.com/tych0.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xcffib [![Build Status](https://github.com/tych0/xcffib/workflows/ci/badge.svg?branch=master)](https://github.com/tych0/xcffib/actions)\n\n`xcffib` is the XCB binding for Python.\n\n## Installation\n\nFor most end users of software that depends on xcffib or developers writing\ncode against xcffib, you can use the version of xcffib on pypi. To install it,\nyou'll need libxcb's headers and libxcb-render's headers (these are available\nvia `sudo apt-get install libxcb-render0-dev` on Ubuntu). Once you have the C\nheaders installed, you can just `pip install xcffib`.\n\nIf you're interested in doing development, read on...\n\n## Development dependencies\n\nYou should be able to install all the language deps from hackage or pip.\n[.github/workflows/ci.yaml](https://github.com/tych0/xcffib/blob/master/.github/workflows/ci.yaml)\nhas an example of how to install the dependencies on Ubuntu flavors.\n\n## Hacking\n\nSee the [Makefile](https://github.com/tych0/xcffib/blob/master/Makefile) for\nexamples on how to run the tests. Your contribution should at pass `make check`\nbefore it can be merged. The `newtests` make target can be used to regenerate\nexpected haskell test data if the tests are failing because you made a change\nto the generated python code.\n\n### Hacking on new xcbproto versions\n\nSometimes (more often recently), xcbproto makes some updates that we need to\ndo some work for. These often require some updates to `xcb-types` as well.\nFirst, hack your changes into `xcb-types` and `cabal install` them, then git\nclone the version of xcbproto you want to somewhere, e.g. `~/packages`:\n\n    ~/packages $ git clone https://gitlab.freedesktop.org/xorg/proto/xcbproto.git\n\nFinally, you can build/test xcffib against this custom version of\n`xcb-{proto|types}` with:\n\n    make XCBDIR=~/packages/xcbproto/src check\n\n### Hacking on new xcb-types versions\n\nTo go along with new xcbproto elements, sometimes you need to hack on newer\nversions of xcb-types. Newer cabals require you to do something like:\n\n    echo packages: ../xcb-types/xcb-types.cabal ./xcffib.cabal \u003e cabal.project\n\nIn order to find locally modified versions of xcb-types.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftych0%2Fxcffib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftych0%2Fxcffib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftych0%2Fxcffib/lists"}