Skip to content

Commit b063121

Browse files
committed
[docs] define published Android open-testing availability
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 987e7c9 commit b063121

1 file changed

Lines changed: 35 additions & 17 deletions

File tree

‎docs/specifications/website.md‎

Lines changed: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# PyBLE — Public Website Specification
22

33
Status: **FROZEN (pre-v1 and v1 launch surface)** · Owner: project maintainer · Last updated:
4-
2026-09-01
4+
2026-09-25
55

66
This document is the source of truth for the first public website at
77
`pyble.dev`. It specifies only the public site; the Flutter app, PBLE/1, and
@@ -125,25 +125,33 @@ Compatibility copy MUST distinguish platform scope from current support:
125125
It MUST NOT imply that Bluetooth hardware or stock MicroPython alone is enough,
126126
or promise that every eligible board has a firmware image today.
127127

128-
### 3.1 App beta distribution
128+
### 3.1 App distribution
129129

130-
The currently approved app-testing channels are:
130+
The current app channels, verified on 2026-09-25, are:
131131

132132
- the public Apple external-testing invitation at
133133
`https://testflight.apple.com/join/yU4e8s6d`; and
134-
- the restricted Android internal-testing listing at
135-
`https://play.google.com/store/apps/details?id=dev.pyble.pyble`, available
136-
only to approved testers signed in with the Google account that was invited.
134+
- PyBLE **0.2.0** published on Google Play for Android **open testing**, at
135+
`https://play.google.com/store/apps/details?id=dev.pyble.pyble`.
136+
137+
The project owner confirms the Android publication. The official Google Play
138+
listing identifies SciLabPro and describes open testing for PyBLE 0.2.0. This
139+
supersedes the former invited internal-testing status. It does not establish a
140+
production-track release, worldwide availability, a verified opt-in URL, or
141+
the exact source/build identity of the installed store artifact.
137142

138143
While either channel is active, the home page and `/app` MUST:
139144

140-
- distinguish the iPad external beta from the Android internal test, without
141-
implying a production App Store or public Google Play release;
145+
- distinguish the iPad external beta from the published Android Google Play
146+
open test, without implying a production-track release on either store;
142147
- summarize both channels in the home-page hero and link its primary app action
143148
to `/app`; the hero MUST NOT present the iPad channel as the only available
144149
app test;
145-
- explain that an unapproved or signed-out visitor may be unable to open the
146-
restricted Google Play listing;
150+
- describe Android as Google Play open testing, with no invited-account or
151+
approved-internal-tester requirement; installation remains subject to Google
152+
Play's account, country, device compatibility, and testing availability;
153+
- keep visible copy, page descriptions, Open Graph/Twitter descriptions, and
154+
setup guidance consistent with these channel states;
147155
- provide a normal HTTPS link that works on the device displaying the page;
148156
- provide a high-contrast QR code encoding each channel's exact HTTPS
149157
destination for a user viewing the site on another screen; and
@@ -160,7 +168,7 @@ normal navigation.
160168

161169
The two home-page invitations MUST appear in one labelled **Choose your tablet
162170
beta** comparison group. Within that group the iPad external-beta and Android
163-
invited-internal-test cards MUST be peer siblings, render side by side when the
171+
open-testing cards MUST be peer siblings, render side by side when the
164172
viewport permits, and stack without changing order on narrower screens. Each
165173
card retains its own accessible heading, exact link, local QR, direct-device
166174
instructions, and channel-specific availability warning.
@@ -173,14 +181,23 @@ contract, and corresponding QR asset to change together before deployment.
173181
`https://pyble.dev/app` is the stable first-party app-discovery destination
174182
encoded by exact-board firmware. It MUST be a complete statically rendered
175183
document, not an external redirect. It MUST have its own canonical metadata,
176-
identify the iPad external beta and restricted Android internal test (not
177-
production store releases), reuse `siteConfig.testFlightUrl` and
178-
`siteConfig.googlePlayInternalTestUrl` as the approved destination sources,
184+
identify the iPad external beta and published Android Google Play open test,
185+
reuse `siteConfig.testFlightUrl` and `siteConfig.googlePlayUrl` as the approved
186+
destination sources,
179187
present both local authored QR codes plus visible direct-URL fallbacks, and link
180188
to `/flash` and `/support`. Its firmware wording MUST remain release-state-neutral
181189
or derive from the same build-selected state as the home page; it MUST NOT copy
182190
a version/profile claim that can become stale.
183191

192+
The Android QR asset is `/google-play/pyble-google-play-qr.svg` and MUST encode
193+
the exact listing URL above. Its name and accessible description MUST NOT
194+
retain the superseded internal-testing restriction. The existing listing URL
195+
remains the direct installation destination; an inferred or unverified opt-in
196+
URL MUST NOT replace it. Repository documentation MUST distinguish app source
197+
version `0.2.0+8`, published app version `0.2.0`, and independent firmware
198+
versions. A public listing does not prove that later source fixes are included
199+
in the store artifact.
200+
184201
`/app/` MUST permanently normalize to `/app` while preserving the query. Exact
185202
document routing MUST coexist with the existing `/app/*` real-app screenshot
186203
asset namespace: adding or redirecting the document MUST NOT capture, rename,
@@ -1126,9 +1143,10 @@ The v1 site is releasable when:
11261143
- the hero uses a reviewed real-app capture with meaningful alternative text,
11271144
a visible actual-app caption, and a responsive crop that never obscures the
11281145
pictured Blocks workspace or generated Python;
1129-
- the current external iPad beta and restricted Android internal test are each
1130-
exposed as an operable link and locally served, exact-URL QR code without
1131-
claiming production availability;
1146+
- the current external iPad beta and published Android Google Play open test
1147+
are each exposed as an operable link and locally served, exact-URL QR code,
1148+
with matching page/social descriptions and setup guidance; no current copy
1149+
requires an Android invitation or claims production-track availability;
11321150
- `/app` is canonical, statically rendered, uses both approved testing-channel
11331151
destination/link/QR contracts, links setup and support, and its slash
11341152
normalization does not break an existing nested `/app/*` screenshot asset;

0 commit comments

Comments
 (0)