First, you may call it a flaw instead of a bug if you like. Second, I am not sure if this is a bug in the App UI or a flaw in your data model (I am new to WandB). Third, I am not sure if I am supposed to report bugs here, on github, or elsewhere. I could not find a non-public means of communicating this.
Expected behaviour.
I should be able to see all artifacts created and/or used within a given project via App UI (my browser) at all times. If the project has no artifacts, then I should see an explicit indication of that fact, just as on the first screenshot.
Observed behaviour.
The “Artifacts” icon on the side panel disappears when a project has no runs, whether there are artifacts or not. As depicted on the second screenshot.
What I did.
All I did between the first and the second screenshots was deleting the only remaining (and empty) run within this project.
Why the observed behaviour is problematic:
- If there are no artifacts in the project, I do not get an explicit confirmation of that.
- I cannot see the remaining artifacts if they still exist.
- Basically, you are forcing the user to keep a dummy run in a project, so that the bloody icon stays in place. (Figuratively speaking, because it’s not just an icon issue: if you type the
/entity/project/artifacts/
in the address bar, you still can’t get there)
Now, you may argue that artifacts are attached to runs, and not to projects, therefore all artifacts created in a project that has become run-less are doomed to be orphaned (i.e., neither “used”, nor “logged” by any run), therefore they will be garbage-collected sooner or later, therefore there is no reason for the Artifacts tab. But this does not make sense for two reasons. First, why not keep the Artifact tab anyways? Second, if the user creates a dummy run so that the Artifact tab comes back, he/she will be able to see the orphaned artifacts, as shown on the third screenshot.
Here’s how I produced the third screenshot. I created a run and “used” a new artifact in this run, all via Python interface. Then I deleted the run, leaving the artifact orphaned. Then I created a new run within the same project, went back to the Artifact tab and found the orphaned artifact from the first run, as on the screenshot. If artifacts are attached to runs and not to projects, why does WandB show the orphaned artifact in this project’s tab?
P.S. Many thanks for all your work and, of course, for making your product available for free. But I can’t help but point out that to facilitate neat and well-organised data science, WandB should be transparent, understandable, and predictable. So far, I have been having a hard time understanding your model and figuring out things like the unexpected difference between wandb.sdk.wandb_run.Run
and wandb.apis.public.Run
. I can’t understand why any deviation from the simplest use cases and “Best Practices” must be so painful that it may be easier to re-run all experiments in order to correct how they are logged in WandB than to correct the record directly.