git 5.1.0 → 5.3.0

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.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +78 -0
  3. data/CONTRIBUTING.md +202 -169
  4. data/LICENSE +1 -1
  5. data/README.md +192 -151
  6. data/UPGRADING.md +287 -1
  7. data/git.gemspec +35 -3
  8. data/lib/git/author.rb +11 -0
  9. data/lib/git/author_info.rb +66 -0
  10. data/lib/git/branch.rb +210 -15
  11. data/lib/git/branch_info.rb +1 -1
  12. data/lib/git/branches.rb +35 -7
  13. data/lib/git/command_line/base.rb +1 -2
  14. data/lib/git/commands/base.rb +1 -1
  15. data/lib/git/commands/cat_file/raw.rb +62 -7
  16. data/lib/git/object.rb +13 -7
  17. data/lib/git/parsers/stash.rb +50 -17
  18. data/lib/git/parsers/tag.rb +54 -8
  19. data/lib/git/remote.rb +37 -7
  20. data/lib/git/remote_info.rb +67 -10
  21. data/lib/git/repository/branching.rb +190 -6
  22. data/lib/git/repository/merging.rb +96 -2
  23. data/lib/git/repository/remote_operations.rb +57 -0
  24. data/lib/git/repository/shared_private.rb +67 -0
  25. data/lib/git/stash_info.rb +32 -34
  26. data/lib/git/tag_info.rb +21 -29
  27. data/lib/git/version.rb +1 -1
  28. data/lib/git.rb +1 -0
  29. metadata +6 -94
  30. data/.claude/commands/address-copilot-reviews.md +0 -14
  31. data/.claude/settings.json +0 -16
  32. data/.claude/skills +0 -1
  33. data/.commitlintrc.yml +0 -38
  34. data/.dockerignore +0 -27
  35. data/.github/copilot-instructions.md +0 -30
  36. data/.github/hooks/bin-setup-on-worktree.json +0 -11
  37. data/.github/hooks/run-bin-setup-once.sh +0 -20
  38. data/.github/issue_template.md +0 -15
  39. data/.github/prompts/iteratively-address-copilot-reviews.prompt.md +0 -188
  40. data/.github/pull_request_template.md +0 -21
  41. data/.github/skills/breaking-change-analysis/SKILL.md +0 -99
  42. data/.github/skills/ci-cd-troubleshooting/SKILL.md +0 -264
  43. data/.github/skills/command-implementation/REFERENCE.md +0 -994
  44. data/.github/skills/command-implementation/SKILL.md +0 -230
  45. data/.github/skills/command-test-conventions/SKILL.md +0 -664
  46. data/.github/skills/command-yard-documentation/SKILL.md +0 -434
  47. data/.github/skills/dependency-management/SKILL.md +0 -72
  48. data/.github/skills/development-workflow/SKILL.md +0 -512
  49. data/.github/skills/facade-implementation/REFERENCE.md +0 -837
  50. data/.github/skills/facade-implementation/SKILL.md +0 -269
  51. data/.github/skills/facade-test-conventions/SKILL.md +0 -391
  52. data/.github/skills/facade-yard-documentation/SKILL.md +0 -435
  53. data/.github/skills/make-skill-template/SKILL.md +0 -226
  54. data/.github/skills/pr-readiness-review/SKILL.md +0 -205
  55. data/.github/skills/project-context/SKILL.md +0 -306
  56. data/.github/skills/pull-request-review/SKILL.md +0 -168
  57. data/.github/skills/rebase/SKILL.md +0 -148
  58. data/.github/skills/refactor-command-to-commandlineresult/SKILL.md +0 -131
  59. data/.github/skills/release-management/SKILL.md +0 -125
  60. data/.github/skills/resolve-feedback/SKILL.md +0 -288
  61. data/.github/skills/review-arguments-dsl/CHECKLIST.md +0 -788
  62. data/.github/skills/review-arguments-dsl/SKILL.md +0 -214
  63. data/.github/skills/review-cross-command-consistency/SKILL.md +0 -139
  64. data/.github/skills/reviewing-skills/SKILL.md +0 -214
  65. data/.github/skills/rspec-unit-testing-standards/SKILL.md +0 -685
  66. data/.github/skills/tdd-refactor-step/SKILL.md +0 -236
  67. data/.github/skills/test-debugging/SKILL.md +0 -161
  68. data/.github/skills/yard-documentation/SKILL.md +0 -981
  69. data/.github/skills/yard-documentation/element-rules.md +0 -162
  70. data/.github/skills-deprecated/README.md +0 -21
  71. data/.github/skills-deprecated/extract-command-from-lib/SKILL.md +0 -487
  72. data/.github/skills-deprecated/extract-facade-from-base-lib/KEYWORD_ARG_REMEDIATION.md +0 -22
  73. data/.github/skills-deprecated/extract-facade-from-base-lib/SKILL.md +0 -600
  74. data/.github/skills-deprecated/review-backward-compatibility/SKILL.md +0 -275
  75. data/.github/workflows/continuous_integration.yml +0 -358
  76. data/.github/workflows/enforce_conventional_commits.yml +0 -35
  77. data/.github/workflows/experimental_continuous_integration.yml +0 -59
  78. data/.github/workflows/release.yml +0 -52
  79. data/.github/workflows/warm_bundler_caches.yml +0 -82
  80. data/.gitignore +0 -30
  81. data/.husky/commit-msg +0 -1
  82. data/.husky/pre-commit +0 -13
  83. data/.release-please-config.json +0 -36
  84. data/.release-please-manifest.json +0 -3
  85. data/.rspec +0 -2
  86. data/.rubocop.yml +0 -44
  87. data/.rubocop_todo.yml +0 -30
  88. data/.yard-lint.yml +0 -75
  89. data/CLAUDE.md +0 -11
  90. data/Gemfile +0 -22
  91. data/Rakefile +0 -41
  92. data/docker/test/Dockerfile +0 -32
  93. data/docker/test/docker-compose.yml +0 -0
  94. data/package.json +0 -10
  95. data/redesign/1_architecture_existing.md +0 -102
  96. data/redesign/2_architecture_redesign.md +0 -449
  97. data/redesign/3_architecture_implementation.md +0 -1623
  98. data/redesign/Phase 4 - Step A.md +0 -366
  99. data/redesign/Phase 4 - Step B.md +0 -921
  100. data/redesign/Phase 4 - Step C.md +0 -833
  101. data/redesign/beta_release.md +0 -107
  102. data/redesign/branch_parse_refactor_plan.md +0 -163
  103. data/redesign/c1a-public-api-scope.tsv +0 -256
  104. data/redesign/c1c2_audit.md +0 -566
  105. data/redesign/c1c2_bucket6_lib_orphans.md +0 -626
  106. data/redesign/config_design.rb +0 -501
  107. data/redesign/index.md +0 -34
  108. data/redesign/info_object_migration_plan.md +0 -126
  109. data/redesign/integration_test_analysis.md +0 -521
  110. data/redesign/phase-4-step-b-test-audit.tsv +0 -485
  111. data/redesign/remote_refactor_plan.md +0 -164
  112. data/redesign/reverse_dependencies.sql +0 -44
  113. data/tasks/gem_tasks.rake +0 -14
  114. data/tasks/npm_tasks.rake +0 -7
  115. data/tasks/rspec.rake +0 -111
  116. data/tasks/rubocop.rake +0 -5
  117. data/tasks/test_gem.rake +0 -12
  118. data/tasks/yard.rake +0 -57
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10e1f676a8b4122760435d18757f8dbb0f67e8e0f59f2e85463c0c7c93add807
4
- data.tar.gz: 47687fd4a08c52945fb1eb8aa668429e33c7e4e9ce06f6a8664dc2f83e0372bc
3
+ metadata.gz: aedbda16896f72f7adc9320f2e1ade684cd1f4a49a392929ce3eb64d0320ca31
4
+ data.tar.gz: 8a77684970cde47e1ce927b2c4dab8c1e3c7b9356d876bbcb66a79c5d39769f4
5
5
  SHA512:
6
- metadata.gz: 3073e1e644e4d927de4e78bb6b0a8f082e6c757353a68b53c0ac2035c8ebee978e8d4a0a4c3a5fcaccece86ce5139f433af86716193ae2f8b0a0d26d6d9119c0
7
- data.tar.gz: dcc552a33be697647b62e780492d454d3da93b1c9c8de218363f5118125abc59c7aa331ed15c1b69eb87e2b60b205db466b9e5da7cc59022d0a1ae9f55d0384a
6
+ metadata.gz: 37f051a10d8fad9eb51e3bebd2cefd84d523ca5961bb1fabc619f01a2db28f9c271a2a97701e8a575d2ab2e3244c5c1ee36b97bf9b94f45caa29f2f4a46340c1
7
+ data.tar.gz: 8c9cb46f8a7a74eff2488ef24e3641a3f6dccadee4735009290450630f3aab6bc90402e333c45c5061d8cb276767971eb316cba00196a1b7c3f3a6d7ad4fda85
data/CHANGELOG.md CHANGED
@@ -5,6 +5,84 @@
5
5
 
6
6
  # Change Log
7
7
 
8
+ ## [5.3.0](https://github.com/ruby-git/ruby-git/compare/v5.2.0...v5.3.0) (2026-09-03)
9
+
10
+
11
+ ### Features
12
+
13
+ * **author:** Add immutable Git::AuthorInfo and deprecate Git::Author ([c08b04b](https://github.com/ruby-git/ruby-git/commit/c08b04bf25142140c626fd16354355aae26b4fba)), closes [#1721](https://github.com/ruby-git/ruby-git/issues/1721)
14
+ * **branch:** Deprecate Git::Branch and Git::Branches in favor of Git::Repository#branch_list ([1581aa0](https://github.com/ruby-git/ruby-git/commit/1581aa00b3fc7984a2024b290b83f6f6f5e97838)), closes [#1639](https://github.com/ruby-git/ruby-git/issues/1639)
15
+ * **branch:** Deprecate Git::Branch#stashes in favor of Git::Repository#stashes_all ([dcee889](https://github.com/ruby-git/ruby-git/commit/dcee889a63bfd38cc3073577b55e2112721c5e33)), closes [#1637](https://github.com/ruby-git/ruby-git/issues/1637)
16
+ * **cat-file:** Deprecate the allow_unknown_type option of Git::Commands::CatFile::Raw ([95769ea](https://github.com/ruby-git/ruby-git/commit/95769ea683349c445a7a7ea7b839fc990d2d8c4b)), closes [#1709](https://github.com/ruby-git/ruby-git/issues/1709)
17
+ * **info:** Nest Git::AuthorInfo in Git::TagInfo and Git::StashInfo ([2f44f96](https://github.com/ruby-git/ruby-git/commit/2f44f9617122c3719625cf3a56f4b263b0de4c3c)), closes [#1745](https://github.com/ruby-git/ruby-git/issues/1745)
18
+ * **remote:** Deprecate Git::Remote and Git::Repository#remote in favor of #remote_list ([1abb585](https://github.com/ruby-git/ruby-git/commit/1abb585339c0d003622719aa5930b5bde2262502)), closes [#1643](https://github.com/ruby-git/ruby-git/issues/1643)
19
+ * **remote:** Freeze Git::RemoteInfo array-valued members ([4d44a3d](https://github.com/ruby-git/ruby-git/commit/4d44a3dc8fed77b39c7146675eaa9d46eb12e34d))
20
+ * **repository:** Add in_branch and merge_into facade methods ([59b58d0](https://github.com/ruby-git/ruby-git/commit/59b58d0389656051e8cd61bd856dc116139c2507)), closes [#1641](https://github.com/ruby-git/ruby-git/issues/1641)
21
+ * **repository:** Deprecate Git::Repository#remotes in favor of #remote_list ([410095c](https://github.com/ruby-git/ruby-git/commit/410095c4d2a3065c222f9cc750a05143230801d7)), closes [#1640](https://github.com/ruby-git/ruby-git/issues/1640)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **branching:** Verify refs/heads when classifying the HEAD state ([bfc4d8a](https://github.com/ruby-git/ruby-git/commit/bfc4d8a2b82000906d1a398c69125fcfdc22c276)), closes [#1641](https://github.com/ruby-git/ruby-git/issues/1641)
27
+
28
+
29
+ ### Other Changes
30
+
31
+ * **adr:** Supersede ADR-0006 with a release-based deprecation period ([b3b32e3](https://github.com/ruby-git/ruby-git/commit/b3b32e339f3804d022ea83cec03977039ecdcace))
32
+ * **author:** Add failing tests for Git::AuthorInfo and Git::Author deprecation ([e0d3123](https://github.com/ruby-git/ruby-git/commit/e0d3123fadd836e301160f492e0a1303f43267b8)), closes [#1721](https://github.com/ruby-git/ruby-git/issues/1721)
33
+ * **branch:** Add failing test for the Git::Branch#stashes deprecation ([a806808](https://github.com/ruby-git/ruby-git/commit/a806808f3e5a5a38a92646c1ab64c8906b3dc525))
34
+ * **contributing:** Describe the release line and maintenance branch rules ([fd78c9c](https://github.com/ruby-git/ruby-git/commit/fd78c9ccd262470c9e33166ba63dc095b2060a5d))
35
+ * **info:** Add failing tests for nested Git::AuthorInfo on TagInfo and StashInfo ([a7f5e69](https://github.com/ruby-git/ruby-git/commit/a7f5e6988beaa85bce68e6295ad23a2754338d5b)), closes [#1745](https://github.com/ruby-git/ruby-git/issues/1745)
36
+ * **readme:** Add the deprecation and release support policies ([50ac2e2](https://github.com/ruby-git/ruby-git/commit/50ac2e28bdd6ddb9349b8980e457441a0d39f6c9))
37
+ * **remote:** Add failing tests for the Git::Remote and Git::Repository#remote deprecations ([36af404](https://github.com/ruby-git/ruby-git/commit/36af40419603f9c0a03f424e3839a1d7337b517b))
38
+ * **skills:** State the deprecation policy and the major release checklists ([a246cf8](https://github.com/ruby-git/ruby-git/commit/a246cf8fee93a96132f2bd1b0796899204b830a1))
39
+ * **upgrading:** Add the v6.0.0 upgrade procedure ([4d7c58c](https://github.com/ruby-git/ruby-git/commit/4d7c58c7a0e963da6146608093e9373dade1efe4))
40
+
41
+ ## [5.2.0](https://github.com/ruby-git/ruby-git/compare/v5.1.0...v5.2.0) (2026-08-30)
42
+
43
+
44
+ ### Features
45
+
46
+ * **checkout:** Support the :orphan option in Repository#checkout ([265a997](https://github.com/ruby-git/ruby-git/commit/265a997ca972868a392ee71489b0e34e42ff70ec))
47
+
48
+
49
+ ### Bug Fixes
50
+
51
+ * Exclude the .claude/skills symlink and other dev files from the gem ([ae4ef0e](https://github.com/ruby-git/ruby-git/commit/ae4ef0e6185285ee325fabdc9bc9214527a80ac5))
52
+ * Remove the cat-file raw constraint that duplicated a git check ([ea52fc7](https://github.com/ruby-git/ruby-git/commit/ea52fc7515b24669ab6f5371df2cabd2a08e357c))
53
+
54
+
55
+ ### Other Changes
56
+
57
+ * Add a markdown link checker ([8000810](https://github.com/ruby-git/ruby-git/commit/80008103ea7c3ad71404b75f0c04f8e81fd226f9))
58
+ * Address suppressed copilot comments in the resolve-feedback skill ([9677f33](https://github.com/ruby-git/ruby-git/commit/9677f33103f926271be5da8f4406f532f47b3ef3))
59
+ * Announce the v5.x deprecations and the v6.0.0 roadmap ([68380f2](https://github.com/ruby-git/ruby-git/commit/68380f24f48e3bbe6b3983e6272a58e838c72b39))
60
+ * Archive the v5.x redesign documents ([4bed4ce](https://github.com/ruby-git/ruby-git/commit/4bed4ce1a520dda9cea9336ea4f8784f48cba306))
61
+ * Configure the mattpocock engineering skills for this repo ([ff03315](https://github.com/ruby-git/ruby-git/commit/ff033152209bf82e97073845de61f04ee3ecc47f))
62
+ * Copyedit CONTRIBUTING.md for plain, direct language ([7756ad1](https://github.com/ruby-git/ruby-git/commit/7756ad1b0615fd1a7dc40cbdbba52822f2329d5a))
63
+ * **deps:** Update process_executer to ~> 4.1 ([7f01af4](https://github.com/ruby-git/ruby-git/commit/7f01af4ed0fdfc1894a10c01a7df34367559ac79))
64
+ * Fix broken relative links and heading anchors ([0bf31b8](https://github.com/ruby-git/ruby-git/commit/0bf31b85877f30746c51a6af765b4c707fcfe9ed))
65
+ * Fold the remaining plan documents into issues and adrs ([74944d9](https://github.com/ruby-git/ruby-git/commit/74944d9909e4a35f1fc7a88841e82b93e16a7e21))
66
+ * **fsck:** Build the second root commit through the public API ([3a7f083](https://github.com/ruby-git/ruby-git/commit/3a7f083b00498ace343622c8e7e20af6d498f247))
67
+ * Make command-class policy self-contained in the skills ([8158d2a](https://github.com/ruby-git/ruby-git/commit/8158d2ae8c1e0d108f2ad978056669dc95be6035))
68
+ * Name maintainer and contributors in the LICENSE copyright notice ([ddb33c0](https://github.com/ruby-git/ruby-git/commit/ddb33c004d82fdeaee90a36cea32e73e3b36211a))
69
+ * Point agents at the adr directory before they change covered areas ([ad8a20d](https://github.com/ruby-git/ruby-git/commit/ad8a20dc3cbddc81cb2e09a8b22e276ea6095907))
70
+ * Port the roadmap-tickets conventions into a project skill ([74a4e69](https://github.com/ruby-git/ruby-git/commit/74a4e696ba61595674501d02eaf49c7190fd4438))
71
+ * Record any durable decision as an adr, not only architectural ones ([455a28c](https://github.com/ruby-git/ruby-git/commit/455a28ca92d59eb83f448767547441701dbae3dc))
72
+ * Record the option surface rule as adr 0004 ([d37beed](https://github.com/ruby-git/ruby-git/commit/d37beeddb3f0b98dd71f6dd89a70cd5d4ef9cab0))
73
+ * Record the removal gate as adr 0006 ([b76d54e](https://github.com/ruby-git/ruby-git/commit/b76d54e8be59c07de848c944af7dc8e961e7c6f1))
74
+ * Record the v4.x call-shape rule as adr 0005 ([3cd68cd](https://github.com/ruby-git/ruby-git/commit/3cd68cde2d6e73b05425c6485619ca7fa92aa177))
75
+ * Record the validation delegation rationale as adr 0003 ([8c224f5](https://github.com/ruby-git/ruby-git/commit/8c224f561b0eebb77e8be1967df563ad977c7017))
76
+ * Reduce the resolve-feedback skill to a pointer plus ruby-git deltas ([4a4c361](https://github.com/ruby-git/ruby-git/commit/4a4c361715b585148a37115818d64a90b8088b5a))
77
+ * Remove ai writing tells from the readme ([e9c782e](https://github.com/ruby-git/ruby-git/commit/e9c782ea6aed6eb73265fcc3dea043fa916d2cc3))
78
+ * Remove the iteratively-address-copilot-reviews prompt and its command ([fdaed6f](https://github.com/ruby-git/ruby-git/commit/fdaed6f857dec93768c8f5be6e5cce0132a5103a))
79
+ * Rename the resolve-pr-feedback skill to address-pr-feedback ([d5e8700](https://github.com/ruby-git/ruby-git/commit/d5e8700736a4c6bd8899b558befb915056c5ff6d))
80
+ * Require executed proof for safety claims in breaking-change-analysis ([859ed31](https://github.com/ruby-git/ruby-git/commit/859ed31ecabc94f8cacd81ea5df8a273fa896fa9))
81
+ * Require verifiable, reviewer-provable task sequencing in development-workflow ([d4a7191](https://github.com/ruby-git/ruby-git/commit/d4a7191f49703f214748f19643242c9474bb8060))
82
+ * Satisfy the new Style/DirectiveScope cop ([354057e](https://github.com/ruby-git/ruby-git/commit/354057e32f9a0bec19bef50b07d037235bd73976))
83
+ * State each policy definition once and link everywhere else ([0023d54](https://github.com/ruby-git/ruby-git/commit/0023d54a252c567546b3097b5caf094a1a38b516)), closes [#1710](https://github.com/ruby-git/ruby-git/issues/1710)
84
+ * Stop restating gemspec version constraints in the project-context skill ([595a53c](https://github.com/ruby-git/ruby-git/commit/595a53c1b03919240d3997166b7606f9d1471345))
85
+
8
86
  ## [5.1.0](https://github.com/ruby-git/ruby-git/compare/v5.0.5...v5.1.0) (2026-08-18)
9
87
 
10
88