./net/py-lexicon, Manipulate DNS records on various DNS providers

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.17.0, Package name: py311-lexicon-3.17.0, Maintainer: pkgsrc-users

Lexicon provides a way to manipulate DNS records on multiple DNS
providers in a standardized way. Lexicon has a CLI but it can
also be used as a python library.


Required to run:
[textproc/py-yaml] [devel/py-setuptools] [devel/py-requests] [security/py-cryptography] [devel/py-future] [net/py-tldextract] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 151.068 KB

Version history: (Expand)


CVS history: (Expand)


   2023-11-08 18:34:34 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lexicon: updated to 3.17.0

3.17.0

Added

New method to determine the actual zone name for a given FQDN. Historically it \ 
was an extraction of the second-level domain given well-known TLDs (eg., \ 
domain.net for www.domain.net) using tldextract, and usage of --delegated option \ 
to enforce a specific zone name that is useful for third-level domains hosted on \ 
a specific zone (eg., sub-zone sub.domain.net delegated from zone domain.net). \ 
It is now possible to use the --resolve-zone-name flag on Lexicon client to \ 
trigger an actual resolution of the zone name from a given FQDN using live DNS \ 
servers by leveraging dnspython utilities. Most of the time this makes \ 
--delegated useless, since Lexicon will be able to guess the correct zone name.
   2023-10-28 21:57:26 by Thomas Klausner | Files touched by this commit (516) | Package updated
Log message:
python/wheel.mk: simplify a lot, and switch to 'installer' for installation

This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using wheel.mk and bump their PKGREVISIONs.
   2023-10-21 19:53:18 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lexicon: updated to 3.16.1

Lexicon v3.16.1

Added

Add support to Python 3.12.

Modified

Support older versions of requests (<2.27.0) in ovh provider.
   2023-10-15 09:52:52 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lexicon: updated to 3.16.0

3.16.0

Removed

Drop support for Python 3.7
   2023-10-14 12:48:51 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lexicon: updated to 3.15.1

3.15.1 - 13/10/2023

Modified

Protect ovh provider against invalid response bodies that are returned sometimes \ 
by OVH APIs.
   2023-10-04 14:13:58 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-lexicon: updated to 3.15.0

3.15.0

Added

Add pyotp Python dependency in Lexicon to help implementing OTP (one-time \ 
password) on providers whose API supports this kind of authentication.
Add OTP support on hover provider, with a new flag named --auth-totp-secret.
Add type marker py.typed to inform types checkers about availability of type \ 
annotations in Lexicon codebase.

Modified

Fix and modernize ReadTheDoc documentation build.
Better error management and resource cleanup when Client is used as a context \ 
manager.

Removed

Stop using cryptography in providers where only hashing is needed.
   2023-08-25 17:25:45 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-lexicon: updated to 3.14.1

Lexicon v3.14.1

Add back declared support to Python 3.7 for few cycles
   2023-08-13 12:36:32 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-lexicon: updated to 3.14.0

3.14.0 - 13/08/2023

Added

New way to invoke Lexicon as a library: lexicon.client.Client becomes a context \ 
manager. When invoked with the with keyword, it will provide an operation object \ 
that embeds the target provider fully authenticated (authenticate method called \ 
on the Provider). This operation object gives access to four methods: \ 
create_record, update_record, delete_record and list_records. These methods can \ 
be invoked instead of the old execute method to execute a specific action on the \ 
DNS zone. In this case, type, name, content fields do not need to be set in the \ 
config anymore, since they are passed directly as arguments to the new methods. \ 
Upon context manager closing, the cleanup method defined in the Provider is \ 
ensured to be called. See the README file of the project for an example of how \ 
to use this new approach.
Python warnings are emitted from the code to alert about the deprecations listed \ 
below.

Modified

Former NAMESERVER_DOMAIN variable and provider_parser function that had to be \ 
defined in each provider module are respectively migrated to get_nameservers and \ 
configure_parser static methods in each Provider class. They are defined as \ 
abstract in the interface and must be implemented in the concrete classes.
Former private methods _create_record, _modify_record, _delete_record and \ 
_list_records are migrated to their public counterpart create_record, \ 
modify_record, delete_record and list_records in each Provider class. These are \ 
the new abstract methods for each action that need to be implemented.
Method lexicon.client.Client.execute is deprecated and will be removed in Lexicon 4.
Package lexicon.providers, containing the actual provider implementations, is \ 
migrated to lexicon._private.providers. The provider implementations are not \ 
supposed to be used directly, please use lexicon.client.Client instead with the \ 
new methods described above. Package lexicon.providers stubs to \ 
lexicon._private.providers to ease the migration path, but it is deprecated and \ 
will be removed in Lexicon 4.
Module lexicon.providers.base, that contains the Provider interface to \ 
implement, is migrated to module lexicon.interfaces. Module \ 
lexicon.providers.base stubs to lexicon.interfaces to ease the migration path, \ 
but it is deprecated and will be removed in Lexicon 4.
Modules lexicon.cli, lexicon.parser and lexicon.discovery are migrated to the \ 
private package lexicon._private as they are not part of the public API. Old \ 
modules stubs to the new modules in the private package lexicon._private to ease \ 
the migration path, but it is deprecated and will be removed in Lexicon 4.
Update documentation, in particular the developer guide, to take into account \ 
the new architecture of the code to implement a new Provider.
Functional codebase in /lexicon folder is moved in /src/lexicon folder to comply \ 
with modern Python project layouts. Tests are migrated to /tests folder.

Removed

Drop support for Python 3.7