11
11
[ ![ 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 )
12
12
[ ![ Conventional Commits] ( https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196?logo=conventionalcommits&logoColor=white )] ( https://conventionalcommits.org )
13
13
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- )
18
14
- [ Summary] ( #summary )
19
15
- [ Install] ( #install )
20
16
- [ Major Objects] ( #major-objects )
24
20
- [ Examples] ( #examples )
25
21
- [ Ruby version support policy] ( #ruby-version-support-policy )
26
22
- [ 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
<
10BC0
code> - 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 )
109
28
110
29
## Summary
111
30
608
527
609
528
This gem will be expected to function correctly on:
610
529
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
614
533
615
534
It is this project's intent to support the latest version of JRuby on Windows
616
535
once the following JRuby bug is fixed:
@@ -621,3 +540,87 @@ jruby/jruby#7515
621
540
622
541
Licensed under MIT License Copyright (c) 2008 Scott Chacon. See LICENSE for further
623
542
details.
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