From 6d60c7ef1e8868407fcf01c95f55a79dd7cfafe7 Mon Sep 17 00:00:00 2001 From: kevmoo Date: Thu, 9 Apr 2026 17:20:08 -0700 Subject: [PATCH 1/4] cleanup: fix version logic - move script to scripts dir - only generate for dart_firebase_admin - put it in the lib/src directory --- gen-version.sh | 42 ------------------- packages/dart_firebase_admin/lib/src/app.dart | 2 +- .../lib/src/functions/functions_api.dart | 4 +- .../lib/{ => src}/version.g.dart | 0 .../app/firebase_user_agent_client_test.dart | 2 +- .../google_cloud_firestore/lib/version.g.dart | 5 --- pubspec.yaml | 4 +- scripts/gen-version.sh | 40 ++++++++++++++++++ 8 files changed, 46 insertions(+), 53 deletions(-) delete mode 100755 gen-version.sh rename packages/dart_firebase_admin/lib/{ => src}/version.g.dart (100%) delete mode 100644 packages/google_cloud_firestore/lib/version.g.dart create mode 100755 scripts/gen-version.sh diff --git a/gen-version.sh b/gen-version.sh deleted file mode 100755 index d108fd81..00000000 --- a/gen-version.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -# Script to generate version.g.dart files for all packages -# Finds all packages/*/pubspec.yaml files, extracts version, and writes to package/lib/version.g.dart - -set -e - -# Get the script directory (project root) -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -# Find all pubspec.yaml files in packages directory -find "$SCRIPT_DIR/packages" -name "pubspec.yaml" -type f | while read -r pubspec_file; do - # Get the package directory (parent of pubspec.yaml) - package_dir="$(dirname "$pubspec_file")" - package_name="$(basename "$package_dir")" - - # Extract version from pubspec.yaml (format: version: X.Y.Z) - version=$(grep -E "^version:" "$pubspec_file" | sed -E 's/^version:[[:space:]]*//' | tr -d '[:space:]') - - if [ -z "$version" ]; then - echo "Warning: Could not find version in $pubspec_file, skipping..." - continue - fi - - # Create lib directory if it doesn't exist - lib_dir="$package_dir/lib" - mkdir -p "$lib_dir" - - # Write version.g.dart file - version_file="$lib_dir/version.g.dart" - cat > "$version_file" << EOF -// GENERATED CODE - DO NOT MODIFY BY HAND -// This file is generated by gen-version.sh - -/// The current version of the package. -const String packageVersion = '$version'; -EOF - - echo "Generated $version_file with version: $version" -done - -echo "Version generation complete!" \ No newline at end of file diff --git a/packages/dart_firebase_admin/lib/src/app.dart b/packages/dart_firebase_admin/lib/src/app.dart index 3f13906f..e670cd9d 100644 --- a/packages/dart_firebase_admin/lib/src/app.dart +++ b/packages/dart_firebase_admin/lib/src/app.dart @@ -34,8 +34,8 @@ import '../functions.dart'; import '../messaging.dart'; import '../security_rules.dart'; import '../storage.dart'; -import '../version.g.dart'; import 'utils/utils.dart'; +import 'version.g.dart'; part 'app/app_exception.dart'; part 'app/app_options.dart'; diff --git a/packages/dart_firebase_admin/lib/src/functions/functions_api.dart b/packages/dart_firebase_admin/lib/src/functions/functions_api.dart index b0209ed1..36b69884 100644 --- a/packages/dart_firebase_admin/lib/src/functions/functions_api.dart +++ b/packages/dart_firebase_admin/lib/src/functions/functions_api.dart @@ -154,8 +154,8 @@ class TaskOptions { /// rates in all task commands. The infrastructure relies on an approximately /// uniform distribution of task IDs to store and serve tasks efficiently. /// - /// The ID can contain only letters ([A-Za-z]), numbers ([0-9]), hyphens (-), - /// or underscores (_). The maximum length is 500 characters. + /// The ID can contain only letters (`[A-Za-z]`), numbers (`[0-9]`), hyphens + /// (`-`), or underscores (`_`). The maximum length is 500 characters. final String? id; /// HTTP request headers to include in the request to the task queue function. diff --git a/packages/dart_firebase_admin/lib/version.g.dart b/packages/dart_firebase_admin/lib/src/version.g.dart similarity index 100% rename from packages/dart_firebase_admin/lib/version.g.dart rename to packages/dart_firebase_admin/lib/src/version.g.dart diff --git a/packages/dart_firebase_admin/test/unit/app/firebase_user_agent_client_test.dart b/packages/dart_firebase_admin/test/unit/app/firebase_user_agent_client_test.dart index dc0d26ed..a97bffcf 100644 --- a/packages/dart_firebase_admin/test/unit/app/firebase_user_agent_client_test.dart +++ b/packages/dart_firebase_admin/test/unit/app/firebase_user_agent_client_test.dart @@ -16,7 +16,7 @@ import 'dart:async'; import 'package:dart_firebase_admin/src/app.dart'; import 'package:dart_firebase_admin/src/utils/utils.dart'; -import 'package:dart_firebase_admin/version.g.dart'; +import 'package:dart_firebase_admin/src/version.g.dart'; import 'package:googleapis_auth/auth_io.dart' as googleapis_auth; import 'package:http/http.dart'; import 'package:test/test.dart'; diff --git a/packages/google_cloud_firestore/lib/version.g.dart b/packages/google_cloud_firestore/lib/version.g.dart deleted file mode 100644 index eddf3176..00000000 --- a/packages/google_cloud_firestore/lib/version.g.dart +++ /dev/null @@ -1,5 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND -// This file is generated by gen-version.sh - -/// The current version of the package. -const String packageVersion = '0.1.0'; diff --git a/pubspec.yaml b/pubspec.yaml index e28814ec..1f5fbe1f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,7 +32,7 @@ melos: command: bootstrap: hooks: - post: ./gen-version.sh + post: ./scripts/gen-version.sh version: hooks: - post: ./gen-version.sh + post: ./scripts/gen-version.sh diff --git a/scripts/gen-version.sh b/scripts/gen-version.sh new file mode 100755 index 00000000..e815e499 --- /dev/null +++ b/scripts/gen-version.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Script to generate version.g.dart files for all packages +# Finds all packages/*/pubspec.yaml files, extracts version, and writes to package/lib/version.g.dart + +set -e + +# Get the script directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +# Project root is the parent directory +PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" + +package_dir="$PROJECT_ROOT/packages/dart_firebase_admin" +pubspec_file="$package_dir/pubspec.yaml" + +# Extract version from pubspec.yaml (format: version: X.Y.Z) +version=$(grep -E "^version:" "$pubspec_file" | sed -E 's/^version:[[:space:]]*//' | tr -d '[:space:]') + +if [ -z "$version" ]; then + echo "Error: Could not find version in $pubspec_file" + exit 1 +fi + +# Create lib/src directory if it doesn't exist +src_dir="$package_dir/lib/src" +mkdir -p "$src_dir" + +# Write version.g.dart file +version_file="$src_dir/version.g.dart" +cat > "$version_file" << EOF +// GENERATED CODE - DO NOT MODIFY BY HAND +// This file is generated by gen-version.sh + +/// The current version of the package. +const String packageVersion = '$version'; +EOF + +echo "Generated $version_file with version: $version" + +echo "Version generation complete!" \ No newline at end of file From 47beea4bb369c3dedfaa50f630922ad015b2a988 Mon Sep 17 00:00:00 2001 From: Kevin Moore Date: Thu, 9 Apr 2026 17:26:28 -0700 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- scripts/gen-version.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/gen-version.sh b/scripts/gen-version.sh index e815e499..425ee0dc 100755 --- a/scripts/gen-version.sh +++ b/scripts/gen-version.sh @@ -1,7 +1,7 @@ #!/bin/bash -# Script to generate version.g.dart files for all packages -# Finds all packages/*/pubspec.yaml files, extracts version, and writes to package/lib/version.g.dart +# Script to generate version.g.dart for dart_firebase_admin +# Extracts version from pubspec.yaml and writes to lib/src/version.g.dart set -e @@ -14,7 +14,7 @@ package_dir="$PROJECT_ROOT/packages/dart_firebase_admin" pubspec_file="$package_dir/pubspec.yaml" # Extract version from pubspec.yaml (format: version: X.Y.Z) -version=$(grep -E "^version:" "$pubspec_file" | sed -E 's/^version:[[:space:]]*//' | tr -d '[:space:]') +version=$(grep -E "^version:" "$pubspec_file" | head -n 1 | sed -E 's/^version:[[:space:]]*([^[:space:]#]*).*/\1/') if [ -z "$version" ]; then echo "Error: Could not find version in $pubspec_file" @@ -29,7 +29,7 @@ mkdir -p "$src_dir" version_file="$src_dir/version.g.dart" cat > "$version_file" << EOF // GENERATED CODE - DO NOT MODIFY BY HAND -// This file is generated by gen-version.sh +// This file is generated by scripts/gen-version.sh /// The current version of the package. const String packageVersion = '$version'; From 20bea8313cf5648a8859c16f3e496bf582c8904a Mon Sep 17 00:00:00 2001 From: kevmoo Date: Thu, 9 Apr 2026 17:27:13 -0700 Subject: [PATCH 3/4] oops --- packages/dart_firebase_admin/lib/src/version.g.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dart_firebase_admin/lib/src/version.g.dart b/packages/dart_firebase_admin/lib/src/version.g.dart index 59c5d2ac..9bbb66ce 100644 --- a/packages/dart_firebase_admin/lib/src/version.g.dart +++ b/packages/dart_firebase_admin/lib/src/version.g.dart @@ -1,5 +1,5 @@ // GENERATED CODE - DO NOT MODIFY BY HAND -// This file is generated by gen-version.sh +// This file is generated by scripts/gen-version.sh /// The current version of the package. const String packageVersion = '0.5.0'; From 3f4320f2f19081f1f58766f01851065a5189c652 Mon Sep 17 00:00:00 2001 From: kevmoo Date: Thu, 9 Apr 2026 17:30:04 -0700 Subject: [PATCH 4/4] tiny bit better --- scripts/gen-version.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/gen-version.sh b/scripts/gen-version.sh index 425ee0dc..35f41eef 100755 --- a/scripts/gen-version.sh +++ b/scripts/gen-version.sh @@ -3,7 +3,7 @@ # Script to generate version.g.dart for dart_firebase_admin # Extracts version from pubspec.yaml and writes to lib/src/version.g.dart -set -e +set -euo pipefail # Get the script directory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -14,7 +14,7 @@ package_dir="$PROJECT_ROOT/packages/dart_firebase_admin" pubspec_file="$package_dir/pubspec.yaml" # Extract version from pubspec.yaml (format: version: X.Y.Z) -version=$(grep -E "^version:" "$pubspec_file" | head -n 1 | sed -E 's/^version:[[:space:]]*([^[:space:]#]*).*/\1/') +version=$(grep -E "^version:" "$pubspec_file" | head -n 1 | sed -E 's/^version:[[:space:]]*([^[:space:]#]*).*/\1/' || true) if [ -z "$version" ]; then echo "Error: Could not find version in $pubspec_file" @@ -36,5 +36,3 @@ const String packageVersion = '$version'; EOF echo "Generated $version_file with version: $version" - -echo "Version generation complete!" \ No newline at end of file