This file contains a brief summary of new features and dependency changes or releases, in reverse chronological order.
- ReformatOptimized the
gstore.repo.sync
function to dynamically adjust the number of worker processes based on the number of repositories, ensuring no unnecessary processes are created when tasks are fewer than available CPUs.
- Fixed handling of host assignment when a token is provided but no host is explicitly specified. Previously, the token was incorrectly used as both the token and the host in such cases.
- Dropped support for Python 3.8 due to end-of-life status. Python 3.8 reached its end-of-life date in October 2024, which means it will no longer receive bug fixes or security updates from the Python development team. As a result, the support for Python 3.8 was removed in order to ensure the ongoing security and stability of our package. Users who require Python 3.8 can continue to use older package versions that support it.
- Migrate project infrastructure to poetry.
- Bumped
furo
from 2022.12.7 to 2024.8.6. - Bumped
pygithub
from 1.58.0 to 2.5.0. - Bumped
gitpython
from 3.1.17 to 3.1.43.
- Corrected
furo
version definition insetup.py
.
- Dropped support for Python 3.7 due to end-of-life status. Python 3.7 reached its end-of-life date in June 2023, which means it will no longer receive bug fixes or security updates from the Python development team. As a result, I have removed support for Python 3.7 in order to ensure the ongoing security and stability of our package. Users who require Python 3.7 can continue to use older package versions that support it.
- Bumped
check-manifest
from 0.48 to 0.49. - Bumped
coverage
from 6.3.2 to 7.2.1. - Bumped
furo
from 2020.12 to 2022.12.7. - Bumped
gitpython
from 3.1.17 to 3.1.31. - Bumped
pygithub
from 1.57 to 1.58.0. - Bumped
pylint
from 2.13.5 to 2.16.2. - Bumped
pytest
from 7.1.1 to 7.2.1. - Bumped
sphinx
from 4.3.2 to 6.1.3.
- Introduced ability to specify the maximum number of concurrent processes to use when syncing.
- Reformat log entries to provide logs in a bit more readable format as well as process id (PID).
- Changed additional groups of dependencies declared in
setup.py
so thatdevelop
is superset now fortesting
anddocs
. - Remove dependencies from
develop
group which are not necessary for developing the package. - Used single
requirements.txt
file to declare project dependencies. Additional dependencies fromdevelop
,testing
anddocs
groups lives now insetup.py
ortox.ini
.
- Added missed files to the package contents.
- Don't include
tests
package in wheel. Previouslypip install gstore
used to install a top-level packagetests
. This was fixed. - Fixed package description.
- Replaced
pytest-cov
bycoverage[toml]
for code coverage measurement. - Bumped
pygithub
from 1.54.1 to 1.55.
- The
gstore.env
module was introduced to provide a convenient way to work with environment variables used by various functions withingstore
. - Added the following functions within
gstore.env
:lookup_token()
- lookup a personal access token in environment variables,get_host()
- get GitHub API hostname from environment variable,get_target()
- get base target to sync repos from environment variable.
- Moved
gstore.Client.TOKEN_NAMES
togstore.env.TOKEN_NAMES
. - Moved
gstore.args.get_token_from_env()
togstore.env.lookup_token()
.
- Improved
git.GitCommandError
message formatting for more accurate logging. - The program now correctly handle Control-C keyboard event and gracefully terminates.
gstore
will exit with a status of one when its is called without any argument and there are not enough environment variables for normal operation.- Calling program with an invalid token and without
--org
option no longer leads to abnormal program termination.
gstore.Client.__init__()
will raise nowgstore.client.ValidationError
when no token is provided.gstore.Client.resolve_orgs()
will raise nowgstore.client.InvalidCredentialsError
when provided token is invalid.
gstore
will exit with a status of one if there are critical errors during synchronization.gstore
will handle situations with invalid API token or organization name.
- Moved all the documentation to readthedocs.
- Fixed
gstore.args.get_token_from_env()
to properly get a token from environment variables or None if variables are not set.
gstore.Client.__init__()
, as well asgstore.Client.resolve_orgs()
will raise nowgstore.exceptions.InvalidCredentialsError
in case of incorrect credentials usage.gstore.models.Repository
now holdsgstore.models.Organization
.- Starting with v0.3.1 tests will be included in the PyPI package.
- Python < 3.7 is no longer supported.
- Changed the way to get repositories from specific organizations.
From now, to get repositories from specific organizations, list each of them
on the command line using the argument
--org
.
- Added
-o
as a short form of--org
argument. - Added ability to limit sync to the specified repositories using
-r
,--repo
option.
- Improved logging and error reporting.
- Improved local repo handling by checking the directory contents.
- Corrected log level on
--quiet
mode. - Fixed invalid local repo handling.
- Added ability to specify host for Github Enterprise.
- Show help message and exit when
gstore
is called without any argument and there are not enough environment variables for normal operation.
- Added
-V
,--version
arguments to print program's version information. - Added
-dumpversion
argument to print the version of the program and don't do anything else. - Added
-q
,--quiet
arguments to silence any informational messages except error ones
- Handling situations when the target for sync is a regular file or readonly.
- Provided ability to pass authentication token for github.com API requests via environment variables.
- Added
-v
argument support to enable verbose mode.
- The GitHub username is no longer used upon obtaining organizations list.
- Changed the way to communicate with GitHub API.
requests
library no longer used thanks toPyGithub
.
- Added better logging subsystem
- Bump GitPython version to fix a crash for users with
gitpython>=3.0.0, <3.0.6
. For more see: gitpython-developers/GitPython#983 .
- Renamed
GHS_DIR
environment variable toGSTORE_DIR
. - Renamed package name from
ghs
togstore
to avoid collision with the existing package with the same name.
- Added ability to use
GHS_DIR
as a sync base directory. - Added ability to omit target directory and use current working directory.
- Added ability to fetch objects and refs from an existent repository.
- Renamed package name from
ghsync
toghs
to avoid collision with the existing package with the same name.
- Initial release.