csvops 0.9.0.alpha → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +8 -6
- data/csvops.gemspec +2 -2
- data/docs/{release-v0.1.0-alpha.md → releases/release-v0.1.0-alpha.md} +2 -2
- data/docs/{release-v0.2.0-alpha.md → releases/release-v0.2.0-alpha.md} +2 -2
- data/docs/{release-v0.3.0-alpha.md → releases/release-v0.3.0-alpha.md} +2 -2
- data/docs/{release-v0.4.0-alpha.md → releases/release-v0.4.0-alpha.md} +2 -2
- data/docs/{release-v0.5.0-alpha.md → releases/release-v0.5.0-alpha.md} +2 -2
- data/docs/{release-v0.6.0-alpha.md → releases/release-v0.6.0-alpha.md} +2 -2
- data/docs/{release-v0.7.0-alpha.md → releases/release-v0.7.0-alpha.md} +2 -2
- data/docs/{release-v0.8.0-alpha.md → releases/release-v0.8.0-alpha.md} +2 -2
- data/docs/{release-v0.9.0-alpha.md → releases/release-v0.9.0-alpha.md} +2 -2
- data/docs/releases/release-v1.0.0.md +80 -0
- data/lib/csvtool/version.rb +1 -1
- metadata +14 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d64298214c24aca2a14493f8d17b0c182748a72427e45f069f576283b3965bae
|
|
4
|
+
data.tar.gz: 272e3b8ffb5b760dde7896090cc6bf8e0f5c56170313f58323062cf9d5cf1aed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1cfc5ac652cf8c3ebe4e3ec623033a6c1dff3c10dd38b33f938848fc472b505b654a754da78e5ef4d253503e767b86f00e066f3607441dacb4c413105b54c1b6
|
|
7
|
+
data.tar.gz: 509d3f1fe01597dd99d5a4717f76020d5bdf9283f1c0f7bae5cde4e1688d49bad1fd60232ec5237ee234f61560e1b15a85ff88fde42b4bdc5b80c679ac759126
|
data/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# CSV Ops CLI
|
|
2
2
|
|
|
3
|
-
`csvops` is a
|
|
3
|
+
`csvops` is a Ruby CLI for working with CSV data through guided workflows and direct commands, so you can extract columns and rows, randomize rows, split files, compare parity, de-duplicate across files, and generate high-level stats.
|
|
4
|
+
|
|
5
|
+
It is designed for practical use with interactive prompts, file-based outputs, and an architecture that keeps workflows composable and testable.
|
|
4
6
|
|
|
5
7
|
## Requirements
|
|
6
8
|
|
|
@@ -320,19 +322,19 @@ Or:
|
|
|
320
322
|
bundle exec rake test
|
|
321
323
|
```
|
|
322
324
|
|
|
323
|
-
##
|
|
325
|
+
## Release
|
|
324
326
|
|
|
325
|
-
Current
|
|
327
|
+
Current version: `1.0.0`
|
|
326
328
|
|
|
327
|
-
Install
|
|
329
|
+
Install from RubyGems:
|
|
328
330
|
|
|
329
331
|
```bash
|
|
330
|
-
gem install csvops
|
|
332
|
+
gem install csvops
|
|
331
333
|
```
|
|
332
334
|
|
|
333
335
|
Release runbook:
|
|
334
336
|
|
|
335
|
-
- `docs/release-
|
|
337
|
+
- `docs/releases/release-v1.0.0.md`
|
|
336
338
|
|
|
337
339
|
|
|
338
340
|
## Architecture
|
data/csvops.gemspec
CHANGED
|
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.authors = ["Robert Hall"]
|
|
9
9
|
spec.email = [""]
|
|
10
10
|
|
|
11
|
-
spec.summary = "
|
|
12
|
-
spec.description = "A
|
|
11
|
+
spec.summary = "Ruby CLI for practical CSV data workflows"
|
|
12
|
+
spec.description = "A Ruby CLI for guided CSV workflows and direct commands including extraction, randomization, splitting, parity checks, deduplication, and stats."
|
|
13
13
|
spec.homepage = "https://github.com/RobertAndrewHall/csvops"
|
|
14
14
|
spec.license = "MIT"
|
|
15
15
|
spec.required_ruby_version = ">= 3.3"
|
|
@@ -41,7 +41,7 @@ Cara
|
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
gem build csvops.gemspec
|
|
44
|
-
gem install ./csvops-0.1.0.alpha.gem
|
|
44
|
+
gem install ./releases/gems/csvops-0.1.0.alpha.gem
|
|
45
45
|
csvtool column test/fixtures/sample_people.csv name
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -62,7 +62,7 @@ git push origin main --tags
|
|
|
62
62
|
## 8. Publish gem (optional for alpha)
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
gem push csvops-0.1.0.alpha.gem
|
|
65
|
+
gem push releases/gems/csvops-0.1.0.alpha.gem
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
## 9. Create GitHub release
|
|
@@ -48,7 +48,7 @@ Use menu option `2` (`Extract rows (range)`), then verify:
|
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
50
|
gem build csvops.gemspec
|
|
51
|
-
gem install ./csvops-0.2.0.alpha.gem
|
|
51
|
+
gem install ./releases/gems/csvops-0.2.0.alpha.gem
|
|
52
52
|
csvtool menu
|
|
53
53
|
```
|
|
54
54
|
|
|
@@ -69,7 +69,7 @@ git push origin main --tags
|
|
|
69
69
|
## 9. Publish gem (optional for alpha)
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
gem push csvops-0.2.0.alpha.gem
|
|
72
|
+
gem push releases/gems/csvops-0.2.0.alpha.gem
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
## 10. Create GitHub release
|
|
@@ -41,7 +41,7 @@ Use menu option `3` (`Randomize rows`) and verify:
|
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
43
|
gem build csvops.gemspec
|
|
44
|
-
gem install ./csvops-0.3.0.alpha.gem
|
|
44
|
+
gem install ./releases/gems/csvops-0.3.0.alpha.gem
|
|
45
45
|
csvtool menu
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -62,7 +62,7 @@ git push origin main --tags
|
|
|
62
62
|
## 9. Publish gem (optional for alpha)
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
gem push csvops-0.3.0.alpha.gem
|
|
65
|
+
gem push releases/gems/csvops-0.3.0.alpha.gem
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
## 10. Create GitHub release
|
|
@@ -53,7 +53,7 @@ Use menu option `4` (`Dedupe using another CSV`) and verify:
|
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
gem build csvops.gemspec
|
|
56
|
-
gem install ./csvops-0.4.0.alpha.gem
|
|
56
|
+
gem install ./releases/gems/csvops-0.4.0.alpha.gem
|
|
57
57
|
csvtool menu
|
|
58
58
|
```
|
|
59
59
|
|
|
@@ -74,7 +74,7 @@ git push origin main --tags
|
|
|
74
74
|
## 9. Publish gem (optional for alpha)
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
gem push csvops-0.4.0.alpha.gem
|
|
77
|
+
gem push releases/gems/csvops-0.4.0.alpha.gem
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## 10. Create GitHub release
|
|
@@ -56,7 +56,7 @@ Use menu option `4` (`Dedupe using another CSV`) and verify:
|
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
gem build csvops.gemspec
|
|
59
|
-
gem install ./csvops-0.5.0.alpha.gem
|
|
59
|
+
gem install ./releases/gems/csvops-0.5.0.alpha.gem
|
|
60
60
|
csvtool menu
|
|
61
61
|
```
|
|
62
62
|
|
|
@@ -77,7 +77,7 @@ git push origin main --tags
|
|
|
77
77
|
## 9. Publish gem (optional for alpha)
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
|
-
gem push csvops-0.5.0.alpha.gem
|
|
80
|
+
gem push releases/gems/csvops-0.5.0.alpha.gem
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
## 10. Create GitHub release
|
|
@@ -50,7 +50,7 @@ Run quick checks for menu options `1-4` and confirm:
|
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
gem build csvops.gemspec
|
|
53
|
-
gem install ./csvops-0.6.0.alpha.gem
|
|
53
|
+
gem install ./releases/gems/csvops-0.6.0.alpha.gem
|
|
54
54
|
csvtool menu
|
|
55
55
|
```
|
|
56
56
|
|
|
@@ -71,7 +71,7 @@ git push origin main --tags
|
|
|
71
71
|
## 9. Publish gem
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
gem push csvops-0.6.0.alpha.gem
|
|
74
|
+
gem push releases/gems/csvops-0.6.0.alpha.gem
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
## 10. Create GitHub release
|
|
@@ -53,7 +53,7 @@ Use menu options `1-5` and verify:
|
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
55
|
gem build csvops.gemspec
|
|
56
|
-
gem install ./csvops-0.7.0.alpha.gem
|
|
56
|
+
gem install ./releases/gems/csvops-0.7.0.alpha.gem
|
|
57
57
|
csvtool menu
|
|
58
58
|
```
|
|
59
59
|
|
|
@@ -74,7 +74,7 @@ git push origin main --tags
|
|
|
74
74
|
## 9. Publish gem
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
gem push csvops-0.7.0.alpha.gem
|
|
77
|
+
gem push releases/gems/csvops-0.7.0.alpha.gem
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## 10. Create GitHub release
|
|
@@ -54,7 +54,7 @@ Use menu options `1-6` and verify:
|
|
|
54
54
|
|
|
55
55
|
```bash
|
|
56
56
|
gem build csvops.gemspec
|
|
57
|
-
gem install ./csvops-0.8.0.alpha.gem
|
|
57
|
+
gem install ./releases/gems/csvops-0.8.0.alpha.gem
|
|
58
58
|
csvtool menu
|
|
59
59
|
```
|
|
60
60
|
|
|
@@ -75,7 +75,7 @@ git push origin main --tags
|
|
|
75
75
|
## 9. Publish gem
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
gem push csvops-0.8.0.alpha.gem
|
|
78
|
+
gem push releases/gems/csvops-0.8.0.alpha.gem
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
## 10. Create GitHub release
|
|
@@ -46,7 +46,7 @@ Verify shared output behavior:
|
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
48
|
gem build csvops.gemspec
|
|
49
|
-
gem install ./csvops-0.9.0.alpha.gem
|
|
49
|
+
gem install ./releases/gems/csvops-0.9.0.alpha.gem
|
|
50
50
|
csvtool menu
|
|
51
51
|
```
|
|
52
52
|
|
|
@@ -67,7 +67,7 @@ git push origin main --tags
|
|
|
67
67
|
## 9. Publish gem
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
gem push csvops-0.9.0.alpha.gem
|
|
70
|
+
gem push releases/gems/csvops-0.9.0.alpha.gem
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
## 10. Create GitHub release
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Release Checklist: v1.0.0
|
|
2
|
+
|
|
3
|
+
## 1. Verify environment
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ruby -v
|
|
7
|
+
bundle -v
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
Expected:
|
|
11
|
+
- Ruby `3.3.x`
|
|
12
|
+
|
|
13
|
+
## 2. Install dependencies
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
bundle install
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 3. Run quality checks
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
bundle exec rake test
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 4. Smoke test CLI commands
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
bundle exec csvtool menu
|
|
29
|
+
bundle exec csvtool stats test/fixtures/sample_people.csv --format text
|
|
30
|
+
bundle exec csvtool stats test/fixtures/sample_people.csv --format json
|
|
31
|
+
bundle exec csvtool stats test/fixtures/sample_people.csv --format csv
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 5. Smoke test output conventions across workflows
|
|
35
|
+
|
|
36
|
+
Verify in menu-driven workflows:
|
|
37
|
+
- prompts/menu/errors are on `stderr`
|
|
38
|
+
- data output is on `stdout`
|
|
39
|
+
|
|
40
|
+
Verify shared output behavior:
|
|
41
|
+
- formatter consistency (`text|json|csv`)
|
|
42
|
+
- color policy (`auto|always|never`, `NO_COLOR`)
|
|
43
|
+
- width-aware summary tables in stats/parity/split/dedupe
|
|
44
|
+
|
|
45
|
+
## 6. Build and validate gem package
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
gem build csvops.gemspec
|
|
49
|
+
gem install ./releases/gems/csvops-1.0.0.gem
|
|
50
|
+
csvtool menu
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 7. Commit release prep
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
git add -A
|
|
57
|
+
git commit -m "chore(release): prepare v1.0.0"
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 8. Tag release
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git tag -a v1.0.0 -m "v1.0.0"
|
|
64
|
+
git push origin main --tags
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 9. Publish gem
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
gem push releases/gems/csvops-1.0.0.gem
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 10. Create GitHub release
|
|
74
|
+
|
|
75
|
+
Create release `v1.0.0` with:
|
|
76
|
+
- Shared output stream services across workflows (`stdout` data, `stderr` UI/errors)
|
|
77
|
+
- Shared formatter services and migrated presenters
|
|
78
|
+
- Shared color policy + colorizer across workflows
|
|
79
|
+
- Shared width-aware table rendering across summary presenters
|
|
80
|
+
- Output conventions documentation (`docs/cli-output-conventions.md`)
|
data/lib/csvtool/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: csvops
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Robert Hall
|
|
@@ -52,8 +52,8 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '13.0'
|
|
55
|
-
description: A
|
|
56
|
-
|
|
55
|
+
description: A Ruby CLI for guided CSV workflows and direct commands including extraction,
|
|
56
|
+
randomization, splitting, parity checks, deduplication, and stats.
|
|
57
57
|
email:
|
|
58
58
|
- ''
|
|
59
59
|
executables:
|
|
@@ -69,15 +69,16 @@ files:
|
|
|
69
69
|
- csvops.gemspec
|
|
70
70
|
- docs/architecture.md
|
|
71
71
|
- docs/cli-output-conventions.md
|
|
72
|
-
- docs/release-v0.1.0-alpha.md
|
|
73
|
-
- docs/release-v0.2.0-alpha.md
|
|
74
|
-
- docs/release-v0.3.0-alpha.md
|
|
75
|
-
- docs/release-v0.4.0-alpha.md
|
|
76
|
-
- docs/release-v0.5.0-alpha.md
|
|
77
|
-
- docs/release-v0.6.0-alpha.md
|
|
78
|
-
- docs/release-v0.7.0-alpha.md
|
|
79
|
-
- docs/release-v0.8.0-alpha.md
|
|
80
|
-
- docs/release-v0.9.0-alpha.md
|
|
72
|
+
- docs/releases/release-v0.1.0-alpha.md
|
|
73
|
+
- docs/releases/release-v0.2.0-alpha.md
|
|
74
|
+
- docs/releases/release-v0.3.0-alpha.md
|
|
75
|
+
- docs/releases/release-v0.4.0-alpha.md
|
|
76
|
+
- docs/releases/release-v0.5.0-alpha.md
|
|
77
|
+
- docs/releases/release-v0.6.0-alpha.md
|
|
78
|
+
- docs/releases/release-v0.7.0-alpha.md
|
|
79
|
+
- docs/releases/release-v0.8.0-alpha.md
|
|
80
|
+
- docs/releases/release-v0.9.0-alpha.md
|
|
81
|
+
- docs/releases/release-v1.0.0.md
|
|
81
82
|
- exe/csvtool
|
|
82
83
|
- lib/csvtool/application/use_cases/run_cross_csv_dedupe.rb
|
|
83
84
|
- lib/csvtool/application/use_cases/run_csv_parity.rb
|
|
@@ -368,5 +369,5 @@ requirements: []
|
|
|
368
369
|
rubygems_version: 3.5.18
|
|
369
370
|
signing_key:
|
|
370
371
|
specification_version: 4
|
|
371
|
-
summary:
|
|
372
|
+
summary: Ruby CLI for practical CSV data workflows
|
|
372
373
|
test_files: []
|