Add the repo-side pieces for milestone 5: MIT licensing, real maintainer and forge metadata, a public support doc, 1.0.0 release notes, release-prep tooling, and CI uploads for the full candidate artifact set. Keep source-tree version surfaces honest by reading the local project version in the CLI and About dialog, and cover the new release-prep plus version-fallback behavior with focused tests. Document where raw validation evidence belongs, add the GA validation rollup, and archive the latest readiness review. Milestone 5 remains open until the forge release page is published and the milestone 2 and 3 matrices are filled with linked manual evidence. Validation: PYTHONPATH=src python3 -m unittest discover -s tests -p 'test_*.py'; PYTHONPATH=src python3 -m unittest tests.test_release_prep tests.test_portable_bundle tests.test_aman_cli tests.test_config_ui; python3 -m py_compile src/*.py tests/*.py; PYTHONPATH=src python3 -m aman version
63 lines
1.6 KiB
Bash
Executable file
63 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
source "${SCRIPT_DIR}/package_common.sh"
|
|
|
|
require_command sha256sum
|
|
|
|
VERSION="$(project_version)"
|
|
PACKAGE_NAME="$(project_name)"
|
|
DIST_DIR="${DIST_DIR:-${ROOT_DIR}/dist}"
|
|
ARCH_DIST_DIR="${DIST_DIR}/arch"
|
|
PORTABLE_TARBALL="${DIST_DIR}/${PACKAGE_NAME}-x11-linux-${VERSION}.tar.gz"
|
|
PORTABLE_CHECKSUM="${PORTABLE_TARBALL}.sha256"
|
|
ARCH_TARBALL="${ARCH_DIST_DIR}/${PACKAGE_NAME}-${VERSION}.tar.gz"
|
|
ARCH_PKGBUILD="${ARCH_DIST_DIR}/PKGBUILD"
|
|
SHA256SUMS_PATH="${DIST_DIR}/SHA256SUMS"
|
|
|
|
require_file() {
|
|
local path="$1"
|
|
if [[ -f "${path}" ]]; then
|
|
return
|
|
fi
|
|
echo "missing required release artifact: ${path}" >&2
|
|
exit 1
|
|
}
|
|
|
|
require_file "${PORTABLE_TARBALL}"
|
|
require_file "${PORTABLE_CHECKSUM}"
|
|
require_file "${ARCH_TARBALL}"
|
|
require_file "${ARCH_PKGBUILD}"
|
|
|
|
shopt -s nullglob
|
|
wheels=("${DIST_DIR}/${PACKAGE_NAME//-/_}-${VERSION}-"*.whl)
|
|
debs=("${DIST_DIR}/${PACKAGE_NAME}_${VERSION}_"*.deb)
|
|
shopt -u nullglob
|
|
|
|
if [[ "${#wheels[@]}" -eq 0 ]]; then
|
|
echo "missing required release artifact: wheel for ${PACKAGE_NAME} ${VERSION}" >&2
|
|
exit 1
|
|
fi
|
|
if [[ "${#debs[@]}" -eq 0 ]]; then
|
|
echo "missing required release artifact: deb for ${PACKAGE_NAME} ${VERSION}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mapfile -t published_files < <(
|
|
cd "${DIST_DIR}" && find . -type f ! -name "SHA256SUMS" -print | LC_ALL=C sort
|
|
)
|
|
|
|
if [[ "${#published_files[@]}" -eq 0 ]]; then
|
|
echo "no published files found in ${DIST_DIR}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
(
|
|
cd "${DIST_DIR}"
|
|
rm -f "SHA256SUMS"
|
|
sha256sum "${published_files[@]}" >"SHA256SUMS"
|
|
)
|
|
|
|
echo "generated ${SHA256SUMS_PATH}"
|