pkgdev icon indicating copy to clipboard operation
pkgdev copied to clipboard

pkgdev bugs --edit-graph breaks filing bugs that depend on existing bugs.

Open eli-schwartz opened this issue 1 month ago • 1 comments

With debug traces:

     def file_bug(
         self,
         api_key: str,
         auto_cc_arches: frozenset[str],
         block_bugs: list[int],
         modified_repo: multiplex.tree,
         observer=None,
     ) -> int:
+         print(f'filing bug for: {self.pkgs=}, {self.bugno=}, {self.edges=}')
         if self.bugno is not None:
             return self.bugno
         for dep in self.edges:
             if dep.bugno is None:
                 dep.file_bug(api_key, auto_cc_arches, (), modified_repo, observer)

Broken (no edits made to the resulting graph -- I use it purely to read and review what I'm about to submit):

$ pkgdev bugs -s =ipywidgets-8.1.7-r1 --edit-graph 
Checking =dev-python/ipywidgets-8.1.7-r1 on 'amd64 arm arm64 ppc64 x86'
Checking =dev-python/ipykernel-6.30.1 on 'amd64 arm arm64 ppc64 x86' [added for =dev-python/ipywidgets-8.1.7-r1]
Checking =dev-python/jupyterlab-widgets-3.0.15-r1 on 'arm arm64 ppc64 x86' [added for =dev-python/ipywidgets-8.1.7-r1]
Checking =dev-python/ipython-9.4.0 on 'amd64 arm arm64 ppc ppc64 x86' [added for =dev-python/ipywidgets-8.1.7-r1]
Checking =dev-python/hatch-jupyter-builder-0.9.1 on 'arm arm64 ppc64 x86' [added for =dev-python/jupyterlab-widgets-3.0.15-r1]
Checking =dev-python/ipython-pygments-lexers-1.1.1 on 'ppc x86' [added for =dev-python/ipython-9.4.0]
Merging =dev-python/ipython-pygments-lexers-1.1.1 into =dev-python/ipython-9.4.0
Check for open bugs matching current graph? [Yes/No] (default: No): y
Found https://bugs.gentoo.org/960433 for node =dev-python/ipython-9.4.0, =dev-python/ipython-pygments-lexers-1.1.1
 -> bug summary: dev-python/ipython-9.4.0, dev-python/ipython-pygments-lexers-1.1.1: stablereq
Found https://bugs.gentoo.org/966523 for node =dev-python/ipykernel-6.30.1
 -> bug summary: dev-python/ipykernel-6.30.1: stablereq
Found https://bugs.gentoo.org/966574 for node =dev-python/hatch-jupyter-builder-0.9.1
 -> bug summary: dev-python/hatch-jupyter-builder-0.9.1: stablereq
Found https://bugs.gentoo.org/966678 for node =dev-python/jupyterlab-widgets-3.0.15-r1
 -> bug summary: dev-python/jupyterlab-widgets-3.0.15-r1: stablereq
Continue and create 1 stablereq bugs? [Yes/No] (default: No): y
filing bug for: self.pkgs=(), self.bugno=960433, self.edges=set()
filing bug for: self.pkgs=(), self.bugno=966523, self.edges=set()
filing bug for: self.pkgs=(), self.bugno=966678, self.edges=set()

Works:

$ pkgdev bugs -s =ipywidgets-8.1.7-r1
Checking =dev-python/ipywidgets-8.1.7-r1 on 'amd64 arm arm64 ppc64 x86'
Checking =dev-python/ipython-9.4.0 on 'amd64 arm arm64 ppc ppc64 x86' [added for =dev-python/ipywidgets-8.1.7-r1]
Checking =dev-python/ipykernel-6.30.1 on 'amd64 arm arm64 ppc64 x86' [added for =dev-python/ipywidgets-8.1.7-r1]
Checking =dev-python/jupyterlab-widgets-3.0.15-r1 on 'arm arm64 ppc64 x86' [added for =dev-python/ipywidgets-8.1.7-r1]
Checking =dev-python/ipython-pygments-lexers-1.1.1 on 'ppc x86' [added for =dev-python/ipython-9.4.0]
Checking =dev-python/hatch-jupyter-builder-0.9.1 on 'arm arm64 ppc64 x86' [added for =dev-python/jupyterlab-widgets-3.0.15-r1]
Merging =dev-python/ipython-pygments-lexers-1.1.1 into =dev-python/ipython-9.4.0
Check for open bugs matching current graph? [Yes/No] (default: No): y
Found https://bugs.gentoo.org/960433 for node =dev-python/ipython-9.4.0, =dev-python/ipython-pygments-lexers-1.1.1
 -> bug summary: dev-python/ipython-9.4.0, dev-python/ipython-pygments-lexers-1.1.1: stablereq
Found https://bugs.gentoo.org/966523 for node =dev-python/ipykernel-6.30.1
 -> bug summary: dev-python/ipykernel-6.30.1: stablereq
Found https://bugs.gentoo.org/966574 for node =dev-python/hatch-jupyter-builder-0.9.1
 -> bug summary: dev-python/hatch-jupyter-builder-0.9.1: stablereq
Found https://bugs.gentoo.org/966678 for node =dev-python/jupyterlab-widgets-3.0.15-r1
 -> bug summary: dev-python/jupyterlab-widgets-3.0.15-r1: stablereq
Continue and create 1 stablereq bugs? [Yes/No] (default: No): y
filing bug for: self.pkgs=((<<class 'pkgcore.ebuild.ebuild_src.package'> cpv='dev-python/ipywidgets-8.1.7-r1' @0x7f4cc9c170e0>, {'*'}),), self.bugno=None, self.edges={=dev-python/ipython-9.4.0, =dev-python/ipython-pygments-lexers-1.1.1, =dev-python/jupyterlab-widgets-3.0.15-r1, =dev-python/ipykernel-6.30.1}
https://bugs.gentoo.org/966922 =dev-python/ipywidgets-8.1.7-r1 * depends on bugs {960433, 966523, 966678}

eli-schwartz avatar Dec 01 '25 06:12 eli-schwartz

(Given pkgdev doesn't seem to verify that existing bugs are for a PVR that successfully completes the depgraph for the bug you want to file, one could put forth an argument that this ticket is not an error report, but rather a success report. Still it does appear the current behavior is unintentional.)

eli-schwartz avatar Dec 01 '25 06:12 eli-schwartz