Skip to content

Commit

Permalink
Updated version to 1.23.0rc1 and updated release date.
Browse files Browse the repository at this point in the history
Also moved info about rebased implementation lower down in readme.
  • Loading branch information
julian-smith-artifex-com committed Aug 10, 2023
1 parent de53916 commit e8b0e09
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 86 deletions.
124 changes: 52 additions & 72 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,79 +1,9 @@
# PyMuPDFrp 1.23.0
# PyMuPDF 1.23.0rc1

![logo](https://artifex.com/images/logos/py-mupdf-github-icon.png)


Release date: August 9, 2023


# Warning - alpha release.

**This is an alpha release adding a new "rebased" implementation of
PyMuPDF.**

The rebased implementation uses the [MuPDF C++ and Python
APIs](https://mupdf.readthedocs.io/en/latest/language-bindings.html) instead of
the MuPDF C API.


## Installation

* The wheel name of this experimental release is `PyMuPDFrp`, not `PyMuPDF`.

* Install with:

pip install PyMuPDFrp

This will automatically install a second wheel called `PyMuPDFrb`.

*
The use of separate `PyMuPDFrb` wheels reduces space requirements on
pypi.org because it is independent of Python version and works with
both classic and rebased implementations, so a release only needs one
`PyMuPDFrb` for each OS.


## Usage

Use the classic implementation with:

import fitz

Use the new rebased implementation with:

import fitz_new as fitz


## Benefits

* Access to the underlying MuPDF Python API.

The MuPDF Python API is available as `fitz_new.mupdf` - this is not possible
with native PyMuPDF, and can give useful flexibility to the user.

* Simplified implementation.

The underlying MuPDF C++/Python APIs' automated reference counting, automatic
contexts, and native C++ and Python exceptions, make the implementation
simpler than classic PyMuPDF.

This also simplifies development of new PyMuPDF functionality.

* Optional tracing of MuPDF C function calls using environment variables.

This is a feature of the MuPDF C++ and Python APIs, which can be
very useful during development and when reporting bugs. See:
<https://mupdf.readthedocs.io/en/latest/language-bindings.html#environmental-variables>

* Possible future support for multithreaded use.

Classic PyMuPDF is explicitly single-threaded, but the MuPDF C++/Python APIs
have automated per-thread contexts.


## Known issues

* On Windows with Python-3.10, `fitz_new` seems to segv on startup.
Release date: August 10, 2023


On **[PyPI](https://pypi.org/project/PyMuPDF)** since August 2016: [![Downloads](https://static.pepy.tech/personalized-badge/pymupdf?period=total&units=international_system&left_color=black&right_color=orange&left_text=Downloads)](https://pepy.tech/project/pymupdf)
Expand Down Expand Up @@ -156,6 +86,56 @@ Older wheels - also with support for older Python versions - can be found [here]

> **Note:** If `pip` cannot find a wheel that is compatible with your platform, it will automatically build and install from source using the PyMuPDF sdist; this requires only that SWIG is installed on your system.

# Alternative 'rebased' implementation.

A new implementation of PyMuPDF is available as module `fitz_new`.

*
Uses the [MuPDF C++ and Python
APIs](https://mupdf.readthedocs.io/en/latest/language-bindings.html)
instead of the MuPDF C API.

* Use as a drop-in replace with: `import fitz_new as fitz`

## Benefits

* Access to the underlying MuPDF Python API.

The MuPDF Python API is available as `fitz_new.mupdf` - this is not possible
with native PyMuPDF, and can give useful flexibility to the user.

* Simplified implementation.

The underlying MuPDF C++/Python APIs' automated reference counting, automatic
contexts, and native C++ and Python exceptions, make the implementation
simpler than classic PyMuPDF.

This also simplifies development of new PyMuPDF functionality.

* Optional tracing of MuPDF C function calls using environment variables.

This is a feature of the MuPDF C++ and Python APIs, which can be
very useful during development and when reporting bugs. See:
<https://mupdf.readthedocs.io/en/latest/language-bindings.html#environmental-variables>

* Possible future support for multithreaded use.

Classic PyMuPDF is explicitly single-threaded, but the MuPDF C++/Python APIs
have automated per-thread contexts.


## Known issues

*
`import fitz_new` is known to fail with a SEGV on Windows with Python-3.10.

# Secondary wheel `PyMuPDFb`

Installation of PyMuPDF with pip will automatically install a second
wheel called `PyMuPDFb` containing Python-independent libraries.


# License and Copyright

PyMuPDF and MuPDF are available under both, open-source AGPL and commercial license agreements.
Expand Down
2 changes: 1 addition & 1 deletion READMErb.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PyMuPDF 1.23.0
# PyMuPDF 1.23.0rc1

This wheel contains MuPDF shared libraries for use by PyMuPDF.

Expand Down
23 changes: 14 additions & 9 deletions changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,26 @@ Change Log
==========


**Changes in version 1.23.0 (2023-08-09)**
**Changes in version 1.23.0rc1 (2023-08-10)**

*
Alpha release containing new "rebased" implementation of PyMuPDF as
Python module `fitz_new`.
* Contains a new "rebased" implementation of PyMuPDF.

The rebased implementation is available as Python module
`fitz_new`. It can be used as a drop-in replacement with `import
fitz_new as fitz`.

* Structured as two Python wheels, `PyMuPDFpy` and `PyMuPDFrb`.
*
Python-independent MuPDF libraries are now in a second wheel called
`PyMuPDFb` that will be automatically installed by pip.

* This release uses ``MuPDF-1.23.0-rc1``.
This is to save space on pypi.org - a full release only needs one
`PyMuPDFb` wheel for each OS.

* Bug fixes:

* * **Fixed** `#2542 <https://github.com/pymupdf/PyMuPDF/issues/2542>`_: fritz.utils.scrub AttributeError Annot object has no attribute fileUpd inside
* * **Fixed** `#2533 <https://github.com/pymupdf/PyMuPDF/issues/2533>`_: get_texttrace returned a incorrect character bbox
* * **Fixed** `#2537 <https://github.com/pymupdf/PyMuPDF/issues/2537>`_: Validation when setting a grouped RadioButton throws a RuntimeError: path to 'V' has indirects
* **Fixed** `#2542 <https://github.com/pymupdf/PyMuPDF/issues/2542>`_: fritz.utils.scrub AttributeError Annot object has no attribute fileUpd inside
* **Fixed** `#2533 <https://github.com/pymupdf/PyMuPDF/issues/2533>`_: get_texttrace returned a incorrect character bbox
* **Fixed** `#2537 <https://github.com/pymupdf/PyMuPDF/issues/2537>`_: Validation when setting a grouped RadioButton throws a RuntimeError: path to 'V' has indirects

* Other changes:

Expand Down
2 changes: 1 addition & 1 deletion docs/version.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----

This documentation covers **PyMuPDF v1.23.0** features as of **2023-08-09 00:00:01**.
This documentation covers **PyMuPDF v1.23.0rc1** features as of **2023-08-10 00:00:01**.

The major and minor versions of **PyMuPDF** and **MuPDF** will always be the same. Only the third qualifier (patch level) may deviate from that of **MuPDF**.

6 changes: 3 additions & 3 deletions fitz/version.i
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
%pythoncode %{
VersionFitz = "1.23.0" # MuPDF version.
VersionBind = "1.23.0" # PyMuPDF version.
VersionDate = "2023-08-09 00:00:01"
version = (VersionBind, VersionFitz, "20230809000001")
VersionBind = "1.23.0rc1" # PyMuPDF version.
VersionDate = "2023-08-10 00:00:01"
version = (VersionBind, VersionFitz, "20230810000001")
%}

0 comments on commit e8b0e09

Please sign in to comment.