Skip to content

Replace .py2store_configs with {app_data_folder}/py2store #95

Description

@thorwhalen

This issue addresses the concern of where to put app/package data.
It resulted in the proposal of the
get_app_data_folder
function.

We should use this function to replace the ~/.py2store_configs with {app_data_folder}/py2store.

We need to figure out a good transition protocol too. For example, if the old folder exists, use that, but issue a warning telling the user they can move it to the new place to stop the warnings. Also let them know that the current package will then function as usual, but if they have anything else that depends on the old location, they should refactor there too.

Activity

  1. self-assigned this
    on Mar 3, 2023
  2. thorwhalen commented on Sep 22, 2026

    @thorwhalen
    MemberAuthor

    Current state: ~/.py2store_configs is still live and used (py2store/access.py, DFLT_PY2STORE_CONFIG_DIR, PY2STORE_CONFIGS_JSON_FILEPATH). This is one of the few remaining pieces of genuinely py2store-specific infrastructure (not something that moved to dol), so unlike most of the rest of this backlog, it is not being closed as "belongs in dol now."

    Plan, if/when this gets picked up:

    • Use i2.util.get_app_data_folder (linked above) to compute {app_data_folder}/py2store, replacing the hardcoded ~/.py2store_configs.
    • Migration: on startup, if the old ~/.py2store_configs exists and the new location does not, either (a) auto-copy it over with a one-time DeprecationWarning pointing at the new location, or (b) just keep reading the old location with a warning telling the user to move it manually -- (a) is friendlier but risks silently duplicating config state if the user is running multiple py2store versions/environments concurrently; (b) is safer but leaves stale config around indefinitely.
    • Env var override (PY2STORE_CONFIGS_JSON_FILEPATH) should keep working unchanged either way -- explicit user configuration should always win over either default location.

    Not implementing this myself: it changes where a real user's on-disk config/state lives, which is exactly the kind of thing that needs a human to confirm the transition protocol (auto-copy vs. warn-only) rather than a triage pass deciding unilaterally.

  3. added
    manual-taskRequires the repo owner at the keyboard — agent cannot proceed on its own.
    on Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

manual-taskRequires the repo owner at the keyboard — agent cannot proceed on its own.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions