Skip to content

LabGym version if running a customized LabGym #318

@ruck94301

Description

@ruck94301

The 2.9.6 uses schema 'context 2025-08-10',

which lets us report like

  17 2025-09    User started LabGym 2.9.3 with Python 3.10.18
   5 2025-09    User started LabGym 2.9.5 with Python 3.10.11
  11 2025-09    User started LabGym 2.9.6 with Python 3.10.0
 358 2025-09    User started LabGym 2.9.6 with Python 3.10.11
   7 2025-09    User started LabGym 2.9.6 with Python 3.10.12
   1 2025-09    User started LabGym 2.9.6 with Python 3.10.14
  16 2025-09    User started LabGym 2.9.6 with Python 3.10.16
  73 2025-09    User started LabGym 2.9.6 with Python 3.10.18
   1 2025-09    User started LabGym 2.9.6 with Python 3.10.4
   6 2025-09    User started LabGym 2.9.6 with Python 3.10.8
   5 2025-09    User started LabGym 2.9.6 with Python 3.10.9
  20 2025-09    User started LabGym 2.9.6 with Python 3.9.13
  10 2025-09    User started LabGym 2.9.6 with Python 3.9.23

Why are we seeing starts of 2.9.3 and 2.9.5?
Must be due to starts of development variants, customized LabGym.
Like maybe branched from genuine 2.9.3 or 2.9.5, but with the feature branch for centralized logging merged in.
Just Henry or Bobby?
My work in progress is all updated with 2.9.6, so those aren't me.

Some ideas re improving the startup context report.
Not sure if they are good ideas or bad ideas.
Consider and comment?

  1. Startup could "hash" the LabGym tree (except datafiles) and if the tree is "tainted", indicate so with a short hash. "version": "2.9.6+4b35". Hashing is fast, btw, I think performance is not a concern. This hash is not a commit hash, btw.
  2. Actually, LabGym.version might ought to be more aware... the short hash could be moved to the version definition instead of the context reporting. That's better, I think.

Either way, there's a small complication in implementation. The "reference" hash has to be stored, after the version is frozen, but stored in a way that the reference hash itself doesn't affect the hash. This complication can be easily handled though.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions