mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-04-28 18:02:38 +02:00

Some checks failed
Build dev environments / Build dev-env (debian-bookworm) (push) Has been cancelled
Build dev environments / Build dev-env (debian-bullseye) (push) Has been cancelled
Build dev environments / Build dev-env (debian-trixie) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-40) (push) Has been cancelled
Build dev environments / Build dev-env (fedora-41) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-20.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-22.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.04) (push) Has been cancelled
Build dev environments / Build dev-env (ubuntu-24.10) (push) Has been cancelled
Build dev environments / build-container-image (push) Has been cancelled
Tests / run-lint (push) Has been cancelled
Tests / build-container-image (push) Has been cancelled
Tests / Download and cache Tesseract data (push) Has been cancelled
Scan latest app and container / security-scan-container (push) Has been cancelled
Scan latest app and container / security-scan-app (push) Has been cancelled
Tests / windows (push) Has been cancelled
Tests / macOS (arch64) (push) Has been cancelled
Tests / macOS (x86_64) (push) Has been cancelled
Tests / build-deb (debian bookworm) (push) Has been cancelled
Tests / build-deb (debian bullseye) (push) Has been cancelled
Tests / build-deb (debian trixie) (push) Has been cancelled
Tests / build-deb (ubuntu 20.04) (push) Has been cancelled
Tests / build-deb (ubuntu 22.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.04) (push) Has been cancelled
Tests / build-deb (ubuntu 24.10) (push) Has been cancelled
Tests / install-deb (debian bookworm) (push) Has been cancelled
Tests / install-deb (debian bullseye) (push) Has been cancelled
Tests / install-deb (debian trixie) (push) Has been cancelled
Tests / install-deb (ubuntu 20.04) (push) Has been cancelled
Tests / install-deb (ubuntu 22.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.04) (push) Has been cancelled
Tests / install-deb (ubuntu 24.10) (push) Has been cancelled
Tests / build-install-rpm (fedora 40) (push) Has been cancelled
Tests / build-install-rpm (fedora 41) (push) Has been cancelled
Tests / run tests (debian bookworm) (push) Has been cancelled
Tests / run tests (debian bullseye) (push) Has been cancelled
Tests / run tests (debian trixie) (push) Has been cancelled
Tests / run tests (fedora 40) (push) Has been cancelled
Tests / run tests (fedora 41) (push) Has been cancelled
Tests / run tests (ubuntu 20.04) (push) Has been cancelled
Tests / run tests (ubuntu 22.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.04) (push) Has been cancelled
Tests / run tests (ubuntu 24.10) (push) Has been cancelled
This commit makes changes to the release instructions, prefering bash exemples when that's possible. As a result, the QA.md and RELEASE.md files have been separated and a new `generate-release-tasks.py` script is making its apparition.
67 lines
1.8 KiB
Python
Executable file
67 lines
1.8 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
import pathlib
|
|
import subprocess
|
|
|
|
RELEASE_FILE = "RELEASE.md"
|
|
QA_FILE = "QA.md"
|
|
|
|
|
|
def git_root():
|
|
"""Get the root directory of the Git repo."""
|
|
# FIXME: Use a Git Python binding for this.
|
|
# FIXME: Make this work if called outside the repo.
|
|
path = (
|
|
subprocess.run(
|
|
["git", "rev-parse", "--show-toplevel"],
|
|
check=True,
|
|
stdout=subprocess.PIPE,
|
|
)
|
|
.stdout.decode()
|
|
.strip("\n")
|
|
)
|
|
return pathlib.Path(path)
|
|
|
|
|
|
def extract_checkboxes(filename):
|
|
headers = []
|
|
result = []
|
|
|
|
with open(filename, "r") as f:
|
|
lines = f.readlines()
|
|
|
|
current_level = 0
|
|
for line in lines:
|
|
line = line.rstrip()
|
|
|
|
# If it's a header, store it
|
|
if line.startswith("#"):
|
|
# Count number of # to determine header level
|
|
level = len(line) - len(line.lstrip("#"))
|
|
if level < current_level or not current_level:
|
|
headers.extend(["", line, ""])
|
|
current_level = level
|
|
elif level > current_level:
|
|
continue
|
|
else:
|
|
headers = ["", line, ""]
|
|
|
|
# If it's a checkbox
|
|
elif "- [ ]" in line or "- [x]" in line or "- [X]" in line:
|
|
# Print the last header if we haven't already
|
|
if headers:
|
|
result.extend(headers)
|
|
headers = []
|
|
current_level = 0
|
|
|
|
# If this is the "Do the QA tasks" line, recursively get QA tasks
|
|
if "Do the QA tasks" in line:
|
|
result.append(line)
|
|
qa_tasks = extract_checkboxes(git_root() / QA_FILE)
|
|
result.append(qa_tasks)
|
|
else:
|
|
result.append(line)
|
|
return "\n".join(result)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print(extract_checkboxes(git_root() / RELEASE_FILE))
|