{"thread":{"id":"64905","subject":"A note from the maintainer","startedAt":"2026-02-02T18:36:18Z","lastAt":"2026-02-02T19:22:23Z","messageCount":2,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"534994","messageId":"xmqqms1ryov3.fsf@gitster.g","threadId":"64905","inReplyTo":null,"subject":"A note from the maintainer","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-02-02T18:36:16Z","receivedAt":"2026-02-02T18:36:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Welcome to the Git development community.\n\nThis message is written by the maintainer and talks about how Git\nproject is managed, and how you can work with it.\n\nThe current maintainer is Junio C Hamano <gitster@pobox.com>.  Spam\nfilters learned that legitimate messages come to this address only\nfrom a very few sender addresses that are known to be good, and all\nother messages are likely to be spam unless they are also sent to the\nmailing list at the same time (i.e. \"Reply-all\" to the list message\nwould reach the mailbox, but \"Reply\" will likely be thrown into the\nspam folder), so please do not send a message to this address unless\nit is also sent to the mailing list as well.\n\n\n* Mailing list and the community\n\nThe development is primarily done on the Git mailing list. Help\nrequests, feature proposals, bug reports and patches should be sent to\nthe list address <git@vger.kernel.org>.  You don't have to be\nsubscribed to send messages.  The convention on the list is to keep\neverybody involved on Cc:, so it is unnecessary to say \"Please Cc: me,\nI am not subscribed\".\n\nAs an anti-spam measure, the mailing list software rejects messages\nthat are not text/plain and drops them on the floor.  If you are a\nGMail user, you'd want to make sure \"Plain text mode\" is checked.\n\nThe mailing list, while welcoming non code contributions like bug\nreports, mostly discusses updating contents of the source tree to the\n(core) Git software, including documentation \"git help\" gives.\nNon-code contributions may have places other than the mailing list\nthat are more preferrable.  See the \"other places\" section near the\nend.\n\nBefore sending patches, please read Documentation/SubmittingPatches\nand Documentation/CodingGuidelines to familiarize yourself with the\nproject convention.\n\nIf you sent a patch and you did not hear any response from anybody for\nseveral days, it does not necessarily mean that your patch was totally\nuninteresting; it may merely mean that it was lost in the noise.\nPlease do not hesitate to send a reminder message in such a case.\nMessages getting lost in the noise may be a sign that those who can\nevaluate your patch don't have enough mental/time bandwidth to process\nthem right at the moment, and it often helps to wait until the list\ntraffic becomes calmer before sending such a reminder.\n\nThe list archive is available at a few public sites:\n\n        https://lore.kernel.org/git/\n        https://marc.info/?l=git\n        https://www.spinics.net/lists/git/\n\nFor those who prefer to read it over NNTP:\n\n\tnntp://nntp.lore.kernel.org/org.kernel.vger.git\n        nntp://news.public-inbox.org/inbox.comp.version-control.git\n\nare available.\n\nWhen you point at a message in a mailing list archive, using its\nmessage ID is often the most robust (if not very friendly) way to do\nso, like this:\n\n\thttps://lore.kernel.org/git/Pine.LNX.4.58.0504150753440.7211@ppc970.osdl.org\n\nOften these web interfaces accept the message ID with enclosing <>\nstripped (like the above example to point at one of the most important\nmessage in the Git mailing list).\n\nSome members of the development community can sometimes be found on\nthe #git and #git-devel IRC channels on Libera Chat.  Their logs are\navailable at:\n\n        https://colabti.org/ircloggy/git/last\n        https://colabti.org/ircloggy/git-devel/last\n\nThere is a volunteer-run newsletter to serve our community (\"Git Rev\nNews\" https://git.github.io/rev_news/).\n\nGit is a member project of software freedom conservancy, a non-profit\norganization (https://sfconservancy.org/).  To reach a committee of\nliaisons to the conservancy, contact them at <git@sfconservancy.org>.\n\nFor our expectations on the behaviour of the community participants\ntowards each other, see CODE_OF_CONDUCT.md at the top level of the source\ntree, or:\n\n    https://github.com/git/git/blob/master/CODE_OF_CONDUCT.md\n\n\n* Reporting bugs\n\nWhen you think git does not behave as you expect, please do not stop\nyour bug report with just \"git does not work\".  \"I used git in this\nway, but it did not work\" is not much better, neither is \"I used git\nin this way, and X happend, which is broken\".  It often is that git is\ncorrect to cause X happen in such a case, and it is your expectation\nthat is broken.  People would not know what other result Y you\nexpected to see instead of X, if you left it unsaid.\n\nPlease remember to always state\n\n - what you wanted to achieve;\n\n - what you did (the version of git and the command sequence to reproduce\n   the behavior);\n\n - what you saw happen (X above);\n\n - what you expected to see (Y above); and\n\n - how the last two are different.\n\nSee https://www.chiark.greenend.org.uk/~sgtatham/bugs.html for further\nhints.  Our `git bugreport` tool gives you a handy way you can use to\nmake sure you do not forget these points when filing a bug report.\n\nIf you think you found a security-sensitive issue and want to disclose\nit to us without announcing it to wider public, please contact us at\nour security mailing list <git-security@googlegroups.com>.  This is\na closed list that is limited to people who need to know early about\nvulnerabilities, including:\n\n  - people triaging and fixing reported vulnerabilities\n  - people operating major git hosting sites with many users\n  - people packaging and distributing git to large numbers of people\n\nwhere these issues are discussed without risk of the information\nleaking out before we're ready to make public announcements.\n\n\n* Repositories and documentation.\n\nMy public git.git repositories are (mirrored) at:\n\n  https://git.kernel.org/pub/scm/git/git.git/\n  https://kernel.googlesource.com/pub/scm/git/git\n  https://repo.or.cz/alt-git.git/\n  https://github.com/git/git/\n  https://gitlab.com/git-scm/git/\n\nThis one shows not just the main integration branches, but also\nindividual topics broken out:\n\n  https://github.com/gitster/git/\n\nA few web interfaces are found at:\n\n  https://git.kernel.org/pub/scm/git/git.git\n  https://kernel.googlesource.com/pub/scm/git/git\n  https://repo.or.cz/w/alt-git.git\n\nPreformatted documentation from the tip of the \"master\" branch can be\nfound in:\n\n  https://git.kernel.org/pub/scm/git/git-{htmldocs,manpages}.git/\n  https://repo.or.cz/git-{htmldocs,manpages}.git/\n  https://github.com/gitster/git-{htmldocs,manpages}.git/\n\nThe manual pages formatted in HTML for the tip of \"master\" can be\nviewed online at:\n\n  https://git.github.io/htmldocs/git.html\n\n\n* How various branches are used.\n\nThere are four \"integration\" branches in git.git repository that track\nthe source tree of git: \"master\", \"maint\", \"next\", and \"seen\".  They\nhowever almost never get new commits made directly on them.  Instead,\na branch is forked from either \"master\" or \"maint\" for each \"topic\",\nwhether it is a new feature or a fix for a bug, and holds a set of\ncommits that belong to the same theme.  Such a \"topic branch\" is then\nmerged to these integration branches.\n\nThe \"master\" branch is meant to contain what are very well tested and\nready to be used in a production setting.  Every now and then, a\n\"feature release\" is cut from the tip of this branch.  They used to be\nnamed with three dotted decimal digits (e.g., \"1.8.5\"), but we have\nswitched the versioning scheme and \"feature releases\" are named with\nttwo-dotted decimal digits (e.g. \"2.53\"), whose tag ends with \".0\"\n(e.g., \"v2.53.0\").\n\nThe last such release was Git 2.53, made on Feb 2nd, 2026.  We aim to\nmake sure that the tip of the \"master\" branch is always more stable\nthan any of the released versions.\n\nWhenever a feature release is made, \"maint\" branch is forked off from\n\"master\" at that point.  Obvious and safe fixes for bugs in the latest\nfeature release are merged to this branch and maintenance releases are\ncut from it.  Usually the topic branches that contain these fixes are\nmerged to the \"master\" branch first, before getting merged to the\n\"maint\" branch, to reduce the chance of last-minute issues, but\nthings like embargoed security fixes may first appear in the \"maint\"\nand merged up to \"master\" at the same time.  The maintenance releases\nused to be named with four dotted decimal, named after the feature\nrelease they are updates to (e.g., \"1.8.5.1\" was the first maintenance\nrelease for \"1.8.5\" feature release).  These days, maintenance releases\nare named by incrementing the last digit of three-dotted decimal name\n(e.g., \"2.47.1\" was the second maintenance release for the \"2.47\" series).\n\nNew features almost never go to the \"maint\" branch, although changes\nto help Git developers themselves, including CI updates, are often\nmerged down even if they are not bugfixes at all.  The \"maint\" branch\nis merged up into the \"master\" branch, primarily to propagate the\ndescription in the release notes forward.\n\nWhen you send a series of patches, after review discussions on the\nmailing list, a separate topic branch is forked from the tip of\n\"master\" (or somewhere older, especially when the topic is about\nfixing an earlier bug) and your patches are applied on that topic\nbranch, and kept out of \"master\" while people test it out.  The\nquality of topic branches are judged primarily by the mailing list\ndiscussions.\n\nTopic branches that are in good shape are merged to the \"next\" branch.\nThe \"next\" branch is where new and exciting things take place.  In\ngeneral, the \"next\" branch always contains the tip of \"master\".  It\nmight not be quite rock-solid, but is expected to work more or less\nwithout major breakage.  A topic that is in \"next\" is expected to be\npolished to perfection before it is merged to \"master\".  Please help\nthis process by building & using the \"next\" branch for your daily\nwork, and reporting any new bugs you find to the mailing list, before\nthe breakage is merged down to the \"master\".  This process depends on\nyour participation, as the way you use Git may be unique from others,\nand a new bug may only manifest itself when used in the way you use\nGit, not noticed by others.\n\nThe \"seen\" branch bundles the remaining topic branches that the\nmaintainer happens to have seen to remind the maintainer that the\ntopics in them might become interesting when they are polished.  A\ntopic in \"seen\" can and does get discarded before it gets merged to\n\"next\" if its idea does not pan out, just like a topic can wither on\nthe list without anybody supporting it.  Please do not read anything\nmore than \"the maintainer has seen it and found it potentially\ninteresting\" into a topic being in \"seen\".\n\nThe contributors can use the \"seen\" branch to anticipate what topics\nby others may cause conflicts with their own work, and find people who\nare working on these topics to talk to before the potential conflicts\nget out of control.  It would be a good idea to fork your work from\nmaint or master and to (1) test it by itself, (2) test a temporary\nmerge of it to \"next\" and (3) test a temporary merge to it to \"seen\",\nbefore sending it to the list (or asking GitGitGadget to send it to\nthe list).\n\nYou can run \"git log --oneline --first-parent master..seen\" to see\nwhat topics are currently in flight.  The output of the above command\ntalks about a \"jch\" branch, which is an early part of the \"seen\" branch;\nthat branch contains all topics that are in \"next\" and a bit more (but\nnot all of \"seen\") and is used by the maintainer for his daily work.\n\nThe two branches \"master\" and \"maint\" are never rewound, and \"next\"\nusually will not be either.  After a feature release is made from\n\"master\", however, \"next\" will be rebuilt from the tip of \"master\"\nusing the topics that didn't make the cut in the feature release.\nSome topics that used to be in \"next\" during the previous cycle may\nget ejected from \"next\" when this happens.\n\nA natural consequence of how \"next\" and \"seen\" bundles topics together\nis that until a topic is merged to \"next\", updates to it is expected\nby replacing the patch(es) in the topic with an improved version, and\nonce a topic is merged to \"next\", updates to it needs to come as\nincremental patches, pointing out what was wrong in the previous\npatches and how the problem was corrected.  The idea is that if many\nreviewers thought it has seen enough eyeballs and is good enough for\n\"next\", yet we later find that there was something we all missed, that\nis worth a separate explanation, e.g., \"The primary motivation behind\nthe series is still good, but for such and such reasons we missed this\ncase we are fixing.\", hence we prefer follow-up incremental patches.\n\nNote that being in \"next\" is not a guarantee to appear in the next\nrelease, nor even in any future release.  There were cases that topics\nneeded reverting a few commits in them before graduating to \"master\",\nor a topic that already was in \"next\" was reverted from \"next\" because\nfatal flaws were found in it after it was merged to \"next\".  The same\ncan be said to \"master\"---there were cases that we needed to revert a\ntopic from it because a regression was found after it was merged to\n\"master\", instead of while it was still in \"next\".  To prevent it from\nhappening, those who care about the quality of the next release, those\nwho want to ensure that the next release will not break their\nworkflow, are strongly encouraged to build and try out \"next\" in their\ndaily work and report problems.\n\n\n* Other people's trees.\n\nDocumentation/SubmittingPatches outlines to whom your proposed changes\nshould be sent.  As described in contrib/README, I would delegate fixes\nand enhancements in contrib/ area to the primary contributors of them.\n\nAlthough the following are included in git.git repository, they have their\nown authoritative repository and maintainers:\n\n - git-gui/ comes from git-gui project, maintained by Johannes Sixt:\n\n        https://github.com/j6t/git-gui\n\n - gitk-git/ comes from gitk project, maintained by Johannes Sixt:\n\n        https://github.com/j6t/gitk\n\n - po/ comes from the localization coordinator, Jiang Xin:\n\n\thttps://github.com/git-l10n/git-po/\n\nWhen sending proposed updates and fixes to these parts of the system,\nplease base your patches on these trees, not git.git (the former two\neven have different directory structures).\n\n\n* Other places.\n\nAs the Git ecosystem has grown larger over the years, there are\ndocumentation sites and third-party tools that have been created and\nmaintained by friendly third-parties.  Reporting issues with them to\nthe main mailing list is still welcomed by the list participants, but\nmost likely you will be asked to contact these third-parties directly.\n\n - git-scm website (https://www.git-scm.com/) is maintained directly\n   on its GitHub repository and its issues are managed there.\n\n   https://github.com/git/git-scm.com/issues\n   https://github.com/git/git-scm.com/?tab=readme-ov-file#contributing\n\n - Git for Windows (https://gitforwindows.org/) is a project that\n   packages (core) Git software with some other goodies for the\n   Windows platform.  They manage their own issues list and their\n   changes are managed directly on GitHub via pull requests, focused\n   primarily on Windows specific issues and their additions (like\n   Windows installer).\n\n   https://github.com/git-for-windows/git/wiki/How-to-participate\n   https://github.com/git-for-windows/git/issues\n\n - The online edition of ProGit Book hosted at git-scm.com/book/ is\n   managed by the Pro Git book folks, and they maintain their work and\n   issues at their GitHub repository.\n\n   https://github.com/progit/progit2/issues\n   https://github.com/progit/progit2/blob/main/CONTRIBUTING.md\n"},{"id":"535003","messageId":"xmqqsebjx85u.fsf@gitster.g","threadId":"64905","inReplyTo":"xmqqms1ryov3.fsf@gitster.g","subject":"Re: A note from the maintainer","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2026-02-02T19:22:21Z","receivedAt":"2026-02-02T19:22:23Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"In addition to the usual version bump to say \"the latest feature\nrelease is 2.53 done today\", this update includes a request to\npeople to build and try \"next\" in their daily work to prevent\nundiscovered bugs getting to \"master\" and breaking their workflow.\nHere are excerpts from relevant paragraphs in \"diff --word-diff\"\nform (i.e., new words are shown as {+new words+}, removed ones are\nshown as {-removed words-}).\n\n...\n\nTopic branches that are in good shape are merged to the \"next\" branch.\nThe \"next\" branch is where new and exciting things take place.  In\ngeneral, the \"next\" branch always contains the tip of \"master\".  It\nmight not be quite rock-solid, but is expected to work more or less\nwithout major breakage.  A topic that is in \"next\" is expected to be\npolished to perfection before it is merged to \"master\".  Please help\nthis process by building & using the \"next\" branch for your daily\nwork, and reporting any new bugs you find to the mailing list, before\nthe breakage is merged down to the \"master\".  {+This process depends on+}\n{+your participation, as the way you use Git may be unique from others,+}\n{+and a new bug may only manifest itself when used in the way you use+}\n{+Git, not noticed by others.+}\n\n...\n\nNote that being in \"next\" is not a guarantee to appear in the next\nrelease, nor even in any future release.  There were cases that topics\nneeded reverting a few commits in them before graduating to \"master\",\nor a topic that already was in \"next\" was reverted from \"next\" because\nfatal flaws were found in it after it was merged to \"next\".  {+The same+}\n{+can be said to \"master\"---there were cases that we needed to revert a+}\n{+topic from it because a regression was found after it was merged to+}\n{+\"master\", instead of while it was still in \"next\".  To prevent it from+}\n{+happening, those who care about the quality of the next release, those+}\n{+who want to ensure that the next release will not break their+}\n{+workflow, are strongly encouraged to build and try out \"next\" in their+}\n{+daily work and report problems.+}\n"}]}