Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#307: Ingest cache #354

Merged
merged 197 commits into from
Jan 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
9366f9d
Generate large CSV
neilotoole Nov 22, 2023
2d1aad8
wip: broken
neilotoole Nov 23, 2023
61def8f
wip: broken
neilotoole Nov 26, 2023
c8fbccd
wip: adding fscache
neilotoole Nov 26, 2023
7ccd905
wip: adding fscache
neilotoole Nov 26, 2023
c9b0106
wip: adding fscache
neilotoole Nov 26, 2023
a52c126
wip: adding fscache
neilotoole Nov 26, 2023
a4ca0d6
wip: adding fscache
neilotoole Nov 26, 2023
e79bc8b
wip: adding fscache
neilotoole Nov 26, 2023
7000dea
wip: adding fscache
neilotoole Nov 26, 2023
30a5598
wip: testing fscache
neilotoole Nov 26, 2023
57cf440
formatting
neilotoole Nov 26, 2023
901b81f
wip: broken
neilotoole Nov 26, 2023
3f3f5e9
wip: progress bar
neilotoole Nov 27, 2023
55cd167
wip: progress on progress bar
neilotoole Nov 27, 2023
75d71d6
wip: more progress
neilotoole Nov 27, 2023
67c06a9
wip: more progress
neilotoole Nov 27, 2023
c7bf3aa
still broken
neilotoole Nov 27, 2023
c0428a1
wip: almost working
neilotoole Nov 27, 2023
05804a8
wip: close to working
neilotoole Nov 28, 2023
b281bb2
wip: close to working
neilotoole Nov 28, 2023
9ada0a0
wip: close to working
neilotoole Nov 28, 2023
e133d4b
Largely there
neilotoole Nov 28, 2023
356fa6c
wip
neilotoole Nov 28, 2023
248aba1
wip
neilotoole Nov 28, 2023
4de0930
wip
neilotoole Nov 28, 2023
387782b
progress.Progress largely done
neilotoole Nov 28, 2023
03e80a3
dialing in progress pkg
neilotoole Nov 29, 2023
12a18b0
Switched to using fscache.MapFile mechanism
neilotoole Nov 30, 2023
016d649
wip
neilotoole Dec 2, 2023
d862074
wip
neilotoole Dec 2, 2023
1a3cb2a
lots of working parts
neilotoole Dec 3, 2023
3475a99
moved json driver over to OpenIngest mechanism
neilotoole Dec 3, 2023
7ac88cd
xlsx import broken: considering getting rid of deferred ingest
neilotoole Dec 3, 2023
f2a137a
progress working, except for renderDelay bug
neilotoole Dec 3, 2023
9e8a1d7
Linting
neilotoole Dec 3, 2023
091e33b
Refactoring
neilotoole Dec 3, 2023
d943ca8
Cleanup
neilotoole Dec 3, 2023
12bfac5
go.mod now uses github.com/neilotoole/fscache@develop
neilotoole Dec 3, 2023
ec3d187
go.mod updates
neilotoole Dec 3, 2023
de1ea33
Improved error handling
neilotoole Dec 3, 2023
c702662
Adding cache cmds
neilotoole Dec 3, 2023
5505cec
Implemented cmd cache tree
neilotoole Dec 3, 2023
0fc01b1
More cache cmds
neilotoole Dec 3, 2023
bd15363
More cache cmds
neilotoole Dec 3, 2023
7297866
Fine-tuning cache cmdsd
neilotoole Dec 3, 2023
9288ada
Right, I think progress stuff is actually working
neilotoole Dec 4, 2023
e65cbc8
Refactoring
neilotoole Dec 4, 2023
4922c1f
All drivers tests now working
neilotoole Dec 4, 2023
3e7d074
Renamed driver.Pool to driver.Grip
neilotoole Dec 4, 2023
a32d23a
Grip rename almost done
neilotoole Dec 4, 2023
478676c
Refactor: moved driver.Driver.Truncate -> driver.SQLDriver.Truncate
neilotoole Dec 4, 2023
c9c2552
Added ctx to RecordWriter methods
neilotoole Dec 4, 2023
8cfbef8
deferred render delay; NewWriter panics
neilotoole Dec 6, 2023
3135f63
pkg progress seems to be working
neilotoole Dec 6, 2023
f0167af
Add more progress to excel
neilotoole Dec 6, 2023
dfbf3b5
Dialing in xlsx progress
neilotoole Dec 6, 2023
be29456
Preparing to switch to bar-based delay
neilotoole Dec 6, 2023
abc0ac4
wip
neilotoole Dec 6, 2023
1395ad0
Merge remote-tracking branch 'origin/master' into feature/307-ingest-…
neilotoole Dec 6, 2023
ce19a1c
.gitignore
neilotoole Dec 6, 2023
78f4d86
Progress cleanup
neilotoole Dec 6, 2023
e49b922
go.mod cleanup
neilotoole Dec 6, 2023
031a8bc
Improved terminal detection
neilotoole Dec 7, 2023
3c1c6b4
Merge remote-tracking branch 'origin/master' into feature/307-ingest-…
neilotoole Dec 7, 2023
91f19fb
Yet more tidying of source.Files
neilotoole Dec 7, 2023
893b714
wip: download/checksum
neilotoole Dec 7, 2023
68ca1fd
wip: downloader
neilotoole Dec 7, 2023
83a1ca7
cleanup
neilotoole Dec 7, 2023
2594688
wip: downloader
neilotoole Dec 7, 2023
890c957
lock testing
neilotoole Dec 8, 2023
d9f309e
wip
neilotoole Dec 8, 2023
c1cf55d
wip
neilotoole Dec 8, 2023
b9a78af
fiddling with detectors
neilotoole Dec 8, 2023
7d18e56
Cleanup - about to add progress NewTimeoutWaiter
neilotoole Dec 8, 2023
b39ef90
Cleaned up progress package
neilotoole Dec 8, 2023
f4a5196
in a progress widget mess
neilotoole Dec 8, 2023
a219d46
progress closer to working
neilotoole Dec 8, 2023
a363120
more progress
neilotoole Dec 8, 2023
b723198
wip: more progress
neilotoole Dec 10, 2023
c48d422
wip: more progress
neilotoole Dec 10, 2023
45769bc
wip: more progress
neilotoole Dec 10, 2023
3f829fc
Pausing work on progress stuff; works reasonably well
neilotoole Dec 11, 2023
ed86c4b
wip: downloader
neilotoole Dec 11, 2023
5eede1d
Pausing work on downloader; will try different impl
neilotoole Dec 11, 2023
86df48d
Forked httpcache internally
neilotoole Dec 12, 2023
8f3122b
git work
neilotoole Dec 12, 2023
07e1e61
dl: configured for refactor
neilotoole Dec 12, 2023
8f9a094
dl: configured for refactor
neilotoole Dec 12, 2023
25ad2e4
dl: configured for refactor
neilotoole Dec 12, 2023
0f69bf0
wip: RespCache
neilotoole Dec 12, 2023
d303338
wip: adding RespCache
neilotoole Dec 12, 2023
8a0699c
wip: RespCache seems to be working
neilotoole Dec 12, 2023
caf8744
wip: almost there
neilotoole Dec 12, 2023
8d099e5
wip: almost there
neilotoole Dec 12, 2023
db62fc3
refactoring to restore key
neilotoole Dec 12, 2023
c81b692
httpcache: all tests passing
neilotoole Dec 12, 2023
4c0f4f5
httpcache: all tests passing
neilotoole Dec 12, 2023
ce19d4e
saving progress: httpcacheworking
neilotoole Dec 12, 2023
72898de
saving progress: httpcacheworking
neilotoole Dec 12, 2023
5dcb531
wip: refactoring httpcache
neilotoole Dec 13, 2023
2a9fb3f
wip: refactoring download
neilotoole Dec 13, 2023
11dc12d
wip: refactoring download
neilotoole Dec 13, 2023
b71e332
refactor ioz.NewHTTPClient
neilotoole Dec 13, 2023
b61560b
more refactoring
neilotoole Dec 13, 2023
ee02811
download seems closer
neilotoole Dec 13, 2023
7a9df88
tidying
neilotoole Dec 13, 2023
389719b
Created httpz pkg
neilotoole Dec 13, 2023
e5f63f3
wip: tidy
neilotoole Dec 13, 2023
93751be
wip: tidy
neilotoole Dec 13, 2023
8df8d5d
cleanup
neilotoole Dec 13, 2023
9359f4d
cleanup
neilotoole Dec 13, 2023
b0cb87f
wip cleanup
neilotoole Dec 14, 2023
0025264
Refactored with ioz.WriteErrorCloser
neilotoole Dec 14, 2023
227bb2b
added sq x download cmd
neilotoole Dec 14, 2023
7e7741f
Refactoring httpz.NewClient
neilotoole Dec 14, 2023
57b5806
Refactoring httpz.NewClient: done
neilotoole Dec 14, 2023
c923242
Test httpz opts
neilotoole Dec 14, 2023
9f57a22
httpz errors
neilotoole Dec 14, 2023
6f32198
refactoring slog/slogt
neilotoole Dec 14, 2023
9666a26
refactoring slog/slogt
neilotoole Dec 14, 2023
c0097ef
tuning logging
neilotoole Dec 14, 2023
4740099
stacktraces working decently well
neilotoole Dec 14, 2023
79e5245
log test
neilotoole Dec 14, 2023
f371b21
log merge
neilotoole Dec 14, 2023
e05f6a3
tuning devlog
neilotoole Dec 15, 2023
a776b3c
tuning devlog
neilotoole Dec 15, 2023
0c2dbf1
cleanup
neilotoole Dec 15, 2023
993a402
Refining error printing
neilotoole Dec 16, 2023
7decb56
Refining error printing
neilotoole Dec 16, 2023
073c4e7
Refining error printing
neilotoole Dec 16, 2023
db7691d
errz: no more errz.withMessage
neilotoole Dec 16, 2023
36f673a
errz: largely refactored
neilotoole Dec 16, 2023
ff418ee
errz: renamed UnwrapFully to UnwrapChain
neilotoole Dec 16, 2023
4611b57
errz: more refactoring
neilotoole Dec 16, 2023
0e0da30
errz: almost done
neilotoole Dec 16, 2023
0b88ff8
errz: almost done
neilotoole Dec 16, 2023
70925ba
errz: multi errs basic stuff working
neilotoole Dec 16, 2023
686a9da
errz: switching to integrating multierr
neilotoole Dec 16, 2023
3c078b2
errz: switching to integrating multierr
neilotoole Dec 16, 2023
25dc162
multierr integrated
neilotoole Dec 16, 2023
a250e9a
errz cleanup
neilotoole Dec 16, 2023
bb9153c
errz.Skip
neilotoole Dec 16, 2023
38ddcba
errz functionality should be done
neilotoole Dec 17, 2023
585a157
start errz wrapup
neilotoole Dec 17, 2023
80cfb9c
errz is linted
neilotoole Dec 17, 2023
20ed41e
errz cleanup
neilotoole Dec 17, 2023
27543ef
wip: linting
neilotoole Jan 8, 2024
696e021
wip: linting
neilotoole Jan 8, 2024
0395788
download seems to be working
neilotoole Jan 8, 2024
fd4829f
download seems to be working
neilotoole Jan 8, 2024
fa0a1c1
wip: mostly working
neilotoole Jan 9, 2024
184106a
Downloads largely working
neilotoole Jan 10, 2024
9f493eb
linting
neilotoole Jan 11, 2024
7d78a75
linting
neilotoole Jan 11, 2024
32c2f75
Fix multi err bugs
neilotoole Jan 11, 2024
fe905c9
linting
neilotoole Jan 11, 2024
398e6ce
bug fixes
neilotoole Jan 11, 2024
2de06bb
TestRun now creates unique cache dirs for Files
neilotoole Jan 11, 2024
b6902fe
fixed terminal_windows.go pkg
neilotoole Jan 11, 2024
8fe9f00
Fixed bug with barInitFn
neilotoole Jan 11, 2024
ed58583
More terminal_windows.go issues
neilotoole Jan 11, 2024
44e0bae
files cache dir
neilotoole Jan 11, 2024
ffebf18
file close, db timeout
neilotoole Jan 11, 2024
92dad5c
files stdin cache close
neilotoole Jan 11, 2024
1a231f6
Minor cleanup
neilotoole Jan 12, 2024
e0c6c24
Switch to using log.format instead of log.devmode
neilotoole Jan 12, 2024
34e7734
More refactoring
neilotoole Jan 13, 2024
e2231af
Files.doCacheClearSource no longer fails if the cache dir is empty
neilotoole Jan 13, 2024
0badff8
terminal_windows.go issue, again
neilotoole Jan 13, 2024
28e007e
Removed temp TestPruneEmptyDirTree test
neilotoole Jan 13, 2024
402e20c
More sqlite file closing
neilotoole Jan 13, 2024
d2a6840
More sqlite file closing, but it's already working
neilotoole Jan 13, 2024
738751a
sqlite type test cleanup
neilotoole Jan 13, 2024
17a6944
Improved logging
neilotoole Jan 13, 2024
d7e11c8
Improve Files.Close
neilotoole Jan 13, 2024
0e5ce23
Minor test cleanup
neilotoole Jan 13, 2024
1c3f6a8
Grips.OpenIngest now more resilient to corrupt cache
neilotoole Jan 13, 2024
a8d3f49
Fixed issues with cmd_add_test.go
neilotoole Jan 13, 2024
e037541
Test refactoring
neilotoole Jan 13, 2024
1f81723
more test cleanup
neilotoole Jan 13, 2024
8d41f23
Speeding up tests
neilotoole Jan 13, 2024
a724750
Speeding up tests, again
neilotoole Jan 13, 2024
3147011
time testing
neilotoole Jan 14, 2024
fc23cf0
time testing
neilotoole Jan 14, 2024
a450a8d
Update xlsx datetime test data
neilotoole Jan 14, 2024
c78e57d
Parallel tests
neilotoole Jan 14, 2024
7dcad3a
Text record writer now shows a progress bar while preparing records
neilotoole Jan 14, 2024
9d00e15
Refactored pkg progress; added mem usage; tablew shows progress
neilotoole Jan 14, 2024
d10d038
Diff cleanup
neilotoole Jan 14, 2024
e493536
Implemented sqlite metadata progress update (awkwardly)
neilotoole Jan 14, 2024
90521e6
postgres metadata progress bar
neilotoole Jan 14, 2024
2280437
testh .gitignore
neilotoole Jan 14, 2024
03f54b0
Grip.SourceMetadata and TableMetadata now have progress bars
neilotoole Jan 14, 2024
8fb9026
Update go.mod: mpb
neilotoole Jan 14, 2024
6f67533
PR review and cleanup
neilotoole Jan 15, 2024
32cdfa2
terminal_windows.go issue, again
neilotoole Jan 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ _testmain.go
/scratch
.envrc
**/*.bench
go.work*

# Some apps create temp files when editing, e.g. Excel with drivers/xlsx/testdata/~$test_header.xlsx
**/testdata/~*
Expand All @@ -54,5 +55,4 @@ goreleaser-test.sh
/cli/test.db
/*.db
/.CHANGELOG.delta.md
go.work
go.work.sum
/testh/progress-remove.test.sh
292 changes: 292 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ run:
# This package is such a mess, and needs to be rewritten completely.
- cli/output/tablew/internal

# The tint package is a fork of an upstream package.
- libsq/core/lg/devlog/tint

# Non-committed scratch dir
- scratch

Expand Down Expand Up @@ -187,6 +190,295 @@ linters-settings:
# Default: false
require-specific: true

revive:
# https://golangci-lint.run/usage/linters/#revive
rules:

# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#add-constant
- name: add-constant
disabled: true
arguments:
- maxLitCount: "3"
allowStrs: '""'
allowInts: "0,1,2"
allowFloats: "0.0,0.,1.0,1.,2.0,2."
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#argument-limit
- name: argument-limit
disabled: false
arguments: [ 7 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#atomic
- name: atomic
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#banned-characters
- name: banned-characters
disabled: true
arguments: [ "Ω", "Σ", "σ", "7" ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bare-return
- name: bare-return
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#blank-imports
- name: blank-imports
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr
- name: bool-literal-in-expr
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#call-to-gc
- name: call-to-gc
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cognitive-complexity
- name: cognitive-complexity
disabled: true
arguments: [ 7 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#comment-spacings
- name: comment-spacings
disabled: true
arguments:
- mypragma
- otherpragma
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#confusing-naming
- name: confusing-naming
disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#confusing-results
- name: confusing-results
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr
- name: constant-logical-expr
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument
- name: context-as-argument
disabled: false
arguments:
- allowTypesBefore: "*testing.T,*github.com/user/repo/testing.Harness"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type
- name: context-keys-type
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cyclomatic
- name: cyclomatic
disabled: true
arguments: [ 3 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#datarace
- name: datarace
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit
- name: deep-exit
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer
- name: defer
disabled: false
arguments:
- [ "call-chain", "loop" ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#dot-imports
- name: dot-imports
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports
- name: duplicated-imports
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return
- name: early-return
disabled: false
arguments:
- "preserveScope"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-block
- name: empty-block
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#empty-lines
- name: empty-lines
disabled: true # Covered by "whitespace" linter.
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#enforce-map-style
- name: enforce-map-style
disabled: true
arguments:
- "make"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming
- name: error-naming
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return
- name: error-return
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings
- name: error-strings
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf
- name: errorf
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#file-header
- name: file-header
disabled: true
# arguments:
# - This is the text that must appear at the top of source files.
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#flag-parameter
- name: flag-parameter
disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-result-limit
- name: function-result-limit
disabled: false
arguments: [ 4 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-length
- name: function-length
disabled: true
arguments: [ 10, 0 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#get-return
- name: get-return
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches
- name: identical-branches
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return
- name: if-return
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement
- name: increment-decrement
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow
- name: indent-error-flow
disabled: false
arguments:
- "preserveScope"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-alias-naming
- name: import-alias-naming
disabled: false
arguments:
- "^[a-z][a-z0-9]{0,}$"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#imports-blacklist
- name: imports-blacklist
disabled: false
arguments:
- "crypto/md5"
- "crypto/sha1"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#import-shadowing
- name: import-shadowing
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#line-length-limit
- name: line-length-limit
disabled: true
arguments: [ 80 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#max-public-structs
- name: max-public-structs
disabled: true
arguments: [ 3 ]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-parameter
- name: modifies-parameter
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-value-receiver
- name: modifies-value-receiver
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#nested-structs
- name: nested-structs
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#optimize-operands-order
- name: optimize-operands-order
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments
- name: package-comments
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range
- name: range
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure
- name: range-val-in-closure
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address
- name: range-val-address
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#receiver-naming
- name: receiver-naming
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redundant-import-alias
- name: redundant-import-alias
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id
- name: redefines-builtin-id
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-of-int
- name: string-of-int
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format
- name: string-format
disabled: false
arguments:
- - 'core.WriteError[1].Message'
- '/^([^A-Z]|$)/'
- must not start with a capital letter
- - 'fmt.Errorf[0]'
- '/(^|[^\.!?])$/'
- must not end in punctuation
- - panic
- '/^[^\n]*$/'
- must not contain line breaks
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag
- name: struct-tag
arguments:
- "json,inline"
- "bson,outline,gnu"
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else
- name: superfluous-else
disabled: false
arguments:
- "preserveScope"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal
- name: time-equal
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-naming
- name: time-naming
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming
- name: var-naming
disabled: false
arguments:
- [ "ID" ] # AllowList
- [ "VM" ] # DenyList
- - upperCaseConst: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration
- name: var-declaration
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion
- name: unconditional-recursion
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-naming
- name: unexported-naming
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
- name: unexported-return
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
- name: unhandled-error
disabled: false
arguments:
- "fmt.Printf"
- "fmt.Fprintf"
- "fmt.Fprint"
- "fmt.Fprintln"
- "bytes.Buffer.Write"
- "bytes.Buffer.WriteByte"
- "bytes.Buffer.WriteString"
- "bytes.Buffer.WriteRune"
- "strings.Builder.WriteString"
- "strings.Builder.WriteRune"
- "strings.Builder.Write"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt
- name: unnecessary-stmt
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unreachable-code
- name: unreachable-code
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-parameter
- name: unused-parameter
disabled: false
arguments:
- allowRegex: "^_"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unused-receiver
- name: unused-receiver
disabled: true
arguments:
- allowRegex: "^_"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
- name: useless-break
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value
- name: waitgroup-by-value
disabled: false

rowserrcheck:
# database/sql is always checked
# Default: []
Expand Down
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

Breaking changes are annotated with ☢️, and alpha/beta features with 🐥.

## Upcoming

This is a significant release, focused on improving i/o, responsiveness,
and performance. The headline feature is caching of ingested data for
document sources such as CSV or Excel.

### Added

- Long-running operations (such as data ingestion, or file download) now result
in a progress bar being displayed. Display of the progress bar is controlled
by the new config options [`progress`](https://sq.io/docs/config#progress)
and [`progress.delay`](https://sq.io/docs/config#progressdelay). You can also use
the `--no-progress` flag to disable the progress bar.
- Ingested [document sources](https://sq.io/docs/concepts#document-source) (such as
[CSV](https://sq.io/docs/drivers/csv) or [Excel](https://sq.io/docs/drivers/xlsx))
now make use of an ingest cache DB. Previously, ingestion of document source data occurred
on each `sq` command. It is now a one-time cost; subsequent use of the document source utilizes
the cache DB. If the source document changes, the ingest cache DB is invalidated and
ingested again. This is a significantly improved experience for large document sources.
- There's several new commands to interact with the cache.
- [`sq cache enable`](https://sq.io/docs/cmd/cache_enable) and
[`sq cache disable`](https://sq.io/docs/cmd/cache_disable) control cache usage.
You can also instead use the new [`ingest.cache`](https://sq.io/docs/config#ingestcache)
config option.
- [`sq cache clear`](https://sq.io/docs/cmd/cache_clear) clears the cache.
- [`sq cache location`](https://sq.io/docs/cmd/cache_location) prints the cache location on disk.
- [`sq cache stat`](https://sq.io/docs/cmd/cache_stat) shows stats about the cache.
- [`sq cache tree`](https://sq.io/docs/cmd/cache_location) shows a tree view of the cache.
- Downloading of remote document sources (e.g. a CSV file at
[`https://sq.io/testdata/actor.csv`](https://sq.io/testdata/actor.csv)) has been completely
overhauled. Previously, `sq` would re-download the remote file on every command. Now, the
remote file is downloaded and cached locally. Subsequent commands check for staleness of
the cached download, and re-download if necessary.
- As part of the download revamp, new config options have been introduced:
- [`http.request.timeout`](https://sq.io/docs/config#httprequesttimeout) and
[`http.response.timeout`](https://sq.io/docs/config#httpresponsetimeout) control HTTP timeout.
- [`https.insecure-skip-verify`](https://sq.io/docs/config#httpsinsecureskipverify) controls
whether HTTPS connections verify the server's certificate. This is useful for remote files served
with a self-signed certificate.
- There are two more new config options introduced as part of the above work.
- [`cache.lock.timeout`](https://sq.io/docs/config#cachelocktimeout) controls the time that
`sq` will wait for a lock on the cache DB. The cache lock is introduced for when you have
multiple `sq` commands running concurrently, and you want to avoid them stepping on each other.
- Similarly, [`config.lock.timeout`](https://sq.io/docs/config#configlocktimeout) controls the
timeout for acquiring the (newly-introduced) lock on `sq`'s config file. This helps prevent
issues with multiple `sq` processes mutating the config concurrently.
- `sq`'s own [logs](https://sq.io/docs/config#logging) previously outputted in JSON
format. Now there's a new [`log.format`](https://sq.io/docs/config#logformat) config option
that permits setting the log format to `json` or `text`. The `text` format is more human-friendly, and
is now the default.

### Fixed

- Opening a DB connection now correctly honors [`conn.open-timeout`](https://sq.io/docs/config#connopen-timeout).

## [v0.46.1] - 2023-12-06

### Fixed
Expand Down
Loading
Loading