Replaces the Material 3 screens with the Noo design system: warm neutrals, one violet accent, pill controls, Schibsted Grotesk/ Instrument Sans, Lucide icons, no gradients/shadows. - New lib/widgets/noo/ component kit (core, lists, files, media, nav, overlays) plus lib/theme/design_tokens.dart for the color/type/space/ radius/motion tokens. - Rebuilt the app shell (top/bottom bars, drawer, desktop sidebar and toolbar), every tab (Files/Offline, Photos, Favorites, Recent, Activity, Trash, Shares), Settings, the lock and login screens, the media viewer, search, the details/share sheets, and the share-upload and move/copy destination pickers. - Added a design canvas (linked from DESIGN_SYSTEM.md) covering the screens the spec didn't already describe, with matching Android and iOS chrome; wrote up the approved recipes into DESIGN_SYSTEM.md §4. - Removed now-dead legacy widgets (media_grid_tile, swipeable_item, sync_status_badge, selectable_thumbnail) and updated architecture.md/styling.md/standards.md to describe the new structure and component/testing conventions. - Added widget tests for the noo/ component kit. This is a UI-only rework: no provider/model/service behavior changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""Uploads an .aab to the Play Console's app bundle library, without
|
|
touching any release track.
|
|
|
|
Play Console itself doesn't expose "just upload, don't release" as an
|
|
action - every path through the UI attaches a bundle to a track. The Play
|
|
Developer API does support it though: open an edit, upload the bundle,
|
|
commit the edit, and stop there. The result shows up under Release > App
|
|
bundle explorer and nowhere else - nothing goes out to testers or
|
|
production until it's promoted to a track by hand, whenever that's wanted.
|
|
|
|
Needs:
|
|
GOOGLE_PLAY_PACKAGE_NAME e.g. dev.ayushya.noo
|
|
GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_PATH path to a service account key file
|
|
|
|
The Play Developer API can't create an app's first release - Google
|
|
requires at least one manual upload through the Play Console web UI (to
|
|
any track) before it'll accept API calls for that app at all.
|
|
|
|
python3 tool/upload_play_bundle.py path/to/app-release.aab
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
from google.oauth2 import service_account
|
|
from googleapiclient.discovery import build
|
|
|
|
SCOPES = ["https://www.googleapis.com/auth/androidpublisher"]
|
|
|
|
|
|
def main(bundle_path):
|
|
package_name = os.environ["GOOGLE_PLAY_PACKAGE_NAME"]
|
|
key_path = os.environ["GOOGLE_PLAY_SERVICE_ACCOUNT_JSON_PATH"]
|
|
creds = service_account.Credentials.from_service_account_file(
|
|
key_path, scopes=SCOPES
|
|
)
|
|
service = build("androidpublisher", "v3", credentials=creds)
|
|
|
|
edit_id = service.edits().insert(body={}, packageName=package_name).execute()["id"]
|
|
|
|
bundle = (
|
|
service.edits()
|
|
.bundles()
|
|
.upload(editId=edit_id, packageName=package_name, media_body=bundle_path)
|
|
.execute()
|
|
)
|
|
print("Uploaded versionCode %s" % bundle["versionCode"])
|
|
|
|
service.edits().commit(editId=edit_id, packageName=package_name).execute()
|
|
print(
|
|
"Committed - visible under Release > App bundle explorer in Play "
|
|
"Console. Not attached to any track, so nothing goes out to "
|
|
"testers or production until it's promoted by hand."
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv[1])
|