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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 940c2492f5bea33d56ad0a47ebf6933cb2e43817530aa04d4e02950affe9d493
4
- data.tar.gz: 9c32a162b4393f25e99b55e908df2b9dcb55099ce0d820aa3255c310fc09d983
3
+ metadata.gz: d64298214c24aca2a14493f8d17b0c182748a72427e45f069f576283b3965bae
4
+ data.tar.gz: 272e3b8ffb5b760dde7896090cc6bf8e0f5c56170313f58323062cf9d5cf1aed
5
5
  SHA512:
6
- metadata.gz: 3babceb657e3e3c366c19daa305fcffe18fca1e145dafa8d8f66f022531e17fc21f0788da7b27a0d76e17e07c88fa098105d20116353cced5e4b207870a0f88e
7
- data.tar.gz: a8efe4b0a86dd3e303ca8946a0b25b3dbcffb1bbeb76823910d43ab8ff1ba4fc7670f1a2c16e135941caf74a3a216f988010bd0178b892a60eb9bd82963c4596
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 small Ruby CLI for interactive CSV workflows.
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
- ## Alpha release
325
+ ## Release
324
326
 
325
- Current prerelease version: `0.9.0.alpha`
327
+ Current version: `1.0.0`
326
328
 
327
- Install prerelease from RubyGems:
329
+ Install from RubyGems:
328
330
 
329
331
  ```bash
330
- gem install csvops --pre
332
+ gem install csvops
331
333
  ```
332
334
 
333
335
  Release runbook:
334
336
 
335
- - `docs/release-v0.9.0-alpha.md`
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 = "Interactive CSV column extraction CLI"
12
- spec.description = "A small Ruby CLI for extracting CSV columns interactively or via direct command."
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`)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Csvtool
4
- VERSION = "0.9.0.alpha"
4
+ VERSION = "1.0.1"
5
5
  end
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: 0.9.0.alpha
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 small Ruby CLI for extracting CSV columns interactively or via direct
56
- command.
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: Interactive CSV column extraction CLI
372
+ summary: Ruby CLI for practical CSV data workflows
372
373
  test_files: []