Prepare the 1.0.0 GA release surface
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
This commit is contained in:
parent
acfc376845
commit
31a1e069b3
28 changed files with 591 additions and 33 deletions
63
scripts/prepare_release.sh
Executable file
63
scripts/prepare_release.sh
Executable file
|
|
@ -0,0 +1,63 @@
|
|||
#!/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}"
|
||||
Loading…
Add table
Add a link
Reference in a new issue