fix(slack): fetching of conversations when hitting the the api limit of 1k conversations

Description
Bug fix for:

Slack Thread
GitHub Issue

Since I haven't faced these issues (because the slack workspace I'm working with doesn't push the limit), it would be nice if someone who faced them could test the solution.
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Could you test it out @eddyw @aesign or are you also below 1k?

Could you test it out @eddyw @aesign or are you also below 1k?

Sadly yes, small org

Hi, @momme-rtf! I've just tested this solution and it works like a charm! Looking forward to seeing this released 🙂
BTW - is there any chance to get Search Command from this extension available in Raycast root's search Fallback Commands? It would be super helpful. I would create a feature request, but I couldn't find any proof that's even possible.

@jdrzjph Thanks for testing!
@pernielsentikaer I've added another fix for fetching not only more than 1k conversations but also users.
And I made channels shared via Slack Connect show up. (This could have also led to the confusion that channels are missing - this was also mentioned in a separate issue)

BTW - is there any chance to get Search Command from this extension available in Raycast root's search Fallback Commands? It would be super helpful. I would create a feature request, but I couldn't find any proof that's even possible.

That is not yet possible due to limitations in the API
@momme-rtf are you ready for a merge and see how it goes?

@pernielsentikaer Yes, I'm ready - let's merge it :)


Sniper.py is not able to verify the pokemon

If json data is missing EcounterID and SpawnpointID, then sniper.py do a verification of pokemon.
However it always fails for me - from my investigation it seems, like results are empty ( get_meta_cell => find_close_cells => get_map_objects  : catchable pokemons)...
It seems like get_map_object returns forts only.
Unfortunatelly I have no idea how to fix it.

It's me. Replied you in Discord :) Documenting it for future developers to take note.
After version 0.45, Niantic implemented a delay for Pokemon spawns after a teleport (both to and back) Once Niantic's server detected a jump in position all Pokemons will not be shown on map for a few mins (up to even 5mins). But once in a while, if you're lucky, it's just a few secs (which explain why sometimes you can snipe without Encounter ID & Spawn Point ID).
You can try this with Pokemon Go and a spoofing app to verify the above information.
For my new features, I've increased the MIN_SECONDS_ALLOWED_FOR_CELL_CHECK to 180 secs.
If i'm not wrong, Sniper.py will bypass the check if there's  EncounterID and SpawnpointID. So this increase in timing is only for my Telegram Snipe and Url that doesn't provide EncounterID and SpawnpointID.

Ok...
Update: Just today, it doesn't work anymore even after 300 secs of delay.

Found out what happened with sniper.py
Fixed. Will be doing a PR.

fixed by #5877


[NOT A ISSUE]

Is there more information on how to do the database and build form source from Windows?

Also how to link my own domain?

https://github.com/streamaserver/streama/wiki/Compiling-the-source-code
If you get stuck reach out on our discord for community support
https://discord.gg/CJEHWX9
Please note this project is no longer actively developed.


Release 3.8.0

D'oh, looks like a recent phpstan update breaks our CI 😢
I'll get this fixed.

Remember not to squash & merge this PR 🙏

@ste93cry Yes, will do my best. Could you also add you ✅, please?


Refactor away SchemaProvider

Its purpose was to merge schemas form multiple subgraphs into a single schema, however we've since decided to keep the subgraphs under different URLs and with separated schemas, so we can just forward the schema directly to the GraphQL server.
Part of #226

@Jannis Thanks, renames done.


rebase_expr should probably use transform_down and not transform_up

Describe the bug
While working with first_value aggregation function I noticed what seems to be a minute, albeit general, deficiency in the rebase_expr function, which in the case below leads to an error.
Namely, when re-basing an expression against a list of provided base expressions transformations are done in a post-order fashion:
https://github.com/apache/arrow-datafusion/blob/2156dde54623d26635d4388d161d94ac79918cdc/datafusion/sql/src/utils.rs#L64-L69
The issue below arises when this list of base expressions contains overlapping elements, e.g. the first base expression (group by clause) is a sub-expression of the second base expression (the first_value aggregation). Since the transformation is done inside-out, once the first sub-expression is columnized, the original expression gets changed and so it can't be re-based anymore (even when the original root expression is also an available base expression as is the case below).
However, even regardless of that error, I think it could be argued that rebase_expr should perform pre-order traversal in general:

rebase_expr should strive to re-base on the outermost available base expression in order to minimize (however negligible) the computation that needs to be done on top of it. The only reservation I have here is if somehow there is some logic that relies on repeated inside-out columnization which can only be achieved via transform_up (this doesn't seem to be the case judging by the tests).
While transform_up transforms the current sub-expression only after visiting it (and it's children), transform_down transforms it before traversing any child expressions. Since the transformation involved is columnization, which effectively prunes that branch of the expression tree, this leads to strictly less-or-equal number of node visits than transform_up.

To Reproduce
❯ create table t as values ('a', 1, 'a1'), ('a', 2, 'a2'), ('b', 1, 'b1'), ('b', 2, 'b2');
0 rows in set. Query took 0.023 seconds.

❯ select first_value(column3 order by ascii(column1) * (column2 % 2)) from t group by ascii(column1);
Error during planning: Projection references non-aggregate values: Expression t.column3 could not be resolved from available columns: ascii(t.column1), FIRST_VALUE(t.column3) ORDER BY [ascii(t.column1) * t.column2 % Int64(2) ASC NULLS LAST]

Expected behavior
❯ create table t as values ('a', 1, 'a1'), ('a', 2, 'a2'), ('b', 1, 'b1'), ('b', 2, 'b2');
0 rows in set. Query took 0.019 seconds.

❯ select first_value(column3 order by ascii(column1) * (column2 % 2)) from t group by ascii(column1);
+------------------------------------------------------------------------------------------+
| FIRST_VALUE(t.column3) ORDER BY [ascii(t.column1) * t.column2 % Int64(2) ASC NULLS LAST] |
+------------------------------------------------------------------------------------------+
| a2                                                                                |
| b2                                                                                |
+------------------------------------------------------------------------------------------+
2 rows in set. Query took 0.034 seconds.

Additional context
No response

I found similar issue,
❯ SELECT a + 1 AS d, a + 1 + b AS c FROM (SELECT 1 AS a, 2 AS b) GROUP BY a + 1, a + 1 + b;
Error during planning: Projection references non-aggregate values: Expression b could not be resolved from available columns: a + Int64(1), a + Int64(1) + b
because we are transform_up in rebase_expr()
a+1+b is split to a+1 and b, then we found b is not in group list.


📥 Support for auto-converting between fibered and parameterized type families

As part of my long-term program to eliminate some of the basis for wanting unification, I want to support auto-converting between type families and their total spaces in a very convenient way. I think Arend has a feature like this, but let me give my version.
Given a family of types F : sig {fields...} -> type, we may consider the record type sig {fields...; fib : F {struct {fields...:= fields...}}} if you know what I mean. In essence, I would like to implicitly write F also for the latter record type. This interacts in a beautiful way with the proposal for record patching #266 to enable the following code:
def category :=
  sig
    ob : type
    hom : sig {s : ob; t : ob} -> type
    idn : (x : ob) -> hom | .s = x | .t = x
    seq : (f : hom) (g : hom | .s = f.t) -> hom | .s = f.s | .t = g.t
    seqL : (f : hom) -> path {hom | .s = f.s | .t = f.t} {seq {idn f.s} f} f
    seqR : (f : hom) -> path {hom | .s = f.s | .t = f.t} {seq f {idn f.t}} f
    seqA : (f : hom) (g : hom | .s = f.t) (h : hom | .s = g.t) -> path {hom | .s = f.s | .t = h.t} {seq f {seq g h}} {seq {seq f g} h}

The equivalent code without this feature would result in an EXPLOSION of parameters that must be passed to everything. Indeed, that explosion is one of the biggest reasons that implicit parameters are important in dependent type theory --- but our packed/fibered representation is much more elegant and reliable.
It is also worth noting that it would have type checked to write seqL : (f : hom) -> path {hom} {seq {idn f.s} f} f, but this would be mathematically very wrong! Because it allows to include a symmetry on the boundary of the morphism f. I think the fact that you can choose to allow or not allow this depending on how much you specify the type makes sense, but it is worth noting as one potential way that a user could injure themselves.

POSIX shell style to convert F to its total space: F {@}. Reference: 2.5.2 Special Parameters

POSIX shell style to convert F to its total space: F {@}. /s

Reference: 2.5.2 Special Parameters

lmao I kind of love this

POSIX shell style to convert F to its total space: F {@}. /s

lmao I kind of love this

LOL I think someone made a Wish. A more concrete proposal that goes with #266:
hom {@ | .s = f.s | .t = f.t}
hom {@ as x | .s = f.s | .t = x.s}
X | .A = x
X as x | .A = foo | .a = x.b

Already implemented.


How is check_rules supposed to work?

Describe what did you try to do with TM1py
kube.rules = "SKIPCHECK" (missing semicolon)
tm1.cubes.update(kube)
res = tm1.cubes.check_rules(kube.name)
print(res)

replies
Response [201]
(created)
Describe what's not working the way you expect
Didn't get the expected result? Describe:

The result you expected.
An error message that the rules are invalid.

A clear and concise description of what you are trying to do.
Checking rules before uploading them from an Azure DevOps pipeline to TM1.

Version

TM1py 1.4.1
TM1 Server Version: 11.4

Am I doing something wrong, or is this not working in the REST API?

Hi @marfrit,
I have to admit this part of TM1py is not so well designed.
the Response 201 in the console is the string representation of a Response object from the requests library
Inside this object, you find the information you are looking for.
This code:
response = tm1.cubes.check_rules("WrongWithIllegalRule")
response_json = response.json()
print(response_json)

Produces this:
<EMAIL_ADDRESS>'../$metadata#Collection(ibm.tm1.api.v1.RuleSyntaxError)', 'value': [{'LineNumber': 8, 'Message': 'Syntax error on or before: "\n[\'Bike Shares Measur\n missing semicolon " '}]}
I think we need to make this part of TM1py more accessible.
Instead of returning the raw response, we could return two arguments:
return success, errors

Would that make more sense from a TM1py consumer perspective?
@pbuncik
I noticed, that you added the check_rules function to TM1py initially (15891b50e04dbe80014d619ea5129c2313a7d210). Are you OK if we change it according to the sample above?
I will create a MR for it.

For the compile method of the process service, I check if the response size is greater than zero and of yes, stop the pipeline. I guess I never thought about that not being encapsulated "enough".
Your reply helps a lot. I can't give any good suggestions, since I can write python code that does what I need, but I can't really write clean python.

Hi,
I see. I will change the method so that it behaves in line with the compile method.
When there are errors in the rule, you will get a list of errors. If the rule is fine you will get en empty list.


Add the ability to replace certain words

I am looking at the Northern line, and some stations are giving the following problems which can be annoying.

Firstly there is the Southbound - Platform 4 which could be shortened
Then there is the Underground Station part which can be removed
I want to see how to add configuration to allow users to omit certain phrases with blank spaces for the destinations, as well as for the platform.
@morosanmihail I'm new to HASS modifications, however I'm happy to see where I could make the requested changes, if there are more bits that need changes.

Ha, I just use whatever the API gives, and it seems to really like being verbose.
I can't imagine this will be a high priority for me in the foreseeable month or two, but I'm more than happy to review any PRs thrown this way!


Just a typo

I think you guys do a great job on documentation, so figured I'll point out a typo since I think it's the first one I've seen on MS Docs (bolded):

Before you configure My Staff for your organization, we recommend that you review this documentation as well as the user documentation to ensure you understand how it works and hot it impacts your users.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c68db81b-c293-dc2f-0ff7-e21ead484367
Version Independent ID: 2aff9bbb-585e-a154-7748-5d48582d701b
Content: Use My Staff to delegate user management - Azure AD
Content Source: articles/active-directory/roles/my-staff-configure.md
Service: active-directory
Sub-service: user-help
GitHub Login: @rolyon
Microsoft Alias: rolyon

@bunda3d thanks for pointing this out! We will fix this.

Thanks! We have added this to the document. https://github.com/MicrosoftDocs/azure-docs-pr/pull/150165


[7.x] Add requeue function to jobs

This pull requests adds a requeue method to database and Redis jobs. The idea comes from https://github.com/laravel/ideas/issues/1381
The method does the same as the release method, but before putting the job back into queue, it decrements the attempts attribute.
This handles an issue like this, where the job could fail, because the attempts attribute had exceeded the tries attribute.
Redis::throttle('key')->allow(10)->every(60)->then(function () {
    try {
        // API logic
    }
    catch (Exception) {
        // Release the job back into the queue
        return $this->release(10);
    }
}, function () {
    // Could not obtain lock...
    return $this->requeue(10);
});

I think we possible need to rename this method to something more suited. Maybe isDeletable ?
https://github.com/laravel/framework/blob/641a7cda8280ecd3035616d4ce6434434b116624/src/Illuminate/Contracts/Queue/Job.php#L64
Reopen of #30342

Please update the job contract too.

I wonder what could be a user case for this? This seems to be a bad practice in my opinion since it'll keep the job in queue forever.
I'd set a proper $tries on my job and use release() knowing that I won't get myself into a job that would keep failing forever.

Please could you rebase your branch against the latest 7.x, to allow the tests to run against the latest code. git pull --rebase upstream 7.x && git push --force

@andershagbard
That's if you requeue(), it'll keep the job forever. However, using retryUntil it'll keep retrying until a certain time and then fail. I don't really see why you'd risk and use requeue() and have hanging jobs in your queue that you can't clear out.

@themsaid I would not call this an edge case. The problem becomes much more frequent if you use a funnel.
Let's take your example as a case. If the job gets locked out three times in a row, it will run fail() on the first exception caught.

I'm just showing an example, you'll need to use a sensible value based on what you need. If you don't want to have any limits then you can clone the job and reset the attempts to 0 and release it back to queue but I wouldn't recommend that ¯_(ツ)_/¯ .

@taylorotwell explained a use case to me where this might be needed. However, I think we can achieve this without all the changes in that PR. We could update the payload of the job, reset attempts, and then release().

@themsaid Yes, this is basically what this PR does, but I am not sure if there is a solution which works for all drivers, without adding these methods.

@andershagbard let me tinker with that a bit. Sorry it took me too long to get it 😀

@GrahamCampbell why did you close this pr?

I didn't. GitHub seems to have messed up. I rebased it, but it only let met push the old commits and denied access with the new stuff, so it thinks the remote branch is exactly laravel/framework 6.x.

Now at https://github.com/laravel/framework/pull/31581. Sorry about this!


patch: Replace shebang in scripts with env interpreter

#!/usr/bin/env searches PATH for bash, and bash is not always
in /bin, particularly on non-Linux systems.
Signed-off-by: Kyle Harding<EMAIL_ADDRESS>

Please make sure to read the CONTRIBUTING document before opening the PR for relevant information on contributing to the documentation. Thanks!

@balena-ci I self-certify!


Missing Xamarin.Forms examples

As a user, I was looking for fast and effective examples using the Xamarin.Forms samples provided. However, the samples in the folder Samples\BluetoothFormsApp do not reference Bluetooth at all, they are the empty Visual Studio projects.
Can we have a complete 2-way chat sample for the Xamarin.Forms projects?  Thank you.

Oh gosh, yes, that was an old request. Thank you for closing it


Can I install with Homebrew?

I will create pull request to Homebrew/homebrew-core

Can you show me the pr link?

@cesarferreira
https://github.com/Homebrew/homebrew-core/pull/20400

thanks, let me know when it's merged so I can add it to the README.md

OK!


Status doesn't display correctly in Windows

Replace with unicode chars that work in Windows consoles' code page (or perhaps use a crate that matches output to consolehost codepage eg crossterm?)
eg.

Works in Windows Terminal, not in conhost. Same font. Same codepage (850)

Haven't been able to figure this out so for now: recommend use of Windows Terminal rather than conhost.


Delete an edge

It should be possible to delete an edge after you've created/connected one.

This is currently possible by clicking on one of the nodes on the edge, finding the edge in question on the right sidebar, and pressing delete.

That's too many steps. Ideally it would be a 2 step process, just click the edge and delete it. (Or one step, if you can right click the edge to delete it.)


[BUG] Buggy keyboard shortcuts for traversing between tabs using ctrl+tab and ctrl+shift+tab

Sometimes ctrl+tab and ctrl+shift+tab work and some time it doesnt and we have to manually click on tabs with mouse and then it works for once and then again those shortcuts dont work

Hi, are you using the macOS or Qt GUI? (It might affect both.) Qt is the default everywhere that isn't macOS.


⚠ Auth Portal has degraded performance

In 825d1ac, Auth Portal (https://auth.zyradyl.moe) experienced degraded performance:

HTTP code: 523
Response time: 18780 ms

Resolved: Auth Portal performance has improved in c129e79 after 13 minutes.


"direct" WSL support - or README adjustment

If "direct" support is not wanted or cannot be done for now, I'd suggest to outline in the readme the necessary steps (which is more or less what "direct" support would automate):

list installed wsl distributions wsl --list
choose one distribution
execute `wsl -d %distro% echo "$(ip addr | grep inet.*eth0 | cut -d/ -f 1 | cut -dt -f2)" to get the ip address
to ensure sshd is started execute ``wsl -d %distro% sudo service ssh start` (likely asks for a sudo password)
connect to the WSL distro using the normal ssh connection

Of course "direct support" would be preferable (may also need some configuration), but if wanted I can PR a readme change.

Update readme sounds good, proper support would require a new extension like the official one

I published a new extension for wsl support, please give it a try https://open-vsx.org/extension/jeanp413/open-remote-wsl


Refactor the closure&context style to a builder style - Actix actor context into the

See #4 for background. Tl;DR: we want to support this style:
fn main() {
    let builder = BuilderUtilizer::default();

    builder
        .actor()
        .connect_signals(Signal1::connector())
        .connect_signals(Signal2::connector())
        .run(Actor1 {
            widgets: builder.widgets().unwrap(),
        });

    builder
        .actor()
        .connect_signals(Signal3::connector())
        .connect_signals(Signal4::connector())
        .run(Actor2 {
            widgets: builder.widgets().unwrap(),
        });

    BuilderUtilizer::default()
        .actor::<Actor3>()
        .connect_signals(Signal1::connector())
        .connect_signals(Signal4::connector())
        .create(|ctx| Actor3 {
            my_own_address: ctx.address(),
            widgets: ctx.widgets().unwrap(),
        });
}

Consider three actors, each holding the addresses of the other two. With the closure&context style creating them can get quite unsightly:
let builder = factory.instantiate();
builder.new_actor(|ctx1| {
    ctx1.connect_signals::<Signal1>();
    let mut addr3_ = None;
    let addr2 = builder.new_actor(|ctx2| {
        ctx2.connect_signals::<Signal2>();
        let addr3 = builder.new_actor(|ctx3| {
            ctx3.connect_signals::<Signal3>();
            Actor3 {
                actor1: ctx1.address(),
                actor2: ctx2.address(),
            }
        })
        addr3_ = Some(addr3.clone())
        Actor2 {
            actor1: ctx1.address(),
            actor3: addr3,
        }
    });
    Actor1 {
        actor2: addr2
        actor3: addr3_.unwrap(),
    }
});

But with the style I'm proposing here we can have this:
let builder = factory.instantiate();

let actor1 = builder.actor().connect_signals(Signal1::conector());
let actor2 = builder.actor().connect_signals(Signal2::conector());
let actor3 = builder.actor().connect_signals(Signal3::conector());

// actorN are actor builders, but they contain the actor contexts so we can easily get the
// addresses from them.
let addr1 = actor1.address();
let addr2 = actor2.address();
let addr3 = actor3.address();

actor1.run(Actor1 {
    actor2: addr2.clone(),
    actor3: addr3.clone(),
});
actor2.run(Actor2 {
    actor1: addr1.clone(),
    actor3: addr3,
});
actor3.run(Actor3 {
    actor1: addr1,
    actor2: addr2,
});

Is this a common use case? (I haven't built any actix actors that interact with each other yet.) But I see the point.

I don't think one can realize two actors that cross-reference each other using the current situation. I added a fn context(&self) -> &A::Context to ActorBuilder to get it working but I'm not sure if that is a good solution API wise.


Provide an option to force a gem version, even it it conflicts with a gem's declared compatibility.

From @xaviershay on August 22, 2013 3:22
From https://github.com/bundler/bundler/issues/2412
Still debate about how this would be done or whether it's a good idea. See linked ticket for context.
Copied from original issue: bundler/bundler-features#20

From @xaviershay on August 22, 2013 3:25
Also this https://github.com/bundler/bundler/issues/1549

From @rmetzler on September 3, 2013 23:31
Today I started to look into this.
I read about all proposals for the API. The DSL style I liked best and is the easiest to implement is the following notation:
gem 'mail', '~> 2.4.4', :override => true

This notation means, that the resolver uses the version marked by the override option whenever two dependencies are compared.
Requirements

Bundler should warn about this, because it is a potentially dangerous option.
If Bundler compares two conflicting dependencies both having :override => true then Bundler should throw a special VersionConflict error.

Questions
As I'm new to the Bundler source, trying to find my way around I recognized some minor issues. Also I'm not sure whether I should it ask here or on the mailing list. I'll just write it down here because it's easier now. Please advise!

I didn't found a test case for Bundler::VersionConflict so I added one. It's modeled after a detailed description of the problem, but could be simpler though.

I found this line that doesn't look right, especially when you consider this constructor. Not really sure about that, had a few errors when I changed it and run tests.

From @indirect on September 5, 2013 5:42
I think that :force_version => true might make it clearer what the option does, since there are other options that could be passed as well, making :override a bit ambiguous (override what? and with what?).
I'm happy to merge a testcase for VersionConflict. :+1: Unit tests in general are a weak area for the Bundler codebase. :grimacing:
The line you point to doesn't look right to me either, but maybe there's another Bundler::Dependency hiding somewhere?

From @rmetzler on October 17, 2013 14:46
Hi,
first thing I've to say, I'm sorry I didn't send any pull request for the test cases yet.
@sheerun for discussing the proposed experimental feature in question please read over the discussion first here  https://github.com/bundler/bundler/issues/1549 and and https://github.com/bundler/bundler/issues/2412
I think this is the best description for the current state of how they to fix gem dependency conflicts
I just want to fix the problem I encountered myself more than once. This feature would be experimental and so far I've not written anything else than tests, because the bundler code in question is fairly untested yet. Only "happy paths" were covered with tests in master branch and not conflicting dependency versions.
I also thought about writing a CLI tool (different from bundler) that would know about git, Github and Gemfiles and could do something like the linked comment suggested automatically incl running tests and send pull requests. If Ruby devs think this might be a better idea, please let me know.
Recently I also worked with VersionEye on their open source CLI veye and I realized that there are many issues around dependency versions. This is the case especially in Ruby and nodejs communities where the lib ecosystem is growing rapidly. But every package manager has this problem and if there are good solutions out there, please let me know and I'll investigate the code.
Richard

From @rmetzler on September 5, 2013 9:3
Thank you for you reply, very much appreciated. I also think :force_version => true is a clearer option.
I'll send a pull request for VersionConflict and investigate further in dep helper method.

From @sheerun on October 17, 2013 13:11
I don't think it's good idea, forking is better solution.

From @indirect on March 11, 2014 21:24
Again, the issue is not that we actively want to make it harder. The issue is that allowing this means there is no longer a canonical source of truth about what a gem’s dependencies are. When these kinds of changes cause resolver errors (and they will), it will be extremely hard to diagnose. I’m fine with “at your own risk”, I’m not fine with “makes people complain that Bundler is broken when it’s actually something they did themselves”.
If you’re competent enough to debug forcibly overridden dependencies yourself, you’re competent enough to either hack this feature into Bundler or fork and update the dependencies yourself. This feature hands a giant foot-gun to those who won’t know how to debug the issues that come up while using it.
On Mar 11, 2014, at 1:12 PM, korbin<EMAIL_ADDRESS>wrote:

+1 for this feature.
Forking an entire project (and subsequently managing upstream changes, etc.) is an unnecessarily, tall order for something that can certainly be fixed with a simple, at-your-own-risk dependency override.
—
Reply to this email directly or view it on GitHub.

From @TimMoore on March 11, 2014 22:9
And think of the poor gem authors that will suddenly have a pile of mysterious bug reports caused by someone using a gem that was listed as explicitly incompatible!

From @aantix on February 8, 2014 0:16
:+1: Running into this very issue today.  I know the versions are compatible.  But one author has been too strict with his requirements..

From @korbin on March 11, 2014 20:12
+1 for this feature.
Forking an entire project (and subsequently managing upstream changes, etc.) is an unnecessarily tall order for something that can certainly be fixed with a simple, at-your-own-risk dependency override.

From @strzibny on May 7, 2014 7:41
I would also welcome this feature as this overly strict requirements are happening quite often. Providing an override option seems reasonable. Of course it's always on the risk of the user.

From @anri-asaturov on June 14, 2014 14:21
This feature becomes more and more important with number of gems growing. .NET has it. Java has it. Nothing bad happened to them because of it.

From @indirect on June 28, 2014 4:16
I’m slowly warming up to this, as long as the override is set explicitly in the gemfile on a line for the gem being overridden, and the overridden version is called out during bundle install. Something like:
# Gemfile
gem "puma", "5.1" # depends on rack <= 2.0
gem "rack", "3.0", force_version: true

$ bundle install
[…]
Installing rack 3.0 (forced version, conflicts with puma)…
Installing puma 5.1…
[...]

From @TimMoore on November 18, 2014 5:53
Maybe Rubygems.org should be changed to recommend setting only major and minor versions?

From @endymion on June 27, 2015 22:56
I respectfully add my vote to this feature request.  Bundler's lack of a feature for forcing a version that's known to work has cost me hours of extra work today.  It's an even bigger issue when you're dealing with older Ruby code that uses gems where the authors have locked the dependencies to something like "~> 1.2.5" and then stopped maintaining a gem.  Sometimes a gem doesn't really need to be updated because it works, but it's still full of over-specific dependencies like that.  The only way to deal with it right now is to fork the gem itself and update the dependencies.  Bundler could easily have made my life a lot simpler today by giving me more flexibility and control and letting me take responsibility for my own QA.

From @thewoolleyman on November 18, 2014 5:20
+1.
As mentioned on the closed bug thread, one major exacerbating factor of this problem is that pessimistic constraints unnecessarily specify all three components of a semantic version, when they should only need to specify two to prevent API-incompatible changes in dependencies.
Rubygems.org unfortunately encourages this practice by always suggesting a pessimistic constraint with all three versions, which leads gem authors to do the same practice in their gemspecs.

From @indirect on June 28, 2015 19:47
@endymion Thanks for the feedback. Today, no one on the Bundler core team has the time to do the work that this feature would involve. If someone joins the team who wants to implement and support the feature, or Ruby Together is willing to fund work on this feature, we'll take another look.

From @jfinkhaeuser on July 1, 2015 13:37
If a gem has a constraint on a specific bugfix release because that's the only version it works with, that's a bug in the dependency.
Or, to go by example:

Gem A exists in version 0.1.1
Gem B requires precisely version 0.1.1, because it doesn't work with version 0.1.0

Then Gem A uses semantic versioning wrong. That cannot be emphasised enough.
The point of semantic versioning is to provide a stable interface across all releases with the same major and minor component. A bugfix that breaks the interface is simply no longer compatible with the same major and minor component.
Penalizing Gem B for doing the only thing left for it to do seems like entirely the wrong approach.
Gem B should specify dependencies as ~> 0.1 >=0.1.1 in this case. Being helpful about this would IMHO be a good feature.
But really, it's the Gem A maintainers that need to be given a hard time, not anyone else.
(Mind you, there is no easy solution to this. The best solution so far is to differentiate between interface and package versions, and depend on an interface version. That's happening to a degree in Linux/Solaris shared object libraries, and vastly improves some issues, but it's not bullet proof either.)

From @thewoolleyman on June 29, 2015 19:58
@indirect I do agree with your previous comments that this could make the situation worse for Gem maintainers, because they don't know if a bug report is due to an incompatible overridden dependency version being used.
I still think the long-term solution is to encourage/force people to use pessimistic constraints correct.  E.g., docs on rubygems.org, and rubygems itself should complain loudly if you try to put a dependency version in a gemspec with a three-component pessimistic constraint, because in all likelihood You're Doing It Wrong.
Maybe someone (with more time and who cares more than me) can open that discussion on the RubyGems mailing list along these lines (and cross-link it here in a comment), and see what comes of that...
-- Chad

From @indirect on June 29, 2015 20:9
The RubyGems.org pages have all changed to default to ~> X.Y version constraints available for copying. I think it might be worth it to warn if a gemspec has a pessimistic constraint on a bugfix release, but unfortunately there are many, many, many, gems that only function correctly at a precise bugfix release. :( It's a chicken and egg problem that I'm not sure how to progress on.

From @xeger on November 13, 2015 17:10
I deal with a lot of abandonware gems whose authors never learned to manage dependencies correctly. I get bit by falsely-rigid constraints several times per year, preventing me from fixing security or functional defects in my own software. I solve these by forking the offending gem and fixing the constraint.
Once in a very great while I find that there was a genuine reason for the author to be so pedantic.  I fix the constraints, open a futile pull request in case the author ever wakes up again, and add a tech-debt item to stop depending on the offending gem.
Needless to say, I would find this feature very helpful. That having been said, there's almost always a workaround -- forking the gem and depending on it as gitted, or pulling from a custom source -- so I understand the core team's unwillingness to spend precious cycles on the feature.
Nevertheless, I'd love to see a feature like this emerge! It would save me significant time in the long run. So, err, +1, and perhaps I'll spend some time implementing it, if I become seriously blocked.

From @booleanbetrayal on October 30, 2015 15:14
would definitely find this feature useful!

From @todd-richmond on November 13, 2015 17:28
very well put - thx! That is the exact issue we had... small, but highly useful gems that have been abandoned by their author with restrictions they didn't fully understand before going dark. In this case forking is a pain because we have to manage them and if the author ever does make changes, we probably won't notice
This is somewhat similar to maven's ability to exclude package dependencies so that you can enable the use of newer packages. The developer is owning the conflicts at that point so a warning would be fine, but far better than having to fork and hack

From @jirihradil on January 19, 2016 20:15
+1

From @vbabu75 on December 29, 2015 11:28
+1

From @teadur on February 3, 2016 10:14
+1

From @Maxim-Gurin on March 15, 2016 15:42
+1

From @anton-fedorov on March 15, 2016 15:43
+1

From @egormasalitin on March 15, 2016 15:43
+1

From @yuliiakorzhuk on March 15, 2016 15:43
+1

From @oleksandr-oksenenko on March 15, 2016 15:43
+1

From @batytskyy on March 15, 2016 15:43
+1

From @asukhorukova on March 15, 2016 15:43
+1

From @a-paschenko on March 15, 2016 15:44
+1

From @andreiiarnautov on March 15, 2016 15:44
+1

@LynnCo Thanks for cleaning up.  Are there plans to implement a feature to address this, or are you just consolidating the tickets?

Just consolidating at the moment

I'd like to add to this proposal.
In some cases, you can write like this:
gem "foo", git: "path/to/fork"

In some cases it would be useful to actually have a fork released as a gem, but replace all instances of it in the Gemfile and related dependencies.
gem "foo", provided_by: "foo-fork"

Where foo-fork is a gem which provides the same API (e.g. forked) as foo.

I'd also like to add to this proposal... I got a case where I need to run an legacy app, that I'm not able to upgrade yet...
The problem is that a required gem that I don't maintain, depends on nokogiri, but was too soft to declare that... declaring just that depends onnokogiri (>= 1.4.4)
When the app was made, there were no problem with that... but today, nokogiri last version is <IP_ADDRESS> and requires a ruby version newer than exists on the environment.
Today ruby version is 2.0.0, so I must update it already... but it would be really helpful have the ability to force the version I know that works on my Gemfile for cases like that

As :force_version => true is clearly an opt-in change and extremely visible in a project's Gemfile, I'm finding the suggestion that one should fork every package a bit ridiculous.
This request has very real use cases and is supported in most (all?) other major package managers.  The suggestion that every gem maintainer should change to minor versioning isn't a real solution, as there's a large coincidence of needing version overrides as a result of gems being abandoned.
What's the timeframe on this if it's agreed upon?

@arcreative I think in order for bundler to make this improvement, it needs to be implemented in RubyGems first, per the linked issue.

This feature would be nice :D

Maybe instead of forcing versions in the Gemfile and considering this as a special case while resolving the dependencies we could find a way to overwrite the dependency information of a Gem locally (and not touch the whole resolution process at all)? Basically a way to patch a gemspec locally within a Gemfile? E. g. if you want to make Bundler act as if your old Rails version was compatible with a newer MySQL Gem:
gem 'rails', '3.2.5' do |spec|
  spec.override_runtime_dependency 'mysql', '< 5.0.0'
end
```

(Disclaimer: Just an idea, didn't really think this through.)

Thanks for the input, everyone.
Since this ticket isn't producing any new points for discussion, I'm going to lock it to collaborators until we have an RFC that discusses the tradeoffs involved and comes to conclusions about those tradeoffs that we can use as a basis for implementing something like this (or not, as the discussion goes).


Compatibility with OpenSearch 2.18.0

Description
We need to ensure the UI compatibility with the next version of OpenSearch v2.18.0
This update is still being discussed, but we need to be aware of potential issues.

[!note]
The compatibility for OS 2.18.0 is for Wazuh v5.0.0

For that, we need to:

[ ] Review opensearch and opensearch-dashboard latest stable changelog.
[ ] Identify improvements and potential impact on the UI.
[ ] Create new tracking and development branches.
[ ] Develop a testing environment to verify our components would work under this new build.

Issues

List here the detected issues

Review changelogs
OpenSearch Dashboards 2.18.0

Security:

update dompurify
update axios

[Experimental] Support user personal settings (https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7953)
Sample data added into new menu item
Enhanced saved query UX
Adds sample queries and saved queries to Discover no results page (https://github.com/opensearch-project/OpenSearch-Dashboards/pull/8616)
Update the appearance of Discover (https://github.com/opensearch-project/OpenSearch-Dashboards/pull/8651)
Truncate height of table cell in legacy discover (https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7178)
Enhancements and fixes related to workspaces
[Workspace] prepend workspace name and icon to breadcrumbs (https://github.com/opensearch-project/OpenSearch-Dashboards/pull/8303)
Added new translation languages
[Look&Feel] Updated Discover No Results panel (https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7891)

A pull request was created to add the Wazuh changes to the OpenSearch Dashboards 2.18.0 base tag: https://github.com/wazuh/wazuh-dashboard/pull/416

Theme changes to fix

[ ] Search bar Dashboard/Events
[ ] Buttons overlay hidden Dashboards/Events


ONMOVR.BIN - Decompress & Correctly dump text

This file has most player-relevant info, such as stats, gear, items, and others.

File uses Immediate Pointers, need pointer tables
The file uses some different compression method from OVR.BIN but is dump-able using BrightistFiler.
The file uses some English in SJIS format as well as some ASCII.
Refer to this file's specific wiki page for additions not listed here.

Acceptance Criteria:

[ ] Correctly identify and list all displayable text within the executable [Use abcde potentially]
[ ] Add the collected text to the spreadsheet for translation
[ ] Reinsert the translated text alligned to the proper pointers
[ ] Test that the translation was successful [seperate from other file changes to verify it works / isolate issues]

Stewie was able to give the file a deeper look & re-run the file through the BrightisCompressor

The starter Sword appears to kept at 0x1235 using relative pointers
ONMOVR.BIN-Nov-10th.zip

gets loaded into memory at 0x8015F82C

There's a larger pointer table towards the bottom of the file [appears to start at 0x1178]

base offset starts at 8015F328

attached in the ZIP is the output of the BrightisCompressor, an Atlas script, and the output of the dump

I've re-ran the file through the BrightistFiler and gotten it split into 28 blobs/sectors.
Some are empty [0KB], but this is part of the design.
The output of the text will be in the spreadsheet at the root of the repo, but all pointers have yet to be found.

As of Nov. 23rd, I've had the blobs ran through with SJIS Dump, and have also gone through by sight of each blob to verify leading spaces and potential pointers.
It will be the file we use for our first test once we verify a best way to patch the file and move forward.
translations have also been done by hand, and will be made available in the next version of the spreadsheet.


Add an archive task to end of ETL Dag

In order to facilitate the validation of both harvested data and the transformed metadata a task should be added at the end of the ETL pipeline to archive the data.

[ ] Move the harvested data file to working/[data_path]/archive/data-[DATE TAG].csv
[ ] Copy the intermediate representation to working/[data_path]/archive/output-data-path-[DATE TAG].ndjson (note: this needs to be a copy and not a move as indexing of the data file is likely to still be accessing the file.)

@aaron-collier one question I had about this is whether it needed to account for .json files? Are we persisting those now as part of the harvesting process?


supabase-cli: 1.167.4 -> 1.168.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for supabase-cli is: A CLI for interacting with supabase
meta.homepage for supabase-cli is: https://github.com/supabase/cli
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.168.1 with grep in /nix/store/cl08jf296s6iqr6kywf11rng4q3bb41a-supabase-cli-1.168.1
found 1.168.1 in filename of file in /nix/store/cl08jf296s6iqr6kywf11rng4q3bb41a-supabase-cli-1.168.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

supabase-cli

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/cl08jf296s6iqr6kywf11rng4q3bb41a-supabase-cli-1.168.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A supabase-cli https://github.com/r-ryantm/nixpkgs/archive/82a02ca25b3a3a27bf20b9525c771ac72e458972.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/82a02ca25b3a3a27bf20b9525c771ac72e458972#supabase-cli

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/cl08jf296s6iqr6kywf11rng4q3bb41a-supabase-cli-1.168.1
ls -la /nix/store/cl08jf296s6iqr6kywf11rng4q3bb41a-supabase-cli-1.168.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

1 package built:

supabase-cli

Maintainer pings
cc @Gerschtli @kashw2 for testing.

@NixOS/nixpkgs-merge-bot merge


extract key from json

TL;DR
i like to have a secret written in json, so I can have multiple secret accessed by different field
Detailed design
is it possible to have logic to access a key to that secret the way that external secret does it
Additional information
No response

is it possible to have logic to access a key to that secret the way that external secret does it

What do you mean?

The reason why I am asking is that currently there is not a way for me for mask output from a step within an expression
  - uses: "google-github-actions/auth@v2"
    with:
      project_id: ${{ inputs.projectId }}
      credentials_json: "${{ secrets.GCP_CREDENTIALS }}"

  - id: fetch-secret
    uses: google-github-actions/get-secretmanager-secrets@v1
    with:
      secrets: |-
        secrets:projects/${{ inputs.projectId }}/secrets/${{ inputs.dbSecretName }}/versions/latest

  - id: pg-password
    name: mask the password
    run: |
      echo ${{fromJSON( steps.fetch-secret.outputs.secrets )[inputs.dbSecretPasswordField]}}

the echo always output the value and add-mask does not work  (https://github.com/actions/runner/issues/475)
thus can we add accessor key for me to get the right value?

external secret reference refers to
in external secret, i can store my secret in json
then i can refer the value like below
data:
- secretKey: "POSTGRES_PASSWORD"
remoteRef:
key: test-api
version: latest
property: POSTGRES_PASSWORD # JSON property

  - id: fetch-secret
    uses: google-github-actions/get-secretmanager-secrets@v2
    with:
      secrets: |-
        secrets:projects/${{ inputs.projectId }}/secrets/${{ inputs.dbSecretName }}/versions/latest

  - id: pg-password
    name: mask the password
    env:
      SECRET: '${{ steps.fetch-secret.outputs.secrets }}'
    run: |
      VALUE1="$(jq .key1 <<< "${SECRET}")"
      VALUE2="$(jq .key2 <<< "${SECRET}")"
      echo "::add-mask::${VALUE1}"
      echo "::add-mask::${VALUE2}"

You can use jq or similar tools for parsing the json and extracting the values. We're not going to natively support this feature, because it then opens the door for supporting YAML and TOML and other arbitrary configuration formats stored in secrets.


fix: upgrade Ray to 2.30

Feature or Bugfix

Bugfix

Detail

upgrade Ray to 2.30

Relates

Supersedes #2868

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 74dba248bd4db3d937eece8a607eafd5121312ae
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 74dba248bd4db3d937eece8a607eafd5121312ae
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: aa179ec97dc764d17fe5ec6a29b89482ab33aba5
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: aa179ec97dc764d17fe5ec6a29b89482ab33aba5
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: d04e4c19ea5255df8300518bb10a12f8f11bd3f0
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: a1e6f3c5deb2115cc970f1c84748fbe48ba76c1c
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: d04e4c19ea5255df8300518bb10a12f8f11bd3f0
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: fc6ecffdd47df73a23b3034279de265b1fdca7cf
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: fc6ecffdd47df73a23b3034279de265b1fdca7cf
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 2190bac35be113c21b4434e13c4ec504273a64ef
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 96840d8d551c29ad80796bb4206a7f9c27b11e75
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 96840d8d551c29ad80796bb4206a7f9c27b11e75
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubCodeBuild8756EF16-4rfo0GHQ0u9a
Commit ID: 1a0f806f5e36ec5d471a80011451c1d8d9a29c90
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: GitHubDistributedCodeBuild6-jWcl5DLmvupS
Commit ID: 1a0f806f5e36ec5d471a80011451c1d8d9a29c90
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


v3 (current master): bug in options/opts

bug in index.js#L29-L33, no way to provide duration, limited and max from the main opts object
released by https://github.com/tunnckoCore/koa-better-ratelimit/commit/b5a26d47d349684389068e98ee9a8a5d023e83eb

Soooo it;s a bug with options. How to be further?

Any eta on this?

I'm just very busy that last month - university exams and etc. So, I can try to release it upcoming week. And maybe today can push some readme.

@maotora yea! Definitely! I'm very sorry about this.


Module Missing: Module not found: Can't resolve 'highlight.js/lib/highlight'

I cloned the repo from here https://github.com/Hacker0x01/react-datepicker
Follow the instruction for the setup Link
Getting error Module not found: Can't resolve 'highlight.js/lib/highlight'

I have the same problem


disabling onboarding PR, squashing, and signing commits

Hi,
~Can you tell me the config option for disabling an initial onboarding PR?  I've scoured the documentation, and sure I found it, not can't seem to find it again 🤦♂~ onboarding: false
Also can you tell me if it is possible for the commits to be squashed when maintaining a package.json and a package-lock.json?  At the moment it appears that Renovate is creating two separate commits with an identicle commit message.
Finally what would be the equivalent of using the --signoff and --sign options when doing the git commit ?
Thanks

Which platform are you using? GitHub or GitLab?

I'm using GitLab, the config so far is:
module.exports = {
    autodiscover: true,
    automerge: false,
    commitMessage: '{{semanticPrefix}}Update {{depName}} to {{newVersion}}',
    endpoint: 'https://x.y.z/api/v4',
    onboarding: false,
    platform: 'gitlab',
    prCreation: 'immediate',
    semanticCommits: true,
    timezone: 'Europe/London'
}

Initial observations are autodiscover setting is being applied, but onboarding and commitMessage are not.
In terms of how it is being executed within GitLab CI:
stages:
    - maintenance

renovate:
    stage: maintenance
    tags: docker
    image: node:alpine
    before_script:
        - npm install -g renovate --production
    script:
        - renovate group/repo

onboarding: false should work. If not then it’s a bug.
If you can replicate the “double commits” in a public gitlab.com repo that I can clone then that will help me get to the bottom of that faster too

From: Adam Moss<EMAIL_ADDRESS>Sent: Saturday, February 10, 2018 2:50:14 PM
To: renovateapp/config-help
Cc: Rhys Arkins; Comment
Subject: Re: [renovateapp/config-help] disabling onboarding PR, squashing, and signing commits (#12)
I'm using GitLab, the config so far is:
module.exports = {
autodiscover: true,
automerge: false,
commitMessage: '{{semanticPrefix}}Update {{depName}} to {{newVersion}}',
endpoint: 'https://x.y.z/api/v4',
onboarding: false,
platform: 'gitlab',
prCreation: 'immediate',
semanticCommits: true,
timezone: 'Europe/London'
}
Initial observations are autodiscover setting is being applied, but onboarding and commitMessage are not.
In terms of how it is being executed within GitLab CI:
stages:
- maintenance
renovate:
stage: maintenance
tags: docker
image: node:alpine
before_script:
- npm install -g renovate --production
script:
- renovate group/repo
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/renovateapp/config-help/issues/12#issuecomment-364656313, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGBPaBeYptCN2Dkw73kqjjvbzFmrji92ks5tTZ6VgaJpZM4SA7VW.

Commit author and signing is not supported on GitLab yet, you are welcome to submit a PR for it the author part but GitLab does not support signing via API yet

From: Adam Moss<EMAIL_ADDRESS>Sent: Saturday, February 10, 2018 2:50:14 PM
To: renovateapp/config-help
Cc: Rhys Arkins; Comment
Subject: Re: [renovateapp/config-help] disabling onboarding PR, squashing, and signing commits (#12)
I'm using GitLab, the config so far is:
module.exports = {
autodiscover: true,
automerge: false,
commitMessage: '{{semanticPrefix}}Update {{depName}} to {{newVersion}}',
endpoint: 'https://x.y.z/api/v4',
onboarding: false,
platform: 'gitlab',
prCreation: 'immediate',
semanticCommits: true,
timezone: 'Europe/London'
}
Initial observations are autodiscover setting is being applied, but onboarding and commitMessage are not.
In terms of how it is being executed within GitLab CI:
stages:
- maintenance
renovate:
stage: maintenance
tags: docker
image: node:alpine
before_script:
- npm install -g renovate --production
script:
- renovate group/repo
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/renovateapp/config-help/issues/12#issuecomment-364656313, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGBPaBeYptCN2Dkw73kqjjvbzFmrji92ks5tTZ6VgaJpZM4SA7VW.

Ok on the PR, will take a look at that 👍
Interestingly running that on gitlab.com and the onboarding thing appears to have worked, will do some more digging on-prem.
Public repo with 2 commits here: https://gitlab.com/adam-moss/renovate-test/merge_requests/1/commits

Right on the squashing thing I think it is because the GitLab interface is using the CreateFile and UpdateFile methods of the File api, which will implicitly create a commit for each action.
I think it would need to be refactored to use the Commits api (https://docs.gitlab.com/ee/api/commits.html#create-a-commit-with-multiple-files-and-actions) which appears to be similar to the way the GitHub interface does it.

Is the commits API available for CE edition too?

From: Adam Moss<EMAIL_ADDRESS>Sent: Sunday, February 11, 2018 12:21:01 PM
To: renovateapp/config-help
Cc: Rhys Arkins; Comment
Subject: Re: [renovateapp/config-help] disabling onboarding PR, squashing, and signing commits (#12)
Right on the squashing thing I think it is because the GitLab interface is using the CreateFile and UpdateFile methods of the File api, which will implicitly create a commit for each action.
I think it would need to be refactored to use the Commits api (https://docs.gitlab.com/ee/api/commits.html#create-a-commit-with-multiple-files-and-actions) which appears to be similar to the way the GitHub interface does it.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/renovateapp/config-help/issues/12#issuecomment-364743883, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGBPaMZZne-Lf8VJyrpa-9j5tyoAVHO_ks5tTs0dgaJpZM4SA7VW.

Looks like it - https://docs.gitlab.com/ce/api/commits.html#create-a-commit-with-multiple-files-and-actions
(full reference: https://docs.gitlab.com/ce/api/README.html)

I've also raised https://gitlab.com/gitlab-org/gitlab-ce/issues/42996 for signing to be included in the API and will draw it to the attention of my GitLab account manager tomorrow 👍

Yes, that API looks promising. It’s definitely best to have a single commit. Would you like to raise an issue for it?

Done, https://github.com/renovateapp/renovate/issues/1508 refers

Closing this, I think we're sorted with the exception of the signing element which requirements a downstream amendment.


Issue with Apple CarPlay

Tested Background plugin with CarPlay.It is blocking streaming apps from playing via Apple CarPlay, which I think is a symptom of the larger background problem.
1.) In my car, when app is opened and I try to play music on my phone through another streaming service, the music from the streaming service bypasses the car system and directly plays through the iPhone speakers.
When I force quit app, the music starts playing through the car speaker system via CarPlay

Sadly i'm not as much into this deep in native ios development. I did some research but don't found something. Also i can't reproduce/ test this.
So if you can fix this and create a PR i will love to merge it!


have the right access to CQD power BI reports

@JohanFreelancer9 Copy editing is needed for this PR. Thanks.


MediaPlayer instance being recreated rather than reused in conditional rendering of Modal

Related Problem:
I currently am trying to render the video on the page (successful in doing so). However, I added a button to render that instance in a Modal (for our business needs). I added the code snippet below as well as a video
const VidstackPlayer = () => {
  const [isTimelinePlayerOpen, setIsTimelinePlayerOpen] = useState(false)

  const player = useRef(null)
  const mediaRef = useRef()
  const { controlsVisible } = useMediaStore(player)

  const togglePlayerContainer = () => {
    setIsTimelinePlayerOpen(!isTimelinePlayerOpen)
  }

  const vidPlayer = (
    <MediaPlayer
      ref={player}
      crossorigin
      title="Sprite Fight"
      className="player"
      src="https://stream.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/low.mp4"
    >
      <MediaProvider ref={mediaRef}>
        <Poster
          className="vds-poster"
          src="https://image.mux.com/VZtzUzGRv02OhRnZCxcNg49OilvolTqdnFLEqBsTwaxU/thumbnail.webp?time=268&width=1200"
          alt="Girl walks into campfire with gnomes surrounding her friend ready for their next meal!"
        />
        {textTracks.map((track) => (
          <Track {...track} key={track.src} type={track.type} />
        ))}
      </MediaProvider>

      <DefaultAudioLayout ... />
      <DefaultVideoLayout ... />
    </MediaPlayer>
  )

  return (
    <>
      <div className="player-container2">
        {vidPlayer}
        {controlsVisible && (
          <button className="timeline-button" onClick={togglePlayerContainer}>
            Timeline
          </button>
        )}
      </div>
      <Modal isOpen={isTimelinePlayerOpen} onClose={togglePlayerContainer}>
        <ModalOverlay bg="blackAlpha.800" />
        <ModalContent maxW="60vw">
          <Box>{vidPlayer}</Box>
        </ModalContent>
      </Modal>
    </>
  )
}

Describe:
It should ideally keep the MediaPlayer instance and maintain state rather than creating a new instance.

This is actually how React works, you're creating new DOM nodes at each of the {vidPlayer} locations. If you'd like to move the player to a new place in the DOM like a Modal, you'll most likely need to use React portal to do so.

i wasn't able to get it to work with React's portal, since it would need conditional placement based on if the Modal is present or not (though I'm pretty sure it's possible). I ended up using https://github.com/httptoolkit/react-reverse-portal.


Opened editors view: weird behaviour when deleting a file

Steps to Reproduce:

configure "workbench.editor.closeOnFileDelete": false
open a file
delete it on disk

=> you should see the file tab getting a "(file deleted on disk)" annotation
=> somehow the opened editors view still shows the entry but you cannot click it and it also does not update until you open another file

Previously I was creating an OpenEditor from an event so the tree could know which object to refesh - I do not have a map from editor + group to OpenEditor already created.
I simplified this and am now just refreshing the whole group. This seems to work nicely and hopefully does not break anything specified in https://github.com/microsoft/vscode/issues/6670

Closing as will not fix due to no user complained, and the fix is not trivial. Also I do not think the issue is mayor.


Update of RADIUS server certificates - how to do that

Created a separate branch to work on this topic. Seems a bit more complicated than expected and equally "well-documented" by Ubiquiti as usual.
Linked with issue #12 and PR #13

@alxwolf
Let me know how I can help. I’m also happy to test.

FYI (and you probably already know this): I was able to regenerate the original UBIOS RADIUS certificates by renaming/removing the /mnt/data/udapi-config/raddb/certs/server.pem certificate and server-key.pem key and restarting the UDM.
In the course of my earlier testing, I lost my backup of the original UBIOS RADIUS cert. Since the ca.cer in that directory was likely used to create more certificates, I figured it might recreate the RADIUS cert if it was missing.
NB: I had to completely reboot the UDM to get the cert/key to regenerate. I tried /usr/sbin/rc.radiusd restart after rm server.pem and rm server-key.pem but it did not recreate the cert/key pair.

@OverengineeredNetwork could you try the following please - if possible.
/etc/init.d/S45ubios-udapi-server restartcould do the trick to get the LE certificate enabled for RADIUS.

@alxwolf,
Well, I thought running /etc/init.d/S45ubios-udapi-server restart went smoothly.
Stopping ubios-udapi-server watchdog: OK
Stopping ubios-udapi-server: ........................OK
Starting ubios-udapi-server: OK
Starting ubios-udapi-server watchdog: OK

I was able to disjoin and re-join my RADIUS-Authenticated WiFi Network without any certificate errors.
However, I could not browse to any websites or post this reply. It was as if DNS was down. Other RADIUS-Authenticated WiFi clients also lost the ability to resolve public hostnames.
I was able to restore functionality by running the reboot command you suggested.

@OverengineeredNetwork
Thanks for being so quick in testing it. Do yo run pi-hole as DNS on the UDM Pro (I do that)? Had the same issue (must reboot).
Are now the correct certificates installed for the Radius server?

I just saw I received a few notifications from my controller too.

I've been getting these errors recently. I'm not sure if they were related to our testing or when I upgraded the firmware from UniFi 1.10.4 to 1.11.0 (7 days after our testing).
I use AdGuardHome which runs as a podman container.
I can confirm that it is still serving the correct certificate for RADIUS-Authenticated WiFi supplicants.

Those iOS notifications from the controller don't do anything. Everything works. I just get these notifications occasionally.
I "forgot" the RADIUS WiFi network on my iPhone and Mac and rejoined them anew. Everything worked as expected.

Based on this testing, I

Replaced line 64 (/usr/sbin/rc.radiusd restart) in /mnt/data/ubios-cert/ubios-cert.sh with reboot
Forced a renew sh /mnt/data/ubios-cert/ubios-cert.sh forcerenew
Ran a deployment (to get the add_radius function to run): sh /mnt/data/ubios-cert/ubios-cert.sh deploy

Deploying certificates and restarting UniFi OS
New certificate was generated, time to deploy it
[buncha hex]
Checking if Captive Portal certificate needs update.
New certificate was generated, time to deploy it
Checking if RADIUS server certificate needs update.
New certificate was generated, time to deploy to RADIUS server
New RADIUS certificate deployed.
unifi-os: Stopping unifi-os
unifi-os: Stopping unifi-os unifi-core.service
unifi-os: Stopping unifi-os unifi-protect.service
unifi-os: Stopping unifi-os unifi.service
unifi-os: Stopping unifi-os unifi-base-ucore.service
unifi-os: Stopping unifi-os postgresql.service
unifi-os: [buncha hex]
unifi-os: Stopping unifi-os SSH daemon... OK
unifi-os: Starting unifi-os
unifi-os: Stopping unifi-os SSH daemon... OK
unifi-os: Starting unifi-os SSH daemon... OK
unifi-os: unifi-os

All of my wifi devices seemed to keep their connection to the SSID, but I couldn't navigate anywhere. I had to toggle wifi off and on again to accept the NEW RADIUS cert on each device. I noticed this time that my Mac didn't report problems with the cert like it had before. I confirmed that the /mnt/data/udapi-config/raddb/certs/server.pem in place was the current one and not the fullchain.
Once I accepted the new RADIUS cert on my devices, I checked to see if the cert had been applied to my controller and my AdGuardHome podman container. Everything works as expected.
Whatever that reboot command does, it seems more effective than the others we've tried. I'm not sure if its overkill to use the command or if it's a "dirty" shutdown.

@CaseyTal so. Good news is I got it sorted out "in principal"™
bad news is: won't be able to offer it for V1.x (due to lack of equipment for testing), but nobody should care as we should all move to V2.0 (or V3.0 soon).
Plus, right now I can only make free radius read the new certificate by rebooting the box, like stated here by @tackynugget. So, some more research required.

Fair enough. Have you made any changes to the files yet? I'm on 2.x, so that's fine by me!
And the reboot would only be once, correct? OR would that be required in the event of a power outage as well?

@CaseyTal you could try the main branch now, as I believe I've been able to sort it out now.
At first login, devices will (might?, only tried with a Mac and iOS) ask you to nod off the certificate - but at least now the right name is displayed, not "UbiOS Radius etc."
@tackynugget, thanks for the effort you put into deciphering what UI does. With 2.x, I've been able to get it to work (i.e., updated cert presented) by restarting the service with systemctl restart udapi-server, without requiring to reboot.

Still getting "Syntax error: newline unexpected"

Still getting "Syntax error: newline unexpected"

Which DNS provider do you use? in case it's not GoDaddy, you must comment out
# GoDaddy
export DNS_API_PROVIDER="dns_gd"
export GD_Key=<KEY>
export GD_Secret=<SECRET>

the <> will break parsing the file


Math.h - Unable to find external method sin(D)D

Consider the following, run in the Docker given by the readme:
root@ebb1c6a0a0c2:/test# cat test.c
#include <math.h>

int main(int argv, char ** argc) {
    double d = sin(4.0);
    return 0;
}
root@ebb1c6a0a0c2:/test# lljvm-cc test.c -o test
Unable to find external method sin(D)D

It's expected this should work, right?  Am I missing something?

Ah, wait - apparently I need -lm.  So like: lljvm-cc -lm test.c -o test.  That appears to work.


feat(p2p): remove conngater dependency

libp2p conngater is exact type and not an interface, which makes it impossible to  modify or mock its functionality on client side. Replaces libp2p conngater dependency with callback func, to allow easy mocking for clients.
Required by https://github.com/celestiaorg/celestia-node/issues/2702

Codecov Report

Merging #107 (e8b49e3) into main (a6544e3) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #107   +/-   ##
=======================================
  Coverage   68.60%   68.60%
=======================================
  Files          37       37
  Lines        2934     2934
=======================================
  Hits         2013     2013
  Misses        770      770
  Partials      151      151

Files Changed
Coverage Δ

p2p/exchange.go
82.17% <100.00%> (ø)

p2p/peer_tracker.go
78.75% <100.00%> (ø)

Well, actually, it would be nice to make a local interface, that has BlockPeer on it. In the future when we need more methods of PeerGater, we will then just add them, instead of breaking again.

If we create a interface and change it later, it would break api, because old interface will not satisfy new one. So we can defer creation of extra abstraction until we need it.

I mean adding more methods of PeerGater interface which BasicConnGater satisfies


Str is not callable

Bot has launched, shows account balance but after that, at line 942 (binance futures), (ohlcv update)
Error : Str is not callable

Hi, can you specify in more detail what are you trying to run and whether any changes have been made prior to running it? Is it binance testnet? Are you using a custom strategy of yours or one of the reference strategies?

Str

`

Error photo is attached. I have used Windows 7, Python 3.8, Pycharm ide. What about your pc. Which operating system, Python version and IDE use?


Knative eventing roadmap for riff

This issue outlines key enhancements to knative/eventing for riff.
The short term goal is to achieve parity with pre-Knative riff in terms of being able to connect functions over channels. The long term goal is to enable Knative as a platform for event stream processing.
event traffic

[ ] response chaining - https://github.com/knative/eventing/issues/216
[ ] ingress/gateway for directing external event to channels
[ ] simple HTTP event output wiring

streaming

[ ] non HTTP protocol support e.g. gRPC
[ ] separate event streams for input and ouput
[ ] windowing support

buses

[ ] document configuration - https://github.com/knative/eventing/issues/282
[ ] report channel and subscription status - https://github.com/knative/eventing/issues/285
[ ] move to separate repos - https://github.com/knative/eventing/issues/289
[ ] redis bus

Our roadmap for Knative Eventing is not to use Knative Eventing.


When I click the submit button, how do I trigger the error returned by the backend API to be displayed in the error message?

//处理提交（字段有效或无效都会执行）
  handleSubmit(event, errors, values) {
    //console.log(event, errors, values);
  }

  //后端交互并返回错误信息
  validate(value, ctx, input, cb){
    cb('123');
  }
...
<AvForm
                      className="av-tooltip"
                      onSubmit={this.handleSubmit}
                    >
                      <AvField name="username" label="手机号 / 邮箱" type="text" errorMessage={this.props.user.errors[0]} validate={{async: this.validate}} />

                      <AvField name="password" label="密码" type="text" errorMessage={this.props.user.errors[0]} validate={{async: this.validate}} />

                          <AvField name="captcha_code" label="验证码" type="text" errorMessage={this.props.user.errors[0]} validate={{async: this.validate}} />

                           this.props.reCaptcha() }
                            style={{cursor:'pointer'}}
                          />

                        <NavLink to={`/forgot-password`}>
                          忘记密码？
                        </NavLink>
                        <Button
                          color="primary"
                          className="btn-shadow"
                          size="lg"
                        >
                          登录
                        </Button>

                    </AvForm>

How do I trigger an error returned by the backend API to display in the error message when I click the Submit button? Instead of triggering an API request when the input box loses focus. Because my verification code has been deleted when the request is successful, click the button verification code error

One workaround would be to track the state of the validation and then in your async validator, check whether the field has already been validated.

I converted a line of thought, because just click the button to make an api request, and update the error information returned by the api to the corresponding field. Then I should use the form's handleSubmit event. I can't change the validation status and error information of the AvField component from the handleSubmit function. This makes me very headache

@TheSharpieOne As you said. Use FormFeedback to manage and display. But now, it is found that FormFeedback is based on the verification status of AvGroup AvInput. Is there a way to directly trigger the error in this field. Or does the component have a way to listen for manual triggers?

I'm a little late to the party here, but hope this helps someone:
I had the same problem. In my server response (after submitting the form) I'm passing back a list of error messages and saving them to local state. Similar to @noecs I set up a custom validation rule to check if an error message exists for a field in local state.
The missing piece was I needed a way to force trigger the form fields to run validation again AFTER I get the response back from the server.
You can do this with by creating a ref on the form.
this.form = React.createRef();
Then in your response callback you can trigger a revalidation and update using
this.form.current.validateAll(values, true);
Example:
class ServerValidationExample extends Component {
    constructor(props) {
        super(props);

        this.state = {
            values: {},
            errors: [],
            serverErrors: {},
        };

        this.form = React.createRef();
        this.handleValidSubmit = this.handleValidSubmit.bind(this);
        this.handleInvalidSubmit = this.handleInvalidSubmit.bind(this);
        this.handleServerSubmit = this.handleServerSubmit.bind(this);
        this.serverValidate = this.serverValidate.bind(this);
    }

    handleInvalidSubmit(event, errors, values) {
        this.setState({ errors, values });
    }

    handleValidSubmit(event, values) {
        this.setState({ values });

        // client-side validation passed,
        // OK to make server request
        this.handleServerSubmit();
    }

    handleServerSubmit() {
        const { values } = this.state;

        somePromiseBasedRequest().then(
            response => {
                // where the server response data contains
                // success: bool,
                // message: string,
                // errors: obj like { 'name': 'No nicknames!' }

                const { success, message, errors } = response.data;

                if (success) {
                    // success case, do whatever...

                    this.setState({ serverErrors: {} });

                } else {
                    // failure case.

                    // set serverErrors state, then force
                    // all the form fields to re-validate to update the UI.
                    this.setState({ serverErrors: errors }, () => {
                        if (this.form.current) {
                            this.form.current.validateAll(values, true);
                        }
                    });
                }
            }
        );
    }

    // special validation rule to check against any
    // serverErrors that may exist for this field.
    serverValidate(value, context, input, callback) {
        let serverError = this.state.serverErrors[input.props.name];
        if (typeof serverError == "undefined") serverError = true;
        callback(serverError);
    }

    render() {
        return (
            <AvForm
                onValidSubmit={this.handleValidSubmit}
                onInvalidSubmit={this.handleInvalidSubmit}
                ref={this.form}
            >
                <AvField
                    label="What is your name?"
                    name="name"
                    type="text"
                    validate={{
                        required: {
                            value: true,
                            errorMessage: "Please enter your name"
                        },
                        server: this.serverValidate
                    }}
                />
                <Button color="primary">Submit</Button>
            </AvForm>
        );
    }
}


Integration work only until container recreation/restart

Describe the bug
Integration stops working after container with home assistant is restarted or is recreated:

If it enters that state I have to remove the sync boxes from the integration and readd them pushing the button on them.
To Reproduce
Configure sync box. Restart container.
Expected behavior
Integration should work normally after restart
Diagnostics
2023-12-13 20:35:27.798 DEBUG (MainThread) [aiohuesyncbox.huesyncbox] get, https://_<IP_ADDRESS>:443/api/v1, None
2023-12-13 20:35:27.799 DEBUG (MainThread) [aiohuesyncbox.huesyncbox] get, https://_<IP_ADDRESS>:443/api/v1, None
2023-12-13 20:35:39.256 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry Katarzyna's Sync Box for huesyncbox: Timeout requesting data from <IP_ADDRESS>
Traceback (most recent call last):
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 216, in request
    async with self._clientsession.request(
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1187, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 601, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 960, in start
    with self._timer:
  File "/usr/local/lib/python3.11/site-packages/aiohttp/helpers.py", line 735, in __exit__
    raise asyncio.TimeoutError from None
TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/huesyncbox/__init__.py", line 45, in async_setup_entry
    await api.initialize()
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 163, in initialize
    await self.update()
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 174, in update
    response = await self.request("get", "")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 237, in request
    raise RequestError(
aiohuesyncbox.errors.RequestError: Timeout requesting data from <IP_ADDRESS>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 402, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/huesyncbox/__init__.py", line 50, in async_setup_entry
    raise ConfigEntryError(err) from err
homeassistant.exceptions.ConfigEntryError: Timeout requesting data from <IP_ADDRESS>
2023-12-13 20:35:39.260 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry TV Sync Box for huesyncbox: Timeout requesting data from <IP_ADDRESS>
Traceback (most recent call last):
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 216, in request
    async with self._clientsession.request(
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1187, in __aenter__
    self._resp = await self._coro
                 ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 601, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 960, in start
    with self._timer:
  File "/usr/local/lib/python3.11/site-packages/aiohttp/helpers.py", line 735, in __exit__
    raise asyncio.TimeoutError from None
TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/huesyncbox/__init__.py", line 45, in async_setup_entry
    await api.initialize()
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 163, in initialize
    await self.update()
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 174, in update
    response = await self.request("get", "")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/deps/lib/python3.11/site-packages/aiohuesyncbox/huesyncbox.py", line 237, in request
    raise RequestError(
aiohuesyncbox.errors.RequestError: Timeout requesting data from <IP_ADDRESS>

Logging
If there are errors in the Home Assistant logs please add them here.
Environment
Provide details about the versions you are using, which helps to reproduce and find the issue quicker.

Home Assistant Core version:  2023.12.2
Home Assistant operating environment (OS/Container/Supervised/Core):  Container
Huesyncbox integration version:  v<IP_ADDRESS>
Last working version (if known):  Unknown

Additional info
Add any other info about the problem here.

I tested overall conectivity and it looks good:
>>> requests.get("https://<IP_ADDRESS>:443/api/v1", verify=False)
/usr/lib/python3/dist-packages/urllib3/connectionpool.py:1020: InsecureRequestWarning: Unverified HTTPS request is being made to host '<IP_ADDRESS>'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  warnings.warn(
<Response [401]>

The only idea I have is that there is "_" in the address? Or it is just the log...?
2023-12-13 20:35:27.798 DEBUG (MainThread) [aiohuesyncbox.huesyncbox] get, https://_<IP_ADDRESS>:443/api/v1, None
2023-12-13 20:35:27.799 DEBUG (MainThread) [aiohuesyncbox.huesyncbox] get, https://_<IP_ADDRESS>:443/api/v1, None

The _ is only in the log. I add the _ to force a name lookup as the name resolver seemed the only place I could hook into the certificate validation. I should probably improve that log because it confused me also when I was just looking at it. If the _ somehow did not get fixed it should result in a host not found like error, not a timeout.
I am wondering what could be causing this.
At first glance it seems a network issue, but not sure how that would be triggered.
Does this only occur when restarting the whole container or also when you just reload the integration or disable and enable it again?
My normal HA is Home Assistant OS and my dev environment is a manual install on Python, so I will need to setup a container and see if I can reproduce it.
How are you running your container? Docker or something else? Which OS?

Thinking about this a bit more I think there are 2 problems.

it is running into a timeout when starting the container. The timeout is 10 seconds. that should be plenty of time to setup the connection. Could it be that the system is just really busy when starting the container and it does not have enough CPU power to handle the connection in time?

After a setup failure HA should retry setting up the integration again. It looks like I am using the wrong error in the integration, so that explains why it does not retry. I will at least get that fixed soon.

No. My nas is doing almost nothing..  load average: 0.94, 1.41, 0.84 and I have 4 cores..(i3-8100T).
Thanks.

I also did one more test - I disconnected second Hue Sync Box, to make sure this is not a problem with having 2.
Component reload does not break anything.
Container restart with one sync box configured and connected to the network is also braking it.
Disabling and enabling the integration does not break it.
So maybe the fix will work.

I just released 2.0.1 which lets Home Assistant retry the setup if it fails.
Could you give it a try when you have time?

I just updated. I did try to restart the home assistant container and also recreate it. It works with two Sync Boxes configured.
Thank you!

Hmm, with the 2.0.1 update now my Hue integration fails to start ("Failed setup, will retry") after restarting HA.  No issues with 2.0.0.


Add contributor info

🆕🐥 First Timers Only
This issue is reserved for people who never contributed to Open Source before. We know that the process of creating a pull request is the biggest barrier for new contributors. This issue is for you 💝
🚨About the Eclipse Contributor Agreement (ECA)
Since Adoptium is a top level project of the Eclipse Foundation only people that have (digitally) signed the Eclipse Contributor Agreement (ECA) are allowed to contribute to Adoptium. This will automatically be checked in each pull request and pull requests from developers that have not signed the ECA can not be accepted. Luckily the workflow to digitally sign the ECA is very easy. All you need is an account at the Eclipse Foundation. Once you have an account you can easily sign the ECA here.
👾 Description of the issue
We want to have a CONTRIBUTING.md file in the repo. A good example of such file can be found here. The must must contain the section regarding the "Eclipse Contributor Agreement".
📋 Step by Step
To solve this issue and contribute a fix you should check the following step-by-step list. A more detailed documentation of the workflow can be found here.

[ ] Claim this issue: Comment below.
[ ]  Fork the repository in github by simply clicking the 'fork' button.
[ ]  Check out the forked repository
[ ]  Create a feature branch for the issue. We do not have any naming definition for branches.
[ ]  Commit your changes.
[ ]  Check that you have signed the Eclipse Contributor Agreement (ECA) here.
[ ]  Start a Pull Request.
[ ]  Done 👍 Ask in comments for a review :)
[ ]  If the reviewer find some missing peaces or a problem he will start a discussion with you and describe the next steps how the problem can be solved.
[ ]  You did it 🎉 We will merge the fix in the master branch.
[ ]  Thanks, thanks, thanks for being part of this project as an open source contributor ❤

🎉 Contribute to Hacktoberfest
Solve this issue as part of the Hacktoberfest event and get a change to receive cool goodies like a T-Shirt. 🎽
🤔❓ Questions
If you have any questions just ask us directly in this issue by adding a comment. You can join our community chat at Slack. Next to this you can find a general manual about open source contributions here.

Hello!
Could I work on this issue?
Thank you so much!


yolov4

I implemente csd with scaled-yolov4, but it's AP is decreased. have you plans to try it ?

Unfortunately, no, as Detectron2 does not support YOLO. But I'm not surprised that AP is decreased as that is what I also faced in my experiments.
Have you tried newer methods like Unbiased Teacher? Motivated by FixMatch, I believe, it is way better, and they report outperforming CSD nearly 10x on some setups.

My colleague is researching unbiased-teacher,  I will try it soon.
CSD is more simple, but as far as I consider, for semi-supervised, self-training method maybe more valid.

I ran more experiments on VOC and just added a table with the results. CSD did not help me in any of the cases.

Just wanted to let you know that I found a bug in my code, and after fixing it the CSD method started to bring improvements of about 1% in many scenarios on VOC. So now I'm more positive about the method's applicability. Sorry for the confusion before.


phase_merge_jars: add separate merged output jars for external and in…

…ternal dependencies
*_external_deps_component.jar includes all external dependencies merged.
*_internal_deps_component.jar includes all internal dependencies merged (excluding the current app jar).
Description
We'd like to have new jar files produced that we can put into separate docker layers when creating docker images.
As I understand these are optional outputs. Could this be included in rules_scala?
Motivation
External dependencies do not tend to change so frequently, so we'd like to have a more stable docker layer for them.

@gergelyfabian this looks like a good case to be solved with a customized library rule. Have you considered adding outputs and replacing the phase_merge_jars for your needs?

Hmm... I have not considered that? Could you give some further guidance on the customized library rule?

Do you mean I could use a https://github.com/bazelbuild/rules_scala/blob/master/docs/customizable_phase.md?

Do you mean I could use a https://github.com/bazelbuild/rules_scala/blob/master/docs/customizable_phase.md?

yeah, that's what I mean. At Wix we use it quite a lot to do small customization like in this PR.
If you'll get stuck, let me know - I'll try to create a small example

I think I made it work. Thanks :)
Here is how I did it:
# tools/phase/BUILD:

package(default_visibility = ["//visibility:public"])

load("//tools/phase:phase_external_internal_jars.bzl", "phase_merge_external_internal_jars_singleton")

phase_merge_external_internal_jars_singleton(
    name = "phase_external_internal_jars",
)

# tools/phase/phase_external_internal_jars.bzl:

load("@io_bazel_rules_scala//scala:advanced_usage/providers.bzl", "ScalaRulePhase")

# Copied part of this code from rules_scala scala/private/phases/phase_merge_jars.bzl

# BEGIN copy.

def merge_jars_to_output(ctx, output, jars):
    """Calls Bazel's singlejar utility.

    For a full list of available command line options see:
    https://github.com/bazelbuild/bazel/blob/697d219526bffbecd29f29b402c9122ec5d9f2ee/src/java_tools/singlejar/java/com/google/devtools/build/singlejar/SingleJar.java#L337
    Use --compression to reduce size of deploy jars.
    """
    main_class = getattr(ctx.attr, "main_class", "")
    progress_message = "Merging Scala jar %s: %s" % (output, ctx.label)
    args = ctx.actions.args()
    args.add_all(["--compression", "--normalize", "--sources"])
    args.add_all(jars, map_each = _fileToPath)

    if main_class:
        args.add_all(["--main_class", main_class])
    args.add_all(["--output", output.path])

    args.set_param_file_format("multiline")
    args.use_param_file("@%s")
    ctx.actions.run(
        inputs = jars,
        outputs = [output],
        executable = ctx.executable._singlejar,
        mnemonic = "ScalaDeployJar",
        progress_message = progress_message,
        arguments = [args],
    )

def _fileToPath(file):
    return file.path

# END of copy.

def phase_merge_external_internal_jars(ctx, p):
    external_deps_component_jar = ctx.outputs.external_deps_component_jar
    internal_deps_component_jar = ctx.outputs.internal_deps_component_jar

    runtime_jars = p.compile.rjars
    internal_jars = []
    external_jars = []
    for jar in runtime_jars.to_list():
        if jar.short_path.startswith("../"):
            # External dependencies go here:
            external_jars.append(jar)
        elif jar != ctx.outputs.jar:
            # Internal dependencies go here (except the currently built thin jar):
            internal_jars.append(jar)

    merge_jars_to_output(ctx, external_deps_component_jar, external_jars)
    merge_jars_to_output(ctx, internal_deps_component_jar, internal_jars)

def _phase_merge_external_internal_jars(ctx):
    return [
        ScalaRulePhase(
            custom_phases = [
                ("after", "merge_jars", "merge_external_internal_jars", phase_merge_external_internal_jars),
            ],
        ),
    ]

phase_merge_external_internal_jars_singleton = rule(
    implementation = _phase_merge_external_internal_jars,
)

# custom library definition (in a .bzl file):

ext_external_internal_jars_phase = {
    "outputs": {
        "external_deps_component_jar": "%{name}_external_deps_component.jar",
        "internal_deps_component_jar": "%{name}_internal_deps_component.jar",
    },
    "phase_providers": [
        # We need to explicitly specify the "main" repository, as this will be executed by rules_scala (otherwise it would
        # interpret it as being in the rules_scala repository).
        "@//tools/phase:phase_external_internal_jars",
    ],
}

# I happen to use also scalafmt, so it's nice I can provide both...
scala_library = make_scala_library(ext_scalafmt, ext_external_internal_jars_phase)
scala_macro_library = make_scala_macro_library(ext_scalafmt, ext_external_internal_jars_phase)


add research branch

add domain specific packages and alternatives to research

candidates:

github.com/igrigorik/ga-beacon


chore(package): update rollup-plugin-commonjs to version 7.0.1

https://greenkeeper.io/

Codecov Report

Merging #60 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master     #60   +/-   ##
======================================
  Coverage    40.6%   40.6%
======================================
  Files           7       7
  Lines         133     133
======================================
  Hits           54      54
  Misses         79      79

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update af42e13...74d9b7b. Read the comment docs.


Add a sample of Firebase Authentication

What does this change?

Add a sample of Firebase Authentication.

What is the value of this and can you measure success?

Pass CI.

Codecov Report

Merging #45 (53d7404) into master (e035670) will decrease coverage by 5.76%.
The diff coverage is 11.86%.

@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
- Coverage   44.86%   39.09%   -5.77%
==========================================
  Files          38       46       +8
  Lines         555      665     +110
==========================================
+ Hits          249      260      +11
- Misses        306      405      +99

Impacted Files
Coverage Δ

lib/app.dart
75.00% <0.00%> (-6.82%)
:arrow_down:

lib/constants.dart
66.66% <ø> (ø)

lib/data/model/result.dart
12.00% <ø> (ø)

lib/data/provider/auth_data_source_provider.dart
0.00% <0.00%> (ø)

lib/data/provider/auth_repository_provider.dart
0.00% <0.00%> (ø)

lib/data/provider/firebase_auth_provider.dart
0.00% <0.00%> (ø)

lib/data/remote/auth_data_source_impl.dart
0.00% <0.00%> (ø)

lib/data/repository/auth_repository_impl.dart
0.00% <0.00%> (ø)

lib/ui/app_theme.dart
87.50% <ø> (ø)

lib/ui/detail/detail_page.dart
100.00% <ø> (ø)

... and 17 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e035670...53d7404. Read the comment docs.