Repository navigation
Release 1.0.0: stabilisation - #16
Merged
Merged
Conversation
A second tour of four screens and a 74 second video sit in the README, and the pub.dev page of flutwire gets four more screenshots: the comparison, the statistics, the dock, and the rules with the marks they leave on the list. The light list and the XML body make room, so the page keeps ten.
Every export names what it makes public, so a helper that shares a file with a public class no longer leaks with it: parseFormEncoded and prettyXml stop being exported. observeRequest is removed from the call recorder, which nothing called. The store and preferences types can no longer be implemented outside the package, so they can grow without breaking anyone, and the HTTP client is final. The HAR written by a format's render names this package's version instead of 0.
The folder had no marker, and a summary that cannot be parsed is deleted, so an older release opening the history of a newer one would have wiped it. The folder now records its layout, a folder with none is the one 0.2.0 writes, and a layout this release does not know is left exactly as it is while the inspector keeps the history in memory. A fixture written by the 0.2.0 code, with a summary in the 0.1.0 shape, is read back in a test.
Checked against a descriptor set and messages that protoc and its generated code wrote, which the hand-built tests could not do. A negative enum value is written as ten bytes, which the descriptor reader dropped, so the value showed as a number. A float showed the 17 digits of the double it widens to, 0.10000000149011612 for 0.1, and now shows the shortest decimal that reads back as the same float.
A new job compares each package with the latest version on pub.dev and fails when the API breaks and the pubspec has not moved to a version that allows it.
Found by running the dock, the comparison and the rules on an iOS simulator and in a browser. The four numbers above the list ran into each other in a panel of 200 points and at a large text size, so they now measure their labels and stand in two rows of two when four do not fit. The title of a selection shrinks to the room its five buttons leave instead of ending in dots. A screen narrower than 600 points puts the panel under the app whatever side was chosen, and its menu no longer offers the right.
A test in the example records a call through dart:io against a server on the loopback interface, opens the comparison and the statistics, and docks the inspector on the right. It passes on macOS and on an iOS simulator. CI now builds the example for the web, which no job did, and the example no longer adds a button of its own where Flutwire floats one.
What is public, what a version bump means for the API, the history on disk and the JSON export, how long a deprecated member stays, which versions get fixes, and which platforms and toolchains are supported.
A crash between creating the file and writing its number would leave a marker with nothing in it, and a marker that cannot be read shuts the history out for good. The summaries are written the same way.
The bodies and messages the tests read are compared exactly, and a checkout that converts line endings or an editor that adds a final newline would break them.
The four packages go to 1.0.0 together, and the three adapters now ask for flutwire ^1.0.0. flutwireVersion and the podspec follow, which version_test checks. The entries that were waiting under Unreleased are now under [1.0.0], each package has its own changelog entry, the README says what shipped and links the stability policy, and gRPC capture is named as what comes next.
|
This pull request adds no capability to production code. Test and benchmark code gains the ability to import a module chosen at runtime, touch the filesystem, in 3 places. 80 files read · 8522 ms · against |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Everything for 1.0.0 in one pull request: the review of the public API, the stability policy, the checks that found what the review could not, the media for what 0.2.0 added, and the release commit. Merging it tags and publishes nothing: the release workflow starts from a tag, and pushes to main only run CI.
The review (M25) read everything the four packages export. Every export now names what it makes public, which stops
parseFormEncodedandprettyXmlfrom leaking out with the body model, andFlutwireCallRecorder.observeRequest, which nothing called, is removed.FlutwireStore,MemoryFlutwireStoreandFlutwirePreferencesarebaseclasses andFlutwireClientisfinal, so none of them can be implemented or extended outside the package and each can grow without breaking anyone.FlutwireBodyDecoderstays the one interface meant to be implemented. The HAR export names this package's version instead of0.STABILITY.mdsays what all of that means. Compared with 0.2.0,dart_apitoollists those three removals for the core and nothing for the adapters. It does not see a change of class modifier, so the changelog lists those by hand.The checks found things the review could not. The history on disk had no version, and a summary that could not be read was deleted, so an older release opening the history of a newer one would have wiped it (M40). The folder now records a layout number, a folder with none is read as the one 0.1.0 and 0.2.0 write, and a layout this release does not know is left exactly as it is while the history stays in memory. A fixture written by the 0.2.0 code is read back in a test. The Protobuf decoder had only been tested on input built by hand (M38). Run over a descriptor set and messages that
protocand its generated code wrote, it got a negative enum value and a float wrong, and both are fixed with tests that fail without the fixes. The new screens were run on an Android emulator, an iOS simulator, macOS and in a browser (M39). That turned up layout problems on narrow screens: the four numbers above the list ran into each other in a panel of 200 points, the title of a selection was cut, and the dock could be put to the right of a phone. All three are fixed, each with a test that fails without it. A smoke test in the example records a call throughdart:io, opens the comparison and the statistics and docks the inspector, and passes on macOS and on an iOS simulator.Two jobs are new (M41, M39). One compares each package with its latest release on pub.dev and fails when the API breaks and the pubspec has not moved to a version that allows it. The other builds the example for the web, which no job did.
The media (M37) is a second tour and a 74 second video in both READMEs, and four more screenshots on the pub.dev page of
flutwire, which now shows ten.The release commit moves the four packages to 1.0.0 together. The three adapters ask for
flutwire ^1.0.0,flutwireVersionand the podspec follow, whichversion_testchecks, the entries that were waiting under Unreleased are now under[1.0.0] - 2026-10-24, each package has its own changelog entry, and the README says what shipped, links the policy and names gRPC capture as what comes next.Checked locally on this branch: format, analyze, the four suites (1137, 15, 12 and 19 tests), the four
flutter pub publish --dry-runs with 0 warnings, the lowest versions of each package, the example for Android, the iOS simulator, macOS and the web, the API job's own script run with bash, which passes for all four packages, and the repository audit, which says "At standard".What waits for after the merge: the tag
v1.0.0on the merge commit, which starts the release workflow, the board, where the items that target 1.0.0 go to Shipped and the Tier 3 milestone closes, the topics, which are re-ranked at each major release, and a new status update. The date in the changelog heading and in the anchors of the four package changelogs is the day this was written. If the tag goes out on another day, those five places change.Targets
1.0.0, Tier 3, and the Maintenance item M37.