From: Taylor Blau <me@ttaylorr.com>
To: git@vger.kernel.org
Subject: [TOPIC 05/11]: SHA 256 / Git 3.0
Date: Fri, 20 Sep 2024 10:19:33 -0400 [thread overview]
Message-ID: <Zu2EdQs6xf2FRkpa@nand.local> (raw)
In-Reply-To: <Zu2DmS30E0kKug2a@nand.local>
SHA-256 / Git 3.0
=================
(moderator: Patrick, notetaker: Taylor)
* Patrick: some of you may have seen some patches from a few months ago
to start thinking about this, and we now have a "deprecations" doc of
things that we plan to get rid of.
* One thing going away is grafts
* Another thing is git pack-redundant
* Patrick: SHA-256 will become the default object hash, but is
contingent on major platforms supporting SHA-256.
* Emily: this helps us too, because it provides some motivation that
this is going to happen.
* Patrick: having it in the 3.0 document makes it easier to push at
large organizations.
* Jonathan: with partial clones if I understand correctly users were
already trying it and complained to GitHub about it not being turned
on.
* Taylor: not really…
* Peff: I was embarrassed, so I wrote the bitmap support for
filtering objects
* Taylor: yeah, and turning it on was easier, but didn't require
updating database columns, etc. so the transition period here would
be much more expensive.
* brian: "can you put it in the customer feedback repo" is something
customers can ask for
* Jonathan: could use interop as a way for Git to default to sha256 with
the only harm to end users being that clones and fetches get slower
until servers support it
* brian: not planning on working on it unless their employer pays for
them to do it.
* Mark: customers wanting to start with SHA256 so they don't have to
migrate later
* Patrick: GitLab never really wanted SHA-256 until it was done on the
Gitaly side.
* brian: has definitely seen it on StackOverflow as something that
customers want. Not a huge selling point right now, but will become a
humongous selling point at some point (beyond >2030).
* Peff: if the proposal is to make SHA-256 the default, then we need to
be developing with it now, and we're not because there is no interop.
* Taylor: we should do it via interop, (a) because GitHub could not host
it, but (b) because we would introduce the same lack of testing just
with the interop code, not the SHA-256 code. So it must be done via
interop.
* Patrick: OK, but why do we care about SHA-256 locally if they're using
SHA-1 on the remote? The remote could be compromised
* Jonathan: You can verify things locally. This is the core idea of
distributed version control.
* Patrick: Oh, I see.
* brian: Signatures work with both hash functions, you can sign with
both.
* Peff: It does not feel right to me to set the user default until we
the project are using it, and that the interop code is a part of that
story. (back to Git 3.0, we combined the SHA-256 and Git 3.0
discussions into one)
* Peff: I have a proposal for Git 3.0, maybe this has been discussed?
Can we get rid of some of the older protocols (dumb HTTP)?
* Patrick: Lots of esoteric things, like show-branch, which apparently
nobody uses.
* Elijah: not just removals, but changing defaults, etc.
* Emily: are we interested in non-backwards compatible changes, like
adding multi-Author fields to commits?
* Peff: I think that's a bad example, it can be done without breaking
compatibility, but it was decided to not to do it. You're welcome to
resurrect the discussion.
* Patrick: … but it's a different question of whether or not that would
end up in the document.
* brian: multi-signatures
* Jonathan: Two questions I'm hearing:
* Should we include things that haven't been implemented yet?
Probably not.
* What do we think about this major version as a way to break
interoperability with older versions of Git?
* Patrick: I would not be in favor of breaking something, at least in
cases where we can add a protocol extension and/or new capabilities.
Intentionally breaking interoperability with an older version does not
seem like the right way to go.
* brian: I agree, but for the dumb HTTP protocol, C git uses it, Eric
Wong is really into it (lore.kernel.org supports it), etc.
* Emily: Bundle URIs and resumable clones, could in theoretically work
for resumable clones, but we don't have client-side support.
* Peff: Pretty sure that this isn't the case.
* Mark: can I ask a "dumb" question? What would it take to get a
schedule for 3.0?
* Patrick: Junio says not too often, maybe only breaking releases
every 5-10 years, which means 3.0 would come in 1-2 years.
* Peff: 1-2 years is what is in my mind.
* Taylor: I think that whatever answer we come to agreement here will
not be satisfying for you.
* Taylor: the items on that document aren't a checkbox list of things
to do before Git 3.0, but isn't a "let's get all of these things
done and then we'll release Git 3.0".
* More that we'll all wake up one day, realize that we've done all
or enough of what would go into Git 3.0, then remove a bunch of
code, and ship it.
* Jonathan: collecting breaking changes and aggregating them so users
can prepare for them together is helpful, but it's not the only way
that breaking changes will happen, especially if there is something
that needs to go away.
* Patrick: I want three things from this document:
* Reminder / documented intent.
* User feedback to hear things like "this is important to me, what is
(if any) the replacement?"
* ???
* brian: changing the default branch name?
* Taylor: I would be in favor of doing it sooner
* (some discussion)
* Taylor: We should consider doing it for git.git as well.
* Peff: we might write a bunch of those patches, move them into 'next'.
Could we have a Git 3.0 pseudo-maintainer.
* Jonathan: I have a naive question: why wouldn't it look like turning
on a single Makefile variable?
* Emily: and then we go and delete the code inside of the #ifdefs
* Taylor: whoever is the maintainer at that point in time could consider
a double-wide release cycle, where we delete that code, implement new
things, and then at the end of that cycle the artifact is called Git
3.0.
* Peff: very few people run "next"
* Jonathan: True. Could imagine some % of GitHub Actions runners
automatically running "next", that's the kind of thing that gets a
more representative workload.
* Toon: do we want to have maintenance releases?
* Emily: if we're dropping support for earlier versions, we should just
do it.
* Taylor: we should probably have a few supported release tracks that we
designate as LTS releases.
* Patrick: For security issues only, probably for a period of 1-2 years.
* Peff: Should we write this up as a plan for the person who actually
does release engineering?
* Taylor: I can write up that plan, and be the point person for the
LTS releases.
* Jonathan: the Linux kernel has dedicated maintainers for LTS
releases, which seems to work well.
* brian: we can certainly tell that to Junio, but it's also ultimately
their decision.
next prev parent reply other threads:[~2024-09-20 14:19 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-20 14:15 Notes from the Git Contributor's Summit, 2024 Taylor Blau
2024-09-20 14:17 ` [TOPIC 01/11] Rust Taylor Blau
2024-09-20 16:20 ` rsbecker
2024-09-23 2:25 ` Sean Allred
2024-09-23 12:17 ` rsbecker
2024-09-24 15:30 ` Phillip Wood
2024-09-24 22:44 ` rsbecker
2024-09-27 9:37 ` Sean Allred
2024-09-27 12:23 ` rsbecker
2024-09-27 17:40 ` rsbecker
2024-09-20 14:17 ` [TOPIC 02/11] Top-level lib/ directory Taylor Blau
2024-09-20 14:18 ` [TOPIC 03/11] Structured Error Handling Taylor Blau
2024-09-20 14:19 ` [TOPIC 04/11] Platform Support Policy Taylor Blau
2024-09-20 14:19 ` Taylor Blau [this message]
2024-09-20 19:22 ` [TOPIC 05/11]: SHA 256 / Git 3.0 Junio C Hamano
2024-09-20 14:20 ` [TOPIC 06/11] Git and Software Freedom Conservancy Taylor Blau
2024-09-20 14:20 ` [TOPIC 07/11] New Contributors and Discord Taylor Blau
2024-09-20 22:48 ` Junio C Hamano
2024-09-21 17:02 ` Kousik Sanagavarapu
2024-09-22 19:15 ` Junio C Hamano
2024-09-22 19:44 ` Junio C Hamano
2024-09-23 13:51 ` Konstantin Ryabitsev
2024-09-23 21:31 ` Junio C Hamano
2024-09-24 18:06 ` Konstantin Ryabitsev
2024-09-24 19:15 ` Junio C Hamano
2024-09-24 19:23 ` Konstantin Ryabitsev
2024-09-27 10:08 ` Phillip Wood
2024-09-27 19:22 ` Junio C Hamano
2024-10-01 15:23 ` Phillip Wood
2024-09-20 14:21 ` [TOPIC 08/11] Modern Build Systems Taylor Blau
2024-09-23 2:01 ` Eli Schwartz
2024-09-24 12:13 ` Patrick Steinhardt
2024-09-20 14:22 ` [TOPIC 09/11] Bundle-URI on fetch / resume-able clone Taylor Blau
2024-09-20 14:22 ` [TOPIC 10/11] Project Tracking Taylor Blau
2024-09-20 19:41 ` Junio C Hamano
2024-09-20 19:49 ` Junio C Hamano
2024-09-23 9:15 ` Phillip Wood
2024-09-20 14:23 ` [TOPIC 11/11] git-scm.com state of the site Taylor Blau
-- strict thread matches above, loose matches on Subject: below --
2024-08-24 17:20 [GSoC][PATCH] unit-tests: add tests for oidset.h Ghanshyam Thakkar
2024-08-26 7:02 ` Patrick Steinhardt
2024-08-26 9:31 ` Christian Couder
2024-08-26 15:46 ` Junio C Hamano
2024-09-26 18:28 ` Junio C Hamano
2024-09-26 19:12 ` [PATCH] howto-maintain-git: discarding inactive topics Junio C Hamano
2024-09-27 8:57 ` [GSoC][PATCH] unit-tests: add tests for oidset.h Christian Couder
2024-09-27 18:47 ` Junio C Hamano
2024-09-28 7:02 ` Patrick Steinhardt
2024-09-30 18:48 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zu2EdQs6xf2FRkpa@nand.local \
--to=me@ttaylorr.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).