diff --git a/README.md b/README.md index a727f54d6..849e19e03 100644 --- a/README.md +++ b/README.md @@ -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: - - -* 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) @@ -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: + + +* 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. diff --git a/READMErb.md b/READMErb.md index ef0da432c..c41cc870c 100644 --- a/READMErb.md +++ b/READMErb.md @@ -1,4 +1,4 @@ -# PyMuPDF 1.23.0 +# PyMuPDF 1.23.0rc1 This wheel contains MuPDF shared libraries for use by PyMuPDF. diff --git a/changes.txt b/changes.txt index f6959d38c..4e119b360 100644 --- a/changes.txt +++ b/changes.txt @@ -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 `_: fritz.utils.scrub AttributeError Annot object has no attribute fileUpd inside - * * **Fixed** `#2533 `_: get_texttrace returned a incorrect character bbox - * * **Fixed** `#2537 `_: Validation when setting a grouped RadioButton throws a RuntimeError: path to 'V' has indirects + * **Fixed** `#2542 `_: fritz.utils.scrub AttributeError Annot object has no attribute fileUpd inside + * **Fixed** `#2533 `_: get_texttrace returned a incorrect character bbox + * **Fixed** `#2537 `_: Validation when setting a grouped RadioButton throws a RuntimeError: path to 'V' has indirects * Other changes: diff --git a/docs/version.rst b/docs/version.rst index f92b641f9..83d1de3a0 100644 --- a/docs/version.rst +++ b/docs/version.rst @@ -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**. diff --git a/fitz/version.i b/fitz/version.i index bfb33794e..9bcee3728 100644 --- a/fitz/version.i +++ b/fitz/version.i @@ -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") %}