1111[ ![ Build Status] ( https://github.com/ruby-git/ruby-git/workflows/CI/badge.svg?branch=main )] ( https://github.com/ruby-git/ruby-git/actions?query=workflow%3ACI )
1212[ ![ Conventional Commits] ( https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white )] ( https://conventionalcommits.org )
1313
14- - [ 📢 Architectural Redesign 📢] ( #-architectural-redesign- )
15- - [ 📢 We Now Use RuboCop 📢] ( #-we-now-use-rubocop- )
16- - [ 📢 Default Branch Rename 📢] ( #-default-branch-rename- )
17- - [ 📢 We've Switched to Conventional Commits 📢] ( #-weve-switched-to-conventional-commits- )
1814- [ Summary] ( #summary )
1915- [ Install] ( #install )
2016- [ Major Objects] ( #major-objects )
2420- [ Examples] ( #examples )
2521- [ Ruby version support policy] ( #ruby-version-support-policy )
2622- [ License] ( #license )
27-
28- ## 📢 Architectural Redesign 📢
29-
30- The git gem is undergoing a significant architectural redesign for the upcoming
31- v5.0.0 release. The current architecture has several design challenges that make it
32- difficult to maintain and evolve. This redesign aims to address these issues by
33- introducing a clearer, more robust, and more testable structure.
34-
35- We have prepared detailed documents outlining the analysis of the current
36- architecture and the proposed changes. We encourage our community and contributors to
37- review them:
38-
39- 1 . [ Analysis of the Current Architecture] ( redesign/1_architecture_existing.md ) : A
40- breakdown of the existing design and its challenges.
41- 2 . [ The Proposed Redesign] ( redesign/2_architecture_redesign.md ) : An overview of the
42- new three-layered architecture.
43- 3 . [ Implementation Plan] ( redesign/3_architecture_implementation.md ) : The step-by-step
44- plan for implementing the redesign.
45-
46- Your feedback is welcome! Please feel free to open an issue to discuss the proposed
47- changes.
48-
49- > ** DON'T PANIC!**
50- >
51- > While this is a major internal refactoring, our goal is to keep the primary public
52- API on the main repository object as stable as possible. Most users who rely on
53- documented methods like ` g.commit ` , ` g.add ` , and ` g.status ` should find the
54- transition to v5.0.0 straightforward.
55- >
56- > The breaking changes will primarily affect users who have been relying on the
57- internal g.lib accessor, which will be removed as part of this cleanup. For more
58- details, please see the "Impact on Users" section in [ the redesign
59- document] ( redesign/2_architecture_redesign.md ) .
60-
61- ## 📢 We Now Use RuboCop 📢
62-
63- To improve code consistency and maintainability, the ` ruby-git ` project has now
64- adopted [ RuboCop] ( https://rubocop.org/ ) as our static code analyzer and formatter.
65-
66- This integration is a key part of our ongoing commitment to making ` ruby-git ` a
67- high-quality, stable, and easy-to-contribute-to project. All new contributions will
68- be expected to adhere to the style guidelines enforced by our RuboCop configuration.
69-
70- RuboCop can be run from the project's Rakefile:
71-
72- ``` shell
73- rake rubocop
74- ```
75-
76- RuboCop is also run as part of the default rake task (by running ` rake ` ) that is run
77- in our Continuous Integration workflow.
78-
79- Going forward, any PRs that have any Robocop offenses will not be merged. In
80- certain rare cases, it might be acceptable to disable a RuboCop check for the most
81- limited scope possible.
82-
83- If you have a problem fixing a RuboCop offense, don't be afraid to ask a contributor.
84-
85- ## 📢 Default Branch Rename 📢
86-
87- On June 6th, 2025, the default branch was renamed from 'master' to 'main'.
88-
89- Instructions for renaming your local or forked branch to match can be found in the
90- gist [ Default Branch Name
91- Change] ( https://gist.github.com/jcouball/580a10e395f7fdfaaa4297bbe816cc7d ) .
92-
93- ## 📢 We've Switched to Conventional Commits 📢
94-
95- To enhance our development workflow, enable automated changelog generation, and pave
96- the way for Continuous Delivery, the ` ruby-git ` project has adopted the [ Conventional
97- Commits standard] ( https://www.conventionalcommits.org/en/v1.0.0/ ) for all commit
98- messages.
99-
100- Going forward, all commits to this repository ** MUST** adhere to the Conventional
101- Commits standard. Commits not adhering to this standard will cause the CI build to
102- fail. PRs will not be merged if they include non-conventional commits.
103-
104- A git pre-commit hook may be installed to validate your conventional commit messages
105- before pushing them to GitHub by running ` bin/setup ` in the project root.
106-
107- Read more about this change in the [ Commit Message Guidelines section of
108- CONTRIBUTING.md] ( CONTRIBUTING.md#commit-message-guidelines )
23+ - [ 📢 Project Announcements 📢] ( #-project-announcements- )
24+ - [ 2025-07-09: Architectural Redesign] ( #2025-07-09-architectural-redesign )
25+ - [ 2025-07-07: We Now Use RuboCop] ( #2025-07-07-we-now-use-rubocop )
26+ - [ 2025-06-06: Default Branch Rename] ( #2025-06-06-default-branch-rename )
27+ - [ 2025-05-15: We've Switched to Conventional Commits] ( #2025-05-15-weve-switched-to-conventional-commits )
10928
11029## Summary
11130
608527
609528This gem will be expected to function correctly on:
610529
611- * All non-EOL versions of the MRI Ruby on Mac, Linux, and Windows
612- * The latest version of JRuby on Linux
613- * The latest version of Truffle Ruby on Linus
530+ - All non-EOL versions of the MRI Ruby on Mac, Linux, and Windows
531+ - The latest version of JRuby on Linux
532+ - The latest version of Truffle Ruby on Linus
614533
615534It is this project's intent to support the latest version of JRuby on Windows
616535once the following JRuby bug is fixed:
@@ -621,3 +540,87 @@ jruby/jruby#7515
621540
622541Licensed under MIT License Copyright (c) 2008 Scott Chacon. See LICENSE for further
623542details.
543+
544+ ## 📢 Project Announcements 📢
545+
546+ ### 2025-07-09: Architectural Redesign
547+
548+ The git gem is undergoing a significant architectural redesign for the upcoming
549+ v5.0.0 release. The current architecture has several design challenges that make it
550+ difficult to maintain and evolve. This redesign aims to address these issues by
551+ introducing a clearer, more robust, and more testable structure.
552+
553+ We have prepared detailed documents outlining the analysis of the current
554+ architecture and the proposed changes. We encourage our community and contributors to
555+ review them:
556+
557+ 1 . [ Analysis of the Current Architecture] ( redesign/1_architecture_existing.md ) : A
558+ breakdown of the existing design and its challenges.
559+ 2 . [ The Proposed Redesign] ( redesign/2_architecture_redesign.md ) : An overview of the
560+ new three-layered architecture.
561+ 3 . [ Implementation Plan] ( redesign/3_architecture_implementation.md ) : The step-by-step
562+ plan for implementing the redesign.
563+
564+ Your feedback is welcome! Please feel free to open an issue to discuss the proposed
565+ changes.
566+
567+ > ** DON'T PANIC!**
568+ >
569+ > While this is a major internal refactoring, our goal is to keep the primary public
570+ API on the main repository object as stable as possible. Most users who rely on
571+ documented methods like ` g.commit ` , ` g.add ` , and ` g.status ` should find the
572+ transition to v5.0.0 straightforward.
573+ >
574+ > The breaking changes will primarily affect users who have been relying on the
575+ internal g.lib accessor, which will be removed as part of this cleanup. For more
576+ details, please see the "Impact on Users" section in [ the redesign
577+ document] ( redesign/2_architecture_redesign.md ) .
578+
579+ ### 2025-07-07: We Now Use RuboCop
580+
581+ To improve code consistency and maintainability, the ` ruby-git ` project has now
582+ adopted [ RuboCop] ( https://rubocop.org/ ) as our static code analyzer and formatter.
583+
584+ This integration is a key part of our ongoing commitment to making ` ruby-git ` a
585+ high-quality, stable, and easy-to-contribute-to project. All new contributions will
586+ be expected to adhere to the style guidelines enforced by our RuboCop configuration.
587+
588+ RuboCop can be run from the project's Rakefile:
589+
590+ ``` shell
591+ rake rubocop
592+ ```
593+
594+ RuboCop is also run as part of the default rake task (by running ` rake ` ) that is run
595+ in our Continuous Integration workflow.
596+
597+ Going forward, any PRs that have any Robocop offenses will not be merged. In
598+ certain rare cases, it might be acceptable to disable a RuboCop check for the most
599+ limited scope possible.
600+
601+ If you have a problem fixing a RuboCop offense, don't be afraid to ask a contributor.
602+
603+ ### 2025-06-06: Default Branch Rename
604+
605+ On June 6th, 2025, the default branch was renamed from 'master' to 'main'.
606+
607+ Instructions for renaming your local or forked branch to match can be found in the
608+ gist [ Default Branch Name
609+ Change] ( https://gist.github.com/jcouball/580a10e395f7fdfaaa4297bbe816cc7d ) .
610+
611+ ### 2025-05-15: We've Switched to Conventional Commits
612+
613+ To enhance our development workflow, enable automated changelog generation, and pave
614+ the way for Continuous Delivery, the ` ruby-git ` project has adopted the [ Conventional
615+ Commits standard] ( https://www.conventionalcommits.org/en/v1.0.0/ ) for all commit
616+ messages.
617+
618+ Going forward, all commits to this repository ** MUST** adhere to the Conventional
619+ Commits standard. Commits not adhering to this standard will cause the CI build to
620+ fail. PRs will not be merged if they include non-conventional commits.
621+
622+ A git pre-commit hook may be installed to validate your conventional commit messages
623+ before pushing them to GitHub by running ` bin/setup ` in the project root.
624+
625+ Read more about this change in the [ Commit Message Guidelines section of
626+ CONTRIBUTING.md] ( CONTRIBUTING.md#commit-message-guidelines )
0 commit comments