Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
#
# EditorConfig Configuration file, for more details see:
# https://EditorConfig.org
Expand All @@ -12,7 +14,7 @@
root = true


[*] # For All Files
[*]
# Unix-style newlines with a newline ending every file
end_of_line = lf
insert_final_newline = true
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
name: pre-commit

on:
Expand All @@ -21,8 +23,8 @@ jobs:
name: linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: '3.13'
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd #v3.0.1
Expand Down
78 changes: 69 additions & 9 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
name: tests

on:
Expand Down Expand Up @@ -29,14 +31,15 @@ jobs:
- ["3.12", "py312"]
- ["3.13", "py313"]
- ["3.14", "py314"]
- ["3.15", "py315"]
- ["3.11", "docs"]
- ["3.11", "coverage"]

runs-on: ${{ matrix.os[1] }}
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: ${{ matrix.config[1] }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v7
with:
persist-credentials: false
- name: Install additional dependencies
Expand All @@ -45,8 +48,8 @@ jobs:
sudo apt update
sudo apt install -y ldap-utils slapd libldap2-dev libsasl2-dev
- name: Install uv + caching
# astral/setup-uv@7.1.3
uses: astral-sh/setup-uv@5a7eac68fb9809dea845d802897dc5c723910fa3
# astral/setup-uv@10.0.1
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d
with:
enable-cache: true
cache-dependency-glob: |
Expand All @@ -55,14 +58,71 @@ jobs:
python-version: ${{ matrix.config[0] }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Test
if: ${{ !startsWith(runner.os, 'Mac') }}
run: uvx --with tox-uv tox -e ${{ matrix.config[1] }}
- name: Test (macOS)
if: ${{ startsWith(runner.os, 'Mac') }}
run: uvx --with tox-uv tox -e ${{ matrix.config[1] }}-universal2
- name: Coverage
if: matrix.config[1] == 'coverage'
run: |
uvx coveralls --service=github
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build package artifacts
if: >
matrix.os[0] == 'ubuntu'
&& matrix.config[1] == 'py314'
run: |
rm -f dist/*
pip install -U packaging "setuptools >= 78.1.1,< 82" wheel twine
python setup.py sdist
python setup.py bdist_wheel

- name: Upload package wheel
if: >
matrix.os[0] == 'ubuntu'
&& matrix.config[1] == 'py314'
uses: actions/upload-artifact@v7
with:
name: Products.LDAPUserFolder.whl
path: dist/*whl

- name: Upload package source distribution
if: >
matrix.os[0] == 'ubuntu'
&& matrix.config[1] == 'py314'
uses: actions/upload-artifact@v7
with:
name: Products.LDAPUserFolder.tar.gz
path: dist/*gz

publish:
name: Publish to PyPI
runs-on: ubuntu-latest
# Only publish on tag pushes
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
# Wait for build jobs to complete
needs: [build]
environment:
name: pypi
url: https://pypi.org/p/Products.LDAPUserFolder
permissions:
contents: read
id-token: write # Mandatory for trusted publishing

steps:
- name: Download package artifacts
uses: actions/download-artifact@v8
with:
path: dist/
pattern: '*'
merge-multiple: true

- name: Display structure of downloaded files
run: |
ls -lR dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
with:
skip-existing: true
packages-dir: dist/
verbose: true
7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
*.dll
*.egg-info/
*.profraw
Expand Down Expand Up @@ -28,5 +30,6 @@ lib64
log/
parts/
pyvenv.cfg
share/
testing.log
var/
14 changes: 10 additions & 4 deletions .meta.toml
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
[meta]
template = "zope-product"
commit-id = "9fcd3d67"
commit-id = "1f2c8437"

[python]
with-windows = false
with-pypy = false
with-future-python = false
with-future-python = true
with-docs = true
with-sphinx-doctests = false
with-macos = false
with-free-threaded-python = false

[tox]
use-flake8 = true
Expand Down Expand Up @@ -51,3 +54,6 @@ build-extra = [
" - libldap2-dev",
" - libsasl2-dev",
]

[pypi]
trusted-publishing = true
24 changes: 20 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
minimum_pre_commit_version: '3.6'
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-case-conflict
- id: check-merge-conflict
- id: check-toml
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/pycqa/isort
rev: "7.0.0"
rev: "8.0.1"
hooks:
- id: isort
- repo: https://github.com/hhatto/autopep8
Expand All @@ -12,17 +23,22 @@ repos:
- id: autopep8
args: [--in-place, --aggressive, --aggressive]
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.0
rev: v3.21.2
hooks:
- id: pyupgrade
args: [--py310-plus]
- repo: https://github.com/isidentical/teyit
rev: 0.4.3
hooks:
- id: teyit
language_version: python3.13
- repo: https://github.com/PyCQA/flake8
rev: "7.3.0"
hooks:
- id: flake8
additional_dependencies:
- flake8-debugger == 4.1.2
- repo: https://github.com/sphinx-contrib/sphinx-lint
rev: v1.0.2
hooks:
- id: sphinx-lint
6 changes: 4 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Generated from:
# https://github.com/zopefoundation/meta/tree/master/config/zope-product
# DO NOT EDIT THIS FILE BY HAND. Generated with
# zope.meta (https://zopemeta.readthedocs.io/) from templates in
# https://github.com/dataflake/meta/tree/master/zope-product and
# https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

Expand Down
15 changes: 8 additions & 7 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ releases, see the file `HISTORY.txt` in this folder.

6.2 (unreleased)
----------------
- Add support for Python 3.15.


6.1 (2025-11-19)
Expand Down Expand Up @@ -108,8 +109,8 @@ releases, see the file `HISTORY.txt` in this folder.

- moved documentation to Sphinx

- sanitized buildout test script generation to always use the
``exportimport`` extra and always test the `GenericSetup`
- sanitized buildout test script generation to always use the
``exportimport`` extra and always test the `GenericSetup`
export/import support

- Add ``tox`` configuration to support automated testing
Expand All @@ -125,7 +126,7 @@ releases, see the file `HISTORY.txt` in this folder.
- ensure bind passwords used for the LDAP delegate and the user
folder do not get out of sync

- Refactor some definitions in the utils module to make them easier
- Refactor some definitions in the utils module to make them easier
to override (Patch by Godefroid Chapelle)

- Fixed a missing string conversion in getGroupedUsers (Patch by
Expand All @@ -134,14 +135,14 @@ releases, see the file `HISTORY.txt` in this folder.
- Fix python-ldap error when receiving sets instead of lists for
attributes to search on (Patch by Godefroid Chapelle)

- When comparing a login value to login values found on the LDAP
- When comparing a login value to login values found on the LDAP
server strip the login value first. This follows OpenLDAP behavior
which considers values as matches even with trailing or leading
which considers values as matches even with trailing or leading
spaces in the value query filter.
(https://bugs.launchpad.net/bugs/1060080)

- LDAPDelegate: When using a user from the Zope security machinery
for the purpose of finding a suitable bind DN and password for
- LDAPDelegate: When using a user from the Zope security machinery
for the purpose of finding a suitable bind DN and password for
connecting to a LDAP server, discard it when it's not been created
as the result of a real login and thus has an invalid password
(https://bugs.launchpad.net/bugs/1060112)
6 changes: 4 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<!--
Generated from:
https://github.com/zopefoundation/meta/tree/master/config/zope-product
DO NOT EDIT THIS FILE BY HAND. Generated with
zope.meta (https://zopemeta.readthedocs.io/) from templates in
https://github.com/dataflake/meta/tree/master/zope-product and
https://github.com/zopefoundation/meta/tree/master/src/zope/meta/zope-product
-->
# Contributing to dataflake projects

Expand Down
Loading
Loading