text:
Subject should only return soft deleted models if that model uses SoftDeletes

We are logging activity of several models, some using SoftDeletes trait and others not.
When we set config option 'subject_returns_soft_deleted_models' => true then calling subject() on any model not using SoftDeletes trait throws an exception: Call to undefined method Illuminate\Database\Eloquent\Builder::withTrashed().
Can the subject() method below be made to check first whether the Model uses the SoftDeletes trait? Or perhaps check whether withTrashed() is a defined method on the Model? I tried a few things but couldn't figure out how to get the class of the Model..
https://github.com/spatie/laravel-activitylog/blob/68eb6e65382f94fe86ce5ff6572159f80d024ba9/src/Models/Activity.php#L28-L35

The official way to get the class would be to resolve the morph_type via the morph-map. But this wouldn't be a solution if you use the relation method in a query-chain like:
Activity::whereHas('subject', function($query) { $query->where('active', true); })->get();

The only solution I could think about would be a simple try-catch block.

@bluec or @MustafaHussaini can you make the added and linked unittest fail?
Could be that I don't get the described issue - but I can't reproduce it in phpunit. If you can't let the test fail can you please attach your full code (Model with SoftDelete, Model without SoftDelete and code that produces the error)!? full = the important parts - I don't need any unrelated mutator methods or things like this. And your setup would also be good: Laravel-Version, Package-Version, PHP-Version and which Database and in which version?
https://github.com/spatie/laravel-activitylog/blob/fb19f4956e3df6715278106fb42a72139324bc62/tests/ActivityModelTest.php#L146-L179

Hi @Gummibeer you described the behaviour exactly here: https://github.com/spatie/laravel-activitylog/issues/445#issuecomment-430893149

Otherwise the config value true and not available scope method (commented trait use) should throw an exception - unknown method call.

@Gummibeer I have done a PR https://github.com/spatie/laravel-activitylog/pull/459 on your test to make it fail. You need to call ->with('subject')

Thanks for your PR! I will work on this. But that's even more strange. Because if I just do $activity->subject it works. So even in Laravel/Eloquent Core it works different ways depending on how I load the relation. 😕
I can't promise any solution(-date) but will try to find the issue and a solution.

Thanks for looking into it. I've tried a ton of things including a simple try/catch block but I can't get anything to work.

Ok, the problem why everything we do in the subject() relation method doesn't change anything is that it doesn't produce the error.
The scope is re-applied in \Illuminate\Database\Eloquent\Relations\MorphTo::replayMacros() which uses \Illuminate\Support\Traits\ForwardsCalls to call the method.
The exception isn't thrown during the initial call of withTrashed() but in the forwarded call which is done during get(). So just a try-catch around the query itself could catch the exception.
I will do more research to find a way how we could prevent this.

Ok, the real problem is that it's called during another query. I got a fix that works if the activity model is an instance with attributes:
public function subject(): MorphTo
{
    $morph = $this->morphTo();
    if (config('activitylog.subject_returns_soft_deleted_models')) {
        $query = $morph->createModelByType($this->{$morph->getMorphType()})->newQuery();

        if(!is_null($query->getMacro('withTrashed'))) {
            return $morph->withTrashed();
        }
    }

    return $morph;
}

But if the relation is loaded via with() or load() the attributes aren't filled and it's not possible to resolve the target/subject model.
So for now I really don't see a way how this could be fixed! 😖
I have some ideas but these aren't solution to be done in this package:

add a withTrashed() scope that doesn't do anything
don't eager load with trashed and load deleted subjects in single queries
split your activity collection into two (one with subjects that support withTrashed() and one that don't) and enable/disable withTrashed() via a static property

My code above could be a good starting point for some of these solutions.

Thanks for this. I didn't think there was an easy fix :(
I initially added withTrashed() scopes that don't do anything but I feel this taints the application. I am going to consider the other options including just not using SoftDeletes at all. I recall reading that @freekmurze is not a fan of them and I think he may have a point!

I'm also not a fan of them. No of my projects uses them for anything.
Entries are deleted or not - keeping them for backup purposes isn't the job of the application/model. If you use soft-deletes to show/hide or activate/deactivate entries use corresponding columns.
So it looks nice on the first sight but I don't see a reason to use soft-deletes.

if I understand the problem correctly then why don't you do it like below
`public function subject(): MorphTo
{
if ( method_exists($this->morphTo()->getRelated(),'runSoftDelete')
&& config('activitylog.subject_returns_soft_deleted_models')) {
return $this->morphTo()->withTrashed();
}
return $this->morphTo();

}`

@Mina-R-Meshriky thanks for your idea, I haven't checked it but so far I see it this would trigger two queries. One just to determine if it should use soft-deletes or not.
At all there is no issue if you do
$activity->subject but if you eager-load them during the activity query itself Activity::forSubject($user)->with('subject')->get().
I've tried to describe it above - the code way is:

Activity::... creates a query instance ActivityQuery
with('subject') creates a ForwardsCalls instance which caches the withTrashed() macro call
the ActivityQuery is executed and got a result of n activities
foreach activity it creates a new query to get the subject SubjectQuery
the cached method calls from ForwardsCalls are applied to SubjectQuery
Exception

There is no way to know in step 2 if any of the unknown subjects of the unknown activities uses soft-deletes or not.
The only solution would be to find a way to cache a method which exists (created by this package) and this method decides if to apply soft-deletes or not.
With an ActivitySoftDeletePolyfill trait and a applyWithTrashedIfNeeded() method we could solve this.
But every subject model has to use this trait and I don't think that this should happen in this project.
It's no problem with this package itself - it's a common laravel one. If you mix soft-deletes in a polymorphic table and use withTrashed() in the relationship method.
Because we allow to override all needed methods and to disable soft-deletes via config I don't see a reason to mess up with deep core logic just to allow mixed-soft-deletes-subjects.
If I'm wrong and your example doesn't issue a new database request and it solves the issue I would be happy to apply your suggestion!?

when I dd($this->morphTo()) I found that the parent and the related models were already loaded in the collection.

Have you done it after you got your activity instance or during the activity query?
This is the major difference. If I have an $activity instance everything works fine and you even don't get an exception if you call withTrashed() on a subject that doesn't use soft-deletes.

I've run into this issue and it looks like a fix hasn't been found yet. Could you check for a deleted_at column on the model?
    public function subject(): MorphTo
    {
        if (config('activitylog.subject_returns_soft_deleted_models') && $this->deleted_at) {
            return $this->morphTo()->withTrashed();
        }

        return $this->morphTo();
    }

hey @tomfortmuller ,
the columns doesn't have to exist on $this but the morph relation. And exactly this is the major problem. That we have to decide when to apply or not the scope without knowing which model is resolved in the relation.
One morph relation can have multiple models and each one can have a different setting. So lets say that the subject can be the user and car. The user implements SoftDelete but the car doesn't. In this case we had to apply the withTrashed() scope to the user rows but not to the car ones.
The only way to really fix it would be a fix in the trait itself. For example via a condition. But I don't know if SQL conditions are supported by all laravel supported drivers.

I run  into same issue with a similar use case what I did was
 appliesTo' => function ($q) {           $q->withoutGlobalScope(SoftDeletingScope::class); }
If you want to do it on the relation load
 public function appliesTo(): MorphTo {       return $this->morphTo('applies_to', 'subject_type', 'subject_id', 'id')           ->withoutGlobalScope(SoftDeletingScope::class); }

This still seems to be an issue. Any progress on this?

@MichMich So far I know the underlying issue isn't solved. So as long as no one finds a crazy hacky solution this won't change. 🤔

Can we not just use a try/catch here to fix this? Seems like the simplest solution to me

Not really as the relation is/could be mixed.
The real problem here is that we have to define the withTrashed() scope on the relationship. But the relation is morphable so it can contain relations to ModelA and ModelB. Now we get into trouble - our ModelA uses soft deletes but ModelB doesn't. But the relation doesn't know about the difference and Laravel/Eloquent tries to call the withTrashed() scope on both models - which results in an exception. But we don't get any info about which records failed and also can't repeat only these records without the scope.
But I will spend some time to get again into all this and check it with current Laravel 8 - probably something has changed over time.

Okay, nothing has changed - we have no way from the outside to manipulate the applied scopes based on the type of the morphed relation record.
The closest I got was this - but it works only for single records $activity->subject but not for loading the whole relation $activities->load('subject').
if(array_key_exists(SoftDeletes::class, class_uses_recursive($morphTo->getQuery()->getModel()))) {
    dump(SoftDeletes::class);
}

Here are both backtraces how the closure/macro in \Illuminate\Database\Eloquent\SoftDeletingScope::addWithTrashed() is called.
backtrace-relation.json
backtrace-single.json

Cant you check if the model has a scopeWithTrashed method, and if not, add a dummy one that does not alter the query?

That's something the user could do but I don't see why we should "fix" this as it's not a bug with this package but a general morphed relation Laravel one.
So, I would accept a PR that adds a new section to the docs (like we did yesterday for Pivot Models).
https://spatie.be/docs/laravel-activitylog/v3/advanced-usage/logging-model-events#logging-on-pivot-models
The section should completely describe how to make mixed soft/hard deleted subjects work together.
At all my recommendation is to don't mix soft and hard deletes in an app and think like a thousand times about the usage of soft deletes at all. Because in ~99% of the cases they are misused.

Just an update, this issue is now resolved in Laravel Framework 10.20.0

authors: Gummibeer Jamesking56 LeonAlvarez MichMich Mina-R-Meshriky bluec crynobone tomfortmuller


text:
#895 - Model method replicate() leads to created event not being logged when model is saved.

Added test case to demonstrate issue #895.

Okay, but that test passes - so where's the issue? 🤔

I am also puzzled, please give me some time to figure it out.

source: gharchive/pull-request

authors: Gummibeer mpryvkin

repo: spatie/laravel-activitylog

license: MIT

license_type: permissive

license_source: github-api


text:
Transformation Bugs (Auto Optimize)

The new version of MapFusion is able to handle more cases and generates slightly different graphs. Some other transformations mostly related to auto optimize do not handle these cases properly and fail.
Either the generate wrong graphs (validation fails), but perform some operations which are invalid.
To pass the CI the new MapFusion was equipped with a compatibility flag strict_dataflow which generated graphs, that were more in line with what other transformations expect.
This issues is created to collect all known transformations or cases that cause an error.
Since mostly all of them are related to the auto optimizer, you should apply the following patch:
From d7091136eb6c0110f77795e8cfe3743b9b816c60 Mon Sep 17 00:00:00 2001
From: Philip Mueller <philip.mueller@cscs.ch>
Date: Thu, 5 Sep 2024 11:31:50 +0200
Subject: [PATCH] Activate the new MapFusion behaviour.

---
 dace/transformation/auto/auto_optimize.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/dace/transformation/auto/auto_optimize.py b/dace/transformation/auto/auto_optimize.py
index 09ff481e3..69d3f0a68 100644
--- a/dace/transformation/auto/auto_optimize.py
+++ b/dace/transformation/auto/auto_optimize.py
@@ -52,6 +52,9 @@ def greedy_fuse(graph_or_subgraph: GraphViewType,
     :param permutations_only: Disallow splitting of maps during MultiExpansion stage
     :param expand_reductions: Expand all reduce nodes before fusion
     """
+    validate=True
+    validate_all=True
+    strict_dataflow=False
     debugprint = config.Config.get_bool('debugprint')
     if isinstance(graph_or_subgraph, ControlFlowRegion):
         if isinstance(graph_or_subgraph, SDFG):
@@ -61,7 +64,7 @@ def greedy_fuse(graph_or_subgraph: GraphViewType,
             #  We have to use `strict_dataflow` because it is known that `CompositeFusion`
             #  has problems otherwise.
             graph_or_subgraph.apply_transformations_repeated(
-                    MapFusion(strict_dataflow=True),
+                    MapFusion(strict_dataflow=strict_dataflow),
                     validate_all=validate_all,
             )

@@ -82,7 +85,7 @@ def greedy_fuse(graph_or_subgraph: GraphViewType,
         if isinstance(graph_or_subgraph, SDFGState):
             sdfg = graph_or_subgraph.parent
             sdfg.apply_transformations_repeated(
-                    MapFusion(strict_dataflow=True),
+                    MapFusion(strict_dataflow=strict_dataflow),
                     validate_all=validate_all,
             )
             graph = graph_or_subgraph
--
2.46.0

The commit b2dea1d1 in Philip's is known to pass the test suite.
The compatibility mode is by default enabled. However, with this patch you can enable it (you have to look also at auto optimize).
From 6ffd03918647c725b60377c1b00bad9263deb6cd Mon Sep 17 00:00:00 2001
From: Philip Mueller <philip.mueller@cscs.ch>
Date: Thu, 5 Sep 2024 11:40:37 +0200
Subject: [PATCH] The compability mode is now disabled.

---
 dace/transformation/dataflow/map_fusion_helper.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dace/transformation/dataflow/map_fusion_helper.py b/dace/transformation/dataflow/map_fusion_helper.py
index d52e8d4a9..59a4b4040 100644
--- a/dace/transformation/dataflow/map_fusion_helper.py
+++ b/dace/transformation/dataflow/map_fusion_helper.py
@@ -21,7 +21,7 @@ class MapFusionHelper(transformation.SingleStateTransformation):
     Args:
         only_inner_maps: Only match Maps that are internal, i.e. inside another Map.
         only_toplevel_maps: Only consider Maps that are at the top.
-        strict_dataflow: If `True`, the default, the transformation ensures a more
+        strict_dataflow: If `True`, the transformation ensures a more
             stricter version of the data flow.

     Note:
@@ -56,7 +56,7 @@ class MapFusionHelper(transformation.SingleStateTransformation):
     )
     strict_dataflow = properties.Property(
         dtype=bool,
-        default=True,
+        default=False,
         desc="If `True` then the transformation will ensure a more stricter data flow.",
     )

--
2.46.0

Correlation Test
Affects tests/npbench/polybench/correlation_test.py, the main issue is the dynamic Memlet and the multiple overwriting of data.
In the non strict mode map fusion will generate the following SDFG:

In the top map X (stddev) is written and it is written back, the access node does not have an output degree.
In the second map the data is modified again, it is important that the lower map uses a dynamic memlet to write the data back, so actually X should also be seen as an input of the map, but it is not.
This is the result after MapFusion has run, in non strict mode. The SDFG is still correct, because the top map is sequenced before the lower map, since they are connected (through the unnamed access node).
Auto optimize, I think it is comonent fusion, will now merge these two maps together. However, it does not detect the data dependency in stddev thus the computation of the top map are lost.

_read_and_write_sets().

tests/npbench/weather_stencils/vadv_test.py was also known to be affected.
There it was a subset error (dimensionality)

This issue was now split into separate ones.
See PR#1637 for more.

This issue was now split into separate ones.
See PR#1637 for more.

source: gharchive/issue

repo: spcl/dace


text:
Support for proxy export for different shell

Currently command clashrup proxy export and clashrup proxy export-lan output hard-coded environment variable-based exports, which are specific to bash and related. fish, pwsh and others need different command.

Another method is for clashrup to set system proxy directly, which I haven't found a solution to on Linux servers.

repo: spencerwooo/clashrup


text:
Name and direction

I want to open a discussion about the name of this project and the direction it is taking.
I guess we are all aware of the history. It looks this fork is taking quite a distinct path from the original work done by Neil. I am hoping it will be more active and flourish. However, the fact that it's still called Electrumx might confuse people (both ways).
Wouldn't it be better if we renamed it to something else and clearly cut it from it's heritage? Something like happened with OpenOffice/LibreOffice, MySQL/MariaDB etc. I am really bad at creative, so I don't have any clever suggestions, but I am sure we can come up with something better than ElectrumY, which is the only thing that came up to me :)
Also, I think it would be better to clearly decide on altcoin support. I, for one, do not care about anything other than Bitcoin, but I also understand that there are people who do. If altcoins are internal to the code, they should be supported and maintained. If the team is not ready to support them, they should be removed. A middle ground could be, that the coin support is somehow modularized and removed from the repo itself, with people able to build and support their own modules, which could be installed externally during the setup process.
At this point, I'd also like to thank all the contributors of this project, you are doing awesome job. And I think we also need to acknowledge the tremendous work Neil has done, as the original author, even though we might not agree with the way he has handled the project in the last few months.

At this point there is no evidence that a new name is needed. Most users of ElectrumX use it for Bitcoin, and they use that name in association with Bitcoin. Thus, changing the name would confuse a majority of users. I also believe that keeping the name is the best way to acknowledge the role of @kyuupichan
However, that decision is temporary; we might indeed have to rename the project. My position is that we do not have to do that for the moment, so it is better to wait.
Regarding altcoin support: I think that making altcoin support through modules (or config files) could negatively impact us, because it would make our code more complex. I prefer a situation where altcoins maintain their own fork of the project, and where "modularity" means that their code can be rebased easily.

Note that if we want to release on PyPI (pip), we need a name for that.
As for altcoins, I am still neutral on that. They are already in the repo, already abstracted away, each with at least a (basic) unit test. In my view, until they are in the way for meaningful changes, we might as well keep them. I don't personally care about altcoins either, the question is whether by having them we attract any contributors who make changes useful for us too.

Note that if we want to release on PyPI (pip), we need a name for that.

This was one my main reasons why I brought it up. Given that Python uses a global repository of modules in a lot of cases, conflicts might rise as the versions will inevitably start diverging.

Please keep altcoin support, many projects need that. I am running electrums for AtomicDEX, for dozens of coins and having to deal with dozens of different electrumx server sources would make my work a lot more complicated.

I believe altcoin support adds unneeded complexity and waste maintenance resources and they should be removed.

A lot about electrumX is the way it is in order to be coin agnostic. I don't care about alts but I see how electrumx is as relevant as it is because all the alt devs care about the project and all the multi-coin-wallet devs rely on it for their backend. Therefore, personally I would not support an effort to strip alts from the project but on the other hand I would not support making any concessions to add more alts, neither. No API changes to accommodate alt-coins.

To add to this, i've been maintaining my own fork of electrumx/electrum designed for alts. (electrumx has no major changes) but the electrum has had an overhaul for altcoin support. i'd be happy to accept any PR's made here for alt's over in https://github.com/electrum-altcoin/electrumx

authors: Giszmo SomberNight aggressivelurker ahmedbodi cipig ecdsa whizz

repo: spesmilo/electrumx


text:
Adds Fastcoin support.  'FST Genesis 2013'

  √

For any questions email us at contact@fastcoin-project.com

@SomberNight can we get a review/pull

Please rebase against current master, and make sure the CI checks pass.

authors: SomberNight fastcoin-project


text:
added RSSUri to specify the name of the RSS file

This is useful when migrating a site from another system like drupal that uses a different name for the RSS xml files.

@danapsimer there are some breaking test(s).

Merged infd08e16
This is very useful.

Reopen this. Two issues:
The implementation only work for the top level RSS file (home page). Not for the other nodes (sections, tag listings).
If you set the RSSUri to something other than index.xml the RSSLink returns wrong value.

ping @danapsimer

authors: bep danapsimer


text:
V2.0 Redesign

This is a PR to redesign the site and use Tailwind to create the style.
TODO:

[x] Add tailwind packages
[x] Layout updates

[x] Base layout (for all other pages)
[x] Default layout (for non-post markdown pages)
[x] Post layout (for blog post pages)

[x] New homepage
[x] Theming

[x] Override base typography for markdown
[x] Configure some default styles (links, etc)
[x] Custom font
[x] Custom theme color
[x] Dark mode

[x] Allow dark-mode toggle? Examples: 1, 2

[x] Update npm scripts and build processes (including env vars and minification)
[x] General cleanup

[x] Refactor eleventy.config.js and other meta files
[x] Remove old src/static/css/style.css file (fixes #5)
[x] Remove unnecessary code (comments, etc)

[x] Logo (no background - handle with css)
[x] Update favicons
[x] Meta images - dynamically generated

Everything is good at this point, things are in place and ready to merge.
Will still look into issues once merged, and probably change some minor things, like the index image and other code refactoring.


text:
fix(csv): trim csv cells when parsing

fixes #178
Summary

Description

Todo

Tests

[ ] Unit
[ ] Integration
[ ] Acceptance

[ ] Documentation

Coverage remained the same at 90.005% when pulling 1facd5fe3dcec64744ce7cc596c412bdaeb1ec9a on 178_fix_template_header_spaces into b7203aedf614231cd22c2d9aadb74b3eeb1f22f9 on master.

authors: coveralls hisabimbola

repo: sphereio/sphere-node-product-csv-sync

license: mit

license_source: bigquery


text:
Search by developer does't work as intended

🔍 Is there already an issue for your problem?

[X] I have checked older issues, open and closed

ℹ Environment / Computer Info
Spotify for Windows
1.2.7.1275.g586348e7
Spicetify vDev

📝 Description

📸 Screenshots

Copy to Clipboard is also developed by me and the card says Tetrax-10

The search function passes the query to the search GitHub API. I'm guessing it doesn't show up when you search tetrax because the repo doesn't have your name on it and you are not the owner, so the result doesn't show up. Not something we can control. I didn't even realize that you could search by developer until now.

Got fixed, thx.
but if i press enter everything goes off

Got fixed, thx.
but if i press enter everything goes off

API queries will be removed in future patches

repo: spicetify/spicetify-marketplace


text:
Verify that the EIP within the IP address ranges configured in the ippools of the egressgateway

Fix: #871

在双栈环境下，如果 yaml 中只写了 ipv4，不写 ipv6 ，现在行为是什么

在双栈环境下，如果 yaml 中只写了 ipv4，不写 ipv6 ，现在行为是什么

目前情况是：
如果 egressgateway cm 中是双栈，创建 单栈 的 gateway 会报错；
如果 gateway 是双栈，创建单栈的 policy 会报错。

在双栈环境下，如果  policy 的 yaml 中指定了 ipv4，不指定 ipv6 ，现在行为是什么

在双栈环境下，如果 policy 的 yaml 中指定了 ipv4，不指定 ipv6 ，现在行为是什么

如上所述，如果是双栈， policy yaml 中指定了一个 ipv4 的 eip， 现在是会报错的。
如截图，有对应的 校验代码在处理

在双栈环境下，如果 policy 的 yaml 中指定了 ipv4，不指定 ipv6 ，现在行为是什么

如上所述，如果是双栈， policy yaml 中指定了一个 ipv4 的 eip， 现在是会报错的。 如截图，有对应的 校验代码在处理

这个要求安装时，安装人要强感知是否是双栈，是否可能做个优化，自动检测集群是否在双栈下，从而自动设置

在双栈环境下，如果 yaml 中只写了 ipv4，不写 ipv6 ，现在行为是什么

目前情况是： 如果 egressgateway cm 中是双栈，创建 单栈 的 gateway 会报错； 如果 gateway 是双栈，创建单栈的 policy 会报错。

最初的期望是双栈的 gateway，可以创建只写 ipv4 或者 ipv6的 policy，报错是代码逻辑有问题

authors: bzsuni dcwbq weizhoublue

repo: spidernet-io/egressgateway


text:
spiderAgent: install cni,ovs and rdma in init-container

name: Pull request
about: Tell us about your contribution
labels: ["pr/release/none-required"]

Thanks for contributing !
Before submitting a pull request, make sure you read about our Contribution notice here: https://spidernet-io.github.io/spiderpool/latest/develop/contributing/
What this PR does / why we need it:
spiderAgent: install cni,ovs and rdma in init-container
Which issue(s) this PR fixes:
Special notes for your reviewer:
make sure your commit is signed off

waitting for  https://github.com/spidernet-io/spiderpool/pull/2457

还有一些的 doc，不需要 从官方 下载 binary， 在安装 spiderpool 时 加个 note， 可用什么选项 一起 安装

 > Enter [BeforeEach] Automatic creation, extension and deletion of ippool by different controllers - /home/runner/work/spiderpool/spiderpool/test/e2e/subnet/subnet_test.go:253 @ 10/28/23 09:14:12.887
  [FAILED] Unexpected error:
      <*errors.StatusError | 0xc000362be0>:
      spidersubnets.spiderpool.spidernet.io "v4-ss-12c41a1db8ae2c3" already exists
      {
          ErrStatus: {
              TypeMeta: {Kind: "", APIVersion: ""},
              ListMeta: {
                  SelfLink: "",
                  ResourceVersion: "",
                  Continue: "",
                  RemainingItemCount: nil,
              },
              Status: "Failure",
              Message: "spidersubnets.spiderpool.spidernet.io \"v4-ss-12c41a1db8ae2c3\" already exists",
              Reason: "AlreadyExists",
              Details: {
                  Name: "v4-ss-12c41a1db8ae2c3",
                  Group: "spiderpool.spidernet.io",
                  Kind: "spidersubnets",
                  UID: "",
                  Causes: nil,
                  RetryAfterSeconds: 0,
              },
              Code: 409,
          },
      }
  occurred
  In [BeforeEach] at: /home/runner/work/spiderpool/spiderpool/test/e2e/subnet/subnet_test.go:260 @ 10/28/23 09:14:13.065
  < Exit [BeforeEach] Automatic creation, extension and deletion of ippool by different controllers -

/cc @weizhoublue

authors: cyclinder weizhoublue

repo: spidernet-io/spiderpool


text:
blank screen of doom

Hi,
Is your TTGO usermod still working for you? Been trying for hours but just getting blank screen. Code is running OK, I added a few Serial.printlns to check. Test project with just TFT_eSPI works fine. I can't debug as the TTGO is missing a JTAG pin.
(also tried the u8g2 usermod on a suitable board and it also gives blank display)
PS using main WLED repo, I'm only here to contact yourself.

Hello,
Yes, as far as I can tell, it still works for me.  Are you just seeing that the screen isn't showing anything, but connected LEDs work?  Or are you powering it up and finding nothing on the screen and no LED activity?
I only ask the above because I have seen some issues/comments on the TTGO github page stating that powering the module with the 5v pin on the TTGO module is flakey.  MOST of the time I have no issue, but sometimes when I plug mine in, it appears to be completely unreponsive (no LEDs, nothing on display).  I can usually replicate it by disconnecting and reconnecting power (and possibly repeating the process a few times until I see the LEDs fire up and the display starts up with the "Loading..." text.   I am trying to find that issue right now, but haven't been succesful yet.  I will comment again if I find it...
Long story short - how are you powering it?  My enclosure design uses a 12V power supply (with a DC barrel connector in the housing), and I run 12V power to a buck regulator that provides 5v power to the TTGO and a level shifter.  The 12V power also continues through the enclosure to power my LED strips (I run 12V strips).

Also, I have recompiled the WLED main repo fairly recently (I am running V0.12.0 on a module i have behind me right now).  I still haven't found the issue thread I mentioned above, but I did stumble on these (which may or not be useful):
https://github.com/Xinyuan-LilyGO/TTGO-T-Display/issues/17
https://github.com/Xinyuan-LilyGO/TTGO-T-Display/issues/6
https://github.com/Xinyuan-LilyGO/TTGO-T-Display/issues/27

Found the one I was looking for:
https://github.com/Xinyuan-LilyGO/TTGO-T-Display/issues/9
Some seem to have issues and others (including me) do not (at least not all the time).

It's just on USB power.  No LEDs attached. Just trying to get display working. Backlight is on. WLED otherwise working, connecting to wifi etc.

Ah OK.  Did you follow all the instructions in the Readme section (in the usermods/for getting it working (see link below)?
https://github.com/Aircoookie/WLED/tree/master/usermods/TTGO-T-Display
I do all my work in VS Code, so the instructions may be specific to that environment.

yes, I'm fairly sure I followed everything. copied over usermod.cpp and the pio ini overrides. as I say the usersetup() and userloop() are both called correctly.

I even converted it to WLED usermod V2 system in desperation. same. class funcs called, blank black screen.

Hmm - let me try a fresh build here and confirm that it works for me on a "fresh" TTGO module.  If it works, maybe I can send you the compiled .bin file to try?  Not sure how to best send it if you want to try that path.  Maybe send me a direct message with your email?

Worth a try bud. Cheers for help.
I'm totally baffled with this. I was delighted when I discovered the usermod system and your code in WLED. I thought oh this is easy! I'll get this working then do my own stuff... That was yesterday, been baffled and trying all sorts ever since.

Well - I am seeing the same thing as you!  I will have to do some digging to try to figure out what has changed (either WLED or maybe the TFT_eSPI library).  This probably won't be a quick fix, unfortunately.
As you mentioned, it appears to be running.  I was able to set up WLED via the AP it creates on first run, and set it up with a static IP, and connected to that new IP with my phone.  So this is clearly something I need to fix.

Excellent! Well, not really, but now I know it's not just me missing something!

what was the WLED version when you originally wrote the mod?

I am not sure - I would guess it is probably at least 3 versions ago?

I found another issue thread on the TFT_eSPI repo where a user described a black scree on the TTGO display.  I posted a comment there to fish for ideas.

Are you using VS Code as well?  And just out of curiosity, are you running on Windows, Mac, or Linux?  I just did this test on my relatively new Mac, and is the first time I tried to upload a compiled binary from VS Code on a Mac (previously all in windows or linux).

CLion on windows

I have an update, but no solution for why the display isn't working.
I tried several things here with the code, including downloading v0.12.0 (the one i tried earlier grabbed a newer beta version of 0.12.1). My logic here is that I KNOW I have a running version of v0.12.0 in my house and one at work.  Still couldn't get it working.
So I went and found a binary I compiled around the beginning of April which used v0.12.0.  I flashed that via the manual OTA interface in WLED, and after it rebooted, it didn't look like it helped.  Still a black screen.  So then I tried unplugging it from the computer and plugging it back in, and I don't think that helped either.  Finally I decided to try doing a factory reset (which erases the EEPROM of all the configuration), and after it rebooted from this, still nothing.  But then I unplugged it again and plugged it back in and I had a functional display once again.
It seems like the factory reset was the trick (and either an unplug/replug afterward, or a reset with the side button on the board seems to work too).
Based on the above, I thought I would try recompiling again with the LATEST code, flashed it, connected to the AP and did the factory reset, but this didn't work.  Uploaded the same older BIN file and factory reset, and back to a functioning screen.
I am going to try attaching this older v0.12.0 binary to this post to see if you want to give this a shot too.  At least you can see that the code worked at one point!  ;-)
esp32dev.bin.zip

The binary file can likely be uploaded with the espflash tool, but I was too lazy to find that for this new Mac.

Yep, that .bin works. Damn it, I wish I knew where to start looking on this one.

Tried with WLED 0.11.1 and TFT_eSPI 2.3.4. (nearest version at around 27th Dec 2020)
Works.
Though it's the older version of your mod.
Also, I had to disable a bunch of crap in wled.h to get flash size below 100%. Not sure what that's all about.

Tried with WLED 0.11.1 and up to date TFT_eSPI 2.3.70...
Works.

Tried with WLED 0.12.1-b1 and up to date TFT_eSPI 2.3.70...
Works.

Wait - so you compiled successfully using both the latest WLED and latest TFT_eSPI?
I am an amatuer coder, so not sure exactly how to do it with older versions (mixed), but was this also with the latest version of my usermod?

As far as I can tell, I used the latest WLED and latest TFT_eSPI when i first tried to compile yesterday, so not sure how you got it to work.
I also have never had to disable anything in WLED to get it to fit into flash - so that is odd too.

I have some other stuff to do this afternoon/evening, but I will take another look sometime over the weekend.  I did merge some "dependabot" code yesterday into this repo, but I haven't done anything with the one that forked originally (I think that one is pretty outdated), so I think the last changes I made were adding the milliamp usage to the display...

I deleted that post. User error. I'd switched to 12.1 by mistake and forgot to empty the build cache.
So...
Tried with WLED 0.12.0-b4 and latest TFT_eSPI...
Works.

Tried with WLED 0.12.0-b5 and latest TFT_eSPI...
Works.
Right, so, in theory, next one should NOT work...

My mistake, I missed one...
Tried with WLED 0.12.0 and latest TFT_eSPI...
Works.

0.12.1-b1 works as well. I'm officially confused. Lemme double check...

Yep. A clean checkout of everything now decides that it works. Don't know what to think!

Well I am still stumped.  I just cloned the current WLED repo through VS Code, made the necessary changes, and still get black screen.
One odd quirk about VS Code is that I have to edit the platformio.ini file (which includes uncommenting the depenency for the TFT_eSPI library), and save it.  I think in the README file I stated that the act of saving this file should cause VS Code to download the necessary dependencies, but it doesn't seem to be doing that correctly anymore.  So I have to then compile, let it fail, and then the dependent TFT_eSPI library will be there and I can make the adjustment to the user_select_setup file.  It appears to be grabbing the 2.3.70 version (which is the latest).
When I looked at the github for that library, I see that a change was recently made (March 13) to adress a bug for the TTGO T-Display.  "Bug occured when TFT_MISO is not defined (pin not used for TTGO T-Display)".  Maybe that is related.  I haven't gotten any comment from the dev on my comment where someone claimed they were getting the black screen.

I might have to switch to one of my windows PCs to see if that makes any difference - maybe the install of VS Code on the mac has issues.

In CLion, the platformio plugin menu provides a "re-init" function which calls "pio project init", which parses platformio.ini and does all the downloading libs etc. The other day when using vscode, I was stumped trying to find the equivalent.
Here's a binary to try.
esp32dev.zip

Thanks - I tried that binary and I get the same blank screen behavior.  I can still access the WLED interface though, and see that it is 0.12.1-b1.  So strange.  Am am actually wondering if this is a hardware glitch of some kind.  I even tried the factory reset from the WLED interface and that didn't get the screen working either.

One more comment - I tried using the esptool.py for flashing bin files, and I still can't get your BIN to work.  I even loaded the bootloader from WLED 0.9.1 and tried again.  Still black screen (with the backlight on).  I then flashed the BIN file I posted earlier and that one works fine... ugh.

Can confirm the blank screen with backlight on. Fresh download of WLED and TFT_eSPI.

I have an update, but no solution for why the display isn't working.
I tried several things here with the code, including downloading v0.12.0 (the one i tried earlier grabbed a newer beta version of 0.12.1). My logic here is that I KNOW I have a running version of v0.12.0 in my house and one at work. Still couldn't get it working.
So I went and found a binary I compiled around the beginning of April which used v0.12.0. I flashed that via the manual OTA interface in WLED, and after it rebooted, it didn't look like it helped. Still a black screen. So then I tried unplugging it from the computer and plugging it back in, and I don't think that helped either. Finally I decided to try doing a factory reset (which erases the EEPROM of all the configuration), and after it rebooted from this, still nothing. But then I unplugged it again and plugged it back in and I had a functional display once again.
It seems like the factory reset was the trick (and either an unplug/replug afterward, or a reset with the side button on the board seems to work too).
Based on the above, I thought I would try recompiling again with the LATEST code, flashed it, connected to the AP and did the factory reset, but this didn't work. Uploaded the same older BIN file and factory reset, and back to a functioning screen.
I am going to try attaching this older v0.12.0 binary to this post to see if you want to give this a shot too. At least you can see that the code worked at one point! ;-)
esp32dev.bin.zip

The code attached to this comment above is also working correctly on my TTGO board
When I compile the WLED with the user mod for the TTGO display, the TTGO board does nothing when powered up
- if I compile the WLED repo without any changes, then it works correctly on the TTGO
I am using the TFT_eSPI "main" branch... I uncommented display 25 as shown
What version of the TFT_eSPI did you compile the attached firmware with ?

I just spent all afternoon trying to get WLED and the TTGO usermod working on my TTGO board...
Using WLED version 0.14.0-b4 and TFT_eSPI v2.5.0      Black Screen - not working  (Latest of everything)
Using WLED version 0.14.0-b4 and TFT_eSPI v2.2.0      Black Screen - not working
Using WLED version 0.14.0-b4 and TFT_eSPI v2.1.4      Success
I dont have the time to investigate what has changed....
I am not sure of the official way to change the repos present in the  *WLED.pio\libdeps\esp32dev*  folder, as they dont come up in git extensions as submodules... So I just cloned the git repo for TFT_eSPI elsewhere and switched to version 2.1.4 and then copied the files overtop of the files in WLED.pio\libdeps\esp32dev\TFT_eSPI  folder. Then cleaned the WLED project. Then compiled and uploaded the project to my TTGO
Maybe my efforts will help the author of the usermod to get it working with the latest TFT_eSPI ???

Give me a couple days to investigate.  I haven't touched this code in a few years so I may be rusty!
I will post again when/if I find anything useful.

Quick update...
I just cloned the current WLED from Github and applied my changed usermod files (including all of the changes described in the Readme.md file).  After uploading I am getting nothing either - nothing on screen, no lights, etc.
I just did some tests, loading the factory config file and test sketch via Ardino IDE and everything works there (display works).  I then erased flash, and loaded WLED on it with the web installation tool, and once I changed the GPIO to pin 2 the LEDs are working.
So I have a bit more work to do here to figure out what changed (either in WLED or in the TFT_eSPI library) that is causing the issues).
For those of you having issues, did WLED work at all (just no display), or is it completely non-functional?

I believe that there is a way to force an older version of the TFT_eSPI library - let me check into that.

I just spent all afternoon trying to get WLED and the TTGO usermod working on my TTGO board...
Using WLED version 0.14.0-b4 and TFT_eSPI v2.5.0 Black Screen - not working (Latest of everything) Using WLED version 0.14.0-b4 and TFT_eSPI v2.2.0 Black Screen - not working Using WLED version 0.14.0-b4 and TFT_eSPI v2.1.4 Success
I dont have the time to investigate what has changed....
I am not sure of the official way to change the repos present in the _WLED.pio\libdeps\esp32dev_ folder, as they dont come up in git extensions as submodules... So I just cloned the git repo for TFT_eSPI elsewhere and switched to version 2.1.4 and then copied the files overtop of the files in WLED.pio\libdeps\esp32dev\TFT_eSPI folder. Then cleaned the WLED project. Then compiled and uploaded the project to my TTGO
Maybe my efforts will help the author of the usermod to get it working with the latest TFT_eSPI ???

OK - here's a workaround:
Follow all the directions in the usermod Readme.md file, but do the following in the platformio.ini file:
replace the commented line under lib_deps containing the TFT_eSPI requirement as shown below:
  #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
    https://github.com/Bodmer/TFT_eSPI/archive/refs/tags/2.1.4.zip

Instead of:
  #For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
    TFT_eSPI

The above will force Platformio to install the older version of the TFT_eSPI library automatically.
You will still need to comment and uncomment the lines described in the usermod Readme.md file in the files within this library (just like you had to before).

In hindsight, I wish I had backed up all my presets, since I lost them during this troubleshooting process!

New Discovery:
It appears that the default data pin for the LED strip is 16, which is used by the TTGO T-Display screen.  My usermod mentions that I used pin 2 for my builds.  I am digging around now trying to figure out if I can change the default data pin for the LEDs to be pin 2 via the usermod or the platformio.ini file...
I'm thinking if I can change this for the usermod, the latest TFT_eSPI might work.

More info:

First, I realized that the platiformio_override.ini file has a flag to change the LED pin to pin 2 (instead of the default of 16), but this didn't help.
After a lot more experimentation, I finally got WLED to start up and show the screen with the latest version of TFT_eSPI.  I ended up editing the wled.h file and enabled the watchdog timeout (set to 3 seconds).  Find this section (in /wled00/wled.h):

#ifndef WLED_WATCHDOG_TIMEOUT
  // 3 seconds should be enough to detect a lockup
  // define WLED_WATCHDOG_TIMEOUT=0 to disable watchdog, default
  #define WLED_WATCHDOG_TIMEOUT 0
#endif

...and change the zero to a 3:
  #define WLED_WATCHDOG_TIMEOUT 0

Dammmm watchdog has caught me out lots of times on other projects !!

authors: Karbonforms Rambooka spiff72 yashm


text:
Add new config.jwtDomain value to oidc-discovery chart

This adds a new value to the spiffe-oidc-discovery-provider chart that avoids Helm trying to urlParse the jwtIssuer value. This should resolve https://github.com/spiffe/helm-charts-hardened/issues/455 in a non-breaking way.
$ helm template charts/spire --set 'global.spire.jwtIssuer=https://spire.apps.${CLUSTER_DOMAIN}' --set 'spiffe-oidc-discovery-provider.config.jwtDomain=spire.apps.${CLUSTER_DOMAIN}' | grep jwt_issuer
        "jwt_issuer": "https://spire.apps.${CLUSTER_DOMAIN}",

Fixes https://github.com/spiffe/helm-charts-hardened/issues/455

The failing tests seem unrelated to the proposed changes, but please correct me if I'm wrong.

There were some network issues on the last run. I reran things.
This one looks like it is related to the pr:
Name:             spire-spiffe-oidc-discovery-provider-test-connection
...
  curl-ingress:
    Container ID:  containerd://d27394f6cc63456811d7649824fef41c40b468c11d0f3f397325bb7af09a68a7
    Image:         cgr.dev/chainguard/bash:latest@sha256:3ed6a0b7b498b531c631a5f314ba85e91c6fd66d47301f9f67e9422e395c80c8
    Image ID:      cgr.dev/chainguard/bash@sha256:3ed6a0b7b498b531c631a5f314ba85e91c6fd66d47301f9f67e9422e395c80c8
    Port:          <none>
    Host Port:     <none>
    Command:
      curl
    Args:
      -s
      -f
      --cacert
      /ca/ca.crt
      https://oidc-discovery.production.other/.well-known/openid-configuration
    State:          Terminated
      Reason:       Error
      Exit Code:    22
      Started:      Sat, 14 Sep 2024 02:08:20 +0000
      Finished:     Sat, 14 Sep 2024 02:08:20 +0000
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /ca from custom-ca (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-wz76c (ro)

Yeah... the default rendering is broken:
      "domains": [
        "release-name-spiffe-oidc-discovery-provider",
        "release-name-spiffe-oidc-discovery-provider.default",
        "release-name-spiffe-oidc-discovery-provider.default.svc.cluster.local",
        ""
      ],

Will make a suggestion to fix it.

repo: spiffe/helm-charts-hardened


text:
Add support for bulk deletion

The right way, this time. Also with a unit test, kind of.

LGTM

authors: kytrinyx mattetti

repo: splicers/elastigo


text:
Combine many repos into a new monorepo

Thanks for splitsh-lite.
I have a question. Can I use splitsh-lite to create a new monorepo from many minirepos?
My use case is that we manage our code out of a lot repos which we then bring in via composer. I would like to establish a new monorepo that contains the base application as well as all our internally developed dependencies.
e.g.
.git/
app/
dep1/
dep2/
depN/

I'm also interested in this. I've got several repositories with years of commit history. I'd like to keep that history (at least for the master branch) when I bring them all into the same monorepo.
Is this possible?

I'm interested in this as well, & rolled some quick and dirty demonstrations to show what might work. There's a project spread over many repositories at the moment, each with their own histories. A simple invocation of the standard command-line git can combine these into a monorepo (see https://bitbucket.org/mmunro-ltrr/uaqs_repository_tools for a shell script that does this). The current version of splitsh-lite doesn't preserve the histories of the combined repositories, but there's a hacked-around fork at https://github.com/ltrr-arizona-edu/lite that will do this. I've just been re-basing the extra code on top of the updates that appear here, but now might be the time to tidy it up & make a proper pull request.

Thanks for the pointers @mmunro-ltrr - very useful!

Yes, thanks @mmunro-ltrr - I'm digesting your code at the moment. Cheers!

what's the status of this command?

@benoitc please check if it works for you https://github.com/splitsh/lite/pull/26

Using tomono I was able to create mono repo from many ones and keep the history.
Notice: Make sure that your git version at least 2.9 or greater.
Usage:
Prepare a list of repositories to merge in a file, for example repos.txt:
git@github.com:mycompany/service-one.git one
git@github.com:mycompany/service-two.git two
git@github.com:mycompany/service-three.git three

$ cat repos.txt | ~/tomono/tomono.sh

This will create a new repository called core, in your current directory.

authors: aslakhellesoy benoitc karser mmunro-ltrr redthor sergeyz

repo: splitsh/lite


text:
Fortisiem: Fixed the issues that were present in the unmerged PR named PAPP-4818 Initial commit of app submission from Armature which was raised by a third party contributor

Fortisiem: Fixed the issues that were present in the unmerged PR named PAPP-4818 Initial commit of app submission from Armature which was raised by a third party contributor

Closing as stale

authors: phantom-jacob pzhou-splunk

repo: splunk-soar-connectors/fortisiem


text:
Pep8

There are a lot of changed files here, but no functionality should change because of them (most are spacing changes). I fixed some linting warnings/errors based on Lynch's code formation standards on Confluence. This also includes some automatic formatting with the "yapf" and "isort" packages.
There are a few specific warnings which I ignored (related note in setup.cfg) that can be addressed later. If we continue to ignore them, any CI we set up for code formation should run cleanly.

@jmeixensperger I am not sure whether this formatting will break any functionalities since we do not have enough test cases to cover it.

I changed some options for yapf's line breaking and added ignore filters for pep8 rules that would break our functionality. @arctan5x it should be more readable now too.

Would you resolve the conflict?

authors: arctan5x jmeixensperger li-wu

repo: splunk/eventgen


text:
Customer needs support for IBM MQ Logs

Customer is looking to have support for IBM MQ Logs in SC4S. The MQ Appliance which is based on the Datapower appliances uses the RFC 3164 spec. Please see following documentation https://www.ibm.com/docs/en/mq-appliance/9.3?topic=targets-format-mq-logs-sent-log. They also provided pcap file for the logs. Appreciate I can be contacted here mchowdhury@splunk.com for the file.

Will continue the discussion on internal channels.

The solution is posted internally.

the solution posted internally implemented but some of the logs goes into main index as well. How can we resolve it

repo: splunk/splunk-connect-for-syslog


text:
IPv6 addresses not supported by source cache

Was the issue replicated by support?
No
What is the sc4s version ?
3.4.3
Is there a pcap available?
No
Is the issue related to the environment of the customer or Software related issue?
Software-related
Is it related to Data loss, please explain ?
Protocol? Hardware specs?
No
Last chance index/Fallback index?
Configured as sc4s_default
Is the issue related to local customization?
No
Do we have all the default indexes created?
Yes
Describe the bug
The parser_source_cache.py script fails when a source address uses IPv6. The parser is using inet_aton and inet_ntoa, which only supports ipv4.
File in question: https://github.com/splunk/splunk-connect-for-syslog/blob/main/package/etc/pylib/parser_source_cache.py
Problem sections:
def ip2int(addr):
return struct.unpack("!I", socket.inet_aton(addr))[0]
def int2ip(addr):
return socket.inet_ntoa(struct.pack("!I", addr))
Errors from syslog-ng:

syslog-ng 415 - [meta sequenceId="5274567"]!! Traceback (most recent call last):\x0a!! File "/etc/syslog-ng/pylib/parser_source_cache.py", line 44, in parse\x0a ip_int = ip2int(ipaddr)\x0a ^^^^^^^^^^^^^^\x0a!! File "/etc/syslog-ng/pylib/parser_source_cache.py", line 22, in ip2int\x0a return struct.unpack("!I", socket.inet_aton(addr))[0]\x0a ^^^^^^^^^^^^^^^^^^^^^^\x0a!! OSError: illegal IP address string passed to inet_aton\x0a;

syslog-ng 415 - [meta sequenceId="5252513"]!! Traceback (most recent call last):\x0a!! File "/etc/syslog-ng/pylib/parser_source_cache.py", line 79, in send\x0a ip_int = ip2int(ipaddr)\x0a ^^^^^^^^^^^^^^\x0a!! File "/etc/syslog-ng/pylib/parser_source_cache.py", line 22, in ip2int\x0a return struct.unpack("!I", socket.inet_aton(addr))[0]\x0a

To Reproduce
Steps to reproduce the behavior:

Enable debug logging on the container via 'syslog-ng-ctl debug --set=on' to see the error logs
Send logs via ipv6 to SC4S destination - the address being used for this was ::ffff:10.10.10.10
Exceptions are generated and sent to splunk with the traceback showing the errors

Any update on this?

Hi @syntaxerr66 I'm for the delay, this issue is finally on the top of the list and I am currently working on it


text:
BETA: Synthetics V2 Provider

Updates provider to add Data Sources and Resources for Splunk Synthetics V2 endpoints in Splunk Observability.

Adds CRUD for HTTP, Port, Real Browser, API, and Variables endpoints
Adds examples for new Resources
Adds docs for new resources
Rigor Classic resources can still be managed with this plugin using the products setting as detailed in the readme and docs.

Suggest bringing this out as a major version change when merged to main.

commit 8c78a15 represents code required for api changes. Do not merge this PR until that work has finished.

🤠 yeeehaw...

repo: splunk/terraform-provider-synthetics


text:
Feat: redownload flag for meta

Redownload feature for meta operation
user will be able to re-download the local songs in different format
Description
using the redownload flag and format flag to download  local songs using meta operation
Motivation and Context
now users don't need to find the link of the song to change the format they can now use the redownload flag with the format flag under the meta operation
closes #1904
Screenshots

Types of Changes

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My code follows the code style of this project
[x] My change requires a change to the documentation
[ ] I have updated the documentation accordingly
[x] I have read the CONTRIBUTING document
[x] I have read the  CORE VALUES document
[ ] I have added tests to cover my changes
[ ] All new and existing tests passed

sorry for the mess, I am slowly getting used to it. I am trying my best to pass all the test cases

well i crossed checked the gerens, it has changed thats why test is failing

sorry for the mess, I am slowly getting used to it. I am trying my best to pass all the test cases

tests are kind of broken right now, so don't worry :)

repo: spotDL/spotify-downloader


text:
Extract TrendLine from Lighthouse plugin

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] All tests are passing yarn test
[x] Screenshots attached (for UI changes)
[ ] Relevant documentation updated
[ ] Prettier run on changed files
[ ] Tests added for new functionality
[ ] Regression tests added for bug fixes

Yeah! I could not get the audit service up and running and therefore couldn't verify that this works for the Lighthouse plugin. Would love @fastfrwrd to sign off on this change before we merge.

@Rugvip made the story examples smaller. Please have a look again!

@Rugvip here we go, now it should be good to go?! 🔢

Created an additional issue for improving the Storybook https://github.com/spotify/backstage/issues/573

repo: spotify/backstage


text:
Jackson dependency causes OWASP alerts. Change to Jackson version 2.7.4

OWASP Validation obtains the following vulnerabilities for dependences:
Vulnerable Dependencies
CVE     CWE     Severity (CVSS)↑  Dependency
CVE-2016-3720       High (10.0)     jackson-annotations-2.6.0.jar
CVE-2016-3720       High (10.0)     jackson-core-2.6.7.jar
CVE-2016-3720       High (10.0)     jackson-databind-2.6.7.jar
CVE-2016-3720       High (10.0)     jackson-datatype-guava-2.6.7.jar
CVE-2016-3720       High (10.0)     jackson-jaxrs-base-2.6.7.jar
CVE-2016-3720       High (10.0)     jackson-jaxrs-json-provider-2.6.7.jar
CVE-2016-3720       High (10.0)     jackson-module-jaxb-annotations-2.6.7.jar
This vulnerability is fixed in jackson 2.7.4:
https://github.com/FasterXML/jackson-dataformat-xml/issues/190
This dependency should be updated to avoid alerts in OWASP checking.

Does docker-client use xml at all?

@KostyaSha no, it does not.

OWASP checks still fail on 2.7.4 and 2.8.0, e.g.
CVE-2016-3720 		High (10.0) 	com.fasterxml.jackson.core.jackson-core-2.7.4.jar
           com.fasterxml.jackson.core.jackson-annotations-2.7.4.jar
           com.fasterxml.jackson.core.jackson-databind-2.7.4.jar
           com.fasterxml.jackson.datatype.jackson-datatype-joda-2.7.4.jar
           com.fasterxml.jackson.module.jackson-module-paranamer-2.7.4.jar
           com.fasterxml.jackson.module.jackson-module-scala_2.10-2.7.4.jar

The warning was added to the CVE database by downstream fedora issue, being tracked at https://bugzilla.redhat.com/show_activity.cgi?id=1328427 - the CVE database needs to be updated.

So why do you care about  XmlMapper? It also possible to change dependency version on project level.

Even the jackson-core check will fail, pulled in by  the jackson-databind dependency - so will not pass even with xml exclusion rules.

@brettcave so upgrading to 2.7.4 or 2.8.0 or any other Jackson version won't resolve those warnings yet?

@mattnworb correct.  Can be easily verified as follows:

Copy a jackson lib into "testlib" - have done this for jackson-core 2.7.4, 2.7.5 and 2.8.0.
Download OWASP dependency check from https://www.owasp.org/index.php/OWASP_Dependency_Check ("Command line" link on right nav bar will down the archive) and extract it.
Run the dependency check in the bin directory from extracted archive - .sh for Linux .bat for Windows:  `./dependency-check.sh --disableAssembly --format ALL --project Jackson --scan path/to/testlib"
Open dependency-check-vulernability.html in the directory you ran it from.

authors: EmiCareOfCell44 KostyaSha brettcave mattnworb

repo: spotify/docker-client


text:
Cannot use private FROM image, access denied

Is this a BUG REPORT or FEATURE REQUEST?:
BUG REPORT
When I use in FROM  an image from a private repository, I always get:
"[ERROR] pull access denied for viivvm/test, repository does not exist or may require 'docker login'"
The repository exists and the credentials are ok.
I tried all 3 methods to authenticate:

in maven settings
in pom.xml
sending them as parameters

All these methods work when I push an image (I had an image based on openjdk:8-jre, like in the documentation and I was able to build and push this image into the above private repository).
And I can use docker pull on the image.
How to reproduce
in Dockerfile, FROM use an image from a private repository
What do you expect
Given that I can authenticate and push an image, I expect I can also pull that image.
What happened instead
The image cannot be pulled.
Software:
Client:
Version:           18.06.1-ce
API version:       1.38
Go version:        go1.10.4
Git commit:        e68fc7a
Built:             Mon May  6 13:59:26 2019
OS/Arch:           linux/amd64
Experimental:      false
Server:
Engine:
Version:          18.06.1-ce
API version:      1.38 (minimum version 1.12)
Go version:       go1.10.4
Git commit:       e68fc7a
Built:            Mon May  6 13:59:26 2019
OS/Arch:          linux/amd64
Experimental:     false
1.4.10
(I tried also some older releases like 1.3.6, same thing)
Full backtrace
[INFO] Step 1/6 : FROM viivvm/test:hello
[INFO]
[ERROR] pull access denied for viivvm/test, repository does not exist or may require 'docker login'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.025 s
[INFO] Finished at: 2019-05-08T14:11:38+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.1:build (default) on project test: Could not build image: pull access denied for viivvm/test, repository does not exist or may require 'docker login' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.spotify:dockerfile-maven-plugin:1.3.1:build (default) on project test: Could not build image
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Could not build image
	at com.spotify.plugin.dockerfile.BuildMojo.buildImage(BuildMojo.java:164)
	at com.spotify.plugin.dockerfile.BuildMojo.execute(BuildMojo.java:95)
	at com.spotify.plugin.dockerfile.AbstractDockerMojo.tryExecute(AbstractDockerMojo.java:219)
	at com.spotify.plugin.dockerfile.AbstractDockerMojo.execute(AbstractDockerMojo.java:208)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 20 more
Caused by: com.spotify.docker.client.exceptions.DockerException: pull access denied for viivvm/test, repository does not exist or may require 'docker login'
	at com.spotify.plugin.dockerfile.LoggingProgressHandler.handleError(LoggingProgressHandler.java:106)
	at com.spotify.plugin.dockerfile.LoggingProgressHandler.progress(LoggingProgressHandler.java:64)
	at com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1389)
	at com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1348)
	at com.spotify.plugin.dockerfile.BuildMojo.buildImage(BuildMojo.java:157)
	... 25 more
[ERROR]

If it's helpful, I see the same error when trying to build off of a locally cached image (no registry specified in the FROM repo).  docker build . works, but mvn dockerfile:build does not.

Experiencing the same issue, any ideas?

setting false will help to access the local images.
ref: https://github.com/spotify/dockerfile-maven/issues/171

repo: spotify/dockerfile-maven


text:
Bump google format & other dependencies

Do some cleanup and bump google format to https://github.com/google/google-java-format/releases/tag/v1.21.0

The build is failing with a formatting problem.

fixed. It was not really a format, but because changing the scope of one dependency ended up causing the tests to fail

repo: spotify/fmt-maven-plugin


text:
About the "early quit"

Hi boys and girls,
I start a task by: python AAA.py --background --timestamp xxxxx
and ps -ef |grep AAA, I can see the procedure exists.
But after some time (And I am not sure how long, is it configurable? ), the "python AAA.py" procedure is gone, but not all the required tasks are done. and the undone tasks will be always be pending, unless: you start AAA.py again manually.
https://github.com/spotify/luigi/issues/222
I see that it is a "feature" of luigi, I have to start AAA again and again by crontab to finish all the required tasks.[Even though I have already config ： worker-keep-alive: True]
But each time I start task AAA, I will check the prev timestamp, and process data of the next timestamp, I can not start AAA of the same timestamp repeatedly.
I am so puzzled of this "feature".
Thanks in advance for any feedback.

Are you using external tasks? Have you enabled --retry-external-tasks?

@Tarrasch , thank you very much.
retry-external-tasks, as I can see in the doc, "external task" is a task does not define "run" function in the code, not the tasks not finished.
http://luigi.readthedocs.org/en/stable/api/luigi.task.html?highlight=external#luigi.task.ExternalTask

I can confirm the same issue.
Pipeline finishes while there should still be 4 pending tasks. When re-run, the luigi picks them up and continues. But I don't want to keep re-running luigi, it should finish all tasks in one go!
Part of the log when luigi finishes early (there's nothing suspicious in there, AFAICS):
DEBUG: Asking scheduler for work...
2015-09-19 05:01:30,650 : DEBUG : MainProcess(38612) : worker:_get_work:520 : Asking scheduler for work...
INFO: Done
2015-09-19 05:01:30,653 : INFO : MainProcess(38612) : worker:_log_remote_tasks:509 : Done
INFO: There are no more tasks to run at this time
2015-09-19 05:01:30,653 : INFO : MainProcess(38612) : worker:_log_remote_tasks:510 : There are no more tasks to run at this time
INFO: Worker Worker(salt=894785427, workers=1, host=ip-172-31-1-194, username=ubuntu, pid=38612) was stopped. Shutting down Keep-Alive thread
2015-09-19 05:01:30,655 : INFO : MainProcess(38612) : worker:run:261 : Worker Worker(salt=894785427, workers=1, host=ip-172-31-1-194, username=ubuntu, pid=38612) was stopped. Shutting down Keep-Alive thread

Re. #222 : if this is a feature, it needs to be much better documented. I didn't expect cron is a hard dependency for making sure a pipeline get actually run.

@leafjungle did you manage to figure this out?

@piskvorky , In my cases, the client quit because lost connection to server after retry 3 times.
I modify rpc.py, let it retry unlimit times.

Do you launch Luigi multiple times? The only case where Luigi would quit early is if some other worker is already running those processes.
Also typically the output should be something like "x jobs run by other workers" in those cases
Cron is not a hard dependency, it has nothing to do with this
Can someone share a breaking example? I haven't seen this but if someone can show how to repro, I can look at it

Can you provide some more background on what this bug causes? Closing this for now.
Luigi will always try to run all tasks once, so I'm not sure what you mean.
Are you saying you want Luigi to retry until it succeeds?

I didn't find a small breaking example, sorry.
Recap: Luigi is given a pipeline, say 6 tasks in a sequence. It completes the first two, which take a long time (hours). Log says 4 tasks are still pending, but Luigi exits anyway. Re-launching Luigi on the same pipeline for the second time picks up those pending tasks and finishes the pipeline successfully.
Expected behaviour: finish the entire pipeline in a single invocation.

@piskvorky. That shouldn't happen. Have you tried using multiprocessing to ensure pings are actually sent? Try --workers 2 or higher.

Yes this shouldn't happen unless (a) another worker is running (b) some tasks failed (c) you just ran the same pipeline and some tasks failed
There's been some issues with failed RPC calls reported, maybe that's why

Has this issue been resolved?

@erikbern - I'm running a pipeline on 51 samples with 51 workers. The initial tasks in the pipeline can take 2-3 days per sample. I am running the pipeline on a hpc cluster and I have found that after a spurious number of days, my workers disappear.
I have set my log_level = DEBUG, and therefore I see which tasks each worker is doing. However, at some point in the log file, 1000s of null characters are returned after which the worker-task lines no longer show. Additionally, the central scheduler also fails to show any of the pending tasks and only a subset of 'Done' tasks.
These failed RPC calls seem interesting. How could I check if this is the problem in my pipeline?

authors: Tarrasch Yasin-VU erikbern hh2110 leafjungle piskvorky

repo: spotify/luigi


text:
Cacheing returns of repr function of luigi.Task

luigi.Task.repr generate task's string with it's parameters.
But if we build long dependency workflow which have many requirements having also many Parameters() that might be another task.
Sometimes building dependency on starting,
It mainly caused by recursively generating string of parameters every time repr called.
So I suggested that we caching return of repr function using functools.lru_cache decorator like this:
from functools import lru_cache

class Taks(object):
#...other fucntions.

    @lrcu_cache()
    def __repr__(self):
          # ... generating str of taks and return string

So this modification is simple but speeding up building dependency on starting.
I'd like you to consider this implementation.

We always welcome PRs. :)

Okay, I'll make PRs soon

authors: TKNGUE Tarrasch


text:
Sendgrid email notifications broken by new Sendgrid API

The v3+ version of the sendgrid-python package gets rid of SendGridClient in favor of SendGridAPIClient and changes a number of things, so send_email_sendgrid (https://github.com/spotify/luigi/blob/master/luigi/notifications.py#L236) now throws an error:
Traceback (most recent call last):
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/retcodes.py", line 74, in run_with_retcodes
    worker = luigi.interface._run(argv)['worker']
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/interface.py", line 237, in _run
    return _schedule_and_run([cp.get_task_obj()], worker_scheduler_factory)
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/interface.py", line 196, in _schedule_and_run
    success &= worker.run()
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/worker.py", line 1025, in run
    self._handle_next_task()
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/worker.py", line 908, in _handle_next_task
    self._email_task_failure(task, expl)
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/worker.py", line 540, in _email_task_failure
    headline="A task failed when running. Most likely run() raised an exception.",
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/worker.py", line 547, in _email_error
    notifications.send_error_email(formatted_subject, message, task.owner_email)
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/notifications.py", line 356, in send_error_email
    recipients=recipients
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/notifications.py", line 328, in send_email
    email_sender(sender, subject, message, recipients, image_png)
  File "/home/ubuntu/.virtualenvs/janrain/local/lib/python2.7/site-packages/luigi/notifications.py", line 241, in send_email_sendgrid
    client = sendgrid_lib.SendGridClient(
AttributeError: 'module' object has no attribute 'SendGridClient'

It looks like the username/password auth has been gotten rid of in favor of an API key, so changes would have to be made to the configuration as well. I could open a PR for this but can't work on it right away, have some other Luigi wrangling to do first :)

closing this issue.

[x] It has been inactive for +4 months.
[x] It's not about luigi core, so not as many users are affected about this.
[ ] The change seems quite big, it's unlikely to be sporadically picked up.
[ ] The owner haven't responded or disappeared.
[ ] I don't understand what this issue is about.
[ ] There exists a reasonable workaround for this.
[ ] We need to check if this hasn't been fixed by now (for old issues).
[ ] This is kind of by design and not a bug.
[ ] Resolving this would probably add a lot of complexity.
[ ] This is a question not an issue. Use SO or the mailing list.

Every open issue adds some clutter, and we try to make the issues fewer and make it easier for new collaborators to find. Currently we try to close any issue that meets the first checkbox + one other.
Feel free to reopen this issue at any point if you have the intent to continue to work this. :)

authors: bjlange dlstadther


text:
Update scio-avro, scio-core, ... to 0.14.6

About this PR
📦 Updates

com.spotify:scio-avro
com.spotify:scio-core
com.spotify:scio-google-cloud-platform
com.spotify:scio-parquet
com.spotify:scio-test

from 0.14.3 to 0.14.6
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.spotify" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.spotify" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, version-scheme:early-semver, commit-count:1

Superseded by #751.

repo: spotify/ratatool


text:
Discrepancy in install size

Current behavior
There is a discrepancy in readings for install size. Running sample:app:analyzeDebug yields 620.9 KB on the report, while "App size" readings on device shows 676 KB.
Device configurations are synced with the result of bundletool get-device-spec.

Ruler Report
On Device

I'm also observing a bigger diff of almost 3x (62.8 MB reported vs 192 MB on-device) on my project.
Expected behavior
There shouldn't be that big of a difference between the number Ruler reports for Install Size and the actual readings on a device.
Steps to reproduce

Ensure that Ruler is properly setup to run with the target device configuration
Run ./gradlew sample:app:analyzeDebugBundle
Run ./gradlew sample:app:installDebug
Observe the numbers reported and one from App Info screen

Versions

Ruler 1.3.0
Android Gradle Plugin 7.2.1
Gradle 7.5

Anything else?
No response

What numbers does Android Studio report when you analyze the APK files with that? I suspect that this could have something to do with the way the APK is built when you run installDebug - which might be different than the mechanism we are using (running bundleDebug, then using bundletool to extract the correct APKs and then analyzing those APKs with the APK Analyzer).

Sorry for the long delay... I tried analyzing the AAB and the number matches Ruler's output. However, the APKs generated by bundletool tell a different story.

\
Ruler
AAB
APKs (base-master.apk + base-xxhdpi.apk)

Download Size
617.5 KB
617.8 KB
612.8 KB + 1.3 KB

Install Size
620.9 KB
620.5 KB
615.4 KB + 1.3 KB

Granted, the difference isn't that massive here. But from my findings, whatever it is the cause, it'd scale alongside the overall project size.

Is this reproducible in some open source project where we can try it out? It would be interesting to see the differences for each file to see if all of them are off by a little bit of if it's only a few files that have a discrepancy.

authors: MrHadiSatrio simonschiller

repo: spotify/ruler


text:
Remove Unnecessary spree_frontend gem

In the pull request for Spree 4.5 update, spree_frontend gem was introduced as a gem dependency. Since I don't use spree_frontend, I got following error when starting my Spree server:
~/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/spree_auth_devise-4.5.0/lib/controllers/frontend/spree/auth/checkout_controller_decorator.rb:45:in `<top (required)>': uninitialized constant Spree::CheckoutController (NameError)

Spree::CheckoutController.prepend(Spree::Auth::CheckoutControllerDecorator)
     ^^^^^^^^^^^^^^^^^^^^
	from <internal:/Users/echui/.rbenv/versions/3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:38:in `require'

Also spree_frontend is mentioned in the Update Gemfile section in Spree 4.5 tp 4.6 migration guide, it should not be added for those not using spree_frontend.
I'm requesting to remove spree_frontend from the gemspec.

@edmondchui  do you found how to solve this issue?

@iaderblocklack I've already created this pull request https://github.com/spree-contrib/spree_reviews/issues/198#ref-pullrequest-1863869271 a while back.
Just need someone to merge.

authors: edmondchui iaderblocklack


text:
Query matching service list based on service name and custom tag in consul

I need to filter the list of services by service name and custom tags in Consul. How do I customize the query rules? Or does the Ribbon itself support this need?

Are you using Ribbon?  You could implement your own load balancer rule(s) to filter the services based on their version.

Can you give some examples? Thank you!

I'm afraid we don't have any samples of doing that.

authors: ryanjbaxter spencergibb xiaoxing598

repo: spring-cloud/spring-cloud-consul


text:
spring-cloud-contract - consumer with Feign Clients

Using Spring Cloud with Netflix OSS.
Config-service and eureka is up. Now I installed my producer locally at port 8090. Consumer using Feign clients to call producer to get some data. Now I am getting 500 error. It is showing that URL not found. The closest match is /ping.  I believe Feign client is unable to mock, it is somehow trying to connect with eureka not from the locally installed producer. Can you help me on it.

/ping and /health are two endpoints that we mock by default. In your case it seems that the stubs were properly set up and you've managed to shoot a request at the stubbed WireMock endpoint. Most likely your request is wrong. You're missing headers / body or sth. Can you show your stub and how you're sending your request?

Ping @blackOcean ?

Cloding due to inactivity

authors: blackOcean marcingrzejszczak

repo: spring-cloud/spring-cloud-contract


text:
Dynamic properties in queryParameters section are not parsed

It looks like dynamic properties don't work for request.urlPath.queryParameters when defining contract in Groovy
Relevant part of the contract looks like that:
           request {
                method 'GET'
                urlPath('/advise') {
                    queryParameters {
                        parameter('referenceDate': $(
                                consumer(regex(iso8601WithOffset())),
                                producer(execute("todayAtNoon()"))
                        ))
                    }
                }
            }

And todayAtNoon() is a method in the base test class.
This results in generated of test code:
           // when:
			Response response = given().spec(request)
					.queryParam("referenceDate","todayAtNoon()")

This of course causes 400 Bad Request, as we're literally sending "todayAtNoon()" string to the producer.
The version is 2.0.2.RELEASE

I also have this issue , I think it is bug

Spent half a day looking at this before realising that it's distinct to the queryParameter and not my syntax of the
producer(execute("myBaseClassTestMethod()"))
It's been a year any update on it?

As you can see nothing has changed. We're open to accepting PRs though.

If you can give me a few pointers I'd take a look?
On Mon, Mar 15, 2021 at 8:02 AM Marcin Grzejszczak @.***>
wrote:

As you can see nothing has changed. We're open to accepting PRs though.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/spring-cloud/spring-cloud-contract/issues/854#issuecomment-799203644,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAM4Y7XGBIT7EC45LNKB57TTDW5IRANCNFSM4GRAGZVQ
.

You'd need to create a test similar to this one https://github.com/spring-cloud/spring-cloud-contract/blob/2.2.x/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilderSpec.groovy#L1817-L1858 and then check classes such as https://github.com/spring-cloud/spring-cloud-contract/blob/2.2.x/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/MockMvcQueryParamsWhen.java that are responsible for generating new query parameters.

authors: PsHype marcingrzejszczak markgargan tsayen


text:
FirestoreIntegrationTests.saveAllBulkTest » StatusRuntime INVALID_ARGUMENT

This is happening in CI, albeit not consistently.

cc/ @dmitry-s

I was unable to replicate this issue, but I got the following error when I increased the number of entries we write:
io.grpc.StatusRuntimeException: RESOURCE_EXHAUSTED: Write stream exhausted maximum allowed queued writes.
We might want to look at it as well.

authors: dmitry-s meltsufin

repo: spring-cloud/spring-cloud-gcp


text:
Watch connection expired: too old resource version

After the application is started for a period of time, the log keeps outputting Watch connection expired: too old resource version.
pom:

org.springframework.cloud
spring-cloud-starter-kubernetes-client
2.1.0

org.springframework.cloud
spring-cloud-starter-kubernetes-client-config
2.1.0

configure:
spring.cloud.kubernetes.reload.enabled=true

That is not coming from spring cloud kubernetes, its coming from the kubernetes java client which we use.  There is nothing we can do to change it.  I assume everything is working as expected?

repo: spring-cloud/spring-cloud-kubernetes


text:
Unable to build or run all tests successfully on windows

Hi,
I cloned master and tried mvnw install but have not been able to get it running successfully - complains about failed tests in 'Spring Cloud Netflix core'. Have also tried running all tests from within Spring IDE, still the same tests fail.
org.springframework.cloud.netflix.feign.support.SpringMvcContractTests.txt
org.springframework.cloud.netflix.feign.valid.FeignOkHttpTests.txt
org.springframework.cloud.netflix.metrics.MetricsRestTemplateTests.txt
org.springframework.cloud.netflix.resttemplate.RestTemplateRetryTests.txt
org.springframework.cloud.netflix.ribbon.okhttp.SpringRetryDisableOkHttpClientTests.txt
org.springframework.cloud.netflix.ribbon.okhttp.SpringRetryEnabledOkHttpClientTests.txt
org.springframework.cloud.netflix.ribbon.RibbonClientConfigurationTests.txt
org.springframework.cloud.netflix.ribbon.RibbonClientHttpRequestFactoryTests.txt
org.springframework.cloud.netflix.ribbon.SpringClientFactoryTests.txt
org.springframework.cloud.netflix.zuul.filters.route.okhttp.OkHttpRibbonRetryIntegrationTests.txt
org.springframework.cloud.netflix.zuul.filters.route.restclient.RestClientRibbonCommandIntegrationTests.txt
Are there any services that I need to run for the above tests to pass? Can't find any documentation about that, can someone kindly help and point me in the right direction?
I am not on Linux - using Windows 10, if that makes any difference.
Thank you

I am unsure. We require java 8 to compile. Tests pass on jenkins, circleci and our developer machinces. I don't have access to a windows box to try.
Why are you building?

Thanks, I am using java 8 and did look into the circleci file but couldn't find anything different. Seemed a bit strange that build was passing there but not on my machine that is why I asked the question in case I was making a very obvious mistake. I'll try and do it on Linux machine.
Was looking into Zuul and was hoping to contribute to it - to add few functionalities. Just wanted to make sure I could build and run all tests before I start playing around.

Maybe someone else on the team has access to a Windows box that can try? @ryanjbaxter, you're the only one I can think that might.

So tried it with docker image maven:3.5.0-jdk-8 and was able to build it successfully. Not sure what causes it to fail on Windows 10, may be long paths - but that is just a guess.
I'll just use the docker image to build and test.
Cheers!

Sorry I don't :(

Hmmm ok, guess I'll have to try and fix the tests that are failing - the code should build on Windows as well since it is all Java. I'll need help from you guys as you might be able to spot something right away while I may have to spend hours digging as I am just starting with the project.
The first one that I looked into is OkHttpRibbonRetryIntegrationTests which is extending RibbonRetryIntegrationTestBase.
Here is the image, you can see the stacktrace in my first comment as well.

My Analysis:
HttpClientRibbonRetryIntegrationTests is also extending RibbonRetryIntegrationTestBase but all of its tests are passing.
In RibbonCommandFactoryConfiguration  if I comment out the following
		@Bean
		@ConditionalOnMissingBean
		public RibbonCommandFactory<?> ribbonCommandFactory(
				SpringClientFactory clientFactory, ZuulProperties zuulProperties) {
			return new OkHttpRibbonCommandFactory(clientFactory, zuulProperties,
					zuulFallbackProviders);
		}

then OkHttpRibbonRetryIntegrationTests passes all of its tests and HttpClientRibbonRetryIntegrationTests passes as well.
My conclusion is that OkHttpRibbonRetryIntegrationTests should not be picking up the above Bean RibbonCommandFactory<?> but for some reason it is picking that one up or something else is not loading as expected.
Your thoughts? @spencergibb @ryanjbaxter
Thanks

Are they all failing with a 404?  Are there any stacktraces from the application itself?

The other two are failing with 200.
disableRetry is failing with
disableRetry(org.springframework.cloud.netflix.zuul.filters.route.okhttp.OkHttpRibbonRetryIntegrationTests)  Time elapsed: 1.139 sec  <<< FAILURE!
java.lang.AssertionError: expected:<500> but was:<200>

globalRetryDisabled is failing with
globalRetryDisabled(org.springframework.cloud.netflix.zuul.filters.route.okhttp.OkHttpRibbonRetryIntegrationTests)  Time elapsed: 1.116 sec  <<< FAILURE!
java.lang.AssertionError: expected:<500> but was:<200>

The application runs fine - can't see any stacktrace there.

You don't happen to have a config server serving configuration running in your environment do you?

No, don't have anything else running. Just executing the simple JUnit test for OkHttpRibbonRetryIntegrationTests class.

Besides debugging the code I cant think of any other reason why this would happen...

ok, I'll debug it and see if I can spot anything.
@ryanjbaxter Can you please confirm if the following bean should be loaded when running these tests in OkHttpRibbonRetryIntegrationTests or not. What happens when you run the test class on your machine?
In RibbonCommandFactoryConfiguration
		@Bean
		@ConditionalOnMissingBean
		public RibbonCommandFactory<?> ribbonCommandFactory(
				SpringClientFactory clientFactory, ZuulProperties zuulProperties) {
			return new OkHttpRibbonCommandFactory(clientFactory, zuulProperties,
					zuulFallbackProviders);
		}

That will be really helpful if I can eliminate this.
Thank you

Yes that bean is created when I run that test

Ahaa! Found the tipping point. The issue is in RibbonClientConfiguration. Not the class itself, but the way configuration classes in it are being loaded and revolves around @ConditionalOnProperty annotation.
When I run tests in OkHttpRibbonRetryIntegrationTests, it is suppose to load the following configuration class
	@Configuration
	@ConditionalOnProperty("ribbon.okhttp.enabled")
	@ConditionalOnClass(name = "okhttp3.OkHttpClient")
	protected static class OkHttpRibbonConfiguration {

but it loads the following
	@Configuration
	@ConditionalOnProperty(name = "ribbon.httpclient.enabled", matchIfMissing = true)
	protected static class HttpClientRibbonConfiguration {

Now here is the weird part - it seems that the classes are being loaded in alphabetical order and @ConditionalOnProperty is being honored aggressively i.e. if the first encountered condition satisfies, (matchIfMissing = true in the above case) then that configuration class is loaded.
Just did a hack and prefixed the OkHttpRibbonConfiguration with character A and it started loading correctly. Did the same with RestClientRibbonConfiguration and all of tests except 2 started passing. So now they look like - notice the prefix A
	@Configuration
	@ConditionalOnProperty("ribbon.okhttp.enabled")
	@ConditionalOnClass(name = "okhttp3.OkHttpClient")
	protected static class AOkHttpRibbonConfiguration {

	@Configuration
	@RibbonAutoConfiguration.ConditionalOnRibbonRestClient
	protected static class ARestClientRibbonConfiguration {

One of the remaining failing tests was FeignOkHttpTests.testFeignClientType, did the same hack with OkHttpFeignLoadBalancedConfiguration  and it passed.
SpringMvcContractTests.testProcessAnnotations_ListParamsWithoutName is now the only one failing, this one is a bit different - will look into it to see what's wrong with it.
Weird, right?
So seems like there is something fundamentally wrong here, I'll try and see what exactly it is. The hack is just to prove that it works if alphabetical order is correct but that should not matter and configurations should be loaded properly based on annotations and not some unknown (at this point) class loading order.
My guess is that one of the below three might be the culprit which behaves differently on Linux and Windows

@ConditionalOnProperty is not properly being used here
SpringBoot - @ConditionalOnProperty is not behaving as expected and configurations are not being loaded properly
Oracle JDK - classes are being loaded in different order.

Your views @ryanjbaxter @spencergibb ?

Doesn't make much sense to me. @wilkinsona any thoughts?

It looks like RibbonClientConfiguration is assuming that it's inner classes will be considered in the order in which they are declared in the source code. That's not a safe assumption to make. It's entirely dependant on the byte code produced by the compiler and how ASM loads that byte code. You either need to make the property conditions mutually exclusive, or more the configurations to top-level classes and use @Import which does provide ordering guarantees.

Thanks! @wilkinsona

Closed via 6b530b026966faad7e88efd0c67a68e93195bfcd

Merged to master and 2.0.x

@msamad would you be willing to try out a snapshot when it is available (shortly)?

Thank you @spencergibb
Looks like you missed FeignRibbonClientAutoConfiguration, it has the same issue. The rest are fine now, passing their tests.
I still haven't figured out what is wrong with SpringMvcContractTests.testProcessAnnotations_ListParamsWithoutName, will debug it more to see if I can find anything. This will be the only remaining failing test once you fix FeignRibbonClientAutoConfiguration. Should we keep this issue opened here or do you want me to raise a new issue for SpringMvcContractTests.testProcessAnnotations_ListParamsWithoutName?
Thanks again. :)

No

Closed via 97f1655ff7b0078b0c92f37042d3617c560a0668

Ping @msamad to try again :-)

Yup, all tests passing now apart from pringMvcContractTests.testProcessAnnotations_ListParamsWithoutName - I'll see what I can find for this one.
Thank you @spencergibb  :)

Hi,
Figured out what was wrong with SpringMvcContractTests.testProcessAnnotations_ListParamsWithoutName. It was throwing this error RequestParam.value() was empty on parameter 0.
So selected Store information about method parameters (usable via reflection) in eclipse and that fixed it.

Finally, all tests are passing... phew!
Thank you

I want to rewrite ribbon.ConnectTimeout( from mysql datebase )，so I wrote  class ConsumerRibbonClientConfiguration  extend RibbonClientConfiguration and Override the method ribbonClientConfig. But when debug, the class ConsumerRibbonClientConfiguration  not  execute ?  how to do ?

authors: WennaDu msamad ryanjbaxter spencergibb wilkinsona

repo: spring-cloud/spring-cloud-netflix


text:
enable feign.autoconfiguration.jackson.enabled by default in the next major release

Fixes https://github.com/spring-cloud/spring-cloud-openfeign/issues/470

@nkonev An update should also be added to the docs.

Do you mean this file https://github.com/spring-cloud/spring-cloud-openfeign/blob/master/docs/src/main/asciidoc/spring-cloud-openfeign.adoc ?

@nkonev An update should also be added to the docs.

Do you mean this file https://github.com/spring-cloud/spring-cloud-openfeign/blob/master/docs/src/main/asciidoc/spring-cloud-openfeign.adoc ?

Yes.

@OlgaMaciaszek v4.0.0-M1 / 2022.0.0-M1 has been released, it seems we can merge this PR

Hey @OlgaMaciaszek @spencergibb Would you like to add it to the nearest https://github.com/spring-cloud/spring-cloud-release/milestone/114 ?

Yes. It should go in there. Will take care of it today.

authors: OlgaMaciaszek nkonev

repo: spring-cloud/spring-cloud-openfeign