From e842cda937aba1394de8a7796d9c84148c9044e5 Mon Sep 17 00:00:00 2001 From: Alejandro Santiago Date: Wed, 28 Aug 2024 16:41:12 +0100 Subject: [PATCH] chore: v0.5.0 (#63) * chore: v0.5.0 * ci: add pub_publish --- .github/workflows/pub_publish.yaml | 12 +++++ CHANGELOG.md | 4 ++ pubspec.yaml | 2 +- tool/release_ready.sh | 84 ++++++++++++++++++++++++++++++ 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/pub_publish.yaml create mode 100644 tool/release_ready.sh diff --git a/.github/workflows/pub_publish.yaml b/.github/workflows/pub_publish.yaml new file mode 100644 index 0000000..5b2c10a --- /dev/null +++ b/.github/workflows/pub_publish.yaml @@ -0,0 +1,12 @@ +name: pub_publish + +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + +jobs: + publish: + permissions: + id-token: write # Required for authentication using OIDC + uses: dart-lang/setup-dart/.github/workflows/publish.yml@v1 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index feb229d..a37c1c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 0.5.0 + +- chore: tighten dependencies ([#62](https://github.com/VeryGoodOpenSource/pub_updater/pull/62)) + # 0.4.0 - fix!: activation of package on self-hosted url ([#46](https://github.com/VeryGoodOpenSource/pub_updater/pull/46)) diff --git a/pubspec.yaml b/pubspec.yaml index 53336ca..2b429ee 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: pub_updater description: A Dart package which enables checking whether a package is up to date. -version: 0.4.0 +version: 0.5.0 repository: https://github.com/VeryGoodOpenSource/pub_updater issue_tracker: https://github.com/VeryGoodOpenSource/pub_updater/issues topics: [cli, pub, version] diff --git a/tool/release_ready.sh b/tool/release_ready.sh new file mode 100644 index 0000000..fb201ed --- /dev/null +++ b/tool/release_ready.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +# Ensures that the package is ready for a release. +# +# Will update the version.dart file and update the CHANGELOG.md. +# +# Set it up for a new version: +# `sh tool/release_ready.sh ` + +# Check if current directory is usable for this script, if so we assume it is correctly set up. +if [ ! -f "pubspec.yaml" ]; then + echo "$(pwd) is not a valid Dart package." + exit 1 +fi + +currentBranch=$(git symbolic-ref --short -q HEAD) +if [[ ! $currentBranch == "main" ]]; then + echo "Releasing is only supported on the main branch." + exit 1 +fi + +# Get information +old_version="" +if [ -f "pubspec.yaml" ]; then + old_version=$(dart pub deps --json | pcregrep -o1 -i '"version": "(.*?)"' | head -1) +fi + +if [ -z "$old_version" ]; then + echo "Current version was not resolved." + exit 1 +fi + +# Get new version +new_version="$1"; + +if [[ "$new_version" == "" ]]; then + echo "No new version supplied, please provide one" + exit 1 +fi + +if [[ "$new_version" == "$old_version" ]]; then + echo "Current version is $old_version, can't update." + exit 1 +fi + +# Retrieving all the commits in the current directory since the last tag. +previousTag="v${old_version}" +raw_commits="$(git log --pretty=format:"%s" --no-merges --reverse $previousTag..HEAD -- .)" +markdown_commits=$(echo "$raw_commits" | sed -En "s/\(#([0-9]+)\)/([#\1](https:\/\/github.com\/VeryGoodOpenSource\/pub_updater\/pull\/\1))/p") + +if [[ "$markdown_commits" == "" ]]; then + echo "No commits since last tag, can't update." + exit 0 +fi +commits=$(echo "$markdown_commits" | sed -En "s/^/- /p") + +echo "Updating version to $new_version" +if [ -f "pubspec.yaml" ]; then + sed -i '' "s/version: $old_version/version: $new_version/g" pubspec.yaml +fi + +# Update dart file with new version. +dart run build_runner build --delete-conflicting-outputs > /dev/null + +if grep -q v$new_version "CHANGELOG.md"; then + echo "CHANGELOG already contains version $new_version." + exit 1 +fi + +# Add a new version entry with the found commits to the CHANGELOG.md. +echo "# ${new_version} \n\n ${commits}\n\n$(cat CHANGELOG.md)" > CHANGELOG.md +echo "CHANGELOG generated, validate entries here: $(pwd)/CHANGELOG.md" + +echo "Creating git branch for pub_updater@$new_version" +git checkout -b "chore/$new_version" > /dev/null + +git add pubspec.yaml CHANGELOG.md +if [ -f lib/src/version.dart ]; then + git add lib/src/version.dart +fi + +echo "" +echo "Run the following command if you wish to commit the changes:" +echo "git commit -m \"chore: v$new_version\"" \ No newline at end of file