Add automatic changelog generation to Debian package build
The build script now automatically generates a proper Debian changelog from git history between version tags. Features: - Proper Debian changelog format with version, urgency, and timestamp - Automatic version detection using git describe --tags - Change list from previous version tag to current commit - Compressed storage as per Debian standards (changelog.gz) - Fallback logic for initial releases when no previous tags exist The changelog is installed to /usr/share/doc/skyview/changelog.gz following Debian packaging best practices. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
29aedb5b50
commit
802e964cc0
1 changed files with 39 additions and 0 deletions
|
|
@ -69,6 +69,45 @@ echo_info " beast-dump: $(file "$DEB_DIR/usr/bin/beast-dump")"
|
||||||
chmod +x "$DEB_DIR/usr/bin/skyview"
|
chmod +x "$DEB_DIR/usr/bin/skyview"
|
||||||
chmod +x "$DEB_DIR/usr/bin/beast-dump"
|
chmod +x "$DEB_DIR/usr/bin/beast-dump"
|
||||||
|
|
||||||
|
# Generate changelog from git history
|
||||||
|
echo_info "Generating changelog from git history..."
|
||||||
|
CHANGELOG_DIR="$DEB_DIR/usr/share/doc/skyview"
|
||||||
|
mkdir -p "$CHANGELOG_DIR"
|
||||||
|
|
||||||
|
# Get the current version and previous version
|
||||||
|
CURRENT_VERSION=$(git describe --tags --always)
|
||||||
|
PREV_VERSION=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
|
||||||
|
|
||||||
|
if [ -n "$PREV_VERSION" ]; then
|
||||||
|
echo_info "Generating changelog from $PREV_VERSION to $CURRENT_VERSION"
|
||||||
|
# Create changelog with proper Debian format
|
||||||
|
{
|
||||||
|
echo "skyview ($CURRENT_VERSION) unstable; urgency=medium"
|
||||||
|
echo ""
|
||||||
|
echo " Changes since $PREV_VERSION:"
|
||||||
|
git log --pretty=format:" * %s" "$PREV_VERSION..HEAD" | head -20
|
||||||
|
echo ""
|
||||||
|
echo " -- $(git config user.name) <$(git config user.email)> $(date -R)"
|
||||||
|
echo ""
|
||||||
|
} > "$CHANGELOG_DIR/changelog"
|
||||||
|
else
|
||||||
|
echo_info "No previous version found, generating initial changelog"
|
||||||
|
# Create initial changelog
|
||||||
|
{
|
||||||
|
echo "skyview ($CURRENT_VERSION) unstable; urgency=medium"
|
||||||
|
echo ""
|
||||||
|
echo " * Initial release"
|
||||||
|
echo " * Multi-source ADS-B aircraft tracker with Beast format support"
|
||||||
|
echo ""
|
||||||
|
echo " -- $(git config user.name) <$(git config user.email)> $(date -R)"
|
||||||
|
echo ""
|
||||||
|
} > "$CHANGELOG_DIR/changelog"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compress changelog as per Debian standards
|
||||||
|
gzip -9 "$CHANGELOG_DIR/changelog"
|
||||||
|
echo_info "Generated changelog: $CHANGELOG_DIR/changelog.gz"
|
||||||
|
|
||||||
# Get package info
|
# Get package info
|
||||||
VERSION=$(grep "Version:" "$DEB_DIR/DEBIAN/control" | cut -d' ' -f2)
|
VERSION=$(grep "Version:" "$DEB_DIR/DEBIAN/control" | cut -d' ' -f2)
|
||||||
PACKAGE=$(grep "Package:" "$DEB_DIR/DEBIAN/control" | cut -d' ' -f2)
|
PACKAGE=$(grep "Package:" "$DEB_DIR/DEBIAN/control" | cut -d' ' -f2)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue