36 lines
2.0 KiB
Plaintext
36 lines
2.0 KiB
Plaintext
* text=auto eol=lf
|
|
|
|
# SQLx calculates a checksum of migration scripts at build time to compare
|
|
# it with the checksum of the applied migration for the same version at
|
|
# runtime, to know if the migration script has been changed, and thus the
|
|
# DB schema went out of sync with the code.
|
|
#
|
|
# However, such checksum treats the script as a raw byte stream, taking
|
|
# into account inconsequential differences like different line endings
|
|
# in different OSes. When combined with Git's EOL conversion and mixed
|
|
# native and cross-compilation scenarios, this leads to existing
|
|
# migrations that didn't change having potentially different checksums
|
|
# according to the environment they were built in, which can break the
|
|
# migration system when deploying the Modrinth App, rendering it
|
|
# unusable.
|
|
#
|
|
# The gitattribute above ensures that all text files are checked out
|
|
# with LF line endings, but widely deployed app versions were built
|
|
# without this attribute set, which left such line endings variable to
|
|
# the platform. Thus, there is no perfect solution to this problem:
|
|
# forcing CRLF here would break Linux and macOS users, forcing LF
|
|
# breaks Windows users, and leaving it unspecified may still lead to
|
|
# line ending differences when cross-compiling from Linux to Windows
|
|
# or vice versa, or having Git configured with different line
|
|
# conversion settings. Moreover, there is no `eol=native` attribute,
|
|
# and using CI-only scripts to convert line endings would make the
|
|
# builds differ between CI and most local environments. So, let's pick
|
|
# the least bad option: let Git handle line endings using its
|
|
# configuration by leaving it unspecified, which works fine as long as
|
|
# people don't mess with Git's line ending settings, which is the vast
|
|
# majority of cases.
|
|
/packages/app-lib/migrations/20240711194701_init.sql !eol
|
|
/packages/app-lib/migrations/20240813205023_drop-active-unique.sql !eol
|
|
/packages/app-lib/migrations/20240930001852_disable-personalized-ads.sql !eol
|
|
/packages/app-lib/migrations/20241222013857_feature-flags.sql !eol
|