Stamatis>I guess there are people who use Windows and they still have their
editors
Stamatis>configured to use LF endings.

LF / CRLF uses Git configuration to figure out the needed line endings.
In other words, if someone configures Git to use LF rather than "platform"
line endings,
the build would pick that up and accept LF files even in case the platform
is Windows.

Remember there's not just `check`, but there's `apply` as well.
If we make `check` tolerable to wrong line endings, what do we do with
`apply`?
Does that mean `check` would say "it is all ok", and `apply` would change
all the endings to their expected values?

Note: if we are going to make that kind of changes, we'll need
"[CALCITE-3623] Replace Spotless with Autostyle"
https://github.com/apache/calcite/pull/1682

Stamatis>opensource projects it is kind of rare to release
Stamatis>source code in multiple formats with different line endings

Frankly speaking, I would say it is rare to treat the source code as the
primary release artifact.

AFAIK the ASF way is to treat the source as the key release item.
I recon in 99.42% of the times people who consume the source release would
commit that to their VCS (Git? Mercurial? SVN? Fossil?)

Our source release does include .gitattributes and .gitignore, so it would
help people to import Calcite in their Git repositories.
However, for other VCS it is important to have the source files in their
"platform-expected" format.

It is where having both CRLF-oriented and LF-oriented source releases help.

At this point, you might say: "Vladimir, no-one imports Calcite source
releases to their VCS repositories".
It might be true, but what is the point of making a source release then?
Is the policy of making source releases outdated?

Stamatis>other weird behavior but these should not happen very often.

Well, having .gitattributes does help a lot, but I remember that if one
messes up with line endings, then it might be very hard to diff and
re-commit the file appropriately.
It is like the case when `git reset --hard` does not help.
That is why it really helps when you can identify those issues early.

Vladimir

Reply via email to