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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ When you play in your own browser (the Pyodide front-end above), those same slot

## Usage reporting

Usage reporting is on by default: FishE sends a `startup` event once per launch and a `save-loaded` event each time a save slot is created or opened to [trace](https://github.com/Stephenson-Software/trace) at `https://trace.danielstephenson.dev`, each carrying only the program name (`FishE`), the version from `version.txt` and a random installation ID (the tag `install`, so installations can be counted rather than launches). Nothing about you or your run is sent — no username, hostname, IP address, path, slot number or save contents. The in-browser front-end (`UIType.PYODIDE`) is silent: the game runs in your tab, where the client's background thread cannot exist, and nothing is sent from there.
Usage reporting is on by default: FishE sends a `startup` event once per launch and a `save-loaded` event each time a save slot is created or opened to [trace](https://danielstephenson.dev/usage-reporting) at `https://trace.danielstephenson.dev`, each carrying only the program name (`FishE`), the version from `version.txt` and a random installation ID (the tag `install`, so installations can be counted rather than launches). Nothing about you or your run is sent — no username, hostname, IP address, path, slot number or save contents. The in-browser front-end (`UIType.PYODIDE`) is silent: the game runs in your tab, where the client's background thread cannot exist, and nothing is sent from there.

The first time an install reports, one line saying so is printed on the console (above the save-file menu) and a `usage-reporting-notice-shown` marker is left in the save directory so it is not printed again. The installation ID is a random UUID kept next to it, in `trace-install-id` in the save directory (`data/`, or `FISHE_SAVE_DIR`); it identifies no person, account or address, and deleting the file gives a new one. It is only created while reporting is on, so every opt-out below also stops it, and the in-browser front-end makes none. Reporting never gets in the game's way: it happens on a background thread, never raises into the game, and a server that is down or slow costs a dropped event, not a wait.

Expand All @@ -187,7 +187,7 @@ FISHE_USAGE_REPORTING_ENABLED=false python3 src/fishE.py

The test suite switches reporting off for every test (`tests/conftest.py`), and the tests that exercise it point at a loopback stub server, so running the tests never reports anything either. The client is `src/trace_client.py`, vendored as one standard-library file from [trace-client-python](https://github.com/Stephenson-Software/trace-client-python) (0.4.0); the wiring is `src/usageReporting.py`.

Details: https://github.com/Stephenson-Software/trace#usage-reporting
Details: https://danielstephenson.dev/usage-reporting

## Contributing

Expand Down
4 changes: 2 additions & 2 deletions src/usageReporting.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
win even when the setting says on. The first time an install reports, one
line saying so is printed on the console and a marker file is left in the
save directory so it is not printed again. What is sent and how to turn it
off is written up at https://github.com/Stephenson-Software/trace#usage-reporting.
off is written up at https://danielstephenson.dev/usage-reporting.

The client never gets in the game's way: every report returns immediately (the
HTTP call happens on a daemon thread the client owns), never raises, and at
Expand Down Expand Up @@ -55,7 +55,7 @@
"in the environment"
)

DETAILS_URL = "https://github.com/Stephenson-Software/trace#usage-reporting"
DETAILS_URL = "https://danielstephenson.dev/usage-reporting"

NOTICE = (
"Usage reporting is on: %s sends a startup event and a save-loaded event "
Expand Down
2 changes: 1 addition & 1 deletion tests/test_usageReporting.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ def test_the_notice_names_the_program_what_is_sent_the_opt_outs_and_the_details(
"trace.danielstephenson.dev. "
"Turn it off with FISHE_USAGE_REPORTING_ENABLED=false or "
"TRACE_USAGE_REPORTING=off in the environment. "
"Details: https://github.com/Stephenson-Software/trace#usage-reporting"
"Details: https://danielstephenson.dev/usage-reporting"
)
assert "\n" not in usageReporting.NOTICE

Expand Down
Loading