Releases: odeke-em/drive
Release v0.2.5(GetWellSoonJonathan)
This release features a bunch of new features as well as trying to improve user experience and power, plus a couple of bug fixes.
- fixed up situation when conflicts are encountered. This was reported by @tioteath in #222. What was happening was that due to clashes from children not being propagated properly upwards as well as a not so well defined error message, handling of conflicts seemed awkward. This was addressed by PR #244.
- fixed reverse sorting: This was reported by @arniotis in issue #252. This was also addressed by @arniotis in PR #251.
- installation for < go1.3 failing. This was reported by @Issam2204 in issue #223, as well as contributed to by @kleptog, @smarthimandrew. The issue was caused by a butterfly effect in an update to a dependency to the new OAuth2.0 client golang/x/oauth that was breaking for < go1.3. drive's README initially had go1.2 as the minimum version needed. This resulted in a need to update the README file as well. This was addressed in commit 1738dc8 of PR #256.
- missing indices were causing
push
to always declare need for modifications. This issue was reported and diagnosed by @js-ojus in issue #236. Previously drive never exposed a mechanism to refetch missing indices. This was addressed in PR #256. - cleaning out of indices on remote deletion operations. This was reported in #255. What happened was that previously, drive was not removing stale/no-longer-needed indices after file deletion after say
delete
ortrash
. This was causing clutter and a lot of files in the indices directory. This was addressed by PR #256. - index fetch & prune: This was an effect of looking at three different issues #236, #255 as well as noticing a huge amount of files in indices. This was addressed by PR #256. Now you can clean out your stale indices like this
$ drive index --prune
or fetch indices in specific paths e.g
$ drive index vines photos content/web/visitors
$ drive index --id 0CLu4lbUI9RTRM80k8EMoe5JQY2z
$ drive index --matches mp4 jpg fold
- improved search/addition of extra search options: This was reported in issue #242 and was addressed by PR #243. This introduced the ability to search and perform operations on matches during
list
,trash
,untrash
,pull
,push
e.g
$ drive list --skip-mime mp4,doc,txt
$ drive list --match-mime xls,docx
$ drive list --exact-title url_test,Photos
- empty file/folder creation. This was requested in issue #245 and then addressed by PR #246. You can now create empty files of specific mimeTypes e.g:
$ drive new --folder flux
$ drive new --mime-key doc bofx
$ drive new --mime-key folder content
$ drive new flux.txt oxen.pdf # Allow auto type resolution from the extension
or say you want to create 10 separate Google Docs
$ driev new --mime-key docs $(seq 1 10)
This release features a whole lot more of features and bug fixes, but most importantly way more user engagement. There have been numerous interactions with users and also ideas plus issue diagnoses which I think has been great. Also I'd like to give a special shout out to our Linux PPA volunteer @shaggytwodope for the hardwork even as he was hospitalized. Get well soon Jonathan!
I would like to thank everyone for the hard work, usage, issue reporting, support and everything.
Enjoy!
Release v0.2.4(MidSummer)
This release features a whole lot of features and new contributions:
- introduction of an md5sum command: This was requested by @arniotis in issue #225 . This was also fixed by @arniotis in PR #226. This allows for explicit retrieval of md5sums for files and even directories to a depth e.g:
$ drive md5sum Photos
$ drive md5sum --depth 3 openSrc flux
$ diff <(drive md5sum -r ~/driveAccount1) <(drive md5sum -r ~/driveAccount2)
Please see the README for more usage examples.
- fixed auth timeout errors + migrated dependencies from code.google.com to golang/x. This issue plagued drive with numerous timeouts first after 1 hour then hackily mitigated by extending the timeout to 10 hours. This was because refreshing was not happening. This was reported in issues #53, #110, #116, duplicated issue #193. This was addressed in PR #221.
- fixed drive --help: previously --h and -h were not being caught by the commandline parser. This was reported by @arnuschky in issue #45. It was also advoicated by @ikwyl6 and @dolohow. This was addressed by PR #219 as well as fork & fix of the commandline parser at odeke-em/command@076a2ad. Fixing this is important for improving user familiarity/experience given prior usage of other *NIX CLI programs for which
-h
and--help
are expected. - list sorting: This was requested by @CountryBumkin in issue #40. This was addressed by PR #224.
Sample usage
$ drive list --sort modtime,size-,version- Photos
$ drive list --sort modtime,size_r,version_r Photos openSrc
- explicit exporting when files have not changed: This was reported by @junghans in issue #180. The issue was that if exportable files weren't changed there wasn't a good way to export them explicitly since
--force
applies to all files. This was addressed in PR #230. - fixed error when replacing a regular file with a folder of the same name: This was reported by @arniotis in issue #227. It was addressed by @arniotis in PR #229 by reverting operation precedence sorting.
There have been a good number of new awesome contributions as you'll see above. I'd like to thank you for the patience, advocacy and time in raising and helping to fix these issues and make drive better. I also wanted to give a special shoutout to @arniotis for the hardwork and contributions made in just the first few days of discovering drive.
Thank you again everyone and enjoy!
- Binaries
- amd64
$ shasum -a 256 drive
07cea356585e039a749dea9a4a6a81111e221d052281cecf076e329093161821 drive
$ drive version
drive version: 0.2.4
Commit Hash: '4530cf8d59e1047cb1c005a6bd5b14ecb98b9e68'
Go Version: devel +2d9a50b Fri May 8 19:10:10 2015 +0000
OS: darwin/amd64
Release v0.2.3 (KeepGoing)
This release features mostly fixes and a couple of lessons learnt mostly from an education by the users of drive.
- Fixed emptyTrash: This was reported in issue #204 by @sulicz. The code got broken by not expanding on the params passed into the list args struct for traversing children hence a wrong child count was always returned and emptyTrash would always get aborted. This was addressed by PR #205.
- Push over 100%: This was reported in #207, self diagnosed and addressed by @4f0v3ny35. The end result was an education that improper access permissions probably caused multiple seeks and retries. Note: this issue seems to be a subset of open issue #177 so there might be something to learn from this. Also it has reminded me to make sure to check for readFrom access.
- nil pointer deference on http.Get fail: This was reported in #217 by @sselph. @sselph resolved this by showing to me the proper handling of Get by following by spec and result from Go's http library. @sselph however couldn't make a PR asap because they needed permission from the employer to contribute to this project in code. The diagnosis was enough however, for me to spin up a PR with the same thoughts. This was addressed by #218.
- mimeType fixes for diverse open document formats: This was reported in issue #215 by @GoGoris because lack of an explicit mimeType(derived by drive) was leaving mimeType resolution upto the Google Drive backend which processed such files as archives. This was addressed by PR #216.
- handling reads from named pipes: named pipes can potentially hang the program up. For now they are temporarily skipped/err on encounter until a simple way of user acknowledgement for named pipe reading can be introduced. This was reported in issue #208 and addressed by PR #209.
- Fixed result of --force on changes by ensuring that a noop gets converted to an addition and a conflict gets changed to a modification, no other operation gets modified. This was addressed by d76733e
Thank you everyone for the information, help, participation and for using drive!
Release v0.2.2 (CheersBurcu)
This release has a whole lot of features:
- Fixed desktop entries for Linux. This issue was reported by @Queuecumber in issue #165. The solution was derived from a consultation with @Queuecumber, @shaggytwodope, @dgvirtual, @IS-smcleod and myself. This issue was addressed by PR #195 for which @IS-smcleod gave me a review and feedback.
- SVG icons for desktop entry mime files for Linux. This was reported by @IS-smcleod in issue #198 and addressed also by @IS-smcleod with PR #197.
- Introduction of operations by id. This was requested in issue #190 and addressed by PR #200. Allows for users to do ops such as
$ drive delete --id 0Fwu9laYc9LTPY0N4d0hGUmNoMjQ 0PLK8laYcR8TPF0Mqd0hGRKNoMjU
$ drive trash --id 0Fwu9laYc9LTPY0N4d0hGUmNoMjQ 0PLK8laYcR8TPF0Mqd0hGRKNoMjU
$ drive pull --piped --id 0Fwu9laYc9LTPY0N4d0hGUmNoMjQ 0PLK8laYcR8TPF0Mqd0hGRKNoMjU
$ drive pull --id 0Fwu9laYc9LTPY0N4d0hGUmNoMjQ 0PLK8laYcR8TPF0Mqd0hGRKNoMjU
$ drive stat --id 0Fwu9laYc9LTPY0N4d0hGUmNoMjQ 0PLK8laYcR8TPF0Mqd0hGRKNoMjU
and many more uses, please take a look at the README for more information.
- More information about a file during stat-ing. This was added in PR #200.
In particular, the extra fields added are:- Filename
- OriginalFilename
- Owners
- LastModifyingUsername
- Starred
- Trashed
- ViewersCanDownload
And many more others.
Thank you everyone for the ideas, requests, issues and for using drive! There has been a whole lot of new interactions as well as contributions.
v0.2.2 Binary for ARM
$ uname -a # Compiled on
Linux raspberrypi 3.12.28+ #709 PREEMPT Mon Sep 8 15:28:00 BST 2014 armv6l GNU/Linux
Drop it inside the right path
$ mv drive-arm-binary $GOPATH/bin/drive
To verify integrity
$ sha256sum drive
67b7a0d0ebc63481ec658af252d580da8d5dd72094965f79cdba5d7325cdd9fa
$ drive version
drive version: 0.2.2
Commit Hash: '3865b920622e51934f712c464f2b78d00b8db927'
Go Version: go1.3.1
OS: linux/arm
v0.2.1 Binary for ARM
Due to some users not being able to install Go probably but being constrained being on a Raspberry PI, I've created an ARM binary.
Drop it inside the right path:
$ mv drive-arm-binary $GOPATH/bin/drive
To verify integrity
$ sha256sum drive
5269abe9bb1fb379d3ae6f602c4dedc342dd33a503f1bbde1ebcfde3d6eb2845
$ drive version
drive version: 0.2.1
Commit Hash: '8f11b79b30145e2c7bcf0428f9e91da605cd1877'
Go Version: go1.3.1
OS: linux/arm
Release v0.2.1 (FixesComeThrough)
This release features:
- Bug fixes:
- empty .driveignore file would return "" as a match clause for regex matching, hence would stop any match operations beginning from root "/". This was reported by @setempler in PR #178 and also addressed by @setempler in PR #178.
- list files shared with me: This was reported by @csaleman in issue #187. Passing flag
--shared
was deliberately turned off to manage listing. Reverted and fixed. Addressed by PR #189. - progress bar percentage bar overflow: this was happening for exported pulls. This issue was reported by @santirodrigo in issue #177. What was happening was that the size of exported files is unknown until download time so cannot be registered to the progress bar. However, for each download, the IO(read count) is registered. This then caused the overflow. Addressed by PR #182.
- respect IgnoreChecksum: making sure that IgnoreChecksum is passed in before checking for forbidden ops. The bug was introduced in commit ffcc48e. This issue reported offline in an email by Szokol Zsolt [email protected]. It got fixed by a94a184.
- README fix for checksum verification section: This was noticed by @solarnz and also addressed by @solarnz in PR #185.
- pull export fixed. This was reported by @junghans in issue #180. What was happening was that previously not respecting an explicit request for re-evaluation of a file on export if it were consistent (ie needed no changes). This was addressed by #181.
- symlink name replaced with original on push: This was reported by @einhander in issue #183. What happened was that the filename in the manifest was not being swapped back after the actual symlink path was resolved and set to the file. Addressed by PR #184.
This release has a whole lot of new engagement and contributions in the form of not only issues but PRs as well. Thank you everyone!
Release v0.2.0 (MoreGrowth)
This release features numerous fixes and a couple of features:
- Warning of clashing names. This addressed issue #107 raised by @vrusinov. The implementation is from PR #166.
- Flushing stdin before prompting. The issue was that due to long running operations, a user might hit a couple of keys (and this happens quite a lot even for myself), but on prompt and entering their response, it would be lost because stdin reads are buffered. The issue was raised by @minux as well as the fix for it also by @minux with PR #167.
- Static build. This is meant to allow for a user to build a binary with the commit tag and OS information encapsulated as opposed to the old dynamic solution that gave inaccurate results. This was pushed for by @kcwu and @l3iggs in issue #138. This was addressed by PR #151.
- delete method implemented. This allows for a user to permanently remove an item instead of sending it to trash. This was requested by issue #164 and addressed by PR #174 e.g
$ drive delete --matches .swp
$ drive delete .edits.swp
- checksum-ing is off by default: This was raised by issue #117 credited to @l3iggs and also to @kcwu. Building for the common case ignore-checksum was set to true, by PR #128. To turn on checksum verification pass in
--ignore-checksum=false
- exclude operations. This allows for a user during a pull/push to specify CRUD operations they'd like to exclude e.g
$ drive pull --exclude-ops "delete,create"
$ drive push --exclude-ops "update,delete"
- Bug fixes for code that accidentally got taken out during patches e.g
- In issue #173 raised by @shunzh in which a statErr was being compared to that reported by the OS when a file didn't exist however the statErr was never being checked for if it had passed.
- Only add children and perform a local listing if the file is a directory. This was addressed by commit 80fac8e.
- Only care about index removal errors only if the source existed locally. This was addressed by commit fe64869.
- Revert trash/removal by push/pull by ensuring that if a file doesn't exist, the file isn't rejected and an error thrown but the normal comparison is done and so is the appropriate trashing. This was addressed by commit fe64869.
- fixed list --version and minimal formatting. This was addressed by commit 45c533e.
- Don't overshadow errors on remote.FindBy*: return a different error on a 404 otherwise for all other errors return the raw error instead of masking it as a PathNotExists.
This release features a whole lot of new users and more folks that have stepped in to help resolve issues. This is the second major 0.X release and there is more to come. Thank you everyone for your contributions, usage and patience!
Release v0.1.9
This release features:
- mimeType guessing based off file extensions. This issue is credited to @jnazaroff with issue #154. This resulted from the fact that before mimeType guessing was delegated to the internal Google Drive file receiver. However on receiving *.odt and *.docx files, it would guess their mimeTypes as application/zip instead of making them documents. I had an offline discussion and thanks to @gmlewis -- to whom I expressed the goals and he made great suggestions that eventually translated into a fix where mimeType guessing is based off file extensions. My cause for need for another solution was assuming that without a provided mimeType, Google Drive performed a process similar to what you'd do in your shell:
However testing with the UI showed like @gmlewis had suggested, that infer mimeTypes from file extensions.
This was addressed by PR #155. - Introduction of mimeType coercion during a push. This is useful for forcing your file to be recognized to a format without you having to change its extension.
- Fix in platform_packages.md file for the proper github path by @sndirsch with commit 6796941.
- No need to rediscover links during a mounted push aka
push -m
. This is because symlink discovery/traversal got implemented after mounted pushing but mounted pushing was never updated. This was updated by commit e071b36. - Size counter fixes. This is credited to @steinrr with issue #153. The receipe was to only add in size when the item is not a directory because directories cannot be io'd, and also now showing raw byte values unconverted.
- Fixed file property toggling for first time insertions. Properties like
ocr
,convert
were not being registered on first insertion, but only on updates. This was addressed by commit 290d0a0. - Only infer mimeTypes from non-directories. This was added in commit 231b3d0.
- and other bug fixes and nit cleanups etc...
Thank you to all the contributors, users, folks that have raised issues for all the feedback, suggestions, issues and ideas.
Release v0.1.8
This release features mainly bug fixes related to progress reporting as well as a couple related to combination of options e.g --ignore-checksum
when set and size differs should report a checksum difference.
Also features quite a bit of refactoring.