Files
UA-.NETStandard/.gitattributes

89 lines
4.1 KiB
Plaintext

# Default behavior: if Git thinks a file is text (as opposed to binary), it
# will normalize line endings to LF in the repository, but convert to your
# platform's native line endings on checkout (e.g., CRLF for Windows).
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout. E.g.,
# *.txt text
# Declare files that will always have CRLF line endings on checkout. E.g.,
#*.slnx text eol=crlf
# Declare files that will always have LF line endings on checkout. E.g.,
*.sh text eol=lf
*.json text eol=lf
# The WoT Binding specification examples are vendored byte-for-byte from the
# specification repository and their SHA-256 hashes are pinned in
# tests/Opc.Ua.Types.Tests/Wot/Assets/spec-examples.manifest.json. Keep them at
# LF on every platform so the checked-out bytes are the upstream bytes.
*.jsonld text eol=lf
# The generated pump XML must match its checked-in bytes on every platform.
samples/WotCon/AggregationClient/Documents/SamplePump.NodeSet2.xml text eol=lf
# The OPC 10000-110 AMB NodeSet is vendored unmodified and its SHA-256 is pinned in
# tests/Opc.Ua.AMB.Tests/AmbModelTests.cs, so the checked-out bytes must be the
# upstream bytes on every platform.
src/Opc.Ua.AMB/Model/Opc.Ua.AMB.NodeSet2.xml text eol=lf
# The OPC 30010 AutoID NodeSet and identifier table are vendored unmodified and their
# SHA-256 hashes are pinned in src/Opc.Ua.AutoID/Model/provenance.json and
# tests/Opc.Ua.AutoID.Tests/AutoIdModelAssetTests.cs, so the checked-out bytes must be
# the upstream bytes on every platform.
src/Opc.Ua.AutoID/Model/Opc.Ua.AutoID.NodeSet2.xml text eol=lf
src/Opc.Ua.AutoID/Model/Opc.Ua.AutoID.NodeIds.csv text eol=lf
# Denote all files that should not have line endings normalized, should not be
# merged, and should not show in a textual diff.
*.docm binary
*.docx binary
*.ico binary
*.lib binary
*.png binary
*.pptx binary
*.snk binary
*.vsdx binary
*.xps binary
# OPC UA
*.uanodes binary
# Preserve official NodeSet artifacts byte-for-byte.
src/Opc.Ua.Positioning/Model/*.csv binary
src/Opc.Ua.Positioning/Model/*.xml binary
# Registry model imports carry exact upstream SHA-256 provenance on every platform.
src/Opc.Ua.XRegistry/Opc.Ua.XRegistry.NodeSet2.xml text eol=lf
src/Opc.Ua.XRegistry/Opc.Ua.XRegistry.NodeIds.csv text eol=lf
src/Opc.Ua.SchemaRegistry/Model/*.xml text eol=lf
src/Opc.Ua.SchemaRegistry/Model/*.csv text eol=lf
src/Opc.Ua.EndpointRegistry/Model/*.xml text eol=lf
src/Opc.Ua.EndpointRegistry/Model/*.csv text eol=lf
tests/Opc.Ua.SchemaRegistry.Tests/Assets/*.ipc binary
# Preserve the release-pinned Machine Vision inputs and their provenance hashes.
src/Opc.Ua.Vision/Model/Opc.Ua.MachineVision*.NodeSet2.xml -text
src/Opc.Ua.Vision/Model/Opc.Ua.MachineVision*.Upstream.NodeIds.csv -text
src/Opc.Ua.MachineVision/Model/Opc.Ua.MachineVision*.NodeSet2.xml -text
src/Opc.Ua.MachineVision/Model/Opc.Ua.MachineVision*.Upstream.NodeIds.csv -text
# Preserve pinned plastics/rubber inputs and the reproducibly authored common model.
# Their upstream license banners include trailing spaces covered by the byte-level hashes.
# TODO: revisit the whitespace exception if upstream republishes these inputs without it.
src/Opc.Ua.PlasticsRubber/Model/*.NodeSet2.xml -text whitespace=-blank-at-eol
src/Opc.Ua.PlasticsRubber/Model/Basis/*.NodeSet2.xml -text whitespace=-blank-at-eol
src/Opc.Ua.PlasticsRubber/Model/*.NodeIds.csv -text whitespace=cr-at-eol
src/Opc.Ua.Extrusion/*/Model/*.NodeSet2.xml -text whitespace=-blank-at-eol
src/Opc.Ua.Extrusion/*/Model/*.NodeIds.csv -text whitespace=cr-at-eol
src/Opc.Ua.PlasticsRubber/GranulateDrying/Model/*.NodeSet2.xml -text whitespace=-blank-at-eol
src/Opc.Ua.PlasticsRubber/GranulateDrying/Model/*.NodeIds.csv -text whitespace=cr-at-eol
# Fuzz seed corpora, crash/timeout/slow reproducers and the vendored original
# fork messages are exact byte sequences, not documents. Line-ending translation
# changes their length and SHA-256, breaks the byte-exact provenance assertions,
# and makes a corpus exercise different code paths on Windows than on Linux, so
# git must never normalize them.
fuzzing/*.Fuzz.Corpus/** binary
fuzzing/*.Fuzz.Tests/Assets/** binary