@@ -694,6 +694,76 @@ <h3 id="_changes">Changes</h3>
694694matches the default branch name used in new repositories by many of the
695695big Git forges.</ p >
696696</ li >
697+ < li >
698+ < p > Git will require Rust as a mandatory part of the build process. While Git
699+ already started to adopt Rust in Git 2.49, all parts written in Rust are
700+ optional for the time being. This includes:</ p >
701+ < div class ="ulist ">
702+ < ul >
703+ < li >
704+ < p > The Rust wrapper around libgit.a that is part of "contrib/" and which has
705+ been introduced in Git 2.49.</ p >
706+ </ li >
707+ < li >
708+ < p > Subsystems that have an alternative implementation in Rust to test
709+ interoperability between our C and Rust codebase.</ p >
710+ </ li >
711+ < li >
712+ < p > Newly written features that are not mission critical for a fully functional
713+ Git client.</ p >
714+ < div class ="paragraph ">
715+ < p > These changes are meant as test balloons to allow distributors of Git to prepare
716+ for Rust becoming a mandatory part of the build process. There will be multiple
717+ milestones for the introduction of Rust:</ p >
718+ </ div >
719+ < div class ="openblock ">
720+ < div class ="content ">
721+ < div class ="olist arabic ">
722+ < ol class ="arabic ">
723+ < li >
724+ < p > Initially, with Git 2.52, support for Rust will be auto-detected by Meson and
725+ disabled in our Makefile so that the project can sort out the initial
726+ infrastructure.</ p >
727+ </ li >
728+ < li >
729+ < p > In Git 2.53, both build systems will default-enable support for Rust.
730+ Consequently, builds will break by default if Rust is not available on the
731+ build host. The use of Rust can still be explicitly disabled via build
732+ flags.</ p >
733+ </ li >
734+ < li >
735+ < p > In Git 3.0, the build options will be removed and support for Rust is
736+ mandatory.</ p >
737+ </ li >
738+ </ ol >
739+ </ div >
740+ </ div >
741+ </ div >
742+ < div class ="paragraph ">
743+ < p > You can explicitly ask both Meson and our Makefile-based system to enable Rust
744+ by saying < code > meson</ code > < code > configure</ code > < code > -Drust=enabled</ code > and < code > make</ code > < code > WITH_RUST=YesPlease</ code > ,
745+ respectively.</ p >
746+ </ div >
747+ < div class ="paragraph ">
748+ < p > The Git project will declare the last version before Git 3.0 to be a long-term
749+ support release. This long-term release will receive important bug fixes for at
750+ least four release cycles and security fixes for six release cycles. The Git
751+ project will hand over maintainership of the long-term release to distributors
752+ in case they need to extend the life of that long-term release even further.
753+ Details of how this long-term release will be handed over to the community will
754+ be discussed once the Git project decides to stop officially supporting it.</ p >
755+ </ div >
756+ < div class ="paragraph ">
757+ < p > We will evaluate the impact on downstream distributions before making Rust
758+ mandatory in Git 3.0. If we see that the impact on downstream distributions
759+ would be significant, we may decide to defer this change to a subsequent minor
760+ release. This evaluation will also take into account our own experience with
761+ how painful it is to keep Rust an optional component.</ p >
762+ </ div >
763+ </ li >
764+ </ ul >
765+ </ div >
766+ </ li >
697767</ ul >
698768</ div >
699769</ div >
@@ -839,7 +909,7 @@ <h2 id="_superseded_features_that_will_not_be_deprecated">Superseded features th
839909</ div >
840910< div id ="footer ">
841911< div id ="footer-text ">
842- Last updated 2025-10-02 14:07:14 -0700
912+ Last updated 2025-10-08 13:52:53 -0700
843913</ div >
844914</ div >
845915</ body >
0 commit comments