Age | Commit message (Collapse) | Author | Files | Lines |
|
1.23.0 - 2022-11-28
-------------------
* git: changed default branch from "master" to "main"
* Windows: Update the cairo version included in the wheels from 1.17.2 to 1.17.6
* docs: Document how to look up pycairo headers without loading the module
* tests: don't error out if cairo wasn't built with all features
* New APIs:
* :attr:`Status.DWRITE_ERROR`
* :attr:`Format.RGB96F`, :attr:`Format.RGBA128F`
* :attr:`PDFVersion.VERSION_1_6`, :attr:`PDFVersion.VERSION_1_7`
* :attr:`HAS_DWRITE_FONT`
* :meth:`Context.set_hairline`, :meth:`Context.get_hairline`
* :meth:`PDFSurface.set_custom_metadata`
|
|
1.22.0 - 2022-11-19
-------------------
* Officially support Python 3.11 :pr:`285`
* PDFSurface.version_to_string(): Fix crash with negative versions :pr:`279`
* typing: ImageSurface.get_stride() returns an int :pr:`282`
* typing: Fix incorrect interface for Matrix constructor :pr:`271`
* typing: Use Generic for Context :pr:`274`
* docs: some cairo.Context fixes :pr:`276`
* docs: try to make create_from_png/write_to_png more clear :pr:`261`
* docs: add an example for how to convert a surface to pillow :pr:`281`
* docs: cairo.Format.RGB24: document that unused bytes may be overwritten :pr:`289`
* tests: don't depend on specific ref counts :pr:`291`
* tests: compatibility fixes for cairo 1.17.6 :pr:`264`
|
|
1.21.0 - 2022-03-07
-------------------
* Require Python 3.7+ :pr:`250`
* Require meson 0.53+
* Using `setup.py` directly to build/install pycairo is deprecated.
Use meson instead.
* `setup.py` now requires setuptools. Previously it was optional.
* The complete API reference is now included in the typing stubs, so it can be consumed/shown by IDEs. :pr:`236` :pr:`252`
|
|
Due to header and .pc file.
|
|
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
|
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
|
|
|
|
1.20.1 - 2021-06-03
-------------------
* Use poetry for development :pr:`232`
* setup.py: Respect the PKG_CONFIG environment variable :pr:`235`
* Make import_cairo inline in addition to static :pr`224`
* docs: Fix example in Pattern.set_filter() docs _pr_`221`
* docs: Fix build with newer sphinx :pr:`222`
* docs: Fix NumPy width, height-conventions in examples :pr:`231`
* docs: Last parameter of rel_curve_to should be dy3, not dy4 :pr:`230`
* mypy: Fixes for mypy 0.800+ :pr:`233`
* mypy: Don't run mypy via pytest :pr:`234`
|
|
|
|
While here, simplify PLIST since this no longer supports python 2.x
|
|
1.20.0 - 2020-10-05
-------------------
* Require Python 3.6+ :pr:`201`
* Require cairo 1.15.10+ :pr:`204`
* docs: support Sphinx 3.0 :pr:`207`
* meson: add 'tests' option to skip tests :pr:`188`
* Windows: build wheels :pr:`197`
* Add support for Python 3.9 and 3.10 :pr:`198` :pr:`202`
* examples: add a Jupyter Notebook example :pr:`181`
* Raise an error early when being passed a file object not opened in binary mode :pr:`205`
* Add a pyproject.toml file :pr:`206`
|
|
1.19.1 - 2020-02-16
-------------------
* docs: Add moderngl in the integration section. :pr:`174` (:user:`Einar Forselv <einarf>`)
* Support os.PathLike with PyPy3 >= 7.3.0
1.19.0 - 2020-01-23
-------------------
* Python 2 is no longer supported :pr:`172`
* Add machine-readable license statement :pr:`158` (:user:`Maxim Ivanov <ulidtko>`)
* travis-ci: Manually set sysroot so correct SDK is used (:user:`Stuart Axon <stuaxo>`)
* Support Python 3.8 on Windows (because of DLL lookup changes)
* Fix wrong type for set_dash() offset parameter in the docs/types.
|
|
|
|
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
|
|
1.18.2 - 2019-10-24
-------------------
* Fix a minor compatibility issue with Python 3.8 (fixes the test suite)
|
|
1.18.1 - 2019-04-19
-------------------
* meson: install .egg-info to platlib
* meson: fix configure error with meson 0.50 re absolute paths :pr:`145`
* PyPy: don't use PyOS_FSPath() with PyPy3.6, it's missing: https://bitbucket.org/pypy/pypy/issues/2961
* Docs fixes :pr:`134` (:user:`Matteo Italia <cvtsi2sd>`)
|
|
1.18.0 - 2018-11-04
-------------------
Build:
* Dropped Python 3.3 support
* meson build requires meson >=0.47 (was >=0.46)
* Fix various build warnings with GCC8
* meson: Don't link against libpython on non-Windows systems :pr:`120`
* meson: Improve support for Visual Studio builds
:pr:`121` (:user:`Chun-wei Fan <fanc999>`)
* setup.py: Support specifying custom ``--pkgconfigdir``
:pr:`127` (:user:`Michał Górny <mgorny>`)
Fixes:
* docs: Remove a broken link :pr:`124` (:user:`Nik Nyby <nikolas@gnu.org>`)
* typing: Add missing annotations for __enter__/__exit__ :pr:`126`
New API:
Some are only available when building with newer cairo versions, see the
linked API docs for details.
* :data:`CAIRO_VERSION`, :data:`CAIRO_VERSION_STRING`,
:data:`CAIRO_VERSION_MAJOR`, :data:`CAIRO_VERSION_MINOR`,
:data:`CAIRO_VERSION_MICRO`
* :attr:`Status.TAG_ERROR`, :attr:`Status.FREETYPE_ERROR`,
:attr:`Status.PNG_ERROR`, :attr:`Status.WIN32_GDI_ERROR`
* :class:`SVGUnit`, :class:`PDFMetadata`, :class:`PDFOutlineFlags`
* :meth:`FontOptions.set_variations`, :meth:`FontOptions.get_variations`
* :meth:`Context.tag_begin`, :meth:`Context.tag_end`,
:data:`TAG_DEST`, :data:`TAG_LINK`
* :meth:`PDFSurface.set_page_label`, :meth:`PDFSurface.set_metadata`,
:meth:`PDFSurface.set_thumbnail_size`, :meth:`PDFSurface.add_outline`,
:data:`PDF_OUTLINE_ROOT`
* :meth:`SVGSurface.set_document_unit`, :meth:`SVGSurface.get_document_unit`
* :data:`MIME_TYPE_CCITT_FAX`, :data:`MIME_TYPE_CCITT_FAX_PARAMS`,
:data:`MIME_TYPE_EPS`, :data:`MIME_TYPE_EPS_PARAMS`,
:data:`MIME_TYPE_JBIG2`, :data:`MIME_TYPE_JBIG2_GLOBAL`,
:data:`MIME_TYPE_JBIG2_GLOBAL_ID`
|
|
|
|
|
|
1.17.1 - 2018-07-07
-------------------
* Meson support (>=0.46)
|
|
For build consistency
|
|
|
|
1.17.0 - 2018-04-15
-------------------
* :class:`cairo.Surface` and :class:`cairo.Device` can now be used as context
managers. :bug:`103`
* Fix a leak when a cairo error was raised.
* Fix a leak when a mapped surface was GCed instead of unmapped.
* Make it possible to use the C API with Python 3 outside of the compilation
unit doing the import by defining ``PYCAIRO_NO_IMPORT``. :bug:`110`
* Implement PEP 561 (added a py.typed marker)
|
|
|
|
|
|
1.16.3 - 2018-02-27
-------------------
* Ship Python type annotation stubs. They are currently supported by mypy and
PyCharm. :bug:`99` :pr:`101`
|
|
1.16.2 - 2018-02-10
-------------------
* setup.py: Some fixes for Debian pybuild quirks. :bug:`98`
.. _v1.16.1:
1.16.1 - 2018-02-06
-------------------
* setup.py: correctly install pkgconfig into /usr/lib* again.
To make JHBuild on Fedora work the following patch is needed:
https://bugzilla.gnome.org/show_bug.cgi?id=793216
.. _v1.16.0:
1.16.0 - 2018-02-05
-------------------
* Add a :func:`get_include` function which returns the compiler include path
needed for interfacing with the Pycairo C API :bug:`92`
* Note for packagers: The default header installation path has changed, but a
compat header is installed to the old location to prevent breakage in case
anyone has hardcoded the old path instead of using pkg-config.
Just in case anyone is wondering why there are two header files now.
.. _v1.15.6:
1.15.6 - 2018-01-30
-------------------
* Experimental PyPy and PyPy3 support :bug:`90`
.. _v1.15.5:
1.15.5 - 2018-01-29
-------------------
* Support Unicode paths under Windows with cairo 1.15.10+ :pr:`87`
* Don't include the pkg-config file when building a wheel :bug:`83`
|
|
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
|
|
|
|
Bump PKGREVISION.
|
|
1.15.4 - 2017-11-08
-------------------
Fixes:
* Fix some enum conversation errors with (unused) large and negative values.
:pr:`81`
Tests:
* Fix a rare test error :pr:`80` (:user:`Sergei Trofimovich <trofi>`)
.. _v1.15.3:
1.15.3 - 2017-09-17
-------------------
Fixes:
* setup.py: Install pkgconfig file into /usr/share/pkgconfig to work around
JHBuild on Fedora not picking it up.
* Fix tests on big endian machines. :bug:`75`
* Support building with MSVC :pr:`72` (:user:`Chun-wei Fan <fanc999>`)
Tests:
* Test MSVC builds on appveyor
.. _v1.15.2:
1.15.2 - 2017-09-03
-------------------
Fixes:
* setup.py: Install pkgconfig file to the same library prefix that Python
uses. (/usr/lib64 instead of /usr/lib under Fedora for example) :bug:`70`
:pr:`71` (:user:`Sander Sweers <infirit>`)
.. _v1.15.1:
1.15.1 - 2017-08-19
-------------------
Fixes:
* Improved support for Python filesystem paths including
:class:`os.PathLike`. See :class:`pathlike` for details.
* Various minor fixes
Changes:
* Expose :class:`cairo.Path`
Tests:
* Improved test coverage from ~70% to ~90%
.. _v1.15.0:
1.15.0 - 2017-07-24
-------------------
New Features:
* Add :meth:`Surface.map_to_image` and :meth:`Surface.unmap_image` :bug:`51`
* Add :class:`RasterSourcePattern` :bug:`48`
* Add :class:`Glyph` :bug:`53`
* Add :class:`Rectangle` :bug:`54`
* Add :class:`TextCluster` :bug:`61`
* Add :meth:`ScaledFont.text_to_glyphs` and :meth:`ScaledFont.glyph_extents`
* Add :meth:`Context.show_text_glyphs`
* Add :class:`TextExtents` :bug:`62`
Changes:
* Pycairo instances wrapping the same underlying cairo object now hash and
compare equally e.g. ``context.get_target() == context.get_target()``
* Functions which returned a cairo error with :attr:`Status.NO_MEMORY` no
longer raise :exc:`python3:MemoryError`, but a subclass of :exc:`Error`
and :exc:`python3:MemoryError`. Similarly errors with
:attr:`Status.READ_ERROR` and :attr:`Status.WRITE_ERROR` no longer raise
:exc:`python3:IOError`, but a subclass of :exc:`Error` and
:exc:`python3:IOError`. :bug:`55`
* Some functions which previously returned a tuple now return a tuple
subclass like :class:`Rectangle`, :class:`Glyph`, :class:`TextCluster` and
:class:`TextExtents`
.. _v1.14.1:
1.14.1 - 2017-07-24
-------------------
Fixes:
* Fix a crash with :meth:`Surface.get_device` :bug:`57`
.. _v1.14.0:
1.14.0 - 2017-07-12
-------------------
General:
* Requires at least cairo 1.13.1 (The snapshop in Ubuntu 14.04)
Tests:
* Optional `Hypothesis <https://hypothesis.readthedocs.io>`__ tests.
New Features:
* Add :meth:`Surface.set_device_scale` and :meth:`Surface.get_device_scale`.
:pr:`44` (:user:`Sander Sweers <infirit>`)
* Add :class:`Device` :pr:`45`
* Add :meth:`Surface.get_device` :pr:`45`
* Add :class:`ScriptDevice` and :class:`ScriptMode` :pr:`46`
* Add :class:`ScriptSurface` :bug:`17`
* Add :attr:`Status.JBIG2_GLOBAL_MISSING`
* Add :meth:`Format.stride_for_width`
* Add :class:`TextClusterFlags` and :class:`SurfaceObserverMode`
* Add :meth:`Gradient.get_color_stops_rgba`
* Add :class:`TeeSurface`
* Add :class:`MeshPattern`
.. _v1.13.4:
1.13.4 - 2017-07-12
-------------------
Fixes:
* Fix a rare crash with :meth:`get_data() <ImageSurface.get_data>` under
Python 3 (1.13.3 regression).
.. _v1.13.3:
1.13.3 - 2017-06-01
-------------------
Fixes:
* Fix ImageSurface leaking in case :meth:`get_data() <ImageSurface.get_data>` is used under Python 3.
:bug:`41`
Documentation:
* Add Pillow to ImageSurface example. :pr:`40` (:user:`Stuart Axon <stuaxo>`)
* Describe Freetype-py intergration. :bug:`25` :pr:`43`
(:user:`Hin-Tak Leung <HinTak>`)
.. _v1.13.2:
1.13.2 - 2017-05-21
-------------------
Fixes:
* Fix pip failing to install pycairo in some cases. :bug:`39`
Testing:
* Added continuous testing for Windows using MSYS2 and appveyor. :bug:`19`
.. _v1.13.1:
1.13.1 - 2017-05-07
-------------------
Fixes:
* setup.py install: Fix generated pkg-config file if ``--home`` or
``--user`` is specified. :bug:`34`
* Fix a build error on macOS Sierra. :pr:`36`
(:user:`Nicolas P. Rougier <rougier>`)
* examples: Fix snippet examples when .pyc files are present. :bug:`35`
Documentation:
* Add Pyglet integration example. :pr:`33` (:user:`Stuart Axon <stuaxo>`)
.. _v1.13.0:
1.13.0 - 2017-05-03
-------------------
New Features:
* The buffer returned by :meth:`ImageSurface.get_data` under Python 2 now
implements the character buffer interface to make it work with
pygame.image.frombuffer(). :pr:`29`
* All C enum types now have their own corresponding Python enum type:
:class:`Antialias`, :class:`Content`, :class:`Extend`, :class:`FillRule`,
:class:`Filter`, :class:`FontSlant`, :class:`FontWeight`, :class:`Format`,
:class:`HintMetrics`, :class:`HintStyle`, :class:`LineCap`,
:class:`LineJoin`, :class:`Operator`, :class:`PDFVersion`,
:class:`PSLevel`, :class:`PathDataType`, :class:`RegionOverlap`,
:class:`SVGVersion`, :class:`Status`, :class:`SubpixelOrder`. :bug:`26`
All relevant constants are now an alias to attributes of those types e.g.
:data:`ANTIALIAS_DEFAULT` is the same as :attr:`Antialias.DEFAULT`.
All functions returning enum values now return instances of the new types
e.g. :meth:`Context.get_antialias` returns a :class:`Antialias`.
:attr:`Error.status` is now a :class:`Status`.
* All included examples now work with Python 2 & 3
* All included examples using GTK+ have been ported to GTK+ 3/PyGObject 3
Fixes:
* Fix the signature of the :class:`ImageSurface` buffer interface for Python 2
(int -> Py_ssize_t)
* setup.py: Ensure "-fno-strict-aliasing" is used with Python 2.
Testing:
* Added travis-ci tests for flake8 and sphinx. :pr:`30`, :pr:`32`
* The test suite now has optional tests for numpy and pygame integration.
.. _v1.12.0:
1.12.0 - 2017-04-18
-------------------
General:
* Require cairo 1.12.0
* Use C90 and enforce it on travis-ci. :bug:`5`, :fdobug:`22940`
Constants:
* Add various new cairo.OPERATOR_*, cairo.ANTIALIAS_* and
cairo.FORMAT_* constants. :bug:`1`
* Add :data:`HAS_MIME_SURFACE` and cairo.MIME_TYPE_*. :bug:`7`,
:fdobug:`58771`
* Add cairo.PDF_VERSION_*. :pr:`16`
* Add cairo.SVG_VERSION_*
:exc:`Error`:
* Add a :data:`Error.status` attribute exposing cairo.STATUS_*
* Add :exc:`CairoError` alias for :exc:`Error` for cairocffi compatibility
:class:`Matrix`:
* Expose matrix components as read/write properties. e.g. :data:`Matrix.xx`
* Fix type checking of the multiplication operator under
Python 3. :bug:`8`, :fdobug:`89162` (Lawrence D'Oliveiro)
:class:`Surface`:
* Add :meth:`Surface.set_mime_data`. :bug:`7`, :fdobug:`58771`
* Add :meth:`Surface.get_mime_data`. :bug:`7`, :fdobug:`58771`
* Add :meth:`Surface.supports_mime_type`. :bug:`7`, :fdobug:`58771`
* Add :meth:`Surface.create_for_rectangle`. :pr:`13`
* Add :meth:`Surface.create_similar_image`. :pr:`15`
* Add :meth:`Surface.has_show_text_glyphs`
* Fix crash when the surface wrapper gets deallocated before the surface
object. :bug:`11`
:class:`Context`:
* Add :meth:`Context.in_clip`. :pr:`14`
:class:`PDFSurface`:
* Add :meth:`PDFSurface.restrict_to_version`. :pr:`16`
* Add :meth:`PDFSurface.get_versions`. :pr:`16`
* Add :meth:`PDFSurface.version_to_string`. :pr:`16`
:class:`SVGSurface`:
* Add :meth:`SVGSurface.restrict_to_version`
* Add :meth:`SVGSurface.get_versions`
* Add :meth:`SVGSurface.version_to_string`
:class:`XCBSurface`:
* Add :meth:`XCBSurface.set_size`
:class:`PSSurface`:
* Add :meth:`PSSurface.get_levels`
* Add :meth:`PSSurface.level_to_string`
:class:`Pattern`:
* Add :meth:`Pattern.set_filter`
* Add :meth:`Pattern.get_filter`
:class:`RecordingSurface`:
* Add :meth:`RecordingSurface.get_extents`
:class:`FontOptions`:
* Implement ``__eq__`` and ``__ne__``
* Add :meth:`FontOptions.copy`
* Add :meth:`FontOptions.hash`
* Add :meth:`FontOptions.equal`
* Add :meth:`FontOptions.merge`
:class:`ScaledFont`:
* Add :meth:`ScaledFont.get_ctm`
* Add :meth:`ScaledFont.get_font_matrix`
* Add :meth:`ScaledFont.get_font_options`
.. _v1.11.1:
1.11.1 - 2017-04-12
-------------------
This release fixes an ABI breakage. I missed that the original pycairo master
had already broken ABI compared to 1.10.0.
.. _v1.11.0:
1.11.0 - 2017-04-09
-------------------
This version is based on the Python 2 version of pycairo 1.10.0 and is API/ABI
compatible with both py2cairo 1.10.0 and py3cairo 1.10.0.
General Changes:
* Requires cairo 1.10.2+
* Switch to semantic versioning
* Switch build system to distutils/setup.py (xpyb integration can be
enabled with passing ``--enable-xpyb`` to setup.py build)
* Moved to GitHub: https://github.com/pygobject/pycairo
New Features:
* Python 3 support (API/ABI compatible with py3cairo 1.10.0) including
support for :exc:`cairo.Error`, :meth:`cairo.ImageSurface.get_data` and
:meth:`cairo.ImageSurface.create_for_data`, which were missing in
py3cairo.
* :class:`cairo.RecordingSurface` (:fdobug:`36854`,
`Torsten Landschoff <t.landschoff@gmx.net>`__)
* :class:`cairo.Region`, :class:`cairo.RectangleInt` and
cairo.REGION_OVERLAP_*
(:fdobug:`44336`, `Bug Fly <mozbugbox@yahoo.com.au>`__)
Bug Fixes:
* Fix crash when read()/write() methods of file objects passed to pycairo
raise exceptions.
* Fix possible value truncation of handles passed to Win32Surface and
Win32PrintingSurface on 64bit Windows. :fdobug:`57493`
|
|
|
|
|
|
|
|
Problems found with existing digests:
Package fotoxx distfile fotoxx-14.03.1.tar.gz
ac2033f87de2c23941261f7c50160cddf872c110 [recorded]
118e98a8cc0414676b3c4d37b8df407c28a1407c [calculated]
Package ploticus-examples distfile ploticus-2.00/plnode200.tar.gz
34274a03d0c41fae5690633663e3d4114b9d7a6d [recorded]
da39a3ee5e6b4b0d3255bfef95601890afd80709 [calculated]
Problems found locating distfiles:
Package AfterShotPro: missing distfile AfterShotPro-1.1.0.30/AfterShotPro_i386.deb
Package pgraf: missing distfile pgraf-20010131.tar.gz
Package qvplay: missing distfile qvplay-0.95.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
|
|
|
|
until proven otherwise.
|
|
Fix PR pkg/48777
|
|
with the python 3.3 version, so remove PYTHON_SELF_CONFLICT and leave
it up to PLIST conflict detection.
|
|
|
|
|
|
Overview of changes from py2cairo 1.8.10 to py2cairo 1.10.0
===========================================================
General Changes:
py2cairo 1.10.0 requires cairo 1.10.0 (or later).
New Constants:
cairo.FORMAT_RGB16_565
Bug Fixes:
context.get_source().get_surface() fails #33013
Add support for './waf configure --libdir=XXX' #30230
Documentation Changes:
Upgrade to using Sphinx 1.0.7.
Include html documentation in the pycairo archive file.
Build Changes:
Update waf to 1.6.3
Other Changes:
Remove setup.py
Improve/simplify unicode filename support.
Improve/simplify unicode text support.
|
|
Recursively bump package revisions again after the "freetype2" and
"fontconfig" handling was fixed.
|
|
to address issues with NetBSD-6(and earlier)'s fontconfig not being
new enough for pango.
While doing that, also bump freetype2 dependency to current pkgsrc
version.
Suggested by tron in PR 47882
|
|
|
|
|
|
|
|
|
|
|
|
requested by Thomas Klausner.
|