aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Fink2026-08-20 22:22:15 +0200
committerDennis Fink2026-08-20 22:22:15 +0200
commit12b8c4b7f1d14556cc459f672b501e901da2d216 (patch)
tree7f7dfbc03c677e851059a583f0d2c661492e5644
parentdfce52067fdbe1c7f59764ef4cd3fb2bfc056cc4 (diff)
downloadwebmentions-ssg-12b8c4b7f1d14556cc459f672b501e901da2d216.tar.gz
webmentions-ssg-12b8c4b7f1d14556cc459f672b501e901da2d216.zip
chore(core): standardize SPDX copyright headers
Add SPDX copyright and license headers to source, test, migration, template, and static files throughout the project. Include the maintainer email in copyright notices and fill in the BSD license copyright holder.
-rw-r--r--.gitignore2
-rw-r--r--LICENSES/BSD-3-Clause.txt2
-rw-r--r--README.md2
-rw-r--r--migrations/alembic.ini4
-rw-r--r--migrations/env.py4
-rw-r--r--migrations/versions/681a2a9a1bc0_webmention_sender.py4
-rw-r--r--migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py4
-rw-r--r--migrations/versions/f63641044cc1_initial_database_schema.py4
-rw-r--r--pyproject.toml2
-rw-r--r--tests/conftest.py4
-rw-r--r--tests/tasks/test_receiver.py4
-rw-r--r--tests/tasks/test_scanner.py4
-rw-r--r--tests/tasks/test_sender.py4
-rw-r--r--tests/test_forms.py4
-rw-r--r--tests/test_url_security.py4
-rw-r--r--tests/test_views.py4
-rw-r--r--uv.lock.license1
-rw-r--r--webmentions_ssg/__init__.py2
-rw-r--r--webmentions_ssg/auth.py4
-rw-r--r--webmentions_ssg/config.py4
-rw-r--r--webmentions_ssg/forms/__init__.py4
-rw-r--r--webmentions_ssg/forms/validators.py4
-rw-r--r--webmentions_ssg/models.py4
-rw-r--r--webmentions_ssg/static/js/confirmation-modal.js4
-rw-r--r--webmentions_ssg/tasks/__init__.py4
-rw-r--r--webmentions_ssg/tasks/consumer.py4
-rw-r--r--webmentions_ssg/tasks/extension.py4
-rw-r--r--webmentions_ssg/tasks/receiver.py4
-rw-r--r--webmentions_ssg/tasks/scanner.py4
-rw-r--r--webmentions_ssg/tasks/sender.py4
-rw-r--r--webmentions_ssg/templates/base.html6
-rw-r--r--webmentions_ssg/templates/includes/confirmation_modal.html6
-rw-r--r--webmentions_ssg/templates/login.html6
-rw-r--r--webmentions_ssg/templates/received.html6
-rw-r--r--webmentions_ssg/templates/sent.html6
-rw-r--r--webmentions_ssg/templates/sent_source.html6
-rw-r--r--webmentions_ssg/templates/status.html6
-rw-r--r--webmentions_ssg/url_security.py4
-rw-r--r--webmentions_ssg/views.py4
39 files changed, 152 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index dea8e47..f4aec67 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2026 Dennis Fink
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
#
# SPDX-License-Identifier: BSD-3-Clause
diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt
index ea890af..cff945a 100644
--- a/LICENSES/BSD-3-Clause.txt
+++ b/LICENSES/BSD-3-Clause.txt
@@ -1,4 +1,4 @@
-Copyright (c) <year> <owner>.
+Copyright (c) 2026 Dennis Fink <me+coding@dennisfink.me>.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
diff --git a/README.md b/README.md
index 06253ad..55d9556 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
<!--
-SPDX-FileCopyrightText: 2026 Dennis Fink
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
SPDX-License-Identifier: BSD-3-Clause
-->
diff --git a/migrations/alembic.ini b/migrations/alembic.ini
index ec9d45c..bdfa231 100644
--- a/migrations/alembic.ini
+++ b/migrations/alembic.ini
@@ -1,3 +1,7 @@
+; SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+;
+; SPDX-License-Identifier: BSD-3-Clause
+
# A generic, single database configuration.
[alembic]
diff --git a/migrations/env.py b/migrations/env.py
index a5d762b..fa912c3 100644
--- a/migrations/env.py
+++ b/migrations/env.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import logging
from logging.config import fileConfig
diff --git a/migrations/versions/681a2a9a1bc0_webmention_sender.py b/migrations/versions/681a2a9a1bc0_webmention_sender.py
index 29142af..23bf2dd 100644
--- a/migrations/versions/681a2a9a1bc0_webmention_sender.py
+++ b/migrations/versions/681a2a9a1bc0_webmention_sender.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
"""Webmention sender
Revision ID: 681a2a9a1bc0
diff --git a/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py b/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py
index 5555ab9..4bb7a7c 100644
--- a/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py
+++ b/migrations/versions/be6e229d6a3d_do_not_limit_username_and_password_hash_.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
"""Do not limit username and password hash length
Revision ID: be6e229d6a3d
diff --git a/migrations/versions/f63641044cc1_initial_database_schema.py b/migrations/versions/f63641044cc1_initial_database_schema.py
index c65af21..5017bc3 100644
--- a/migrations/versions/f63641044cc1_initial_database_schema.py
+++ b/migrations/versions/f63641044cc1_initial_database_schema.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
"""Initial database schema
Revision ID: f63641044cc1
diff --git a/pyproject.toml b/pyproject.toml
index 81dcd1b..e30959c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2026 Dennis Fink
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
#
# SPDX-License-Identifier: BSD-3-Clause
diff --git a/tests/conftest.py b/tests/conftest.py
index 45658b4..3064393 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from collections.abc import Iterator
import pytest
diff --git a/tests/tasks/test_receiver.py b/tests/tasks/test_receiver.py
index 7e8f531..17dd45a 100644
--- a/tests/tasks/test_receiver.py
+++ b/tests/tasks/test_receiver.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import logging
import uuid
from types import ModuleType
diff --git a/tests/tasks/test_scanner.py b/tests/tasks/test_scanner.py
index 89e2995..332b8bf 100644
--- a/tests/tasks/test_scanner.py
+++ b/tests/tasks/test_scanner.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from pathlib import Path
from types import ModuleType
from uuid import UUID
diff --git a/tests/tasks/test_sender.py b/tests/tasks/test_sender.py
index 1c8ef99..dac56a5 100644
--- a/tests/tasks/test_sender.py
+++ b/tests/tasks/test_sender.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import logging
import uuid
from datetime import UTC, datetime
diff --git a/tests/test_forms.py b/tests/test_forms.py
index 73c6ffc..fc16858 100644
--- a/tests/test_forms.py
+++ b/tests/test_forms.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from unittest.mock import patch
import pytest
diff --git a/tests/test_url_security.py b/tests/test_url_security.py
index 70d5146..db513f9 100644
--- a/tests/test_url_security.py
+++ b/tests/test_url_security.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from unittest.mock import Mock, patch
import dns.resolver
diff --git a/tests/test_views.py b/tests/test_views.py
index 67ed190..0de8b9b 100644
--- a/tests/test_views.py
+++ b/tests/test_views.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import uuid
from datetime import UTC, datetime
from unittest.mock import Mock, call, patch
diff --git a/uv.lock.license b/uv.lock.license
index 40901c5..c53d275 100644
--- a/uv.lock.license
+++ b/uv.lock.license
@@ -1,3 +1,4 @@
SPDX-FileCopyrightText: 2026 Dennis Fink
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
SPDX-License-Identifier: BSD-3-Clause
diff --git a/webmentions_ssg/__init__.py b/webmentions_ssg/__init__.py
index 3928195..ad77667 100644
--- a/webmentions_ssg/__init__.py
+++ b/webmentions_ssg/__init__.py
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2026 Dennis Fink
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
#
# SPDX-License-Identifier: BSD-3-Clause
diff --git a/webmentions_ssg/auth.py b/webmentions_ssg/auth.py
index 7bd93a3..de5b297 100644
--- a/webmentions_ssg/auth.py
+++ b/webmentions_ssg/auth.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from flask_login import LoginManager
from . import DATABASE as db
diff --git a/webmentions_ssg/config.py b/webmentions_ssg/config.py
index 6996b57..72842c4 100644
--- a/webmentions_ssg/config.py
+++ b/webmentions_ssg/config.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import logging
import secrets
diff --git a/webmentions_ssg/forms/__init__.py b/webmentions_ssg/forms/__init__.py
index c386eb1..7ab82e3 100644
--- a/webmentions_ssg/forms/__init__.py
+++ b/webmentions_ssg/forms/__init__.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import re
from flask_wtf import FlaskForm
diff --git a/webmentions_ssg/forms/validators.py b/webmentions_ssg/forms/validators.py
index c4b5eda..fd54e0f 100644
--- a/webmentions_ssg/forms/validators.py
+++ b/webmentions_ssg/forms/validators.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from urllib.parse import urlsplit
from flask import current_app
diff --git a/webmentions_ssg/models.py b/webmentions_ssg/models.py
index f89e587..e7ff0be 100644
--- a/webmentions_ssg/models.py
+++ b/webmentions_ssg/models.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from __future__ import annotations
import uuid
diff --git a/webmentions_ssg/static/js/confirmation-modal.js b/webmentions_ssg/static/js/confirmation-modal.js
index e278790..fee825f 100644
--- a/webmentions_ssg/static/js/confirmation-modal.js
+++ b/webmentions_ssg/static/js/confirmation-modal.js
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+//
+// SPDX-License-Identifier: BSD-3-Clause
+
document.addEventListener("DOMContentLoaded", () => {
const confirmationModal = document.getElementById("confirmation-modal");
diff --git a/webmentions_ssg/tasks/__init__.py b/webmentions_ssg/tasks/__init__.py
index 5af3987..62249ca 100644
--- a/webmentions_ssg/tasks/__init__.py
+++ b/webmentions_ssg/tasks/__init__.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from .extension import Huey
__all__ = ["Huey"]
diff --git a/webmentions_ssg/tasks/consumer.py b/webmentions_ssg/tasks/consumer.py
index 3bfe861..0f73529 100644
--- a/webmentions_ssg/tasks/consumer.py
+++ b/webmentions_ssg/tasks/consumer.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from huey import Huey, crontab
from .. import HUEY, create_app
diff --git a/webmentions_ssg/tasks/extension.py b/webmentions_ssg/tasks/extension.py
index 15bc669..95f190f 100644
--- a/webmentions_ssg/tasks/extension.py
+++ b/webmentions_ssg/tasks/extension.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from functools import wraps
from typing import Any, Callable
from urllib.parse import urlsplit, urlunsplit
diff --git a/webmentions_ssg/tasks/receiver.py b/webmentions_ssg/tasks/receiver.py
index 4aba3d8..c33f517 100644
--- a/webmentions_ssg/tasks/receiver.py
+++ b/webmentions_ssg/tasks/receiver.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import uuid
from urllib.parse import urljoin
diff --git a/webmentions_ssg/tasks/scanner.py b/webmentions_ssg/tasks/scanner.py
index fa6a47b..0cf038a 100644
--- a/webmentions_ssg/tasks/scanner.py
+++ b/webmentions_ssg/tasks/scanner.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
from collections.abc import Iterator
from dataclasses import dataclass
from datetime import UTC, datetime
diff --git a/webmentions_ssg/tasks/sender.py b/webmentions_ssg/tasks/sender.py
index 629c538..1d22ad9 100644
--- a/webmentions_ssg/tasks/sender.py
+++ b/webmentions_ssg/tasks/sender.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import re
import uuid
from datetime import UTC, datetime
diff --git a/webmentions_ssg/templates/base.html b/webmentions_ssg/templates/base.html
index eb11b8e..1275391 100644
--- a/webmentions_ssg/templates/base.html
+++ b/webmentions_ssg/templates/base.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
{% from "bootstrap5/utils.html" import render_messages %}
<!DOCTYPE html>
<html lang="en" data-bs-theme="dark">
diff --git a/webmentions_ssg/templates/includes/confirmation_modal.html b/webmentions_ssg/templates/includes/confirmation_modal.html
index ff9bd06..5c0a5a1 100644
--- a/webmentions_ssg/templates/includes/confirmation_modal.html
+++ b/webmentions_ssg/templates/includes/confirmation_modal.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
<div class="modal fade"
id="confirmation-modal"
tabindex="-1"
diff --git a/webmentions_ssg/templates/login.html b/webmentions_ssg/templates/login.html
index e7d858c..9b9884e 100644
--- a/webmentions_ssg/templates/login.html
+++ b/webmentions_ssg/templates/login.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
{% extends "base.html" %}
{% set title = "Login" %}
{% from "bootstrap5/form.html" import render_form %}
diff --git a/webmentions_ssg/templates/received.html b/webmentions_ssg/templates/received.html
index 525e811..1c5a216 100644
--- a/webmentions_ssg/templates/received.html
+++ b/webmentions_ssg/templates/received.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
{% extends "base.html" %}
{% from "bootstrap5/form.html" import render_form %}
{% from "bootstrap5/pagination.html" import render_pagination %}
diff --git a/webmentions_ssg/templates/sent.html b/webmentions_ssg/templates/sent.html
index bc9e021..1d311a0 100644
--- a/webmentions_ssg/templates/sent.html
+++ b/webmentions_ssg/templates/sent.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
{% extends "base.html" %}
{% from "bootstrap5/form.html" import render_form %}
{% from "bootstrap5/pagination.html" import render_pagination %}
diff --git a/webmentions_ssg/templates/sent_source.html b/webmentions_ssg/templates/sent_source.html
index 8e5932c..6bb2ac5 100644
--- a/webmentions_ssg/templates/sent_source.html
+++ b/webmentions_ssg/templates/sent_source.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
{% extends "base.html" %}
{% block content %}
<div class="mb-3">
diff --git a/webmentions_ssg/templates/status.html b/webmentions_ssg/templates/status.html
index 451f26f..9140c95 100644
--- a/webmentions_ssg/templates/status.html
+++ b/webmentions_ssg/templates/status.html
@@ -1,3 +1,9 @@
+<!--
+SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+
+SPDX-License-Identifier: BSD-3-Clause
+-->
+
{% extends "base.html" %}
{% from "bootstrap5/utils.html" import render_icon %}
{% block content %}
diff --git a/webmentions_ssg/url_security.py b/webmentions_ssg/url_security.py
index 9cd261e..716591c 100644
--- a/webmentions_ssg/url_security.py
+++ b/webmentions_ssg/url_security.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import ipaddress
from urllib.parse import urlsplit
diff --git a/webmentions_ssg/views.py b/webmentions_ssg/views.py
index 13e5086..eb2b372 100644
--- a/webmentions_ssg/views.py
+++ b/webmentions_ssg/views.py
@@ -1,3 +1,7 @@
+# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
+#
+# SPDX-License-Identifier: BSD-3-Clause
+
import uuid
from typing import cast
from urllib.parse import urlsplit