So this is how it looks like:
Notice the duplicated log. and it breaks the UI too.
RCA
new _instrument_bub breaks the logger key
https://github.com/bubbuild/bub/blob/main/src/bub/__main__.py#L12
# __main__.py
def _instrument_bub() -> None:
from loguru import logger
# the old 0 keyed handler removed
logger.remove()
# this logger gets assigned 1 as the handler key
logger.add(sys.stderr, colorize=True)
https://github.com/bubbuild/bub/blob/main/src/bub/channels/cli/__init__.py#L53
# channels/cli/__init__.py
def _install_log_sink(self) -> int:
with contextlib.suppress(ValueError):
# this removes the handler with 0 as key, absent now, so fails, and silenced, making it really hard to spot
# maybe we can call remove(), but then I'm afraid logfire instruments in the above code will break
logger.remove(0)
return logger.add(self._renderer.log, colorize=False, format="{level:<8} | {message}")
So this is how it looks like:
Notice the duplicated log. and it breaks the UI too.
RCA
new
_instrument_bubbreaks the logger keyhttps://github.com/bubbuild/bub/blob/main/src/bub/__main__.py#L12
https://github.com/bubbuild/bub/blob/main/src/bub/channels/cli/__init__.py#L53