All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Google Photos scopes have changed, some of them have been removed. The CLI will use the new ones. (#474)
- Bump
golang.org/x/text
to 0.19.0 (#479) - Bump
golang.org/x/term
to 0.25.0 (#478) - Bump
github.com/schollz/progressbar/v3
to 3.16.1 (#477)
- The deprecated
Album: auto:folderName
andAlbum: auto:folderPath
options have been removed. Use theAlbum: template:%_directory%
andAlbum: template:%_folderpath%
options instead. - The deprecated
Jobs: CreateAlbums
option has been removed. Use theJobs: Album
option instead.
- Support for the latest published Go version (1.23). This project will maintain compatibility with the latest two major versions published.
- Bump
gphotosuploader/google-photos-api-client-go/v3
to version 3.0.6 - Bump
schollz/progressbar/v3
to version 3.15.0 - Bump
spf13/cobra
to version 1.8.1
- Support for the latest published Go version (1.22). This project will maintain compatibility with the latest two major versions published.
- Bump
golang.org/x/oauth2
to version 0.17.0 - Bump
gphotosuploader/google-photos-api-client-go/v3
to version 3.0.5
- The
auto:folderName
andauto:folderPath
options are deprecated in favor of thetemplate:%_directory%
andtemplate:%_folderpath%
options. See documentation.
- Option to customize Album names by introducing
template
. Thanks to @WACKYprog (#431)
- Option to bind the HTTP server to address other than local (#426)
- Bump
golang.org/x/term
to version 0.16.0 - Bump
golang.org/x/sync
to version 0.6.0 - Bump
github.com/dvsekhvalnov/jose2go
to version 1.6.0 - Bump
github.com/hjson/hjson-go/v4
to version 4.4.0 - Bump
golang.org/x/oauth2
to version 0.16.0 - Bump
github.com/spf13/afero
to version 1.11.0 - Bump
github.com/gphotosuploader/google-photos-api-client-go/v3
to version 3.0.4
- Fix versioning on releases since the publication of 4.x version. (#413)
- Small typos in messages. Thanks, @tbm (#414)
- Bump
github.com/schollz/progressbar/v3
from 3.13.1 to 3.14.1 (#411) - Bump
golang.org/x/oauth2
from 0.13.0 to 0.14.0 (#409) - Bump
golang.org/x/sync
from 0.4.0 to 0.5.0 (#408) - Bump
github.com/spf13/cobra
from 1.7.0 to 1.8.0 (#407)
- New parameter
--redirect-url-hostname
to theauth
command in order to set the URL to use after the Google Photos authentication (#402)
- Bump
github.com/hjson/hjson-go/v4
from 4.3.0 to 4.3.1 (#400)
- Uploads are showing the data of upload instead of the filename in the Google Photos UI. Thanks @mikebilly (#398)
- Flag
--port
to configure the port where the authentication server will listen to when using theauth
command (#370) - New command to reset the already uploaded file tracker (
reset file-tracker
), which removes the internal database (#182) - New
Album
option in Job's configuration which allows to set a fixed album's name to upload objects to. (#393)
- The
CreateAlbums
option in Job's configuration is deprecated in favor of a newAlbum
option.
- Support for the latest published Go version (1.21). This project will maintain compatibility with the latest two major versions published.
- Implement a cache to reduce the number of requests to Google Photos API and reduce the risk of being quota limited.
- Implement a new command to list albums (
list albums
) created by this CLI. - Implement a new command to list media items (
list media-items
) uploaded by this CLI. It offers the possibility of filtering by album. - Progress bars to provide feedback to users on very long transactions.
- Bump
github.com/sirupsen/logrus
from 1.9.0 to 1.9.3 (#378) - Bump
github.com/spf13/afero
from 1.9.5 to 1.10.0 (#379) - Bump
github.com/gphotosuploader/google-photos-api-client-go/v3
from 3.0.1 to 3.0.2 - Bump
golang.org/x/oauth2
from 0.12.0 to 0.13.0 - Bump
golang.org/x/sync
from 0.3.0 to 0.4.0 (#377) - Bump
golang.org/x/term
from 0.10.0 to 0.13.0 (#376) - [CI] Bump
github.com/stretchr/testify
from 1.7.0 to 1.8.4 (#380) - [CI] Bump
actions/checkout
from 3 to 4 (#375) - [CI] Bump
goreleaser/goreleaser-action
from 4 to 5 (#374) - [CI] Bump
golangci
from 1.52.1 to 1.54.2
- Support for multiple concurrent workers. The bandwidth to upload items is shared, so we are not expecting any performance problem.
- Removed DEPRECATED configuration parameters from previous versions.
- Support for the latest published Go version (1.21). This project will maintain compatibility with the latest two major versions published.
- Client cache for albums to reduce the number of requests to Google Photos API
- Bump
github.com/sirupsen/logrus
from 1.8.1 to 1.9.3 - Bump
github.com/spf13/afero
from 1.8.2 to 1.10.0 - Bump
golang.org/x/oauth2
from 0.12.0 to 0.13.0 - Bump
golang.org/x/sync
from 0.3.0 to 0.4.0 - Bump
golang.org/x/term
from 0.10.0 to 0.13.0 - Bump
github.com/99designs/keyring
from 1.2.1 to 1.2.2 - Bump
github.com/gphotosuploader/google-photos-api-client-go/v2
from 2.4.0 to 2.4.2 - Bump
github.com/schollz/progressbar/v3
from 3.8.6 to 3.13.1 - Bump
github.com/spf13/cobra
from 1.4.0 to 1.7.0 - Bump
golang.org/x/oauth2
from v0.0.0-20220309155454-6242fa91716a to 0.13.0 - Bump
golang.org/x/sync
from v0.0.0-20210220032951-036812b2e83c to 0.4.0 - Bump
golang.org/x/term
v0.0.0-20210927222741-03fcf44c2211 to 0.13.0 - Bump
google.golang.org/api
from v0.74.0 to 0.148.0
- Support for the latest published Go version (1.20). This project will maintain compatibility with the latest two major versions published.
- Restrict allowed SecretsBackendTypes to the ones supported by the CLI. (#347)
- Support for previous Go version (1.18).
- Support for the latest published Go version (1.19). This project will maintain compatibility with the latest two major versions published.
- Once Go 1.19 has been published, previous Go 1.17 support is deprecated.
- The command
auth
initiates the Google authentication to get an OAuth 2.0 token. It should be used the first time that the CLI is configured. See documentation.
- Google deprecates the OAuth 2.0 authentication based on out-of-band tokens. (#326)
- Support for the latest published Go version (1.18). This project will maintain compatibility with the latest two major versions published.
- Dependency has been updated, so potential bugs have been fixed.
- Once Go 1.18 has been published, previous Go 1.16 support is deprecated.
- Command
release
in the Makefile. We are using goreleaser GitHub action now.
- Files are sorted before being uploaded. This will only be true for the files uploaded to an empty albums. (#301)
- Support for the latest published Go version. This project will maintain compatibility with the latest two major versions published.
- Once Go 1.17 has been published, previous Go 1.15 support is deprecated.
- Using environment var
GPHOTOS_CLI_TOKENSTORE_KEY
, it was not possible to set an empty key. Now, it is.
- Reduce the cost of tracking already uploaded files by bringing back file last modification time check (#306)
- Keychain backend not working on macOS. Thanks to @mlangenberg (#302)
- Removes retry when Google Photos requests quota limit has been reached. (#290)
- Removes retry when Google Photos requests quota limit has been reached. (#248)
- Add support for
go v1.16
. - Bump
golangci-lint
tov1.39.0
.
- Not possible to enter a passphrase - panic: crypto/hmac: hash generation function does not produce unique values (#294)
- Remove support for
go v.1.14
.
- Tagged extension matches with uppercase file extensions. (#283)
This is a major upgrade, so it has some non-backwards compatible changes
- Progress bar when uploading files.
- Configuration, wo/ sensible data, is printed when debug is enabled. (#270)
- Configuration validation. The cli validates the configuration data at starting time.
- Information messages to bring more context at runtime. (#260)
Jobs.MakeAlbums
configuration setting has changed toJobs.CreateAlbums
. Valid values areOff
,folderName
andfolderPath
.- Reduce the number of calls to the API when uploading files. It's using less than 50% of calls than before.
- Move to
golang.org/x/term
fromgolang.org/x/crypto/ssh/terminal
, due to deprecation. - Some parts of the code have been refactored to make cleaner code and increase testability.
Jobs.Account
configuration setting has been changed toAccount
. Multiple Google Photos accounts are not supported. (#231)- Bump
google-photos-api-client-go
fromv2.0.0
tov2.1.3
. It improves performance. (#259) - Bump
golangci-lint
from1.30.0
to1.34.1
.
Jobs.MakeAlbums
configuration setting. UseJobs.CreateAlbums
instead. See configuration documentation.Jobs.Account
configuration setting. UseAccount
instead. See configuration documentation.
- '~' is not expanded when reading file. (#268)
- Multiple Google Photos account support has been removed. You can use multiple configuration files in the same application folder. (#231)
- Bump
google-photos-api-client-go
fromv2.0.0
tov2.0.1
.
- Media item creation was failing when Google Photos was reporting errors on media creation. (#262)
This is a major upgrade, and it has some non-backwards compatible changes:
includePatterns
&excludePatterns
configuration options have changed.includePatterns
has a new default (_IMAGE_EXTENSIONS_
).uploadVideos
configuration option has been removed.
- Two new tagged patterns have been added:
_IMAGE_EXTENSIONS_
, matching supported image file types, and_RAW_EXTENSIONS_
, matching supported RAW file types. (#249) - Retry management. It's implementing exponential back-off with a maximum of 4 retries by default. (#253)
includePatterns
&excludePatterns
configuration options have changed. It's using a new format, please review de configuration documentation.- By default, if
includePatterns
is empty,_IMAGE_EXTENSIONS_
will be used. (#249) - Bump
google-photos-api-client-go
fromv2.0.0-beta-1
tov2.0.0
.
- Symlinks are now supported when scanning a folder. (#190)
Note: This application does not terminate if there are any non-terminating loops in the file structure.
includePatterns
works as expected, with a clearer (I hope so) format. (#152)
- Deprecated
uploadVideos
configuration option. It was deprecated in v0.4.0.
GPHOTOS_CLI_TOKENSTORE_KEY
env var could be used to read token store encryption key from. This allows you to run the CLI non-interactively. (#224)
- Fix homebrew tap creation. (#233)
- Internal packages have been moved to
internal/
folder to discourage its usage. - Bump
google-photos-api-client-go
fromv1.1.5
tov2.0.0-beta-1
.
- Fix duplicated albums creation. (#192)
- Flag
--dry-run
topush
command. It's useful to validateincludePatterns
andexcludePatterns
configuration. (#216)
- The
init
command setsdeleteAfterUpload: false
as default value. (#214) - CI has been moved to GitHub actions (previously was drone.io).
- Bump
gphotosuploader/googlemirror
fromv0.3.7
tov0.4.0
. - Bump
99designs/keyring
fromv1.1.2
tov1.1.5
.
- Update CI/CD minimum version to Go 1.13.
- Bump github.com/gphotosuploader/googlemirror to v0.3.7.
- File upload on album creation error. Thanks to @albertvaka (#212)
- Bump github.com/int128/oauth2cli to v1.12.1 (#206)
- Bump golang.org/x/oauth2 to v0.0.0-20200107190931-bf48bf16ab8d (#205)
- Fix (temporary) OAuth broken process (#181)
- Updated some dependencies
- Fix issue when installing CLI with
go get
. (#183)
- Fix
init
command error when it was used with root folders. (#172)
- Fix inconsistent use of
folderName
configuration option. (#170)
- Fix issue that hung the application when the
results
queue was full. This happened every time the number of files to upload was higher than 10x number of concurrent processes. (#167)
- New command
auth
to authenticate against Google Photos. It's useful to refresh authentication tokens. (#125)
This is a major upgrade, and it has several non-backwards compatible changes. See more details below.
- New option for Album creation:
use: folderPath
will use the full folder path as Album name. See config documentation. (#150) - New flags to control CLI verbosity:
--silent
suppress all logs except Fatal ones,--debug
enable a lot of verbosity to logs. - CONTRIBUTING guide line has been added.
- New Logger package to improve log readability.
- ATTENTION: To upload items, you must run
gphotos-uploader-cli push
. The newpush
command substitutesgphotos-uploader-cli
, that was working in previous versions. - ATTENTION: New default config directory:
~/.gphotos-uploader-cli
. Copy your old configuration into the new folder or use--config ~/.config/gphotos-uploader-cli
in every call. - Default log verbosity is now
info
level, use--debug
if you want more verbose output. - README has been updated fixing some typos.
- Once Go 1.13 has been published, previous Go 1.11 support is deprecated. This project will maintain compatibility with the last two major versions published.
- Configuration parameter
uploadVideos
has been deprecated in favor of_ALL_VIDEO_FILES_
tagged pattern. See configuration documentation for details.
- Fix issue uploading photos without the correct file name. (#158)
- Fix issue uploading photos multiple times and ignoring others. (#160)
- Update dependencies to newer versions: gphotosuploader/google-photos-api-client-go v1.1.2 and int128/oauth2cli to v1.7.0.
- Update golangci linter to version 1.20.0.
App
package to deal with specific application settings.
- Remove
build
from a version. Nowversion
has all the tag+build information.
- Fix duplicated album creation. (#135)
- Fix exit code on clean executions. (#137)
- Fix panic when an unexpected error on media item creation was raised. (#110)
- Update
gphotosuploader/google-photos-api-client-go
to v1.0.7.
- Fix never ending upload due to upstream bug gphotosuploader/google-photos-api-client-go#19. (#129)
- Fix linter warning on
datastore/tokenstore/repository_keyring.go:100
. - Fix Codebeat settings.
- Updated
int128/oauth2cli
to version v1.5.0 and improve messages in logs. See int128/oauth2cli#3.
- Fix panic when a very big file was uploaded. It was solved in upstream gphotosuploader/google-photos-api-client-go#17. (#127)
- Coverage reports in codecov service.
- Updated
google-photos-api-client
to version v1.0.4 to help with broken album creation. (#19)
- Fix duplicated album creation due to a concurrency problem. (#19)
- Uploads can be resumed. This will help upload large files or when connection has fails. Thanks to @pdecat.
- Fix token storing when expired token has been refreshed. See comments on #107.
- Fix typos in CHANGELOG.
- Google Auth expired token refresh. Once token is expired,
gphotos-uploader-cli
will try to refresh the token without user intervention. NOTE: First time you use this version, you should re-authenticate in order to get the token that allows token refresh. (#103) - Add
--config
flag to specify the folder where configuration is kept. (#104)
- Moved CI/CD platform from Travis to Drone.io. It has reduced the time to CI by a half.
deleteAfterUpload
option has been reactivated, it was removed on v0.4.0. If you use this option in config file files will be deleted from local repository after being uploaded to Google Photos. (#25)
- This repository has transferred to GPhotos Uploaders organization, so all imports have been updated to the new organization's URL.
- Removed some useless log lines. There is still too much.
- Fix issue #97 "New gnome keyring store created on each launch". To solve this issue a new
serviceName
has been changed. NOTE: Once you use this version, a new Gnome keyring will be created, so credentials should be supplied again. (#97)
- Fix CI release pipeline to fix an application version (#94). The Last version was still broken on CI.
- Add Homebrew tap to allow users to install
gphotos-uploader-cli
using Homebrew. See install section.
- Fix CI release pipeline to fix an application version (#94)
- Add two configuration options to include (
includePatterns
) and exclude (excludePatterns
) files to be uploaded. See configuration documentation for details.
- Reduce memory footprint simplifying objects overhead
- Configuration parameter
uploadVideos
is now usingincludePatterns
andexcludePatterns
instead of detecting video format. ATTENTION: This option will be deprecated in the future in favor of_ALL_VIDEO_FILES_
tagged pattern. See configuration documentation for details.
- Fix folder path typo on secrets backend storage
- ATTENTION:
deleteAfterUpload
option has been temporarily removed. So no local file is removed bygphotos-uplaoder-cli
. See issue #25 for more details.
- Add
go get
installation method to README
- Update
github.com/gphotosuploader/google-photos-api-client-go
to v1.0.1 - Update
github.com/gphotosuploader/googlemirror
to v0.3.2
- Update configuration documentation to add
SecretsBackendType
(#83) - Typo on README
- Move some dependencies to the new gphotosuploader organization
make test
is not as verbose as before. To make it easier to see if there is an error
- Removed some useless and local vendor files
- Support for different secret backends. (#15, #41, #50, #51 and #52)
- Added test to completeuploads package
- Document code in a more complete way
- Add
google.golang.org/api/photoslibrary
as vendor library, due to Google's announcement (#53) - The
tokenstore
library has been modified to allow new secrets backends
- Fix installation instructions (#72)
go get
installation method has been removed.
- Fix Go Report Card issues
- Support 5 concurrent uploads: reduce API calls, speed things up (#45)
- Added this changelog file
- Update github.com/h2non/filetype from v1.0.5 to v1.0.8 (#60)
- Fix mismatched type files (#38)
- Fix goreleaser configuration (remove a deprecated statement)
- Update Getting started documentation
- Remove snap application publication (someone has stolen our app name)
- goreleaser will be in charge of publishing binaries after the new release is done