CaroFernando opened a new pull request, #9017: URL: https://github.com/apache/texera/pull/9017
### What changes were proposed in this PR? Binary files can't carry a license header, so nothing in the repository records where its images and media files came from (see #8800). This PR adds `PROVENANCE.yaml` at the repository root, with one entry for each of the 236 image and media files tracked in git: - `path` - `origin`: `project-made`, `third-party` or `unknown` - `source` and `license`, for third-party files - `notes`: the evidence for the entry, or what still has to happen Entries were filled from: - the commit that wrote each file's current content. This matters because several icons were replaced after they were first added, for example the UDF icons in #5686; - embedded metadata (exiftool); - the description and comments of the PR that added each file; - a visual review. Summary: | Origin | Files | |---|---| | project-made | 31 | | third-party | 15 (8 already in `LICENSE`; 7 need follow-up, listed in #8984) | | unknown | 190 (13 are the vendor logos replaced by #8999) | The `unknown` entries are the remaining audit work for #8984. If the release goes the `DISCLAIMER-WIP` route agreed in #8800, they are the list the disclaimer can point to. The format follows the manifest proposed in #8985, so that issue's CI check can read this file. This PR only records provenance. It does not replace any image or edit `LICENSE`; that follow-up work is tracked in #8984. ### Any related issues, documentation, discussions? Part of #8984. Related: #8800, #8985, #8982 / #8999. Audit status and plan: https://github.com/apache/texera/issues/8984#issuecomment-6246250030 Draft until: - the manifest format is agreed (see #8985); - #8999 merges, after which the 13 vendor-logo entries will be regenerated as project-made. ### How was this PR tested? Documentation-only change, no code. Checks run: ```bash # every tracked image/media file has exactly one entry, and the file parses python3 -c "import yaml,subprocess; d=yaml.safe_load(open('PROVENANCE.yaml'))['files']; \ t={p for p in subprocess.check_output(['git','ls-files']).decode().split() \ if p.lower().endswith(('.png','.jpg','.jpeg','.gif','.ico','.svg','.webp','.bmp','.mp4','.wav','.mp3','.webm','.ogg'))}; \ m={f['path'] for f in d}; print(len(d), t==m, len(m)==len(d))" # license header check, same as check-header.yml license-eye -c .licenserc.yaml header check ``` Output: `236 True True`, and `invalid: 0` from the header check. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (claude-opus-5-5) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
