posit-dev / posit-dev/py-shiny

[Bug]: Trivial dependency cycles are not detected, neither output nor errors produced

Open
#2,009 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug needs-triage
Dominant language
Python
Stars
1.8k
Forks
135
Avg merge
2d 18h
Merged PRs (30d)
21

Description

Component

Reactive Programming

Severity

P1 - High (major feature broken)

Shiny Version

1.4.0

Python Version

3.10.12

Minimal Reproducible Example
from shiny.express import input, render, ui


@render.express
def myrender():
    ui.input_select("sel", None, ["All", "So", "Much"], selected="All")
    input.sel()
    "Sadly, we never get here - silently. Poor user will never know why."
    "Actually, nothing is rendered at all."
Behavior

The code above produces no rendered output and no error messages. This can hardly be called "transparent reactivity" (re: https://shiny.posit.co/py/docs/overview.html#reactivity ), as nothing there is transparent.

Expected behavior:
Complexity of dealing with circular dependencies (detecting, and whenever possible, avoiding in a manner of least user surprise) is understood. Yet, apparently, would be nice to do something about such cases.

Error Messages (if any)
None!
Environment
Ubuntu
Chromium 126

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the minimal reactive example from the issue and trace the reactive rendering path responsible for the silent failure. The payload names no source files or tests, so first locate the cycle-detection or dependency-resolution entry point; done should include a regression test and a defined user-visible result for this cycle.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
web-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.