Change license to AGPL
This commit:
- Updates the `LICENSE` file
- Start every file with something like:
// Copyright YEAR_FIRST_PUBLISHED Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
---
First, I removed existing license headers with this Ruby 3.1.2 script:
require 'set'
EXTENSIONS_TO_CHECK = Set['.h', '.hpp', '.cpp', '.m', '.mm', '.pch', '.swift']
same = 0
different = 0
all_files = `git ls-files`.lines.map { |line| line.strip }
all_files.each do |relative_path|
if relative_path == 'Pods'
next
end
unless EXTENSIONS_TO_CHECK.include? File.extname(relative_path)
next
end
path = File.expand_path(relative_path)
contents = File.read(path)
new_contents = contents.sub(/\/\/\n\/\/ Copyright .*\n\/\/\n\n/, '')
if contents == new_contents
same += 1
else
different += 1
end
File.write(path, new_contents)
end
puts "updated #{different} file(s), left #{same} untouched"
I'm sure this script could be improved, but it worked well enough.
Then, I created `Scripts/lint/lint-license-headers` and ran it to auto-
fix a lot of files. This changed the mode of some files, but I think
that's actually desirable. For example,
`SignalServiceKit/src/Util/AppContext.m` previously had a mode of
`0755/-rwxr-xr-x`, and it's now `0644/-rw-r--r--`.
Then I fixed some stragglers and updated the precommit script.
See [a similar change in the Desktop app][0].
[0]: 8bfaf598af
- Use Xcode 14 for all of our jobs. If something like `genstrings`
changes, this should keep that job consistent with everything else.
- Use macos-12 for all of our jobs. It’s probably best to keep things
consistent, and macos-11 will eventually go away.
A few of us (myself included) have forgotten to run `auto-genstrings`
and they've gotten out of date on the main branch.
This adds a simple CI job to catch these.
According to [GitHub's docs][0], the `github.base_ref` property "is only
available when the event that triggers a workflow run is either
`pull_request` or `pull_request_target`.
Because of this, pushes were running the following command...
python3 Scripts/precommit.py --ref origin/
...and getting this error:
fatal: ambiguous argument 'origin/': unknown revision or path not in the working tree.
This has been broken for a long time, but it didn't cause CI to fail until
d7c33eb211.
After some discussion, we decided not to run these on pushes to `master`
or `release/*`.
(See also: [this GitHub issue][1] which asks for clarification.)
[0]: https://docs.github.com/en/actions/learn-github-actions/contexts#github-context
[1]: https://github.com/github/docs/issues/13810
This change uses a throwing computed variable which was added in Swift
5.5 and requires Xcode 13 to compile.
The default Xcode on current macOS 11 image is still 12.5.1 and won't be
updated until later this month. The newer Xcode is available on these
machines, but until October 18th we need to select it manually.
https://github.com/actions/virtual-environments/issues/4180