Skip to content

Add SPDX + Arm copyright headers across repo#21

Merged
atsyplikhin merged 5 commits intomainfrom
headers/add-spdx-arm-attribution
Apr 24, 2026
Merged

Add SPDX + Arm copyright headers across repo#21
atsyplikhin merged 5 commits intomainfrom
headers/add-spdx-arm-attribution

Conversation

@atsyplikhin
Copy link
Copy Markdown
Collaborator

@atsyplikhin atsyplikhin commented Apr 24, 2026

Summary

  • Adds canonical SPDX short-form header + Arm copyright to all 208 qualifying source files (.py, .sh, .yml/.yaml, .toml) across packages/device-connect-edge/, packages/device-connect-server/, packages/device-connect-agent-tools/, tests/, and root configs. Prior baseline had zero headers.
  • Header form matches Arm's ARM-software convention — copyright line first, blank, SPDX identifier second — with shebang scripts receiving the header immediately after the #! line.
  • Documents the header requirement in CONTRIBUTING.md under the License section so future contributions stay uniform.

Motivation: Apache-2.0 §4.1 requires notice preservation on redistribution. Device Connect code is about to be consumed by downstream projects (notably MHP); this pass establishes a clean, machine-readable authorship trail before that happens.

Commits are split per package for easy review (edge, server, agent-tools, tests+root, CONTRIBUTING).

Sample header

# Copyright (c) 2024-2026, Arm Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: Apache-2.0

Scope

Group .py .sh .yml .toml
device-connect-edge 57 0 0 1
device-connect-server 70 6 10 1
device-connect-agent-tools 32 0 0 1
tests/ 26 0 1 0
root configs 0 0 2 1

Excluded (per scope)

LICENSE, NOTICE, *.md, .gitignore, .editorconfig, lock files, __pycache__, *.egg-info. No third-party copyrights were found in source; nothing to preserve or reconcile.

Test plan

  • Python syntax check: python3 -m py_compile across all 185 .py files — exit 0
  • TOML parse: tomllib across 3 files — 0 errors
  • YAML parse: yaml.safe_load_all across 13 files — 0 errors
  • Bash syntax: bash -n across 6 .sh files — clean
  • ruff check (run in CI — not available locally)
  • Unit tests per package (run in CI — pytest not available locally; headers are pure comment blocks and cannot affect execution)

Apache-2.0 §4.1 requires notice preservation on redistribution. Adds
canonical SPDX short-form header across all 58 source files (.py, .toml)
in the edge package ahead of downstream consumption (notably MHP).
Canonical SPDX short-form header across all 87 source files (.py, .sh,
.yml, .toml) in the server package. Shebang scripts receive the header
immediately after the shebang line.
Canonical SPDX short-form header across all 33 source files (.py, .toml)
in the agent-tools package.
Canonical SPDX short-form header across cross-repo integration tests/
(27 files) and root-level configs (ruff.toml, CI/release workflows).
Adds a "File headers" section to the License section describing the
required SPDX + Arm copyright header and placement rules, matching the
headers just applied across the codebase.
@atsyplikhin atsyplikhin merged commit def9b6f into main Apr 24, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants