Northy1717/SWE-bench-Live huggingface dataset:
Repository: conan-io/conan

Issue:
[feature] conan list is not ergonomic
### Make `conan list` output all packages without requiring the "*"

Intuitively, I want to be able to list my conan packages using `conan list`

```
C:\Users\pierr\git
λ conan list
ERROR: Missing pattern or graph json file
```

I then have to go through the docs to find an example that tells me that I'm missing "*".

Why require the "*" argument? It's a small thing, but it's frustrating to the user, especially since Conan is close to Python, and we'd expect `conan list` to work like `pip list` does.

Suggestion, make `conan list` behave like `conan list *`

### Have you read the CONTRIBUTING guide?

- [ ] I've read the CONTRIBUTING guide


Discussion:
Hi @pierricgimmig 

Thanks for your suggestion.

I am proposing the change in https://github.com/conan-io/conan/pull/17300, but can't guarantee 100% it will move forward, I will check with the team, there might be other UX reasons why this wasn't already the default, there were even tests that were checking this behavior.
Thank you @memsharded !



Patch:
diff --git a/conan/cli/commands/list.py b/conan/cli/commands/list.py
index 41c383692ac..da032afc92a 100644
--- a/conan/cli/commands/list.py
+++ b/conan/cli/commands/list.py
@@ -233,7 +233,7 @@ def list(conan_api: ConanAPI, parser, *args):
     args = parser.parse_args(*args)
 
     if args.pattern is None and args.graph is None:
-        raise ConanException("Missing pattern or graph json file")
+        args.pattern = "*"  # All packages
     if args.graph:  # a few arguments are not compatible with this
         if args.pattern:
             raise ConanException("Cannot define both the pattern and the graph json file")


Test patch:
diff --git a/test/integration/command_v2/list_test.py b/test/integration/command_v2/list_test.py
index a23bdeee6d8..008a6a9e3c1 100644
--- a/test/integration/command_v2/list_test.py
+++ b/test/integration/command_v2/list_test.py
@@ -18,20 +18,22 @@
 
 class TestParamErrors:
 
-    def test_query_param_is_required(self):
+    def test_default_pattern(self):
         c = TestClient()
-        c.run("list", assert_error=True)
-        assert "ERROR: Missing pattern or graph json file" in c.out
+        c.run("list")
+        assert "Found 0 pkg/version" in c.out
 
-        c.run("list -c", assert_error=True)
-        assert "ERROR: Missing pattern or graph json file" in c.out
+        c.run("list -c")
+        assert "Found 0 pkg/version" in c.out
 
         c.run('list -r="*"', assert_error=True)
-        assert "ERROR: Missing pattern or graph json file" in c.out
+        assert "ERROR: Remotes for pattern '*' can't be found" in c.out
 
         c.run("list --remote remote1 --cache", assert_error=True)
-        assert "ERROR: Missing pattern or graph json file" in c.out
+        assert "ERROR: Remote 'remote1' can't be found or is disabled" in c.out
 
+    def test_query_param(self):
+        c = TestClient()
         c.run("list * --graph=myjson", assert_error=True)
         assert "ERROR: Cannot define both the pattern and the graph json file" in c.out
Repository: Kozea/WeasyPrint

Issue:
Svg fill attributes unusual behaviour in v63
This was working as expected and matching browser renderings in v62

`<svg width="300" height="130" xmlns="http://www.w3.org/2000/svg">
    <rect width="200" height="100" x="10" y="10" rx="20" ry="20" fill="#000" fill-opacity=".098"
        fill-rule="evenodd" />
    <circle cx="50" cy="50" r="50" fill="#1c87c9" fill-opacity=".098"
        fill-rule="evenodd" />
</svg> `

In v63, the rect is not applying the fill-opacity.  If the order of the rect and circle are switched, the circle does not apply the fill-opacity.  Both are applied in browsers.



Discussion:
Thanks for the quick fix. I have tested on my larger template with the fix branch and it is working.
> Thanks for the quick fix. I have tested on my larger template with the fix branch and it is working.

Thanks for the report! It’s really useful to get a small sample to reproduce problems, and to have feedback when it’s fixed. :heart:



Patch:
diff --git a/weasyprint/pdf/stream.py b/weasyprint/pdf/stream.py
index ec3274a9d..8a0aa09a8 100644
--- a/weasyprint/pdf/stream.py
+++ b/weasyprint/pdf/stream.py
@@ -81,6 +81,8 @@ def end_text(self):
 
     def set_color(self, color, stroke=False):
         *channels, alpha = color
+        self.set_alpha(alpha, stroke)
+
         if stroke:
             if (color.space, *channels) == self._current_color_stroke:
                 return
@@ -105,7 +107,6 @@ def set_color(self, color, stroke=False):
         else:
             LOGGER.warn('Unsupported color space %s, use sRGB instead', color.space)
             self.set_color_rgb(*channels, stroke)
-        self.set_alpha(alpha, stroke)
 
     def set_font_size(self, font, size):
         if (font, size) == self._current_font:


Test patch:
diff --git a/tests/draw/test_opacity.py b/tests/draw/test_opacity.py
index 3d56665ad..bab36ffdd 100644
--- a/tests/draw/test_opacity.py
+++ b/tests/draw/test_opacity.py
@@ -58,3 +58,12 @@ def test_opacity_percent_clamp_up(assert_same_renderings):
         opacity_source % '<div></div><div style="opacity: -0.2"></div>',
         opacity_source % '<div></div><div style="opacity: -20%"></div>',
     )
+
+
+@assert_no_logs
+def test_opacity_black(assert_same_renderings):
+    # Regression test for https://github.com/Kozea/WeasyPrint/issues/2302
+    assert_same_renderings(
+        opacity_source % 'a<span style="color: rgb(0, 0, 0, 0.5)">b</span>',
+        opacity_source % 'a<span style="opacity: 0.5">b</span>',
+    )