Skip to content

Merge 0.11#207

Merged
jelmer merged 30 commits intomainfrom
merge-0.11
Mar 18, 2026
Merged

Merge 0.11#207
jelmer merged 30 commits intomainfrom
merge-0.11

Conversation

@jelmer
Copy link
Owner

@jelmer jelmer commented Mar 18, 2026

No description provided.

anlambert and others added 30 commits March 6, 2026 11:27
This is useful when testing on windows as subversion DLLs are not
necessarily located along the subvertpy extension modules and their
paths must be explicitely registered using os.add_dll_directory.
When compiling with Visual Studio, there were some integer overflow
when parsing Python integers and storing them as apt_size_t
leading to unexpected crashes when applying text delta.

Convert those to Py_ssize_t instead of unsigned long to fix the
observed crashes.
When installing subversion using vcpkg to build subvertpy on windows,
some libraries are prefixed by lib so ensure to detect them.

Do not try to execute apr-1-config and apu-1-config on windows as
these tools are not available for that platform when using vcpkg.

Add libapr and libaprutil in the deep depdencies list.
Simplify pythonpackage workflow by relying on platform package managers
to install the subversion libraries and their dependencies.

Remove build for dead snakes and update Python versions to the ones that
are currently still supported (3.10 to 3.14).

Bump actions to their latest version.

Add a workflow to build subvertpy on debian unstable in order to check
extension modules compilation with latest GCC version.
Python 3 does not have tp_print in PyTypeObject.

The field is called tp_vectorcall_offset now, of type Py_ssize_t.
Current compilers treat using NULL as an integer constant as a type
error, so this change fixes a build problem with those compilers.

Adapted from 4e64e3b.
Some maintenance for subvertpy v0.11.0 and add binary wheels build plus deployment
_ra.c:
- Fix NULL dereference in pyify_lock when lock is NULL (e.g. during unlock)
- Fix GIL handling in py_revstart_cb/py_revfinish_cb: acquire GIL before
  calling Python API functions
- Fix memory leak: Py_DECREF py_revprops in replay callbacks
- Fix uninitialized variable idx in ra_unlock
- Convert do_update, do_switch, do_diff, replay, replay_range,
  change_rev_prop, mergeinfo, get_file_revs to METH_VARARGS|METH_KEYWORDS

client.c:
- Fix client_export format string: native_eol used 'b' instead of 'z'
- Fix client_list kwnames: missing "include_externals" entry
- Fix client_cat kwnames: missing "expand_keywords" entry
- Fix client_update format string: missing 'b' for make_parents
- Convert client_delete, client_propset, client_propget to support keywords

repos.c:
- Fix GIL bug in py_pack_notify: acquire GIL before calling Python API
- Convert repos_create to METH_VARARGS|METH_KEYWORDS

wc.c:
- Fix get_update_editor: missing &diff3_cmd in PyArg_ParseTupleAndKeywords,
  causing all subsequent parameters to be shifted by one position
- Fix crawl_revisions: missing &cancel variable for format specifier
- Fix walk_status: extra 'O' format specifier with no matching variable
Fix multiple bugs in C bindings
Verify that propget works correctly with file:// URLs and absolute
filesystem paths, not just relative paths. Closes #35.
Add tests for client.propget() with URLs and absolute paths
@jelmer jelmer enabled auto-merge March 18, 2026 01:05
@jelmer jelmer disabled auto-merge March 18, 2026 21:50
@jelmer jelmer merged commit cfc3a96 into main Mar 18, 2026
53 of 84 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants