Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/actions/publish-package/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ runs:
- uses: dart-lang/setup-dart@v1
with:
sdk: ${{ inputs.dart-version }}
# A nested SDK action inherits this composite's path, which has no
# analyzer matcher. Publication keeps its dry runs and CI gates.
problem-matcher: false
Comment thread
efraespada marked this conversation as resolved.
Resolved
- name: Resolve, publish and wait for the exact version
shell: bash
env:
Expand Down
27 changes: 26 additions & 1 deletion .github/scripts/tests/test_package_publication.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,13 @@ def setUp(self):
if tool == 'setup-sdk':
state['issued'] = state['clock']
state['events'].append(['credential', state['clock']])
# setup-dart inherits the composite's action path. Its optional matcher
# command fails in the runner when that parent has no analyzer asset.
if os.environ.get('INPUT_PROBLEM-MATCHER', 'true') != 'false':
matcher = Path(os.environ['GITHUB_ACTION_PATH']) / 'dart-analyzer.json'
state['events'].append(['matcher', str(matcher)])
if not matcher.is_file():
code = 66
elif args[:2] == ['pub', 'get']:
state['events'].append(['resolve', package, tool])
if os.environ.get('FAIL_RESOLVE') == package:
Expand Down Expand Up @@ -76,6 +83,9 @@ def setUp(self):
self.env.update(PATH=str(tools) + os.pathsep + self.env['PATH'],
HOME=self.folder.name, BASH_ENV=os.devnull,
REGISTRY_STATE=str(self.state))
self.action_path = self.root / 'composite action with spaces'
self.action_path.mkdir()
self.env['GITHUB_ACTION_PATH'] = str(self.action_path)
self.action = yaml.safe_load((ROOT / COMPOSITE).read_text())
workflow = yaml.safe_load((ROOT / WORKFLOW).read_text())
self.calls = [step for step in workflow['jobs']['publish']['steps']
Expand All @@ -87,7 +97,12 @@ def run_package(self, package):
if 'uses' in step:
self.assertEqual(step['uses'], 'dart-lang/setup-dart@v1')
self.assertEqual(step['with']['sdk'], '${{ inputs.dart-version }}')
subprocess.run(['setup-sdk'], env=self.env, check=True, timeout=10)
sdk_env = {**self.env, 'INPUT_PROBLEM-MATCHER': str(
step.get('with', {}).get('problem-matcher', 'true')).lower()}
result = subprocess.run(['setup-sdk'], env=sdk_env, capture_output=True,
text=True, timeout=10)
if result.returncode:
return result
continue
env = dict(self.env)
for key, value in step.get('env', {}).items():
Expand Down Expand Up @@ -129,6 +144,16 @@ def test_retry_skips_immutable_versions_and_continues_remaining_packages(self):
self.assertEqual(self.events('skip'), [[package] for package in ORDER[:6]])
self.assertEqual(self.events('publish'), [[package] for package in ORDER[6:]])

def test_nested_sdk_matcher_failure_stops_before_any_package_upload(self):
self.action['runs']['steps'][0]['with'].pop('problem-matcher', None)
result = self.run_release()
self.assertEqual(result.returncode, 66)
self.assertEqual(self.events('credential'), [[0]])
self.assertEqual(self.events('matcher'), [
[str(self.action_path / 'dart-analyzer.json')]])
self.assertEqual(self.events('resolve'), [])
self.assertEqual(self.events('publish'), [])

def test_resolution_failure_stops_before_uploading_or_starting_next_package(self):
self.env['FAIL_RESOLVE'] = 'zstandard_web'
result = self.run_release()
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
5 changes: 5 additions & 0 deletions docs/deployment/RUNBOOK.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,11 @@ create independent integration PRs or delete managed branches yourself.
package versions unchanged. Record the old operation's partial publication;
do not report it as complete. Preserve production fixes in the new candidate
through Copilot's supported branch synchronization before preparation.
- SDK setup reports a missing `dart-analyzer.json`: the package publisher runs
the SDK action inside a composite, whose inherited action path contains no
analyzer matcher. Publication SDK setup disables only that optional matcher
with `problem-matcher: false`; dry runs and required CI stay enabled. For an
already tagged workflow, prepare a new patch with this correction.
- Copilot synchronization verification reports `flutter: command not found`:
provision Flutter for the command's own job, then retry the same supported
command. Do not remove configured tests or manually merge the managed branch.
Expand Down
8 changes: 8 additions & 0 deletions zstandard/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
16 changes: 8 additions & 8 deletions zstandard/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard
description: "Flutter plugin for fast Zstandard compression and decompression across native and WebAssembly platforms."
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard
Expand Down Expand Up @@ -28,13 +28,13 @@ flutter:
dependencies:
flutter:
sdk: flutter
zstandard_android: ^1.5.2
zstandard_ios: ^1.5.2
zstandard_linux: ^1.5.2
zstandard_macos: ^1.5.2
zstandard_platform_interface: ^1.5.2
zstandard_web: ^1.5.2
zstandard_windows: ^1.5.2
zstandard_android: ^1.5.3
zstandard_ios: ^1.5.3
zstandard_linux: ^1.5.3
zstandard_macos: ^1.5.3
zstandard_platform_interface: ^1.5.3
zstandard_web: ^1.5.3
zstandard_windows: ^1.5.3

dev_dependencies:
flutter_lints: ^6.0.0
Expand Down
8 changes: 8 additions & 0 deletions zstandard_android/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
6 changes: 3 additions & 3 deletions zstandard_android/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_android
description: Android implementation of the Zstandard compression plugin for Flutter applications.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_android
Expand All @@ -12,8 +12,8 @@ environment:
dependencies:
flutter:
sdk: flutter
zstandard_platform_interface: ^1.5.2
zstandard_native: ^1.5.2
zstandard_platform_interface: ^1.5.3
zstandard_native: ^1.5.3
ffi: ^2.2.0

dev_dependencies:
Expand Down
8 changes: 8 additions & 0 deletions zstandard_cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
Binary file modified zstandard_cli/lib/src/bin/zstandard_windows_arm64.dll
Binary file not shown.
Binary file modified zstandard_cli/lib/src/bin/zstandard_windows_x64.dll
Binary file not shown.
2 changes: 1 addition & 1 deletion zstandard_cli/lib/src/cli_runner.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import 'utils/constants.dart';
import 'zstandard_cli_base.dart';

/// Version of the command-line interface.
const String zstandardCliVersion = '1.5.2';
const String zstandardCliVersion = '1.5.3';

/// Runs the compression command and returns a process exit code.
Future<int> runCompressCommand(
Expand Down
4 changes: 2 additions & 2 deletions zstandard_cli/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_cli
description: Command-line interface for compressing and decompressing files with Zstandard.
version: 1.5.2
version: 1.5.3

executables:
zstandard-compress: compress
Expand All @@ -16,7 +16,7 @@ dependencies:
ffi: ^2.2.0
path: ^1.9.1
platform: ^3.1.6
zstandard_native: ^1.5.2
zstandard_native: ^1.5.3

dev_dependencies:
coverage: ^1.15.0
Expand Down
8 changes: 8 additions & 0 deletions zstandard_ios/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
2 changes: 1 addition & 1 deletion zstandard_ios/ios/zstandard_ios.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Pod::Spec.new do |s|
s.cocoapods_version = '>= 1.11.0' # for script_phase :before_headers
s.name = 'zstandard_ios'
s.version = '1.5.2'
s.version = '1.5.3'
s.summary = 'iOS implementation of the Zstandard Flutter plugin.'
s.description = <<-DESC
Native Zstandard compression and bounded decompression for Flutter on iOS.
Expand Down
2 changes: 1 addition & 1 deletion zstandard_ios/ios/zstandard_ios/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ let nativePackageDependency: Package.Dependency = {
// Match the immutable repository tag carrying this plugin release.
return .package(
url: "https://github.com/vypdev/zstandard.git",
exact: "1.5.2"
exact: "1.5.3"
)
}()

Expand Down
6 changes: 3 additions & 3 deletions zstandard_ios/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_ios
description: iOS implementation of the Zstandard compression plugin for Flutter applications.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_ios
Expand All @@ -12,8 +12,8 @@ environment:
dependencies:
flutter:
sdk: flutter
zstandard_platform_interface: ^1.5.2
zstandard_native: ^1.5.2
zstandard_platform_interface: ^1.5.3
zstandard_native: ^1.5.3
ffi: ^2.2.0

dev_dependencies:
Expand Down
8 changes: 8 additions & 0 deletions zstandard_linux/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
6 changes: 3 additions & 3 deletions zstandard_linux/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_linux
description: Linux implementation of the Zstandard compression plugin for Flutter applications.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_linux
Expand All @@ -12,8 +12,8 @@ environment:
dependencies:
flutter:
sdk: flutter
zstandard_platform_interface: ^1.5.2
zstandard_native: ^1.5.2
zstandard_platform_interface: ^1.5.3
zstandard_native: ^1.5.3
ffi: ^2.2.0

dev_dependencies:
Expand Down
8 changes: 8 additions & 0 deletions zstandard_macos/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
2 changes: 1 addition & 1 deletion zstandard_macos/macos/zstandard_macos.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Pod::Spec.new do |s|
s.cocoapods_version = '>= 1.11.0' # for script_phase :before_headers
s.name = 'zstandard_macos'
s.version = '1.5.2'
s.version = '1.5.3'
s.summary = 'macOS implementation of the Zstandard Flutter plugin.'
s.description = <<-DESC
Native Zstandard compression and bounded decompression for Flutter on macOS.
Expand Down
2 changes: 1 addition & 1 deletion zstandard_macos/macos/zstandard_macos/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ let nativePackageDependency: Package.Dependency = {
// Match the immutable repository tag carrying this plugin release.
return .package(
url: "https://github.com/vypdev/zstandard.git",
exact: "1.5.2"
exact: "1.5.3"
)
}()

Expand Down
6 changes: 3 additions & 3 deletions zstandard_macos/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_macos
description: macOS implementation of the Zstandard compression plugin for Flutter applications.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_macos
Expand All @@ -12,8 +12,8 @@ environment:
dependencies:
flutter:
sdk: flutter
zstandard_platform_interface: ^1.5.2
zstandard_native: ^1.5.2
zstandard_platform_interface: ^1.5.3
zstandard_native: ^1.5.3
ffi: ^2.2.0

dev_dependencies:
Expand Down
8 changes: 8 additions & 0 deletions zstandard_native/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
2 changes: 1 addition & 1 deletion zstandard_native/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_native
description: Native zstd C sources and FFI bindings for the zstandard Flutter plugin.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_native
Expand Down
8 changes: 8 additions & 0 deletions zstandard_platform_interface/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
2 changes: 1 addition & 1 deletion zstandard_platform_interface/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_platform_interface
description: A common platform interface for the zstandard plugin.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_platform_interface
Expand Down
8 changes: 8 additions & 0 deletions zstandard_web/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 1.5.3 - Repair nested SDK setup before pub.dev publication

- Fix nested publication SDK setup by disabling its optional analyzer problem matcher. Preserve fresh OIDC credentials for every package and all publication dry runs.
- Add regression coverage for an inherited composite action path with no matcher asset, including failure before any package upload.
- Retain the accepted publisher, checkout, Apple host cleanup and Android emulator-session fixes from production 1.5.2; regenerate all distributable outputs during deployment preparation.
- Document recovery from a tagged workflow that failed before its first package upload.
- Minimum SDKs remain Dart ^3.12.0 and Flutter >=3.44.0; validation uses Flutter 3.47.2.

## 1.5.2 - Release recover package publication safely

- Fix package publication so Flutter resolves only the distributable package, without resolving example apps that mix local and hosted dependencies.
Expand Down
4 changes: 2 additions & 2 deletions zstandard_web/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: zstandard_web
description: Web implementation of the Zstandard compression plugin for Flutter applications.
version: 1.5.2
version: 1.5.3

homepage: https://vyp.dev
repository: https://github.com/vypdev/zstandard/tree/master/zstandard_web
Expand All @@ -22,7 +22,7 @@ dependencies:
sdk: flutter
flutter_web_plugins:
sdk: flutter
zstandard_platform_interface: ^1.5.2
zstandard_platform_interface: ^1.5.3
web: ^1.1.1

dev_dependencies:
Expand Down
Loading
Loading