Move clang version check from bindgen to libbindgen

I ran into some trouble testing build-time bindgen in Stylo today because I didn't realize I needed to set CLANG_PATH appropriately, and was getting nonsensical backtraces along with errors about undeclared identifiers in header files.  I think it'd be good to add a min_version: Option<clang_sys::CXVersion> to BindgenOptions, which Bindings::generate can then check against the returned version from clang_sys::support::Clang::find(), complaining if the version found isn't new enough, with a friendly error message.  Then Stylo can provide the appropriate version and everybody can walk away happy.

Or maybe an Option<ClangVersion>, since libbindgen appears to have its own notion of clang's version, for reasons that I do not understand.

Alternatively, after reading @fitzgen's explanation of bindgen, maybe bindgen itself should be doing the checking so that it catches configuration errors from the user.

We have https://github.com/servo/rust-bindgen/blob/a1e2029/bindgen/src/main.rs#L26-L43 for the bindgen executable. It would be good to have something similar for libbindgen as well, or to move that check into libbindgen.

FWIW I did this in https://github.com/servo/rust-bindgen/pull/793 but then we started running into libclang dynamic loading bugs and I left it at that.
If someone wants to try again, they might find that PR helpful. Or maybe not, its not like its a lot of code.


Migrations fail at 2014_05_24_082330_create_users_table

When I execute php artistan migrate I get the following exception:
php artisan migrate --force -v
Migration table created successfully.
Migrating: 2014_05_24_082330_create_users_table

   Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add un
ique `users_email_unique`(`email`))

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

After deleting the corresponding migration it procceds only to fail at 2014_10_12_100000_create_password_resets_table  with the exception
Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `password_rese
ts` add index `password_resets_email_index`(`email`))

MariaDB Server information: Server version: 10.1.37-MariaDB-0+deb9u1 - Debian 9.6

Hi Moritz,
Looks like this has to do with the max length of keys.
Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

I will take a look at this over the next days.

Hi again,
This might have to do with the character set define on your database. Laravel expects utf8mb4. Could you check what character set you've defined on your server?
If you're not using utf8mb4 you can fix this by adding the following code to the boot method of the  AppServiceProvider (You might have to fork the app).
Schema::defaultStringLength(191);

You can read more about this in the Laravel Docs (under the title "Index Lengths & MySQL / MariaDB") or in this Laravel News article.

Hi,
I've implemented the fix you proposed. It now is working just fine - thank you!

I've implemented this fix and it works fine - thank you!

An alternative is to upgrade your database software, because this error only seems to occur "if you are running a version of MySQL older than the 5.7.7 release or MariaDB older than the 10.2.2 release" (quoted from the docs)


better interaction logging

Codecov Report

Merging #984 (1ca02a8) into master (05383da) will increase coverage by 0.01%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master     #984      +/-   ##
==========================================
+ Coverage   81.39%   81.41%   +0.01%
==========================================
  Files         115      115
  Lines        3758     3761       +3
  Branches      115      115
==========================================
+ Hits         3059     3062       +3
  Misses        699      699

Impacted Files
Coverage Δ

.../bakery/interaction/RemoteInteractionService.scala
79.48% <0.00%> (-6.63%)
:arrow_down:

...r/runtime/serialization/InteractionExecution.scala
100.00% <ø> (ø)

...e/akka/actor/process_index/ProcessIndexProto.scala
99.50% <0.00%> (+1.48%)
:arrow_up:

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 05383da...1ca02a8. Read the comment docs.


adding css and styling cards

added hover effect...changed the colour of buttons...and little bit styling in cards. you can check the changes here:
https://nimbus1212.github.io/paper.lnmiit/

thanks for the PR. @nimbus1212

@goyal-sidd thanks for the merge...can i continue the same styling for the rest of the HTML files


[Doc Improvement][Verbatim - update design your app][2529379]

Updated introduction

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
94
3
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit ebc169c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/concepts/design/design-teams-app-basic-ui-components.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Double quote features in documentation for easier consumption

Double quotes feature names for easier cut/paste into Cargo.toml.
Closes #1597.

I tried to do this before. The trouble is that the " ends up as “ instead and you still end up having to replace those characters.

Yep, this isn't fixable without a rustdoc change or tons of html/css hackery which isn't worth it. How unfortunate.


Add Nodejs client

I built a rather simplistic client for Node.js.

Awesome!!! Thanks @m4grio!

My pleaseure!
If you happen to create an organisation for Kala in the future – and think the client I built is good enough to consider it official –, just let me know – will happily transfer my repo.

@m4grio Hmm interesting, I'll definitely keep that in mind. Thanks again!


Benchmarking a new load balancing algorithm

What should we add or change to make your life better?
We would like to benchmark a simple variant of the Two-Choice load balancing algorithm on YARP. Is there a recommended benchmark or a typical workload that you use?
The variant is the following: For each request,

Allocate to the least loaded of two randomly chosen servers (i.e., like Two-Choice) with probability β.
Otherwise, allocate to a random server.

Somewhat surprisingly we recently demonstrated in theory and simulations (paper, slides, visualisation) that for suitably chosen β, this outperforms Two-Choice when there is outdated information (RTT is large, there are multiple allocators) or there is noise. The main reason for this is that it allocates to lesser loaded servers less aggressively than Two-Choice, so that it spreads the load more evenly (see figure below).

We would like to see whether this result also implies improvements in real-world load balancers, including YARP. For the evaluation purposes, I have drafted a very simple implementation (see here) and was wondering whether you could give me some pointers for setting up and running a benchmark representative of a typical workload.
Kind regards,
Dimitris
P.S. I have reached out to a few other open source load balancers.

@Dim131 this looks really promising, thanks for sharing your research!
I'm not sure how much the existing performance benchmarks we have would be useful for testing this kind of change, to be honest. But since you mentioned you're interested in setting up and running a benchmark, I think that would help us feel confident about the change.
Here are some pointers for the performance benchmarking we have today for YARP:

Crank, which is the infrastructure used by most of the ASP.NET projects for benchmarking: https://github.com/dotnet/crank

In particular, the documentation here is useful for understanding how everything works: https://github.com/dotnet/crank/tree/main/docs

YML description of the YARP benchmarks: https://github.com/aspnet/Benchmarks/blob/main/scenarios/proxy.benchmarks.yml

This is the stuff that describes to crank what we want to run

Results dashboard: https://aka.ms/aspnet/benchmarks

Click on where it says "x of 20" at the bottom, and you'll get a menu of options, select "Proxies", which is page 13 of 20.

Hi @adityamandaleeka,
Thank you very much for the detailed reply. I will try to run the experiments over the next few weeks and i will probably come back with a few more questions.
For now, I am quickly going through the yml specification for the benchmark. Do we need a 28-core sever or is this simulated? Also should the clients be on the same machine as the server?


Fixed tests

Try to check why the test fails.

I specified the exact version of bokeh because we are not compatible with 0.9.1 mila-udem/blocks-extras#15 .


Virtual scroll with server side processing

Hi
I have found example of using server side processing with infinite scroll for legacy version of datatables, but haven't found for virtual scroll. Is there any way to achieve these functionality with current version of datatables?

I think you should use the Scroller plugin which does exactly what you are looking for.

There is no "infinite scroll" option in DataTables 1.10+ - it was removed in 1.10.0 (see the upgrade notes).
The closest now is the Scroller plugin that @Delgan mentioned.
In future, could you post support requests in the DataTables forums please.

This example https://datatables.net/release-datatables/extensions/Scroller/examples/server-side_processing.html exactly as I need! Thanks!


Tag exceeding out of input limit.

Below is an image of UI
![screenshot from 2016-08-02 12 49 38]
(https://cloud.githubusercontent.com/assets/16027378/17320196/e3d7b26a-58af-11e6-906a-dfc79e242904.png)

+1
If you paste the text, it exceeds the maxchars limit.

Will be resolved in #523. Closing dupe


Pre-build docker images and cache on VM

depends on https://github.com/puppetlabs/puppetfactory/pull/206

@samuelson Is this still waiting on anything?

@marrero984 nope... also this explains some of the issues that have cropped up on the classroom this week.


Wiki - Presence hold - timeout

Timeout description is missing the unit of time used for the timeout, Seconds. Suggest changing to minutes, hours, or a time field.

Thanks will add the time unit. Changing to minutes would make sense but break existing users. (not dealbreaker, but to consider)

Wiki fixed, UI will also hint the time unit (coming up on next release)


handle the case where release note not on same line as tag

The (?s) flag allows the wildcard operator to match newlines as well.
fixes #2054

This change is

Looks good

/lgtm


Add presubmit to ensure make generate doesn't produce diffs

Fixes: https://github.com/kubernetes-sigs/hierarchical-namespaces/issues/25
Keep the same logic as check-fmt
Maybe we can add verify-gofmt.sh, verify-generated-files.sh for these presubmit checks?

Just glancing at that presubmit failure - is make check-generate already failing? That's very possible since we haven't had the check until today. If that's the case, then can you please fix that bug, and don't worry about doing any more testing since it looks like that check works!

@adrianludwin

is make check-generate already failing due to an actual error in the repo?

No, It fails becaue ci-test.sh download a tar file to the repo folder. I add --untracked-files=no to git status to fix

If you haven't tested it yet, I'm inclined to merge it anyway but it would then be nice if you could make a fake PR afterwards that tries to break it so we know for certain that it's catching what it's meant to catch.

I tested it locally.  I will make a fake PR to try to break it for double-check after this PR gets merged

/hold remove
/approve
@rjbez17 I'm guessing you're out until Wednesday, lmk if you had any concerns with this.

/hold remove
/approve
@rjbez17 I'm guessing you're out until Wednesday, lmk if you had any concerns with this.

maybe /hold cancel? 😊

Ah man, I am not doing well after my (Canadian) long weekend :D
/hold cancel


SAKIII-3649 "Revision History" is an action button rather than a toggle

https://jira.sakaiproject.org/browse/SAKIII-3649

Squashed and merged

Squashed and merged


Multiple calls to ConsumerGroup.Consume

Versions
Sarama Version: 1.22.1
Kafka Version:
Go Version: 1.12.1
Is it possible to call ConsumerGroup.Consume more than once on the same consumer group?
Ideally I would like to create a single consumer group, and rather than using a single consumer to consume from multiple topics, I would like to call Consume for each topic.
I tried this but it seems to only consume for the first call.
After that, I tried creating multiple consumer groups with the same name but then the claims seemed to be split per consumer group, even though I was using them for different topics.
Any more info would be great, thanks!

To give more context on what I am trying to achieve, I have 2 topics: account.create, account.rename.
I have 1 consumer group: account.manager.
There are 2 consumers each with the same consumer group assigned to each topic.
I have gotten around the issue for the time being by using a separate consumer group for each consumer, i.e. account.manager.create, account.manager.rename.
Is this how the library is intended to be used?

If I am understanding your question correctly, you should be able to do it.
If you look at consumer group api here -> https://godoc.org/github.com/Shopify/sarama#ConsumerGroup
You pass a []string as topics to consume method.
Consume(ctx context.Context, topics []string, handler ConsumerGroupHandler) error
in your case it will be err := Consume(ctx, []string{account.create, account.rename}, handler)
Let me know if that doesn't work

Hi @varun06, your snippet does work but I am doing the following.
group := &ConsumerGroup{}
createHandler := &CreateHandler{}
renameHandler := &RenameHandler{}
err := Consume(ctx, []string{account.create}, createHandler)
err := Consume(ctx, []string{account.rename}, renameHandler)

In the meantime I have implemented as your suggestion.

@jmwri you can also have a single handler, and in the handler, check the message's topic and route the message to the right routine.
I'm going to close this issue as it seems you already have a solution. Feel free to re-open it.


"Go to Definition" in Jedi always prefers the user install, not the virtual environment

Environment data

VS Code version: 1.24.1
Extension version (available under the Extensions sidebar): 2018.5.0
OS and version: Ubuntu 14.04
Python version: 2.7.6
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): virtualenv

Actual behavior
When using the "Go to definition" feature (eg F12) on the name of an imported library, the priority of the lookup seems to be made on libraries installed in ~/.local, even if the library is also installed in the virtual environment configured for the current project.
It seems to be the case only if the lib is installed in ~/.local (ie pip install --user mode).
If the library was not installed in --user mode (ie in something like /usr/local/lib/(...), then the library from the virtualenv is correctly used.
Please note that it does not impact feature Run Python File in Terminal which uses the virtualenv library, as it should.
Expected  behavior
The lookup priority of the "Go to definition" feature should be the same as the sys.path of virtualenv's python.
In other terms, it should go to the definition of the lib installed in the virtualenv.
Steps to reproduce:

Create a new project containing one python file, which contains only:
import pytest
Create a new virtual environment, and install pytest in it:
virtualenv /tmp/temp_venv
source /tmp/temp_venv/bin/activate
pip install pytest
Configure the project settings.json so that it uses the virtualenv
"python.pythonPath": "/tmp/temp_venv/bin/python"
Go to the project file, and try to go to the definition of pytest in import pytest
--> /tmp/temp_venv/lib/python2.7/site-packages/pytest.py is opened, which is OK
Install pytest system wide, outside the virtualenv
sudo pip install pytest
Go to the project file, and try to go to the definition of pytest in import pytest
--> /tmp/temp_venv/lib/python2.7/site-packages/pytest.py is opened, which is OK
Install pytest in user's home, outside the virtualenv
pip install pytest --user
Go to the project file, and try to go to the definition of pytest in import pytest
--> ~/.local/lib/python2.7/site-packages/pytest.py is opened, which is KO

Can you print out what your sys.path is set to?

@brettcannon :
If I add a print of sys.path in the script, from the virtualenv, I get:
['/home/guillaume/dev/misc/test_vscodepython',
'/tmp/temp_venv/lib/python2.7',
'/tmp/temp_venv/lib/python2.7/plat-x86_64-linux-gnu',
'/tmp/temp_venv/lib/python2.7/lib-tk',
'/tmp/temp_venv/lib/python2.7/lib-old',
'/tmp/temp_venv/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/tmp/temp_venv/local/lib/python2.7/site-packages',
'/tmp/temp_venv/lib/python2.7/site-packages']

sys.path printed from outside the virtualenv is:
['/home/guillaume/dev/misc/test_vscodepython',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/home/guillaume/.local/lib/python2.7/site-packages',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']

We clearly see that '/home/guillaume/.local/lib/python2.7/site-packages' is present in the sys.path only when the virtualenv is not used, but vscode still uses it for its "intellisense's Go To Definition".

I can verify this is an issue (and it doesn't affect our new language server).
@DonJayamanne do we set the paths in this case and so this might be our fault?

We should verify this with #15308

Fixed in Jedi behind LSP.


Is it possible to delete an object?

If it is possible, could you document it?
If it is not possible, could you add this functionality?
I'm specially interested in the ability of deleting directives created using g.make_directive()

GrammarWrapper exposes references for terminals, rules, templates and directives which you can modify.
First three are simply dictionaries with keys equal to the name of the object in grammar, so you can do something like this:
g = Grammar()
g.TEST = "Test"

wrapper = g.use_wrapper()

wrapper.terminals.pop("TEST")

This is not very convenient, but this should work nicely.
As for directives, those do not have any unique key to store, so wrapper.directives is simply a list.
You can somehow track the needed directive and remove it from array, but it may become flaky really fast.
If you need to toggle directives, you can use another (a bit more advanced) approach, which may be more convenient. Something like that:
from lark_dynamic.token import Token
from lark_dynamic.definitions import DirectiveDef
from typing import Any

class MyCoolDirective(DirectiveDef):
    def __init__(self, name: str, content: Token | str):
        self.name = name
        self.content = content
        self.enabled = True

    def render(self, context):
        if self.enabled:
            yield from super().render(context)
        yield ""

directives: dict[str, DirectiveDef] = {}

from lark_dynamic import Grammar

g = Grammar()
wrapper = g.use_wrapper()

comments = MyCoolDirective("ignore", "COMMENT")

directives["comments"] = comments
wrapper.directives.append(comments)

# now if you want to disable this directive:
directives["comments"].enabled = False

This is probably a bit too low level, but the library is minimal and some use-cases are not covered well. I'd be interested to know more suggestions in issues as to what might be missing and probably there would be some next version with a more convenient interface

Thank you very much!


Remove thanos_ prefix from metrics

Closes #23

I opened a PR on Thanos side to prepare for this change: https://github.com/thanos-io/thanos/pull/6152. I think that should be enough, but please double check me. :)
Once this PR is merged I can also bump the objstore dependency over there to ensure things are in sync.


Provide performance workers for C#

-- add Grpc.IntegrationTesting.QpsWorker.exe that works with C++ qps_driver
-- implement simple client runner (supports sync unary with closed loop)
-- implement simple server runner (supports async server).

I've given my comments wherever possible but prefer another file for the places where C++ -> C# conversion is less clear to me. So I woud LGTM except for those 2 files in particular. Just as a side note, do we have a C# style guide or best practices guide that needs following?

@murgatroid99  can you please review WorkerServiceImpl.cs and BenchmarkServiceImpl.cs as requested by Vijay?

regarding the C# style:   there is no official google-wide C# style as of now. gRPC C# is using stylecop tool to check some basic style policies (I usually run those checks manually and fix what needs to be fixed).


See also "/Users/admin/Documents/study/workspace/trade-test/third_party/pulsar/pulsar-client-cpp/CMakeFiles/CMakeOutput.log".

Same error on macos 12.0.1 (monterey)

I get the same error on MacOS 12.0.1

A simple patch is to remove these lines https://github.com/apache/pulsar/blob/d033e726e0981851d9d196da0e4fe3d12c11b863/pulsar-client-cpp/python/CMakeLists.txt#L74-L80


Add support solargraph

I'm struggling to get diagnostics working. Can someone post a sample configuration with diagnostics enabled?

@mikker what did you try? Assuming you have the server installed, diagnostics should appear with just this line in your config (+Nvim HEAD, +nvim-lsp HEAD):
require'nvim_lsp'.solargraph.setup{}

If not, check the log file for errors:
:exe 'edit' v:lua.vim.lsp.get_log_path()

Log saying this
[ ERROR ] 2019-12-11T15:27:07Z+0100 ] ...ovim/HEAD-d9ab83d/share/nvim/runtime/lua/vim/lsp/rpc.lua:315 ]	"rpc"	"solargraph"	"stderr"	"Solargraph is listening on stdio PID=46976\n"
[ ERROR ] 2019-12-11T15:27:13Z+0100 ] ...ovim/HEAD-d9ab83d/share/nvim/runtime/lua/vim/lsp/rpc.lua:315 ]	"rpc"	"solargraph"	"stderr"	"[ANY] Solargraph initialized (4.750450000021374 seconds)\n"
[ ERROR ] 2019-12-11T15:33:43Z+0100 ] ...ovim/HEAD-d9ab83d/share/nvim/runtime/lua/vim/lsp/rpc.lua:315 ]	"rpc"	"solargraph"	"stderr"	"/Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/client.rb:73:in `synchronize': can't be called from trap context (ThreadError)\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/client.rb:73:in `read'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/client.rb:62:in `tick'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/stdio.rb:18:in `update'\n\tfrom /Users/mikker/.rubies/ruby-2.6.5/lib/ruby/2.6.0/observer.rb:197:in `block in notify_observers'\n\tfrom /Users/mikker/.rubies/ruby-2.6.5/lib/ruby/2.6.0/observer.rb:196:in `each'\n\tfrom /Users/mikker/.rubies/ruby-2.6.5/lib/ruby/2.6.0/observer.rb:196:in `notify_observers'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/client.rb:41:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/connectable.rb:13:in `map'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/connectable.rb:13:in `stopping'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/base.rb:23:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:26:in `map'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:26:in `stop'\n"
[ ERROR ] 2019-12-11T15:33:43Z+0100 ] ...ovim/HEAD-d9ab83d/share/nvim/runtime/lua/vim/lsp/rpc.lua:315 ]	"rpc"	"solargraph"	"stderr"	"\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport.rb:58:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/lib/solargraph/language_server/transport/adapter.rb:54:in `shutdown'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/lib/solargraph/language_server/transport/adapter.rb:35:in `update'\n\tfrom /Users/mikker/.rubies/ruby-2.6.5/lib/ruby/2.6.0/observer.rb:197:in `block in notify_observers'\n\tfrom /Users/mikker/.rubies/ruby-2.6.5/lib/ruby/2.6.0/observer.rb:196:in `each'\n\tfrom /Users/mikker/.rubies/ruby-2.6.5/lib/ruby/2.6.0/observer.rb:196:in `notify_observers'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/lib/solargraph/language_server/host.rb:444:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/lib/solargraph/language_server/transport/adapter.rb:22:in `closing'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/client.rb:38:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/connectable.rb:13:in `map'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/connectable.rb:13:in `stopping'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/server/base.rb:23:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:26:in `map'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:26:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport.rb:58:in `stop'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/lib/solargraph/shell.rb:44:in `block (2 levels) in stdio'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:75:in `sleep'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:75:in `run_server_thread'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport/machine.rb:19:in `run'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/backport-1.1.2/lib/backport.rb:51:in `run'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/lib/solargraph/shell.rb:39:in `stdio'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/gems/solargraph-0.38.0/bin/solargraph:5:in `<top (required)>'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/bin/solargraph:23:in `load'\n\tfrom /Users/mikker/.gem/ruby/2.6.5/bin/solargraph:23:in `<main>'\n"

@mikker I know this is an old thread, but I wanted to post my findings for future readers.
I found that diagnostics does not seem to be enabled by default, but I did get it to work when I manually enabled the setting in the setup function
local lsp = require 'nvim_lsp'
lsp.solargraph.setup{
  settings = {
    solargraph = {
      diagnostics = true
    }
  }
}


Have an Aspect Ratio component

Something exactly like Unity's<EMAIL_ADDRESS>. The use case?
It's not possible to make image elements with different anchors and pivots work under the same group. It's not possible to have 1 image anchored to the bottom, 1 to the bottom right, while having both under the same group and have it work across all screens for example.
Maybe I'm doing something wrong though. But I guess the issue lies with the fact that I can't make a group fill the whole screen. There isn't an option to do that. I can make the group fill 1280x720 like the 2d screen, and place the images inside the group. It will seem like it works, but then when you run on different screen resolutions it doesn't. If there was an option to make the width/height fill the parent container(2D screen on this case), it would solve the problem,

It's not possible to make image elements with different anchors and pivots work under the same group. It's not possible to have 1 image anchored to the bottom, 1 to the bottom right, while having both under the same group and have it work across all screens for example.

Set the group elemnt anchors to be 0, 0, 1, 1 as shown here for the render texture https://developer.playcanvas.com/en/tutorials/resolution-scaling/
By doing so, it will always fill to the size of the parent.
Aspect size fitter is a valid request but does have more specialised behaviour compared to what is being asked for here


TypeScript types support

Could not find a declaration file for module 'react-nice-dates'.

Is there a possibility to get the types?

How could that be done? I've only used Typescript briefly so I'm not sure what's required for this to work with it.

I think for each file you need to create a *.d.ts file that will contain types. Here is a promising answer:
https://stackoverflow.com/questions/12687779/how-do-you-produce-a-d-ts-typings-definition-file-from-an-existing-javascript

Thanks, that could work. I have my hands a bit full at the moment, but happy to accept a PR for this.

I have started rewriting the whole package with some really minor changes to ensure type safety.
I use tsdx to start a new project and basically copy the old code and fix errors.
But I am new to rollup with tsdx and still figure out how to include css files.
AFAIK this package automatically injects the styles when we import any component and this sounds magic to me. Can anyone provide some hints in how to achieve this?

@hinsxd CSS is handled separately from Rollup. And the styles are not automatically injected, you have to include the CSS when you use the component (as described in the "Installation" section of the documentation, although I should update the examples to include that too).

https://github.com/hinsxd/react-nice-dates/tree/typescript
This is my first try in rewriting all components in typescript. There are no breaking changes and it passes all tests. However, there are some major changes in the code including:

Replaced constants with typescript enums for better code auto-completion and type safety
Used a more robust solution of useControllableState from here

TODOs:

Example website
Storybook (This is a really nice tool recommended by the tsdx stack! Perhaps we can replace the whole website with this too. I'm still not too familiar tho :/)
Compile css when build. And all publishing stuff.  Maybe we can mess around in a public alpha branch published to npm :P
Figure out better way to include styles. (auto include css? break down the css into components? CSS-in-JS? still open-ended...)

Feel free to have a look and help is always wanted!

Added this PR - let me know your thoughts!

Thank you @marBerWei! Merged #26 and published a new release.


Update installation schema to include profile photo field in users table

I'm closing this and making a task under issue #42


TLS Certificates Not Auto-Renewing

Do we have to renew the certificates manually or should a certificate be reissued automatically? Because I received an e-mail from the Let's Encrypt Expiry Bot and I assumed that the certificates would reinstall automatically and did not give heed to the Let's Encrypt e-mail. Hence, when the expiry date arrived the certificate didn't auto-renew and we cannot avail services through the URL. BTW, I followed all the above steps to the letter

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

ID: ada58160-dc50-b977-d3bc-65f92406e16d
Version Independent ID: 5c596e04-fddb-effe-3b72-575f4df42d4e
Content: Create an HTTPS ingress with Azure Kubernetes Service (AKS) cluster
Content Source: articles/aks/ingress-tls.md
Service: container-service
GitHub Login: @iainfoulds
Microsoft Alias: iainfou

Thanks for the feedback! We are currently investigating and will update you shortly.

These YAML manifests also use Let's Encrypt staging, rather than production, so make sure that you update accordingly if you're running real workloads.

@MicahMcKittrick-MSFT @iainfoulds I will give it a try and will update this thread by the end of the week

Quick update --> I tried reinstalling the Issuer and Certificate again on multiple namespace, so far the Issuer can be retrieved upon kubectl get Issuer. Not sure what I did wrong the last time around. I will wait until a full 24hrs is completed and if it remains as is then I'll create a CronJob to renew the certificates by first deleting the old one and creating a new one.

@tarifrr thanks for the update! I will wait to hear back from you after the 24 hour mark.


Upload nightly wheels to scientific-python-nightly-wheels

Closes #7863
Xarray is considered one of the core projects of the Scientific Python. As such, it would be ideal if it followed upcoming SPEC5 by building the nightly wheels. We're aware that xarray is easy to build from source but other core packages like scipy or numpy are not and we would like to ensure that all of those nightly builds can be installed in the same way to make the test against dev versions easier for downstream packages.
This PR adds a GHA job that builds the wheel and uses scientific-python/upload-nightly-action to upload them to a new location where eventually all the other projects will upload wheels as well.
You will need an upload token stored as a repository secret ANACONDA_NIGHTLY. I will need someone with the proper rights to reply here and I can either give you access to the scientific-python-nightly-wheels anaconda.org group where you can generate the token for yourself (see the readme at https://github.com/scientific-python/upload-nightly-action) or I can generate one for you but it would be better if you had a control of the token yourself as it will expire at some point.

Do we need to build the wheel in the same way you currently do in [the TestPyPI workflow]

depends on whether we can put local versions on anaconda. PyPI and TestPyPI don't allow that, so we had to modify pyproject.toml to make setuptools-scm generate versions without the local part.

Do you have an account there so I can add you?

now I do, the username is the same as on github.

depends on whether we can put local versions on anaconda

Seems okay -> https://anaconda.org/scientific-python-nightly-wheels/xarray/files

now I do, the username is the same as on github.

I've added you. You should be able to generate a token at https://anaconda.org/scientific-python-nightly-wheels/settings/access with Allow write access to the API site and Allow uploads to Standard Python repositories permissions and add the token as a ANACONDA_NIGHTLY secret.

add the token as a ANACONDA_NIGHTLY secret.

done. Let's try it!

this appears to have worked. Thanks, @martinfleis!

Thanks @martinfleis this is a very valuable contribution to the ecosystem!


js: Break cyclic dependencies between giphy.js and  popover.js

Previously, giphy.js and popover.js had a cyclic dependency, with giphy.js importing popover.js and popover.js importing giphy.js.
This was solved by creating a new function hide_giphy_popovers that takes in a callback function and returns it.  The callback function is then imported to giphy.js and takes in the function that was exported from giphy.js in popover.js as a parameter hence breaking the import cycles between the 2 modules

Fixes:

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

I don't think we want to use this direction; we're in the process of rewriting giphy.js to not use the popovers.js framework in favor of using the popover_menus system, and that will I think naturally remove this import cycle without any special contortions like this.


example-phone test suite is disabled

see Gruntfile.concurrent.js

example phone no longer in sdk


Topo

Splitting all proto3 into data structures and RPC parts. That way we can compile the RPC part with different RPC modules, but still use the same data structures.

@enisoc @aaijazi

LGTM


[nri-bundle] noisy logs from newrelic-bundle-nrk8s-kubelet-*

Bug description
After upgrading Helm Chart nri-bundle from 5.0.24 -> 5.0.25, we get noisy logs
{
cluster_name:"<redact>"
container_name:"kubelet"
message:"time=\"2023-08-18T06:17:28Z\" level=warning msg=\"cpuLimitCores metric not available. using default max 96 cores\""
namespace_name:"newrelic"
newrelic.logPattern:"time=\"<DATETIME>\" level=warning msg=\"cpuLimitCores metric not available. using default max 96 cores\""
newrelic.source:"api.logs"
plugin.source:"k8s-fb-1.17.3"
pod_name:"newrelic-bundle-nrk8s-kubelet-"<redact>""
stream:"stderr"
timestamp:1692339448158
}

Noisy logs went way after downgrading the helm chart version on our clusters

Version of Helm and Kubernetes
❯ helm version
version.BuildInfo{Version:"v3.12.3", GitCommit:"3a31588ad33fe3b89af5a2a54ee1d25bfe6eaa5e", GitTreeState:"clean", GoVersion:"go1.20.7"}

Kubernetes 1.27 on  AWS EKS
Which chart?
nri-bundle, 5.0.25
What happened?
After upgrading the helm chart, we started seeing the logs.
What you expected to happen?
Not see the noisy logs
How to reproduce it?
Installed the chart on a new EKS cluster
Anything else we need to know?
https://forum.newrelic.com/s/hubtopic/aAX8W000000PGknWAG/warning-cpulimitcores-metric-not-available?t=1692339417333

I created https://github.com/newrelic/nri-kubernetes/issues/854 in nri-kubernetes for the same problem around the same date as this issue.

The fix was merged: https://github.com/newrelic/nri-kubernetes/pull/870
It will be in the next release.


chore: always test using sauce labs

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Woc logo contribution

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Here is an idea for the logo of NeoAlgo
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Issue #1443

No PRs are taken from deleted Github Accounts and unknown repository


Update networking section of components overview

What this PR does / why we need it:
The section shares future plans on how advanced networking should be
done in KubeVirt. Since it was written, we have advanced in this area
and that should be reflected there.
This patch updates it to reflect the current architecture and focus.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #7066
Special notes for your reviewer:
It does not mention any specific plugins or extensions on purpose, so
the section does not become outdated with future integrations or bugs.
We should track details about APIs and extensions in the user-guide
instead and keep this document high-level.
Release note:

NONE

/assign @AlonaKaplan

/uncc @xpivarc

/approve


RFI

Can I create RFI signals too? In order to train my neural network with both RFI and FRB?

By RFI, if you mean 0-DM pulses, you can, as shown below:
python fakefrb.py -d 0 -D 0 -n 512 -o rfi.npz
That is, just set the lower and upper DM limits to 0, such that only 0-DM pulses are generated.


Make dev/bots/test.dart pass on Windows

disables all flutter test and flutter drive tests on Windows as those two commands are not fully implemented on Windows yet
fixes other failures on Windows


The problem of computing light-curve after upgrading

When it computes the LC, it gets stuck at the process of 80%. I check the files and find that the LC files of each bin have been computed completely, but it can't product the LC file. I also check the task manager and find that the CPU dose not works at all.
easyfermi: Version 2.0.10.
OS: I try it in both Linux and Windows system and encounter the same problem.

Hello, please tell me what is the configuration you are using, as the target name/coordinates, energy range, time range etc, so I can try to reproduce the error.
Furthermore, do you have errors in the terminal or easyfermi log? Did you try running easyfermi with other configurations?
Please attach also the fermipy.log file

OK. The target name is 4FGL J0538.8-4405.
The configuration and log files:
config.txt
fermipy.log
In fact, the easyfermi and terminal window have never pop up any error and just stay at the 'computing light curve'.
Before this I have already try another configuration of another source in Ubuntu （and this is in WSL）, it's the same problem. But the files were deleted because that computer is not mine and the disk space is not enough.

Hello,
I also need the information in the easyfermi window. For instance, how many bins are you trying? What is the fit configuration? I see in the fermipy.log file the following message:
Fit failed in bin 573 in range 390441601 390700801.
I guess you asked for more than 600 bins. In this case:

the process will take forever.
 So I would not trust the results.

I see you are using a very short energy range from 100 to 300 MeV. This is really short! For such a case I would recommend using the custom mode in easyfermi and increase binsperdec in the config file.
Furthermore, you said that you tested other configuration. Which configuration was it? It would be very helpful to have the exact configuration and possibly a print screen of the easyfermi window.

OK, this is the easyfermi window:

The bins are really large, but I have tried 650 bins before upgrading and it worked out successfully, so I guess it could make it in this version. If it is the crux of the problem, I will correct it.
About the energy range I just want to try it and see if the significance is acceptable. If it is out of the lines of LAT data, I also correct it. By the way, I have got some 100-300MeV data of sources which are at meddle bright level, the TS and error level are really terrible.
Another configuration is similar to this one, the difference point is just the coordinate.

I see. Indeed with this configuration your analysis will be limited by the data itself. It will work fine if you use fewer bins for the light curve and a larger energy range.


unverified contract creation bot ought to be deployed to other chains

Also, assess whether there can be a mode for which trace support is not required

fixed with latest version


docs Content set and tabs update

@starryeyez024 opened the same one, fight amongst yourselves 😛
https://github.com/patternfly/patternfly-elements/pull/815/files


Update README.md

add anybit wallet

Phishing

what do you mean phishing?

This specific link triggered a phishing warning on my router (special service). It looks like it might be due to a typo (.i0 instead of .io).
If this was a typo, please provide sources of integration for the .io domain.


feat: optimize circleci builds

This commit introduces three changes to the CircleCI script:

Using md5sum instead of shasum reduces the time to detect
whether the source code changed or not from about 1 minute to
about 2 seconds (!!).
Before that, I was trying to reduce the time to calculate that
checksum by only looking at the relevant files (that's why the
change on find introducing all the -o -iname \*.something)
In hindsight, the md5sum change makes this innecessary; the
tradeoffs are:

If we miss some extension that should trigger the build,
then we might get passing builds that should have stopped.
But how frequent is a change that only changes a file
that we might miss?

From the Unity side, we're pretty safe: anything .meta
triggers a build cache invalidation
From the kernel side, the number of extensions on the
folder is pretty small -- running this find:

  find kernel/packages -type f -exec basename {} +
    | grep -oE '[^.]+$' # show only extensions
    | sort | unique     # sort & unique

Gives a total of 9 extensions on my machine:
          - DS_Store
          - LICENSE
          - gitignore
          - js
          - json
          - md
          - proto
          - sh
          - ts

In order to determine which files to cache in Unity, I used the following script to list extensions:
find . -type f \( -not -path '*Library/*' \) # anything in lib can be ignored
  -exec basename {} + # take only the file name
  | grep -oE '[^.]+$'     # match only the ending extension
  | sort | uniq # sort and unique

And then to list the biggest files:
find . -type f \( -not -path '*Library/*' \) # same find as before
 \( -exec ls -l {} \; \)   # `ls -l` to get more info on each file
 | awk '{print $5 " " $9}' # print columns 5 and 9 of `ls` (size & name)
 | grep -E '^[0-9]{6,10}'  # grep only lines starting with 6 digit numbers

New cache: Library folder. Dropped because it makes the
cache build fail.

TL;DR -- Shaving 1 minute out; not related to unity library


Update Event - Vue events Object

Hey there,
It's really awesome component that I am looking for.
Just to make sure - do we have any event with which we can update VueJs event object along with FullCalendar update event?
<full-calendar :events="events"
                :config="config"
                @event-selected="eventClick"
                ref="calendar"></full-calendar>

data () {
return {
events: [
          {
            title: 'Edit me',
            start: '2017-12-05',
            color: '#257e4a'
          },
          {
            title: 'event1',
            start: '2018-01-01',
            constraint: 'availableForMeeting', // defined below
            color: '#257e4a'
          },
          {
            title: 'event2',
            start: '2017-12-12',
            end: '2017-12-29'
          },
          {
            title: 'event3',
            start: '2010-01-09T12:30:00',
            allDay: false
          },
          {
            start: '2017-11-24',
            end: '2017-11-28',
            overlap: false,
            rendering: 'background',
            color: '#ff9f89'
          },
          {
            start: '2017-11-06',
            end: '2017-11-08',
            overlap: false,
            rendering: 'background',
            color: '#ff9f89'
          }
        ]
}
}

methods: {
     eventClick (event, jsEvent, view) {
        event.title = 'This is static content to test update event'
        this.updateEvent(event)
        // console.log(event, jsEvent, view)
        this.$refs.calendar.$emit('refetch-events')
      },
      updateEvent (event) {
        this.$refs.calendar.fireMethod('updateEvent', event)
      }
}

With this, we can see real time updates if you click on event.But with this it does not update vuejs data object. So here do we have any event to update vuejs event object as well?
Let me know if you have any query on my question.

I don't think we do have anything at the moment.
What about listening for the event-render event which should fire while an event is being rendered?
<full-calendar :events="events"
                :config="config"
                @event-selected="eventClick"
                @event-render="updateEvent"
                ref="calendar"></full-calendar>

methods: {
  updateEvent(event) {
    const index = this.events.map(e => e.someIdentifier).indexOf(event.someIdentifier)
    this.$set(this.events, index, event)
  }
}

yeah, that would work.

Perfect


reduce the number of clones by introducing lifetime to rootless.

I'm not sure if I should name the lifetime parameters.

I am not sure about this change. This would trade ergonomics (no need to ensure that lifetimes match up) for performance (less clones). Is the performance gain significant though?

@Furisto
Thank you for your review. Performance gains are currently small. However, heavy use of clone() can be a performance problem. It is possible to introduce a lifetime after this problem surfaces, but that could be a major code change. I thought that we should introduce something simple. Of course, the code will be more or less complex, so there is a trade-off there. I'd love to hear your opinions on this.
This PR is a small step at the moment, but it is a step towards introducing order in the use of lifetime in youki's code.

Of course, this is not to prohibit the use of clones, but to reduce the use of clones in simple situations. It is useful and should be used in situations where the code becomes unreasonably complex.


HDDS-6901. Configure HDDS volume reserved as percentage of the volume space.

What changes were proposed in this pull request?
Currently, We can reserve space on a volume using hdds.datanode.dir.du.reserved, which is key-value pair where we specify the volume and the space that should be reserved in that volume (i.e data1:5000MB). If there are multiple volumes we have put a key-value pair of volume:reserved for each volume. This PR aims to create a configuration that sets the percentage of volume reserved for all the volumes in the Datanode.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-6901
How was this patch tested?
Patch was tested manually using docker and unit tests.

Thank you @aswinshakil for the contribution.


Finish up UI improvements for reply previews

[x] fix reply button styling and direction
[x] fix the issues with usernames and message content not displaying, which is related to how Robrix carefully caches already-drawn timeline events. I'll tackle this shortly.
[x] fix various "TODO"s listed in the code that are related to styling buttons/other UI items.
[x] fix horizontal alignment of Condensed* messages -- they're no longer left-aligned with regular messages
[x] set cursor: Hand for the ReplyingPreview widget to make it more obvious that they're clickable w/ actions.

Huh, this was actually already set, but it's not displaying the cursor as intended. Probably an issue with PortalList or Makepad's hover actions, which have been fixed in a recent version that Robrix hasn't yet upgraded to.

[ ] #223

include the unique event ID to handle the case where the replied-to message hasn't been retrieved from the server (via pagination) and isn't yet locally available.

Currently we just log a warning that says "TODO: jumping back to a replied-to message that isn't yet locally retrieved is currently unsupported"

[x] a smooth scrolling action that scrolls upwards to that message rather than an abrupt jump (Makepad's PortalList may not yet support this?)
[x] highlighting or temporarily flashing the background (maybe light blue or green) to indicate which specific message was the one being shown in the just-clicked ReplyingPreview

[x] fix avatar font sizing in ReplyingPreview to be properly scaled down.
[x] shift the inline reply preview (the one above the message) to the right a bit such that the vertical bar is aligned with the middle of the avatar picture.
[x] Refactor the populate_message* logic such that it can be easily re-used for populating the content of a ReplyingPreview.  I will also tackle this.

PR #138 addressed these two:

shift the inline reply preview (the one above the message) to the right a bit such that the vertical bar is aligned with the middle of the avatar picture.

fix horizontal alignment of Condensed* messages -- they're no longer left-aligned with regular messages

Marking as done since the one remaining issue has been converted to a separate issue because it's too complicated for this.


asyncio.exceptions.TimeoutError

Hi Shroominic,
I tried the 2 example in readme (bitcoin and iris plot) but got asyncio Timeout error.
I have tested gp4 and gpt3.5 api but same error.
Thanks

@nick917 for me this happens on an AWS CPU instance?
OS: Ubuntu 20.04.6 LTS x86_64
Host: t3.large
Kernel: 5.15.0-1041-aws
Uptime: 13 days, 3 hours, 1 min
Packages: 809 (dpkg), 6 (snap)
Shell: bash 5.0.17
Terminal: /dev/pts/0
CPU: Intel Xeon Platinum 8175M (2) @ 2.499GHz
GPU: 00:03.0 Amazon.com, Inc. Device 1111
Memory: 227MiB / 7836MiB

Full trace:
Traceback (most recent call last):
  File "/home/ubuntu/ci.py", line 24, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/ubuntu/ci.py", line 6, in main
    async with CodeInterpreterSession(model="gpt-3.5-turbo") as session:
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeinterpreterapi/session.py", line 62, in __init__
    self.llm: BaseLanguageModel = llm or self._choose_llm(**kwargs)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeinterpreterapi/session.py", line 115, in _choose_llm
    raise ValueError(
ValueError: OpenAI API key missing. Set OPENAI_API_KEY env variable or pass `openai_api_key` to session.

real    0m3.102s
user    0m3.037s
sys     0m0.173s
ubuntu@ip-10-214-1-96:~$ export OPENAI_API_KEY=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
ubuntu@ip-10-214-1-96:~$ time py ci.py
Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 655, in __await_impl_timeout__
    return await self.__await_impl__()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 662, in __await_impl__
    await protocol.handshake(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 323, in handshake
    status_code, response_headers = await self.read_http_response()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 139, in read_http_response
    status_code, reason, headers = await read_response(self.reader)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/http.py", line 120, in read_response
    status_line = await read_line(stream)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/http.py", line 194, in read_line
    line = await stream.readline()
  File "/usr/lib/python3.10/asyncio/streams.py", line 524, in readline
    line = await self.readuntil(sep)
  File "/usr/lib/python3.10/asyncio/streams.py", line 616, in readuntil
    await self._wait_for_data('readuntil')
  File "/usr/lib/python3.10/asyncio/streams.py", line 501, in _wait_for_data
    await self._waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/ci.py", line 24, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/ubuntu/ci.py", line 6, in main
    async with CodeInterpreterSession(model="gpt-3.5-turbo") as session:
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeinterpreterapi/session.py", line 478, in __aenter__
    await self.astart()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeinterpreterapi/session.py", line 87, in astart
    status = SessionStatus.from_codebox_status(await self.codebox.astart())
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeboxapi/box/localbox.py", line 187, in astart
    await self._aconnect()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeboxapi/box/localbox.py", line 199, in _aconnect
    self.ws = await ws_connect(f"{self.ws_url}/kernels/{self.kernel_id}/channels")
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 654, in __await_impl_timeout__
    async with asyncio_timeout(self.open_timeout):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/async_timeout.py", line 169, in __aexit__
    self._do_exit(exc_type)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/async_timeout.py", line 252, in _do_exit
    raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError
/home/ubuntu/.local/lib/python3.10/site-packages/codeboxapi/box/localbox.py:512: RuntimeWarning: coroutine 'Process.wait' was never awaited

real    0m17.563s
user    0m7.811s
sys     0m0.500s
ubuntu@ip-10-214-1-96:~$ rm ci.py
ubuntu@ip-10-214-1-96:~$ nano ci.py
ubuntu@ip-10-214-1-96:~$ time py ci.py
Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 655, in __await_impl_timeout__
    return await self.__await_impl__()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 662, in __await_impl__
    await protocol.handshake(
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 323, in handshake
    status_code, response_headers = await self.read_http_response()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 139, in read_http_response
    status_code, reason, headers = await read_response(self.reader)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/http.py", line 120, in read_response
    status_line = await read_line(stream)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/http.py", line 194, in read_line
    line = await stream.readline()
  File "/usr/lib/python3.10/asyncio/streams.py", line 524, in readline
    line = await self.readuntil(sep)
  File "/usr/lib/python3.10/asyncio/streams.py", line 616, in readuntil
    await self._wait_for_data('readuntil')
  File "/usr/lib/python3.10/asyncio/streams.py", line 501, in _wait_for_data
    await self._waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/ci.py", line 26, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
    return future.result()
  File "/home/ubuntu/ci.py", line 7, in main
    await session.astart()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeinterpreterapi/session.py", line 87, in astart
    status = SessionStatus.from_codebox_status(await self.codebox.astart())
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeboxapi/box/localbox.py", line 187, in astart
    await self._aconnect()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/codeboxapi/box/localbox.py", line 199, in _aconnect
    self.ws = await ws_connect(f"{self.ws_url}/kernels/{self.kernel_id}/channels")
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/client.py", line 654, in __await_impl_timeout__
    async with asyncio_timeout(self.open_timeout):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/async_timeout.py", line 169, in __aexit__
    self._do_exit(exc_type)
  File "/home/ubuntu/.local/lib/python3.10/site-packages/websockets/legacy/async_timeout.py", line 252, in _do_exit
    raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError
/home/ubuntu/.local/lib/python3.10/site-packages/codeboxapi/box/localbox.py:512: RuntimeWarning: coroutine 'Process.wait' was never awaited


Not really an issue but i can help you with the redirect.

`from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.ui import WebDriverWait
from threading import Thread
def open_captcha_window(full_url):
options = webdriver.ChromeOptions()
options.add_argument("app=" + full_url)
options.add_argument("window-size=423,705")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get(full_url)

wait = WebDriverWait(driver, 100, 0.3)
wait.until(lambda redirect: redirect.current_url != full_url)

new_page = driver.current_url
Thread(target=threaded_driver_close, args=(driver,)).start()
return new_page

def threaded_driver_close(driver):
driver.close()
`
this code opens a captcha and returns the url you get redirected to.
Currently works with the redirects.

@Michtdu Thank you. I will try to implement this today if i have time.

Thank you again. Your Code worked and i only need to fix the slow download now. If you have any other tips or need help feel free to contact me!
Thank you!


Question: Why is the ViewComponent and ControllerBase's User property type different?

There's probably some good reason/s behind that that I don't know (yet). It just seems to be counter-intuitive personally.

Unfortunately we missed updating the ViewComponent when we changed Controller. See https://github.com/aspnet/Mvc/issues/4964


Non SHA image address in the Data Science Pipelines conditions

Description of problem:
when creating a pipeline with following Python construct (from the Data Science Pipelines Operator example):
    with dsl.Condition(random_num_head.output > 5):
        print_op('heads and %s > 5!' % random_num_head.output)

the following Pipeline Spec task is generated :
- name: condition-2
  params:
  - name: operand1
    value: $(tasks.random-num.results.Output)
  - name: operand2
    value: '5'
  - name: operator
    value: '>'
  taskSpec:
    results:
    - name: outcome
      type: string
      description: Conditional task outcome
    params:
    - name: operand1
    - name: operand2
    - name: operator
    steps:
    - name: main
      command:
      - sh
      - -ec
      - program_path=$(mktemp); printf "%s" "$0" > "$program_path";  python3 -u
        "$program_path" "$1" "$2"
      args:
      - |
        import sys
        input1=str.rstrip(sys.argv[1])
        input2=str.rstrip(sys.argv[2])
        try:
          input1=int(input1)
          input2=int(input2)
        except:
          input1=str(input1)
        outcome="true" if (input1 $(inputs.params.operator) input2) else "false"
        f = open("/tekton/results/outcome", "w")
        f.write(outcome)
        f.close()
      - $(inputs.params.operand1)
      - $(inputs.params.operand2)
      image: python:alpine3.6
  when:
  - input: $(tasks.condition-1.results.outcome)
    operator: in
    values:
    - "true"

this task spec uses a generic image definition python:alpine3.6 which pulls the image from docker (example from a similar pod):
containerStatuses:

containerID: cri-o://018f1d309a95b46a1c268cef2d242d17939eeee62ca7dddb0676582e23d66e57
image: docker.io/library/python:alpine3.6
imageID: docker.io/library/python@sha256:27ef9872c5526eb9d8a4377d7eaf33d178cb2109eb7e29ea205478b9b11d9914

Diego Lovison has raised a PR (https://github.com/kubeflow/kfp-tekton/pull/1317) which basically tackles the same issue and gets that image parameterized.

Following up on issue https://github.com/kubeflow/kfp-tekton/issues/1316 for resolution.


eigenvalue sorting in scipy.sparse.linalg.eigsh

Hello,
I am using scipy.sparse.linalg.eigsh to compute eigenvalues of a symmetric matrix. When largest in magnitude eigenvalues are computed (default), the order of the output eigenvalues change depending on the value of the parameter return_eigenvectors.
When return_eigenvectors=True (default), eigenvalues are sorted by algebraic value.
When return_eigenvectors=False, eigenvalues are sorted by magnitude value.
Note that both conventions are fine, and that the documentation does not specify any sorting. But returning a different order according to a non-linked parameter is highly unexpected.
Reproducing code example:
import numpy as np
from scipy.sparse.linalg import eigsh

M = np.diag([2.]*100 + [-2.]*100 + [3.] + [-3.] + [1.]*1000)

print(eigsh(M,k=10,which='LM')[0])
print(eigsh(M,k=10,which='LM',return_eigenvectors=False))

Output:
[-3., -2., -2., -2., -2.,  2.,  2.,  2.,  2.,  3.]
[ 2., -2.,  2., -2.,  2., -2.,  2.,  2.,  3., -3.]

Scipy/Numpy/Python version information:
python 3.6.3
numpy version 1.14.3
scipy version 1.0.1

Hello @gauthe,
I documented what you mentioned, scipy.sparse.linalg.eigsh.
Could you check the edited part?

Thank for your answer,
I think the best would be to always sort with the same convention, but I understand the choice to update only the documentation.
In any case, after further tests the tricky part is that the sorting also depends on which.

For which=LM (default, most common) or SA, it is as the commit says:
If return_eigenvectors is True, eigenvalues are sorted by algebraic value.
If return_eigenvectors is False, eigenvalues are sorted by absolute value.

For which=BE or LA, the sorting is always by algebraic value

For which=SM,
If return_eigenvectors is True, eigenvalues are sorted by algebraic value.
If return_eigenvectors is False, eigenvalues are sorted by decreasing absolute value.

So unfortunately the current version is inaccurate.

I only though about the 'LM' case, but my thoughts were short.
I will revise each case you mentioned.
Thanks for you explanations. @gauthe

Ok this seems correct.
I think it would be more intuitive to put these details into the which section instead of the return_eigenvectors one. Maybe be also add 'see notes in which for sorting convention' in the description of w.

I looked at other part of the documentation.

in the parameters, A is described as a real symmetric matrix, it can also be complex hermitian according to the function general description.

in the example, the use of id is clumsy, since it is also a function (same for scipy.sparse.linalg.eigs)

the result of the exemple is inaccurate: the result of eigsh is real, in the current version vals prints array([ 1.,  1.,  1.,  1.,  1.,  1.])

@gauteh Yes, I also know that the example in this section, scipy.sparse.linalg.eigsh, very simple.
First of all, I will document the example in detail.
I will also more careful about parameter A before I revise the document.
Thanks.

And also @gauthe, How about listening to the opinions of others and making decisions for put return_eigenvectors details into the which section?
The type of the order in which eigenvalues are sorted is affcted by which parameter.
But I think it is correct to describe it in the return_eigenvectors part, as the result actually changes
according to the value of return_eigenvectors.
What do you think about this @gauthe ?

The discussion on return order can be either in the which section or in the return_eigenvectors section; since both kwargs change the result.
I personnally think the which section is more suited, since it always depends on whichwhile it depends on return_eigenvectors only for LM, SM or SA. But this is mainly a matter of taste.

Documented in gh-9134, closing.

Hi,
Possibly another complication in the ordering of eigenvalues in scipy.sparse.linalg.eigsh. The ordering seems to be different depending on whether the matrix dtype is real or complex.
Example:
import numpy as np
from scipy.sparse import diags
from scipy.sparse.linalg import eigsh

M_1 = diags([1,2,3,4], dtype = float)
M_2 = diags([1,2,3,4], dtype = complex)

print(spla.eigsh(M_1, k=2, which='LA', return_eigenvectors=True)[0])
print(spla.eigsh(M_2, k=2, which='LA', return_eigenvectors=True)[0])

Output:
[ 3.  4.]
[ 4.  3.]


Determine design approach to handle cluster configuration values

Need information like ingress subdomain, ingress class, storage class(es), etc
Options:

Add ClusterV2 interface with additional configuration options and ClusterConfig module that inputs and outputs values
Create a terraform provider for logging into and getting configuration from Kubernetes and OpenShift clusters
Store cluster information in a config file in the GitOps repo

Background
To get the toolkit to support additional clusters, be it on different cloud providers, bare metal or generic Kubernetes clusters there are cases where information about the target cluster is needed to allow the automation modules to function correctly.  This design is looking at how we can provide the required information in a way to future proof the toolkit that will allow expansion to additional cloud environments/cluster types
It is important that this design doesn’t break the current cluster interface or existing toolkit modules, so the design should ensure backward compatibility
Questions: Should we assume that the user of the Toolkit is going to validate the solution against the target cluster (e.g. is some of the software already installed) and adjust the solution accordingly, or should the solution cope with deploying to a cluster that may already have software installed?
Required Information
The 2 types of modules (terraform vs gitops) have largely the same requirement to know about the target cluster. However, the terraform modules have access to the cluster at apply time so can query the cluster as needed, whereas the gitops modules must not directly access the target cluster, they should only make changes to the gitops git repo.  All required information about the target cluster needs to be made available via the proposed solution outlined in this design
Cluster type
The cluster type can be used to determine if the cluster is a generic Kubernetes or has the additional capabilities provided by OpenShift, so propose the following (this should map to the type property of the cluster platform object)
type := kubernetes | openshift
A subtype classification identifies a more specific cluster type (this should map to the type_code property of the cluster platform object).  This can be used to identify if a cluster has or doesn’t have a specific capability
type_code := iks | aks | gke | eks | ack | roks | aro | rosa | ocp4 | minikube | kind | ushift | okd | k8s | …
Question: Will this break existing modules that may expect the type_code to only contain kubernetes, ocp3 or ocp4?
Ingress
Kubernetes clusters expose services using an ingress.  When creating an Ingress some information about the cluster is needed
ingress_class
ingress_base_domain (this should map to the ingress property of the cluster platform object)
Question: Is a single ingress class enough functionality?  IKS defines a public and private ingress.  Should we support multiple ingress definitions or just a single one with more complex cases being handled by module parameter overrides?
Storage
Question: When accessing cluster storage a deployment can use the storage marked as the default storage provider or provide a specific storage class to use.  Is there a need to provide details of available storage classes to modules or can we assume that the cluster will be set with a valid default and if this is not the desired behaviour then module parameters will be used?
Question: Do we need to provide capability to have multiple storage classes with different volume/access modes?
Operators
Some modules will install software and services using operators.  When creating an operator subscription you need to know details of the catalogs, such as namespaces where the catalog is running, channels providing an operator version.
Question: are we assuming the OpenShift default catalogs or the olm community catalogs will be available for the openshift / kubernetes cluster types, or should we provide the capability for a module to validate a catalog is available or if an operator is available on a cluster?
Cluster state
One of the questions at the top of the design asked if modules need to be smart and cope with the state of the cluster.  If so, there needs to be a way for a module to validate the state of the systems.  This could be by:

checking if a CSV exists
checking if a deployment/pod exists
checking the presence of a namespace (project)

If the amount of data is too large to pass to all modules, then this cluster data could be moved to a terraform provider or a separate Toolkit module/interface so only modules needing this additional data need specify its as a dependency
Question:  Is this beyond the scope of the toolkit and the responsibility for checking lies with the Toolkit user or should we provide a mechanism for a module to verify the cluster state?
Cluster specific data
Question:  Is there a need to store additional details for a cluster deployed in a specific environment, e.g. Resource group, cloud region, cluster ID.  If so should there be a generic mechanism for storing additional data within the cluster configuration data?  This could be an object that can contain any key value pairs, such as:
additional := Object with free form key value pairs that can hold any additional data needed by a specific deployment or cluster type.  The type_code should allow modules to know what keys will be available in the ‘additional’ property
Implementation
Could this be implemented in a Kubernetes provider?  There are the Hashicorp Kubernetes and Helm providers as well as providers for specific cloud providers, however we would need to write a provider to be cross OpenShift and Kubernetes on various different deployment options.  We also need to then look at the option to add additional deployment targets (private and cloud providers).
The Toolkit module approach with the interface facility provides a mechanism to support existing cloud providers and cluster types with a clear path to allow additional cluster types and deployment options to be added.
Creating new interfaces would allow the cluster information from the above section to be implemented.  If an interface property exists in the cluster interface, then it should retain the name from the cluster interface to support backwards compatibility:
kube_config := the interface for terraform modules that need to be able to login to the cluster (the location of a Kubernetes config file)
cluster_config := the interface holding the cluster state information to be used by both terraform and gitops modules
Question: When creating a new cluster the data to populate the interface is readily available, but if the Toolkit will be used to revisit a previously created cluster, then should we regenerate the data (which may not be entirely possible) or should the data be stored on the cluster in a ConfigMap?
Question: How should the data be made available to GitOps modules, where there is no access to the target cluster other than via the GitOps repo?
Modules that create a cluster instance
These modules will create a new cluster, similar to the ibm-ocp-vpc and ibm-iks-vpc modules.  Each module will target a specific cluster type and deployment environment.  The module should create the cluster and implement both the kube_config and cluster_config interfaces, in addition to the existing cluster interface for backward compatibility.  These interfaces will make the configuration data available to all subsequent modules in the BOM or solution BOM
Terraform modules using an existing cluster
There are times when the Toolkit needs to use an existing cluster rather than deploy a cluster from scratch.  There will be a cluster-login module to support ‘generic’ kubernetes mechanisms for logging onto a cluster (kube config, user certificates, username and password/token).  If a cluster is on a cloud provider that has a bespoke cluster login mechanism or has an identity provider configured that doesn’t support the generic Kubernetes login mechanisms, then a specific login module should be created to handle the cluster login.
The cluster login modules should implement both the kube_config and cluster_config interfaces, in addition to the existing cluster interface for backward compatibility.  These interfaces will make the configuration data available to all subsequent modules in the BOM or solution BOM.  There may be some properties, such as the type_code or ingress_base_domain that cannot be determined from the cluster in a standard way.  One way round this is to store the cluster data in a ConfigMap that is read as part of the cluster login functionality.  If the cluster was created using the Toolkit, then the module that created the cluster should populate the ConfigMap.
If the cluster wasn’t created using the Toolkit then module parameters will be required to provide the missing data at first login, the login module should add/update the ConfigMap
If the cluster property end up including cluster state information, such as available catalogs, operators or details about namespaces, deployments, then this information should be updated by the login modules, to ensure stale data is not provided to subsequent modules in the BOM
GitOps modules using an existing cluster
When creating a BOM or solution BOM targeting an existing cluster, then there may be no access to the cluster other than via the gitops repo.  For this case we need to find a way of making the cluster data available.  One option would be to store the cluster data within the gitops repo.  Then create a gitops-login module to read the cluster data and make it available via the cluster_config interface to subsequent modules in a BOM or solution BOM.
To get the cluster data into the gitops repo would require a modules, such as the gitops-bootstrap module to have previously populated the data in the repo.  If there its cluster data that may become stale then the gitops-login module could initiate a job via the gitops repo and ArgoCD to update the cluster data before reading the data from the git repo
Summary
The design for the provision of cluster information to modules should:

allow additional deployments environments (cloud providers) and cluster types to be easily added to the Toolkit
provide a standard mechanism to find information about the target cluster that works for both terraform and gitops modules


ci: write lcov code coverage

Related Issues
n/a
Proposed Changes:
Use lcov exporter to align coveralls coverage with reality.
Testing:
Check coveralls build.
Extra Notes (optional):
n/a
Checklist

[x] Related issues and proposed changes are filled
[ ] Tests are defining the correct and expected behavior
[ ] Code is well-documented via docstrings

coverage: 91.887% (+12.7%) from 79.176% when pulling 9e925b62ad14b66d080aedb4f91969a29fc2c4a2 on palazzem/coveralls into e8c4c566e333c84ea9bd018881206a2fe40f409e on main.

coverage: 83.107% (+3.9%) from 79.176% when pulling 2f1b5f262f0a1cd775b928cf4d46432de8aa6552 on palazzem/coveralls into e8c4c566e333c84ea9bd018881206a2fe40f409e on main.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
23 unchanged lines in 3 files lost coverage.
Overall coverage increased (+8.2%) to 87.348%

Files with Coverage Reduction
New Missed Lines
%

custom_components/econnect_metronet/init.py
1
48.94%

custom_components/econnect_metronet/alarm_control_panel.py
2
72.5%

custom_components/econnect_metronet/config_flow.py
20
63.51%

Totals

Change from base Build<PHONE_NUMBER>:
8.2%

Covered Lines:
432

Relevant Lines:
498

💛  - Coveralls


CopyWith method generated on fields in fragments expect functions rather than values themselves

Suppose a schema and fragments as given below
type Tournament {
	event: String!
	match: Match
}

type Match {
	homeTeam: Score
	awayTeam: Score
}

type Score {
	teamName: String!
	value: Int!
}

fragment Tournament on Tournament {
	event
	match {
		homeTeam {
			...Score
		}
		awayTeam {
			...Score
		}
	}
}

fragment Score on Score {
	teamName
	value
}

The code generated creates a class called FragmentTournament$match whose copywith is as given below
extension UtilityExtensionFragmentTournament$match on FragmentTournament$match {
  FragmentTournament$match copyWith(
          {FragmentTournament$match$homeTeam? Function()? homeTeam,
          FragmentTournament$match$awayTeam? Function()? awayTeam,
          String? $__typename}) =>
      FragmentTournament$match(
          homeTeam: homeTeam == null ? this.homeTeam : homeTeam(),
          awayTeam: awayTeam == null ? this.awayTeam : awayTeam(),
          $__typename: $__typename == null ? this.$__typename : $__typename);
}

It's expected to take in the values rather than functions that return those values, as is the norm in copyWith methods

Alright, how would you express these two cases with your approach:

copy with overwriting a nullable value with null?
copy with preserving a nullable value?

Thank you for sharing this! It's definitely a good source of improvement and I like the deep copy functionality.

Rather than reinvent the wheel, it might be easier for you to create freezed classes from the graphql and then let it handle the utility methods on it. It'll add a dependency, but I think it's worth it

I think that's a trade off. Generally, I'd like to reduce the number of runtime dependencies and get more control over the generated output, moving to freezed is not in line with this. Furthermore, we're in a unique position to implement this our selves in a more efficient way, because we have a very limited domain to cover. We have full control over the classes and can make anything happen.
Lastly, this work is not super complicated, I've already implemented a better copyWith and have the deep copy implementation pending.

That's awesome to hear! Looking forward to your updates

Released new copyWith and deep copy in 0.10.0-beta.2


Webpack transpiler error with UglifyJsPlugin

webpack.conf.js
plugins: plugins,
    optimization: {
    minimizer: [
        new UglifyJsPlugin({
            uglifyOptions: {
                output: {
                    comments: false
                }
            }
        })
    ]
},

and webpack --mode=production
fails with
ERROR in xyz.js from UglifyJs
Unexpected token: keyword «const» [xyz:4540,4]

Removing the plugin works well.

You have to migrate to terser-webpack-plugin to get es6 support to work.


passes error message if KEYSPACE does not have valid character

if cassandra fails because of using invalid character the user will now
know why, thus can make changes to KEYSPACE parameter
fixes: #445
Signed-off-by: Deepika Upadhyay<EMAIL_ADDRESS>

Thanks!

Coverage remained the same at 100.0% when pulling 1bdef2abbbddc38b7cbaf9b6cadb71791f00dabf on dexter816:fixes/#445 into 11d7d475e5d57f8946a83e023b14f8788ef48b3f on jaegertracing:master.

\o/ Yay ! Thanks for helping ! :)


add securityContext to allow running with strict PSP

What this PR does / why we need it:
Without a securityContext the pod will fail when running in a namespace with a restrictive (e.g. run as non-root) PSP.
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md

@integrii @ihoegen @lolimjake

Thanks for your contribution here @davidkarlsen!

/lgtm


5451086D - Saints Row: The Third

Validation

[X] I've read the FAQ.
[X] The Xenia build used is from a canary branch. (not MLBS/AlexVS/master/pull requests, etc)
[X] This issue isn't for help (tech support) with Xenia, or a game.
[X] I've checked if this game doesn't already have a compatibility report.

Xbox 360 Marketplace link
https://marketplace.xbox.com/en-us/product/saints-row-the-third/66acd000-77fe-1000-9115-d8025451086d
Xenia version
https://github.com/xenia-canary/xenia-canary/commit/1ae524a8d51f7de5df8d2a1f72d7a5fb0416e266/
Issues
With dx12 it runs, but textures are missing.
With Vulkan audio glitching, doubling, repeating parts and textures are missing.
rov shortly freezes the emulator.
Log
xenia.zip
Screenshots

Labels
state-menus

Tested on: https://github.com/xenia-project/xenia/commit/7003e54e510fa2169a9434cdb8d608bff7f7be1e
xenia.zip

requires render_target_path_d3d12 = "rov" and readback_resolve = true, otherwise everything is very dark.
pixelated smoke/dust effects.
not occluded sun flare.
requires protect_zero = false to avoid occasional crashes when loading to gameplay.
after playing for about a minute in the open world, something about lighting/shadows break, causing objects in player proximity to be dark.

RTV+RR vs. ROV+RR:

gpu-occlusion-query | requires_protect_zero_false | state-gameplay | tech-middleware-wwise