All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
tests
: Useself.subTest()
whenever possible, to clearly mark separate tests.- Replaced
flake8
andblack
withruff
.ruff check
is also automatically run withhooks
. - Types are now declared in
PascalCase
, with explicit hinting oftyping.TypeAlias
.
- Fixed aliases not calling their respective functions. This was because when using
dest
with a set of sub-parsers,dest
could be filled by both the exact sub-parser or its aliases. I tried to match against the sub-parser name only. For more details, check out commit 74e494af2266b7315005270b102ae07bbcc11cb9.
- Bumped dependencies, primarily
idna
to3.7
.
- Python code is now formatted with
black
. - Users can now execute the module with
python3 -m gitea_api_tools
as an alternative to thepoetry
setup. - Combined
gitea_api_tools/language/
withpackage.py
, sincelanguage
has only worked with packages. - Instead of using a dummy argument, the main command now uses
dest=
in the sub-parser for identifying the executed sub-command.
types-request
was added as a dependency, but it is actually only a dev dependency.
- All the individual scripts are now deprecated. Their functionality has been pulled out to (sub)modules within
gitea_api_tools/gitea/
andgitea_api_tools/package
. Although the scripts have been updated to work with the new modules, no more work will be done on these scripts, and they will be removed on the next major update.
- Added new sub-command
gitea-api configure
. This command allows users to interactively configure settings. - Added a new document for
gitea-api
under docs.
- The
config.py
module is now a full-fledged library/module.- Individual parts have been split into new scripts (
logging
,paths
). This split has allowed me to create the aforementioned sub-commandconfigure
.
- Individual parts have been split into new scripts (
- Bumped dependencies, including
urllib3
to >=1.26.18.
- Removed
requirements.txt
- this project has been usingpoetry
for awhile.
- Added support for OS-dependent configuration directories. For Linux (and most likely Cygwin), XDG directories are supported. For Windows, approximate analogs are used. MacOS is currently unsupported, as I have no idea which directories apply.
- Configuration is now strictly in the OS-dependent configuration directories as listed above.
- The user configuration is now represented as an object (
config.Config
), simplifying validation and writing/saving. - Script modules were moved to more descriptive names:
gitea
contains all Gitea-related functionality.language
contains programming language-specific functions for Gitea.package.py
is all about packages (formerly dependencies).
- All instances of "dependencies" in the new
package.py
were replaced with "packages".
- Added
get_python_dep_repos
, a script to find all repositories that use a provided dependency. It is a more general script thanget_outdated_python_deps
. - Added
get_deploy_keys
, a script to view all deploy keys in use along with their public keys and repositories in use.
- This project is now managed by
asdf-vm
,direnv
, andpoetry
. - Moved project scripts and configuration to
gitea_api_tools
. scan_python_deps
was renamedget_outdated_python_deps
.- Made
utils
a sub-module.
- Added a new script
get_user_id.py
for retrieving and optionally storing the user's ID.
- Renamed
main.py
toscan_python_deps.py
so that additional tools may be added in the future. - In
scan_python_deps.py
:- Switched to using
argparse
over baresys.argv
.
- Switched to using
utils.MismatchedDependency
now inherits fromValueError
instead ofBaseException
, as it more closely matchesValueError
in intent.
- In
scan_python_deps.py
:- Fixed crash when a dependency could not be parsed in the expected format.
- Split only newlines when parsing dependencies, not any white-space.
- When a dependency format mismatches, the affected repository will be printed to output.
- Fixed code to comply with
mypy
andflake8
.
- Added better version comparisons via
utils.Version
.
- Fixed incorrect version regex. (Failed on e.g.
10.10.10
) - Adjusted conditional statement in
config.py
so thatflake8
would not complain about line length.
- Initial version