CircuitBreaker

Feature Request
Hello.
Lettuce doesn't have CircuitBreaker feature, so I'm going to add it. Before I start working, I want to ask you one question. Have you ever considered applying CircuitBreaker before? If so, is there any reason why you didn't apply it at that time?
If you let me know that, it will be helpful when implementing the CircuirBreaker feature.

Thanks for reaching out. I don't think there's a reason that Lettuce should implement a circuit breaker. Instead, circuit breakers should be part of the application or a composition library such as Project Reactor.

Totally agree with @mp911de point.
I personally prefer to use resilience4j for that purposes in my projects on top of reactive or kotlin coroutines APIs. It also has ratelimiting, retrying and other wrappers.

Thanks for the insights. Closing as we don't plan to add such a feature.

When only one of hundreds or thounsands Redis hosts is dead status for tens of several seconds during its failover, or there was some hotspots in requests, "the circuit breaker per (Redis) node" is quite useful instead of waiting few seconds timeouts to keep constant few milliseconds latency to end users. In the situation, applying the circuit breaker to whole Redis client could make more and more failures than applying "the circuit breaker per node" approach if 99.9% of Redis nodes are healthy.
We (LINE) heavily use "the circuit breaker per Redis shard" with Lettuce and Jedis for in-house Redis clusters that cluster structure is in ZooKeeper with client-sharding, and because our internal code know the cluster structure, and the client could throws an exception before calling actual Lettuce/Jedis methods when target node is in dead status in client's in-memory data.
However, with Redis "Cluster" mode, user code could know which key is in which slot, but user code doesn't know which slot is in which node even if it's in Lettuce's memory. So, it would be nice if user code could get Lettuce's internal slot-node mapping as read-only status frequently, or if you allow adding this feature to use per-node approach with the circuit breaker for Redis I/Os. What do you think?

Well, actually I think it is better to hide redis-node information from user.
Because allowing user to know only the concept of Slot without needing to know the concept is suitable for the purpose of Redis cluster.
In order not to expose redis-node information to users and per-node circuit breaker, it is better to implement CircuitBreaker feature inside the client, that is, Lettuce.

Isn't reject commands on disconnected what you're looking for? I agree that queuing and timeout may hurt performance. With reject on disconnect, you can fail fast and catch RedisException. If that helps, we could even introduce a more specific exception type.

Thanks for reply.
As you exlained, with reject on disconnect, the request might be failed fastly.
However the state of circuit should be exist on each redis node, so in order to manage it application should know which redis node is under unavailable state by RedisException.
I wonder that it is worth to expose or not.

I will reopen the ticket to foster discussion around that topic. It has a certain aspect of usefulness but I think it requires a few more iterations before we arrive at a point that would be actionable in some way.

I think the benefit of supporting circuit breaker is quite clear.
As you already mention, the queuing that an intensive request will make situaion worse can be alleviated by circuit-breaker.
And it is difficult to expect the same effect as Circuitbreaker with only the exception due to Disconnect. This is because you may want to fail quickly when you set the timeout long, but when the Redis Node is not in a good state.
Circuitbreaker allows you to determine how long the FailFast state will be kept, making it a Redis Client that allows finer configuration.

Generally speaking, you can already obtain flags (e.g. failed node) from Partitions and verify whether a node connection is established by checking StatefulConnection.isOpen(). That should allow you to orchestrate Lettuce externally.

Thanks for guide.
Please give me couple days to check the circiuitbreaker is implementable with existing interface.

I also have this problem, when a node down, the application will be block a few time until lettuce trigger refresh.

I recognize this is an old issue, but I'd like to add a little more information and respond to a couple points from earlier:

Isn't reject commands on disconnected what you're looking for? I agree that queuing and timeout may hurt performance. With reject on disconnect, you can fail fast and catch RedisException. If that helps, we could even introduce a more specific exception type.

Generally speaking, you can already obtain flags (e.g. failed node) from Partitions and verify whether a node connection is established by checking StatefulConnection.isOpen().

I think these are both valid points, but lately, we've been dealing with irritating cases lately where our upstream provider has some kind of network hiccup and we see a sharp spike in latency when communicating with a single shard in a larger cluster.
In our setup, we have a number of application servers hosted by a major cloud provider, and that cloud provider also provides a managed Redis service through which we have created a medium-to-large-sized cluster. When we see latency spikes to a single shard in that managed cluster, the connection remains open and appears healthy except for the latency spikes. When this happens, requests to that shard begin timing out for some amount of time—perhaps on the order of a minute.
Using an external circuit breaker allows us to fail fast in the case where the connection is healthy, but requests are timing out regardless. The trouble is that we currently need to apply the breaker to the whole cluster even if only a small part of it is experiencing some kind of distress. That means that all requests to the cluster fail for some time when really only a small percentage ought to fail. Having some mechanism to put a breaker on each shard would make an enormous difference in our case.
My main point here: failing fast on connection state is good in many cases, but there are also (very real, non-hypothetical, happening-right-now!) cases that connection state won't address.
Thanks for your consideration!

For the time being, a workaround can be adding a ChannelHandler in front of CommandHandler via NettyCustomizer. The main advantage is that a ChannelHandler doesn't depend on the Redis setup (Standalone vs. Cluster), you can wrap RedisCommand's and also reject these instead of writing commands to the transport.
Probably that would be a neat hook for any kind of circuit breakers as the underlying channel is isolated from all other cluster members. However, the disconnected command buffer of the endpoint needs to be considered, ideally by rejecting commands if the connection is disconnected.

For the time being, a workaround can be adding a ChannelHandler in front of CommandHandler via NettyCustomizer.

Interesting! We'll look into this—thank you for the suggestion!

For the curious, we’ve implemented a circuit breaker using resilience4j, following @mp911de’s suggestion.
There are two things to note:

we didn’t implement anything specific for the disconnected command buffer. There wasn’t a clear way to affect this isConnected() check—we didn’t want to close the channel for only transient disruptions
the exception is not expected by DefaultEndpoint, and this results in a lot of logs when the breaker is open. We considered wrapping it in ClosedChannelException, but this seems to be a violation of the Channel state machine semantics, since the circuit breaker condition might not be a permanent closure.

the exception is not expected by DefaultEndpoint

For this, I‘ve filed #2830.


Automation for GitRepositoryAppConfigurations(3 APIs)

In this module I'll cover below 1 new API of app configurations module
POST	/orchestrator/app/material
and add test cases  for below 2 already automated APIs
GET	        /orchestrator/app/stage/status?app-id={appId}
GET	       /orchestrator/app/get/{appId}
Automation of these APIs will help us in regression testing for any change in future around these APIs

These API's are already automated by Nikesh so closing this card pick some other APIs.


Transition from readme to actually using sphinx docs

remove most stuff from README.md
add links to docs in pypi and readme
add badge for pypi and coverage to readme
add links to contributor guide and changelog to docs

I'll probably transition the contributor guide and changelog to sphinx as well

When reviewing contributing.rst I recommend viewing the diff for https://github.com/python-trio/flake8-async/pull/245/commits/40bfeee88e3c4acce04e0c0d1ad4d0d3b258d0f1 separately, as I made a bunch of changes after the direct translation.
also I ran out of free tokens, oops

Oops, we now have a semantic merge conflict where the latest changelog entry has been dropped.  Well, other than that it's ready to merge 😅

Meta tests did their job!


 Would you like to try your hand at submitting a PR?

Oh, I see that is duplicate of this:
https://github.com/springfox/springfox/issues/853


Feature Request: Add link to working implementation demo

Hi! I've created an implementation of your bionic reading concept at https://github.com/SanshruthR/Bionic_Reading_Hub.
I think it could be valuable to add this as a demo link in the repository's README so users can see a practical implementation of the concept. This would help people better understand how bionic reading works in practice.

Hi,
I really like you implementation. Fantastic idea!
I will add the link to my repos README 😉


Review all uses of (Passphrase seed), add PassphraseMinMaxLength inst…

…ance and add roundtrips tests
Issue Number
#302

Overview

[x] I added min seed size requirement to comment of generateKeyFromSeed
[x] I revised all generators we have in tests and change some
[x] I added instances (to use in generator passphraseMinLength, passphraseMaxLength), added respective roundtrips test

Comments

I looked in the following files (where are occurrences of generateKeyFromSeed or unsafeGenerateKeyFromSeed ):
lib/core/test/bench/db/Main.hs
lib/core/test/unit/Cardano/WalletSpec.hs
lib/core/test/unit/Cardano/Wallet/DB/SqliteSpec.hs
lib/core/test/unit/Cardano/Wallet/Primitive/AddressDerivationSpec.hs
lib/core/test/unit/Cardano/Wallet/Primitive/AddressDiscoverySpec.hs
lib/core/test/unit/Cardano/Wallet/Primitive/TypesSpec.hs
lib/core/test/unit/Cardano/Wallet/DBSpec.hs
lib/http-bridge/test/bench/Main.hs
lib/http-bridge/test/unit/Cardano/Wallet/Primitive/AddressDerivationSpec.hs
lib/http-bridge/test/unit/Cardano/Wallet/HttpBridge/TransactionSpec.hs
lib/http-bridge/test/integration/Cardano/WalletSpec.hs
lib/http-bridge/test/integration/Test/Integration/Faucet.hs

I am still not convinced by the following instances:
instance PassphraseMinLength "seed" where passphraseMinLength _ = 16
instance PassphraseMaxLength "seed" where passphraseMaxLength _ = 255

These instances are really used to indicates the min and max size of passphrases when coerced from Text. The seed is rather different (and the generation passphrase as well) since they are generated from mnemonic words and therefore, these instances won't apply so it would be wrong to define them for seed and generation.

Do you think it's also worth adding assertions to generateKeyFromSeed?

I think that would make sense. We have the invariant helper for this in the Primitive.Types.

added invariant for (Passphrase "seed"). @KtorZ thanks for pointing to this point. Indeed,
adding instances of PassphraseMinLength or PassphraseMaxLength for this type gives as only some advantage when we coerce from Text. This can be used on test level, but does not give us any security when used from mnemonics. If we want to enforce it invariant is a way. And when added, some invariant violations popped out.

to sum up, if we add invariant for both Passphrase "seed" and Passphrase "generation" then I believe PassphraseMinLength and PassphraseMaxLength and correspondng tests (mainly roundtrips) are not needed. Nevertheless, adding :
506         gen' = invariant
507             ("generation length in (Passphrase \"generation\") is not valid")
508             gen
509             (\s -> BA.length s >= 10 && BA.length s <= 255)

on top of invariant of Passphrase "seed" gives rise to 81 unit test fails at this moment.

have problem in CI with http-bridge passing. Probably because of this :
47         let seed0 = Passphrase "4\175\242L\184\243\191 \169]\171 \207\r\v\233\NUL~&\ETB"

in lib/http-bridge/test/unit/Cardano/Wallet/Primitive/AddressDerivationSpec.hs

@pawel.jakubas note that the generation passphrase can be empty. And, I am not actually sure that there's any size limitation for that one (to be confirmed though...)


starting point to make cloud tests mandatory

"cloud" and "bucket" tests now run by default, in order to make progress for issue #751.
Moved all existing tests to "cloud_todo" and "bucket_todo". The plan is to then move back the tests that work (but in a separate PR, to keep this clean and simple).

All Travis tests pass. Coverage computation appears to be broken, though (?).

@lbergelson , does that look good to you?

Ignore this one, use #822 instead (it's rebased, now that the previous PR has been merged).


safe-regex breaking on this regex

$ node safe.js '[&<>"'`!@$%()=+{}[\]\\/|#:;?]'
-bash: !@$%: event not found

any idea?

The simple fix is to set +H to turn off Csh-style history expansion in Bash. Probably chuck it in your .bash_profile and never enable it again. See also https://stackoverflow.com/questions/11816122/echo-fails-event-not-found


Usability issue with search on main page #412

Fixed an issue on the main page where the cursor wouldn't focus on the input field when clicking the search button. Added focus functionality to ensure the cursor automatically appears in the input field.

check this if the focus is working poroperly , thanks !!

Is there a preview page somewhere we can see this on? Thanks! Also @Paul-TT can you review the change?

I don't have a preview page, but I just added focus on the input. Let @Paul-TT check if it is working properly without interfering with anything.

@bproffitt  @GarvitMahhesh I pulled the code into a staging branch. The focus doesn't seem to be working.  Were you able to test it locally?
Also, it looks like the style tags were removed around the styles.css include which is causing the styles to print on the page.
You can see the it staged here. https://www-paulfocustest.staged.apache.org/


Test Smell: it is not a good test practice to use the loop in the test

Hi!
We notice that you use the loop structure in your test cases.
For example, testPutWithExpansions() in KTypeVTypeWormMapTest.java

However, using the loop in test cases is not a good test practice.
We analyzed the relevant Stack Overflow posts and summarized four potential negatives it brings:

Loops make the test case more complex.
In most cases, a loop can be replaced with a data-driven test that is more readable.
Loops break the assert-for-one-thing thumb rule. I don't mean a single assert statement.
When a test fails, knowing the reason is more complicated.
Solution:
To avoid using the loop in the test, JUnit provides an annotation (i.e., @ParameteredTest), enabling a test case to run multiple times with different parameters.
We provide a usage example here:

Automated bot, very likely.

I'm not bot. I study test smells recently. I summarize some Stack Overflow posts, many developers believe the loop is not a good structure in test cases. So I want to know whether other developers also agree with their opinion that using another solution to replace the loop.

Then don't do it automatically, please. You need to look at what the library is and what the test is about. Your suggestion is not really relevant or applicable here, sorry (it's a randomized test, it explicitly wants a number of items so that the underlying map is expanded on different key distributions).


T4 Support

Pass 1 at getting support for the new Teensy 4.
I tried the DMASpi_example1 and it appears to work...
Also with DMASpi_example2 on SPI1 and likewise it appears to work...

@crteensy  - Also fixed issue where current code will not compile on T3.2 as the ChipSelect.h file defined a class for SPI1 and T3.2 does not have SPI1.  So added #if statement around that class definition

Finally finding some time to go through this! Thank you very much for contributing.
Please help me understand this so I can run tests as well. The hardware LPSPI numbers don't exactly reflect the software identifiers (pinout problems probably?):
DMASPI0 <-> LPSPI4
DMASPI1 <-> LPSPI3
DMASPI2 <-> LPSPI1
LPSPI2 is not used, there's no DMASPI3, and we didn't have DMASPI3 for older Teensys so no big deal from any point of view.
Is that correct?

Yes correct - There are pins for Three of the SPI objects that are brought out on the T4.  So as you mentioned the pins for LPSPI2 were not brought out.
Not sure if they will be on the bigger T.x - but will know when we get the beta boards


TimelineScreen should change the current date on scroll

When the user scrolls, the current date should change to ensure the position is held.

Setting current date on each update from the item being updated.


Make date-limited run_length methods calendar-aware

Pull Request Checklist:

[x] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #561

[x] Tests for the changes have been added (for bug fixes / features)
[x] Documentation has been added / updated (for bug fixes / features)
[x] HISTORY.rst has been updated (with summary of main changes)
[ ] bumpversion (minor / major / patch) has been called on this branch
[ ] Tags have been pushed (git push --tags)

What kind of change does this PR introduce?
Earlier,  run_length method accepting dates were converting them to day of year before finding the corresponding index in the input array. The conversion was done by python's datetime and implicitly assuming a non-leap year. This PR uses a new method to find the index that is calendar-independent.

Also, it adds the condition that, in method accepting a "after_date" or "mid_date", only one index is found in the coordinate array. For example, passing data longer than a year to rl.first_run_after_date(tas, date="04-05") will fail, sincie there are 2 fifth of april in tas.

Does this PR introduce a breaking change?
Maybe. Two specific cases are modified:

1 -  When after_date or mid_date was the first day of the period (ex: freq='AS-AUG' and after_date="08-01"), leap years would all be NaN, which was a bug.
2 - When the run was ended before the after_date or mid_date. In that case, the doy corresponding to that date would be returned. Calculations before this change did not consider the leap day, the results would be one under on leap years.

Pull Request Test Coverage Report for Build 2341

18 of 19 (94.74%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 92.163%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

xclim/indices/run_length.py
18
19
94.74%

Totals

Change from base Build 2340:
0.02%

Covered Lines:
3175

Relevant Lines:
3445

💛  - Coveralls


!KC command throwing uncaught exception

Describe the bug
Using !kc skotizo throws an uncaught exception
To Reproduce

Use the !kc command

Expected behavior
!kc skotizo should be replaced with the kill count message
Screenshots
https://lambda.sx/BA3.png
Environment

OS: Win10
RuneLite version: 1.4.22-SNAPSHOT - updated to current master on a clean install with -U

The API endpoint https://api.runelite.net/runelite-1.4.22-SNAPSHOT/kc?name={USERNAME}&boss={BOSSNAME} seems to return a 404.
According to a user in game, the command was working "a couple of days ago". No changes were made to net.runelite.http.api.kc or net.runelite.http.service.kc. The only recent changes have been to the ChatCommandsPlugin class itself.
Just thought I'd put some of the info I was able to gather about it here.


Add "StarAMR" prefix to each metadata field

Context
In the current pipeline, the following names are given to metadata fields output by the pipeline for loading into IRIDA Next:

Quality Module
Predicted Phenotype
CGE Predicted Phenotype
Genotype
Plasmid
Scheme
Sequence Type

See the tests for example:
https://github.com/phac-nml/staramrnf/blob/fcf87f2493d8ab10a75fe2d9411cb6e716c10917/tests/main.nf.test#L28-L34
Request
I would like the names of these metadata fields to be updated to include StarAMR as a prefix. For example:

StarAMR Quality Module

That way it's easier for someone to tell what the specific metadata fields are referring to.
Possible implementation
Since the above metadata filed names are derived from the output column names of the summary.tsv file in StarAMR (see https://github.com/phac-nml/staramrnf/blob/dev/tests/data/merged_summary.tsv), the easiest way to rename these is to use the rename configuration in the nf-iridanext plugin: https://github.com/phac-nml/nf-iridanext?tab=readme-ov-file#rename
That is, add something like this to conf/iridanext.config:
rename = [
    "Quality Module": "StarAMR Quality Module",
    "Predicted Phenotype": "StarAMR Predicted Phenotype"
]

Other benefits
Renaming like this would also mean that the metadata written by StarAMR will be to the same fields as in the mikrokondo pipeline (so someone could overwrite older StarAMR metadata from mikrokondo with newer StarAMR metadata from this pipeline). Mikrokondo also uses the nf-iridanext rename configuration option to rename metadata: https://github.com/phac-nml/mikrokondo/blob/31c494a397ceb0d97567ac84a44a85ad673f3840/conf/irida_next.config#L125-L128

Fixed in https://github.com/phac-nml/staramrnf/pull/22


Shutdown endpoint does not deregister management service

Now that #67 is closed, I've noticed that the management service is not deregistered with consul when calling the spring boot shutdown endpoint. Since the management service is not registered with an http check (or ttl), I believe the service will persist in consul indefinitely, or until a deregister consul api call is made.

@bpgray so if the management port is set, the /health endpoint moves to it, so the normal check fails.  I'm thinking of setting both health check ports to the management port if enabled.  The other option is to use ttl.

@spencergibb moving the health check helps, but I think it's a slightly different issue. If the shutdown endpoint of a spring boot application is called, the application terminates and the primary service is deregistered by spring cloud consul. I would argue that the management service should be deregistered as the same time. With the latest commit, the the management service will presist but now with failing health checks, which doesn't seem representative of an intended application shutdown.

@bpgray it does attempt to deregister management.  I see:
    2015/08/28 14:15:59 [INFO] agent: Deregistered service 'testConsulApp-management'

But it doesn't complete or something.

even running http :8500/v1/agent/service/deregister/testConsulApp-management directly doesn't deregister, so either the registration is a bug, or there is a consul bug.

that's the name, not the id.  fix coming shortly


keypressed incompatiable with Nodemon

If running a script that uses blessed executed by nodemon, the key presses will only register after hitting enter/return.
screen.on('keypress', function(ch, key){ console.log(key); });

If you type 'asdf' then you won't see any of the key press logs, but if you press enter/return, you'll see the long for 'a', then 's', then 'd', then 'f' and finally return all at the same time.
Running the same script with plain 'node', the behaviour will be as expected.

Nodemon likely uses a readline style input. If this is a case, this is intended behaviour and is caused by nodemon, not blessed.

I had this problem as well, and it was a bit unclear on how to solve it when consulting the Nodemon documentation. Seems like it's not even in the docs.
But it's actually easy to solve, just pass the following flag to Nodemon when firing it up:
-I, --no-stdin
For over clarification:
nodemon -I your_blessed_program_now_working.js
Then all your $TERM (xterm etc) escape sequences will work as usual, and Nodemon will re-execute your program when you write any changes to the file.

if add the -I option, ctrl-c won't response after the first restarting


https://github.com/kvj/hass_nuki_ng is not a valid add-on repository

I wanted to try this Addon in stead of the official NUKI integration for my Nuki 2.0 lock + WIFI Bridge.
But when adding https://github.com/kvj/hass_nuki_ng I get the following error:
https://github.com/kvj/hass_nuki_ng is not a valid add-on repository
I'm running:
Home Assistant 2023.5.0
Supervisor 2023.04.1
Operating System 10.1
Frontend 20230503.1 - latest

The error message is correct because it is a HACS repository and not a HomeAssistant Aden repository.
Please read again https://github.com/kvj/hass_nuki_ng#setup

#190 should resolve this.


feat(span): add builder methods for content and style

Actually these should be called "fluent setters" not "builder methods". Builder methods usually refer to a separate builder object that may have incomplete fields and need to be consumed to become the built object, e.g. https://docs.rs/typed-builder.

Rebased and squashed - should be good to go

Tweaked must_use message to:
    #[must_use = "method moves the value of self and returns the modified value"]

Based on discussion in https://github.com/ratatui-org/ratatui/pull/655


[PERF-324] OSSF Scorecard implementation

 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.


Remove schema workarounds for ES mapper/analyzer mismatches

This goes along with https://github.com/zmap/zcrypto/pull/141 .

Are pypy builds still just broken?

Resolved merge conflict. Merging.


Typed channels support

introduced a new method FromTypedChannel()
From() calls FromChannel() if channel is of type chan interface{} and FromTypedChannel for all other channels
benchmark for FromTypedChannel() and FromChannel() performance comparison

calls FromChannel() if channel is of type chan interface{}

but can't all chans be casted to chan interface{} ?

calls FromChannel() if channel is of type chan interface{}

but can't all chans be casted to chan interface{} ?

No, I don't think so. You can think of chan as a type constructor that is parameterized by some inner type and it is invariant. So, chan interface{} and chan int are totally different types.
Disclaimer. I am not 100% sure, since I am not a Go developer in real life :) So, there might be a way.

@ahmetb I've remembered that we use a naming convention of -T() for the methods that identify user types with reflection, e.g. WhereT(predicateFn interface{}) vs Where(predicate func(interface{}) bool). So, probably the right name for FromTypedChannel() is FromChannelT(). What do you think?

Yeah we currently don’t have FromXxxT, but this would reinforce the pattern. FromChannelT is good. Please make sure we explain the difference in its godoc.

Yeah we currently don’t have FromXxxT, but this would reinforce the pattern. FromChannelT is good. Please make sure we explain the difference in its godoc.

@ahmetb done.


[dv/uvmdvgen] Add comment for testplan

This PR adds a comment to remind user to add testplan to the
util/build_docs.py to avoid doc generation error.
Signed-off-by: Cindy Chen<EMAIL_ADDRESS>

LGTM


Feature/tf 416 add control panel items to settings

[ ] Test plan updated (by PR creator)
[ ] Code Review
[ ] Developer Testing: Key item tests
[ ] Developer Testing: Execution of the updated test plan (changed items for this work only)
[ ] Product Owner Review (Optional)
[ ] Update Release Notes on the JIRA ticket for harvest at release time

The new text on the masking screen is slightly overlapping the toggle


Empty area below the message input box

There is an empty area below the message input box if the chat does not fill the space vertically.

Closed by #116


Add actions and keyboard shortcut map support

Description
This implements the keyboard shortcut handling and action invocation in order to provide the final link in the infrastructure for keyboard traversal (keyboard events, focus handling).  Once this design has been approved and implemented in its final form, basic keyboard traversal should work out of the box, and it should be fully configurable for applications to use.
(In addition to the prototype, this also includes the fix for first focus determination that is in #33279 which will be merged out once it has been committed.)
Related Issues
Addresses #31946, #13264.

OK, I think this is ready for more review. I'm adding many more tests for both actions and shortcuts still, so it's not ready for "final" review, but this is what I think I want the implementation to be.


TST: add script to run tests

Since stubs-only packages have to be installed, add a simple script that installs the stubs and then invokes pytest.
Just a small shortcut for
$ pip install .
$ pytest

Since this is a small PR I'll merge in a day or so barring complaints.

LGTM, except shouldn't the filename be runtests.py rather than runtests?

except shouldn't the filename be runtests.py rather than runtests?

Ah yeah, not good to buck conventions. Changed it.

Merged, thanks @person142


compiling and running issue

I am unable to compile and run my codes, even though i have installed all the necessary extensions
Version: 1.79.2
Commit: 695af097c7bd098fbf017ce3ac85e09bbc5dda06
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 Edg/114.0.1823.58
Embedder: codespaces

/needsMoreInfo

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

@Hailstorm07 Can you provide the debug configuration you are using? As far as I can tell this is not a VS Code issue, it looks like you have a mismatch in the bitness of GDB used. See here: https://stackoverflow.com/questions/47639685/gdb-error-not-in-executable-format-file-format-not-recognized#:~:text=The fix is simple%3A install 64-bit GDB (which,build hello in 32-bit mode (with g%2B%2B -m32...).

/needsMoreInfo

Thanks for creating this issue! We figured it's missing some basic information or in some other way doesn't follow our issue reporting guidelines. Please take the time to review these and update the issue.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Duplicate Icon on Windows 10

Continuing from this discussion: https://discuss.atom.io/t/double-icon-when-pinned/17320/24
I've got Atom installed on Windows 10. I open the application, then right click the icon in the taskbar, then click Pin to Taskbar. This creates a duplicate (second) icon on the taskbar. The first icon is the actual instance of the app running, and it goes away when the app is closed. The second icon stays permanently. If I click the second icon while Atom is closed, it adds the first icon back to my taskbar.
Any ideas as to what I can do to fix this?

This is a duplicate of #1954.


python39Packages.apsw fails to build

Describe the bug
When building apsw as a dependency of calibre (which overrides some attrs, context below), build tests fail.
Steps To Reproduce
Steps to reproduce the behavior:

nix-shell -p calibre

Expected behavior
Successful build
Screenshots
N/A
Additional context
This is how Calibre overrides apsw, not sure if relevant.
# /pkgs/applications/misc/calibre/default.nix:87
      (apsw.overrideAttrs (oldAttrs: rec {
        setupPyBuildFlags = [ "--enable=load_extension" ];
      }))

Notify maintainers

Wasn't sure who to @ here, picked some recentish names from git blame.
@fabaff
@jonringer
Metadata
Using nix flakes, if that's relevant.
 - system: `"x86_64-linux"`
 - host os: `Linux 5.15.29, NixOS, 22.05 (Quokka), 22.05.20220406.b6966d9`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.7.0`
 - channels(root): `"nixos"`
 - channels(eliza): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Yes it's related to the use of the load_extension but I really don't understand why the tests started failing given that nothing seems to have changed. It's related to this code being executed: https://github.com/rogerbinns/apsw/blob/3.37.0-r1/tests.py#L8908-L8915

broken somehow by this: https://github.com/NixOS/nixpkgs/commit/ac90f4238934a643f1858855223a59c525c97828

maybe will fix https://github.com/NixOS/nixpkgs/pull/168071

as a workaround for calibre this overlay by dee (thanks!!)
nixpkgs.overlays = [
  (overlayFinal: overlayPrev:
    let
      packageOverrides = (pythonFinal: pythonPrev: {
        apsw = pythonPrev.apsw.overridePythonAttrs (oldAttrs: {
          version = "3.38.1-r1";
          src = overlayPrev.fetchFromGitHub {
            owner = "rogerbinns";
            repo = "apsw";
            rev = "3.38.1-r1";
            sha256 = "sha256-pbb6wCu1T1mPlgoydB1Y1AKv+kToGkdVUjiom2vTqf4=";
          };
          checkInputs = [];
          # Project uses custom test setup to exclude some tests by default, so using pytest
          # requires more maintenance
          # https://github.com/rogerbinns/apsw/issues/335
          checkPhase = ''
          python tests.py
        '';
          pytestFlagsArray = [];
          disabledTests = [];
        });
      });
      python' = overlayPrev.python3.override { inherit packageOverrides; };
    in {
      calibre = overlayPrev.calibre.override { python3Packages = python'.pkgs; };
    }
  )
];

broken somehow by this: ac90f42

that includes a pytest 6->7 bump, I can't say I'm surprised. I spent a week tracking down an incompatibility in a transitive dependency last week due to pulling in pytest 7 somewhere in a personal project.

Should be fixed now with https://github.com/NixOS/nixpkgs/pull/168797.

Confirmed that 0323c98ce767eb7f7b33a60bd53b606333ab0a1d fixes the build of calibre.


[Bug] Search Engine cannot be changed to custom search engine

Bug: Search Engine cannot be changed to custom search engine
Info: Search engines that are already present can be selected from the drop-down menu. However, when a custom search engine is selected from the drop down, Flame will pick the search engine which is the most similar to what the custom search engine is named.
Example: When Whoogle is selected from the drop-down menu, Wikipedia will be automatically chosen instead.

What prefix are you using for Whoogle? Perhaps it is in conflict with Wikipedia prefix /w

Sorry for the late response. I had no idea you responded. You were correct, and I when I changed the prefix, it worked. Thanks so much!


Improve IQ# compatibility with Jupyter Lab and nteract

This PR improves IQ# compatibility with Jupyter clients such as Jupyter Lab and nteract.

Upgrades to the latest release of Microsoft.Jupyter.Core, which has fixes for https://github.com/microsoft/jupyter-core/issues/35 and https://github.com/microsoft/jupyter-core/issues/66.
Integrates with https://github.com/microsoft/jupyter-core/pull/68 by specifying a custom MIME type for the JSON data that is passed between the IQ# kernel and Python, which fixes #34.

This PR maintains backward compatibility between mismatched versions of the IQ# and qsharp Python clients such that this is not a breaking change. The new MIME type will only be used if the new Python client has a version greater than the previous QDK release (0.14.2011.120240).
Keeping this as draft for now until the Microsoft.Jupyter.Core release is actually published and verification has been completed.
Need to investigate and fix failures in these Python notebooks before merging:

[ ] Failure in QuantumKatas/tutorials/ExploringGroversAlgorithm/VisualizingGroversAlgorithm.ipynb (CI failure link)
[ ] Failure in QuantumKatas/tutorials/QuantumClassification/ExploringQuantumClassificationLibrary.ipynb (CI failure link)

Side thought, but should we bump to 0.15, since the MIME type change is a breaking change?

Side thought, but should we bump to 0.15, since the MIME type change is a breaking change?

Yes, I think so, unless we can find a way to make it non-breaking. e.g., we could potentially do something like add version information to the IQ#<->Python protocol, such that the new MIME type is only used for a new-enough version of the Python client.

/azp run

/azp run


Updates needed for gazebo 9 compatibility

[ 96%] Built target gtest_main
In file included from /tmp/testws/src/gazebo_radar_plugin/src/ModeCRadarPlugin.cc:18:0:
/tmp/testws/src/gazebo_radar_plugin/include/gazebo_radar_plugin/ModeCRadarPlugin.hh:26:31: fatal error: gazebo/math/Pose.hh: No such file or directory
compilation terminated.

Need to switch to ignition math for gazebo9t

Any update on this? Seeing this error on Gazebo 9 fatal error: gazebo/math/Pose.hh: No such file or directory

We're not actively using this a PR to update it to use the ignition math libraries would be appreciated.

Appropriate changes have been made in PR #7 to make it compatible with Gazebo 9. These changes can be on a different gazebo9 branch.

Since gazebo9 is newer I instead moved master forward to the new API and created a gazebo7 branch for older users.

hey I am facing a similar issue i have a gazebo 11 version , what you are suggesting here?, should i chnage the verison to 7/9 or what?


the user of vela doesn't know what is contour or nginx ingress. So there won't be a 'type' field in trait spec.

Note that the user of vela doesn't know what is contour or nginx ingress. So there won't be a 'type' field in trait spec.
Instead, the provider of ingress is a platform admin's concern that should be decided by:

trait definition, and be configurable by vela install config
or, auto discover by whether contour or nginx ingress is available (default provider should be defined in this case)

1 is simplest though 2 is favorable, leave to @wonderflow for final decision
Originally posted by @resouer in https://github.com/oam-dev/kubevela/issues/646#issuecomment-732443528

We have made 1 as a quick fix, but we are lacking of way to fix as 2

We have made 1 as a quick fix, but we are lacking of way to fix as 2

For 1, since we now have catalog design: https://github.com/oam-dev/kubevela/blob/master/design/vela-core/APIServer-Catalog.md, it also makes sense to maintain multiple set of definitions in catalog. Platform team will make the decision by choosing which set to apply to cluster (environment).

For 1, since we now have catalog design: https://github.com/oam-dev/kubevela/blob/master/design/vela-core/APIServer-Catalog.md, it also makes sense to maintain multiple set of definitions in catalog. Platform team will make the decision by choosing which set to apply to cluster (environment).

For 1, since we now have catalog design: https://github.com/oam-dev/kubevela/blob/master/design/vela-core/APIServer-Catalog.md, it also makes sense to maintain multiple set of definitions in catalog. Platform team will make the decision by choosing which set to apply to cluster (environment).

Yes, I'll close this issue, it's related with #870


UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3

Hi All,
Problem with dataset or code ? Thanks for any hints.
Run:
training_results_v0.6/NVIDIA/benchmarks/gnmt/implementations/download_dataset.sh
Error:
Input sentences: 4562102  Output sentences:  4524868
Cleaning data/train.tok...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = "C.UTF-8",
LANG = "C.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
clean-corpus.perl: processing data/train.tok.de & .en to data/train.tok.clean, cutoff 1-80, ratio 9
..........(100000)..........(200000)..........(300000)..........(400000)..........(500000)..........(600000)..........(700000)..........(800000)..........(900000)..........(1000000)..........(1100000)..........(1200000)..........(1300000)..........(1400000)..........(1500000)..........(1600000)..........(1700000)..........(1800000)..........(1900000)..........(2000000)..........(2100000)..........(2200000)..........(2300000)..........(2400000)..........(2500000)..........(2600000)..........(2700000)..........(2800000)..........(2900000)..........(3000000)..........(3100000)..........(3200000)..........(3300000)..........(3400000)..........(3500000)..........(3600000)..........(3700000)..........(3800000)..........(3900000)..........(4000000)..........(4100000)..........(4200000)..........(4300000)..........(4400000)..........(4500000)......
Input sentences: 4562102  Output sentences:  4500966
Traceback (most recent call last):
File "pytorch/scripts/filter_dataset.py", line 79, in
main()
File "pytorch/scripts/filter_dataset.py", line 55, in main
for idx, lines in enumerate(zip(f1, f2)):
File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6727: ordinal not in range(128)

Are these variables a part of your environment?
export LANG=C.UTF-8
export LC_ALL=C.UTF-8


fix: decay defaults for optimizers

Fixes defaults for :decay option in some optimizers.
RMSProp wasn't using the option, but I'm not sure if momentum is being used correctly there

@seanmor5 Optax actually uses adamw decay ~ 0 by default, instead of ~ 1. It's best if you validate these defaults before reviewing the PR. Maybe the tests are checking agains unusual values.
https://optax.readthedocs.io/en/latest/api.html#optax.adamw

@polvalente if you add a test without the defaults do they pass?


Close timer in event of error

If an error occurs, the timer created by
 this.timer = setInterval on line 123
never gets cleared, and the program will never exit. This commit fixes this.

#36


[Question] SqlDialectInspection

I was looking at making a PR to remove some of the annoying build problems I was seeing (use of deprecated methods, unused imports...).
I'm using vscode and getting Problems regarding @SuppressWarnings("SqlDialectInspection") and "SqlNoDataSourceInspection" but I don't recognise SqlDialectInspection from my Eclipse experience. I found some Intellij IDEAs references but nothing explaining its purpose.
Are these SQL related @SuppressWarnings safe to remove? Does it depend on compiler, IDE, some plugin? Just want to check before making an unnecessary or incorrect change.
Thanks, Gordon

No clue.
Use Git History to see who added them, and then tag them here to ask
Googling "java SqlDialectInspection" seems to indicate that this is an
IntelliJ thing.
VS Code should just ignore any unknown Suppress Warnings. Perhaps you can
configure it to do so?

@duttonw, @vorburger  - Could someone explain the potential impact of removing the SqlDialectInspection and SqlNoDataSourceInspection SuppressWarnings in, for example, mariaDB4j-maven-plugin/src/test/java/ch/vorburger/mariaDB4j/DbUtils.java(40)
These lines raise Unsupported warnings - e.g. **Unsupported @SuppressWarnings("SqlDialectInspection") - in both Eclipse and VS Code.
It seems like the attempt to suppress warnings in one environment simply raises new warnings in others and that this should be controlled in that environment's settings rather than requiring a source code change.
The options appear to be unique to IDEAs. I've attempted opening the project in 2019.1 Community Edition which does not raise the Unsupported warning, but also does not complain when the SuppressWarnings line is commented out. I suspect the options are specific to having Database and/or SQL plugins installed which don't seem to be available in Community Edition.
 :)

I would merge a PR from you removing it.


Coffescript lint

Fixing code climate coffescript issues

Coverage remained the same at 97.698% when pulling 3f5260a80fc13f0d085e21df587e1da211fb442c on coffescript-lint into ab0b7cc3d69d64c5bbc8a1710eeafc5997a1bf4c on master.


BUG: using Azure Workload Identity

What happened?
Installed the provider following the documentation here. Trying to add the providerConfig and this fails due to missing support for the identity type AzureWorkloadIdentityCredentials.
This results in the following error message:
The ProviderConfig "kubernetes-provider" is invalid: spec.identity.type: Unsupported value: "AzureWorkloadIdentityCredentials": supported values: "GoogleApplicationCredentials", "AzureServicePrincipalCredentials"

Editing the CRD and adding this gets you one step further, but it still fails with:
Warning  CannotConnectToProvider  48s (x7 over 109s)  managed/object.kubernetes.crossplane.io  cannot create new Kubernetes client: unknown identity type: AzureWorkloadIdentityCredentials

How can we reproduce it?
Install the provider with:
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-kubernetes
spec:
  package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.13.0

Follow the Azure Workload Identity example and configure the providerConfig as such:
apiVersion: kubernetes.crossplane.io/v1alpha1
kind: ProviderConfig
metadata:
  name: kubernetes-provider
spec:
  credentials:
    source: Secret
    secretRef:
      namespace: crossplane-system
      name: cluster-config
      key: kubeconfig
  identity:
    type: AzureWorkloadIdentityCredentials
    source: Secret
    secretRef:
      name: azure-credentials
      namespace: crossplane-system
      key: credentials.json
---
apiVersion: v1
kind: Secret
metadata:
  name: azure-credentials
  namespace: crossplane-system
stringData:
  # serverId hardcoded to AKS ID, see https://azure.github.io/kubelogin/concepts/aks.html#azure-kubernetes-service-aad-server
  credentials.json: |
    {
      "tenantId": "<aad-tenant-id>",
      "serverId": "6dae42f8-4368-4678-94ff-3960e28e3630",
      "clientId": "<client-id>",
      "federatedTokenFile": "/var/run/secrets/azure/tokens/azure-identity-token",
      "authorityHost": "https://login.microsoftonline.com/"
     }

What environment did it happen in?
Crossplane version: 1.15.1
I also dont understand why we need to refer to a cluster-config secret in the credentials block, seeing as we are going to use workload identity? I might be misunderstanding something here.
Thank you.

I believe this could be happening because this new functionality to support Azure Workload Identity was just added recently in https://github.com/crossplane-contrib/provider-kubernetes/pull/210, but there has not been a release since then.
I know there should be a release coming pretty soon, so keep an eye on https://github.com/crossplane-contrib/provider-kubernetes/releases for the new release where you can use this functionality. Thanks for your patience :)

I see @jbw976.
That makes sense. I did not realize there had not been a release after the code was merged.

Just released v0.14.0! 🎉

Nice. Thank you for the work! Closing this issue.


Update dependencies

We're using cargo deny on our project, and try to keep dependencies consistent. Can a path be released with the following update please!

there is another PR :) https://github.com/Amanieu/parking_lot/pull/339


Switch from RSA keys to prime256v1.

This is built on top of a patched #493 so not ready for review!

I think this worked on my machine. Why does this keep happening?


Fixes BYTES_PER_ELEMENT constants for typed arrays.

Fixes #1373 .
Changes proposed in this pull request:

Modify the actual BYTES_PER_ELEMENT constants

third time's the charm

I've just mentioned this pr in an issue we just created. We can't run the code to check whether the fix really works (to leave it as unit tests so we don't break it again in the future).
But on another thought, the classes affected by this issue shouldn't need the values fixed at all. As they are marked as [External], they will always use the value of the class it represents in the browser (we make 'external' classes in the aim to represent something already present in the browser's space, like the typed arrays).
What I mean is, no matter what's on those variables, what determines its actual value in running code is what's in the browser!.. Check out this example:
https://deck.net/69e958e1186271c6130710b9239e3c63
And we get to another conclusion here: even with the fix you provided, as the actual value is ignored, issue #1373 won't be fixed (because it does not matter what value we add here). The problem is that the constant is not being output at all (check javascript line 12 in the deck above), when some math happens.
Anyway, your fix would be good for informational/documentation purposes, but it won't reflect in the code nor fix the issue, unfortunately. :(

On a second thought, yes, your fix will effectively fix the issue. Seems like operations involving const variables would be "optimized out" by compiler, so Bridge only gets the computed value if we do const * 2, so it will never know it is referencing the constant.
Probably the best option here would be to transform that constant member into a readonly property, like this:
https://deck.net/cc0799d4a970f1ad9d2537bd64051c23

Yeah, I mentioned that here, probably should have double linked this. Oh well.
Anyway, I did a quick fix originally, your solution is definitely better, so I've made the relevant changes.

Enter Unit Tests!
Please take your time to give the unit tests' commits a good look: We'd usually require them before accepting pull requests! 👍

This pull request also fixes issue #3401.

Cool!
OK, I'll keep that in mind. Thanks, you've been really helpful! :]


Needs help to understand how the frontend, redis master and slave communicating

This is a...

[x] Feature Request
[ ] Bug Report

Problem:
I have the guestbook running on my local minikube, but I can't understand how the frontend communicating with the redis slave and master, meanwhile I can't figure out how they are keeping in sync between redis master and slave.
Proposed Solution:
I may should learn more about kubenetes networking, if we can add these explanation into the tutorial, that will help a lot,
thank you.
Page to Update:
https://kubernetes.io/docs/tutorials/stateless-application/guestbook/#creating-the-redis-slave-deployment

@YongliangLi :wave: This issue sounds more like a request for support and less like an issue specifically for docs. You can bring your question to the #kubernetes-users channel in Kubernetes slack. You can also search resources like Stack Overflow for answers to similar questions.


error: the imported library can't have a part-of directive .g

Describe the bug
Using riverpod generator and trying to import the provider to a widget file gettng the error:  error: the imported library can't have a part-of directive .g
To Reproduce
import '../../providers/example.g.dart';
Expected behavior
should let me import as per documentation

thanks!


"Propose Meetup" button tries to schedule a Webinar instead of a Meeting.

This may have been caused by Webinars being rolled out and changing a key or ID somewhere? Either way I think Icebreaker should link to new meeting requests instead of webinar requests.

Thank you for submitting this issue, as we work to ensure consistent responses with items logged in our issues list, we are working to address these items that did not get responses. Please let us know if you are still facing this issue and require assistance and we will be happy to discuss. If no further action is needed at moment and no response is received, we will close out the issue in 3 business days. You may also always open a new issue or respond here if something does come back up. Thank you!


Menu System

This task is for getting the regular and mobile menus to work properly. There are a number of errors now.

Deeper explanation @Cherezmz :

Get rid of gray bar menu on desktop
Make the mobile menu hamburger icon in the gray bar work by adding in some Javascript
Fix the oversized fonts on the mobile and desktop pink menus - Jenny says font size should be about 18-20px
On the mobile pink menu, make the item separators look more like the original design
On the mobile gray menu, make the right icon the map icon and link it to the /locations page

Get rid of gray bar menu on desktop
Make the mobile menu hamburger icon in the gray bar work by adding in some Javascript
Fix the oversized fonts on the mobile and desktop pink menus - Jenny says font size should be about 18-20px - done for mobile menu. need to double check with the desktop because the font size does not seem big
On the mobile pink menu, make the item separators look more like the original design - done
On the mobile gray menu, make the right icon the map icon and link it to the /locations page

@Cherezmz -
Gray bar is just for mobile now.
We only need one hamburger menu, for the pink menu.
I don't think we need the gray menu - just use the pink menu on mobile.
Thanks for the hard work.

I assume you'll be adding more to the #199 PR, right @Cherezmz? I wont merge it yet if so.

@jserrao
yes


Proposal: Add option for ending cycles on the hour or half-hour

The proposal is to add an option to the Setting menu to automatically adjust the Focus duration such that the focus time plus the break time end on the nearest hour or half hour.
This is a useful feature when you have 30-minute meetings scheduled sporadically throughout the day and want to be able to start a Pomodoro cycle at any time, regardless of whether you have a meeting starting soon.
Basically, in this mode, you would specify a duration range (maybe a default of 10 minutes to 40 minutes), and the Focus time would be adjusted so that Focus + Break ends on the half hour.
The motivation behind this feature is that I feel like I need to often avoid starting a Pomodoro or be overly concerned about clock alignment, and will often lack focus during this period.  If I could just start a Pomodoro at any time, then I could get started faster, and stay better aligned to the half-hour.

Current proof-of-concept here: https://github.com/heisencoder/marinara/commit/c4bca7e99f56ca2662a8896d17799fc0eab0a2d2#diff-aae58a8f5d9ad7b16e1bbb21077093c2f8e697e6b3a2a82aa488a0b14559cadc
Still need to do the work of adding this to the options page and adding a unit test, but wanted to start with this to gauge overall interest.

Current proof-of-concept here: https://github.com/heisencoder/marinara/commit/c4bca7e99f56ca2662a8896d17799fc0eab0a2d2#diff-aae58a8f5d9ad7b16e1bbb21077093c2f8e697e6b3a2a82aa488a0b14559cadc
Still need to do the work of adding this to the options page and adding a unit test, but wanted to start with this to gauge overall interest.

Note that there was a bug in my proof-of-concept in which the duration would go to zero on the second Focus phase.

Note that there was a bug in my proof-of-concept in which the duration would go to zero on the second Focus phase.


1 fix and 2 new functionalities

fix open definition of copy

organizing workspace

fix files extenssions by content
group files by prefix names

Hi,
First thanks for taking the time to work on the extension.
Unfortunetly, the changes have a few issue and at this moment I can't merge then.
I will kindly document the issue for you.

The merge request as conflicts

The open copybook changes don't work on all extension or all the same locations as before

the open copybook changes cause various exceptions, for example:
TypeError: Cannot read property 'path' of undefined
at vscode_1.workspace.findFiles.then (C:\Sources\pullrequests\alans.vscode\out\opencopybook.js:26:77)
at Object.g [as _notify] (c:\Program Files\Microsoft VS Code\resources\app\out\vs\workbench\node\extensionHostProcess.js:76:971)
..

the extra command for re-organizing the source code are pretty fatal and don't have any "undo" option, so it caused me a problem or two after it re-organized by directory.

Have you considered doing a vscode view, that gives the user a "logical" view on the sources without changing the directory structure.   Then if the user of the source code likes the structure, you could have an "apply the local view to file system" and also importantly provide an "undo" feature
For example, by local examples directory was broken.
C:\Sources\vscode_cobol\examples\src (master)
λ dir/b
bett
Call
COBO
Comp
ctag
Data
Exec
fixe
Inde
Main
make
Pack
Prog
rena
Sear
Surv
Tabl
Time
Lastly, if you have a real urgency getting the changes out to people, you could create your own extension with the extra commands and specify this plugin as a dependency.  This way you can get the best of both extensions.

Wow!! I'm sorry for this!
I'll make a merge by my side and implement a feature to undo the organization actions.
I thought about creating a visual visualization yes, however the fonts would still be disorganized and maybe this would generate a certain confusion for the user.
But basically the idea was to normalize the files in folders by the prefix of the program name something like this:
PRG#0000.txt -> src/PRG#/PRG#0000.cob
PRG#0001.txt -> src/PRG#/PRG#0001.cob
FRW#0000.txt -> src/FRW#/FRW#0000.cpy
I had already thought about an undo option, but I decided to send a change request for you to evaluate.
In regards to not finding the references, usually by using vscode the user should put all the fonts inside the workspace, so I thought to use the indexing feature of vscode, which in addition to reducing the logic within the extensions would still have more performance and discontinued use of extra settings to indicate where other sources would be.
I really found your extensions great, and would like to contribute to other features like dependency analysis.
I have a repository called 'cds-parsers' that uses a simple logic to extract information from sources like sql and cobol, and I think it would be interesting to merge your extensions.
A few years ago I built an IDE with some features for COBOL development, such as WORKING-AREA data editor.
I am currently in a company that is migrating cobol codes to low platform, and I believe these features would be interesting.
Well ... I've written too much kkk.


feat: Reusable Workflows (Python and Rust) [TSD-274]

Note that any projects that point at "main" for any reusable actions will need to be updated once this is merged. This will be a proper version 2.0.0, and moving forwards all projects should point at versions instead of branches

@emann looks like there is a conflict?


How to load cdn files??

How do i get the browser to load google recaptcha from cdn link www.google.com/recaptcha/api/js/recaptcha_ajax.js???

I believe @brunomacf would like the CDN hosted .js file's URL included in a script tag in the karma-generated test runner HTML file. I also need this. I run my tests on SauceLabs. There is a proxy configured in the SauceLabs browser which routes the file requests either directly to a CDN or to my local machine, depending on the requested file's domain. The idea is to create a test architecture like this:
CDN, serves the 3rd party libraries (jQuery, etc)
 │
 │
SauceLabs virtual machine, hosts the browser
 │
 │
Karma on local machine, serves the application- and testfiles

So I'd like karma to include the CDN files' URLs in script tags unaltered. I have tried the following config, without success:
  {
    ...
    files: [
      { src: ['https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'], watched: false, served: false, included: true },
      { src: ['app/*.js', 'spec/*.js'] }
    ]
  }

The config above results in a html similar to this (http://localhost:9876/debug.html):
<html>
  ...
  <script type="text/javascript" src="/base/node_modules/karma-jasmine/lib/jasmine.js"></script>
  <script type="text/javascript" src="/base/node_modules/karma-jasmine/lib/adapter.js"></script>
  <script type="text/javascript" src="/base/app/file1.js"></script>
  <script type="text/javascript" src="/base/spec/test1.js"></script>
</html>

There is no script tag for jQuery.

This is more of a Karma issue rather than a grunt-karma issue I believe.

I've made some progress debugging this issue.
This works:
karma: {
    options: {
        ...
        files: [
            'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js',
            'spec/*.js'
        ]
    },
    all: {}
}

This does not ("Arguments to path.resolve must be strings"):
karma: {
    options: {
        ...
        files: [
            { src: ['https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'] },
            { src: ['spec/*.js'] }
        ]
    },
    all: {}
}

This neither ("Cannot use 'in' operator to search for 'src' in https://.../jquery.min.js"):
karma: {
    options: {
        ...
    },
    all: {
        files: [
            'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js',
            'spec/*.js'
        ]
    }
}

This neither (no error thrown, but the absolute URL is not included in the HTML):
karma: {
    options: {
        ...
    },
    all: {
        files: [
            { src: ['https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'] },
            { src: ['spec/*.js'] }
        ]
    }
}

... but the last one format can be tweaked. This works:
karma: {
    options: {
        ...
    },
    all: {
        files: [
            { src: ['https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'], nonull: true },
            { src: ['spec/*.js'] }
        ]
    }
}

I've tried some hack and it worked.
I just added script like import.js:
var url = 'http://localhost.dev.kontur:8082/build/bundle_tests.js'
var newScript = document.createElement('script');
newScript.setAttribute('src',url);
document.head.appendChild(newScript);
and included this in files: [ .. ]

For me this worked -
// list of files / patterns to load in the browser
files: [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-resource/angular-resource.js',
'app//.',
'test//.',
'https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js'
],

This is indeed not an issue with grunt-karma, but a support query about Karma itself.
And in current versions, it appears Karma actually does support URLs. See also https://karma-runner.github.io/2.0/config/configuration-file.html and https://karma-runner.github.io/2.0/config/files.html.


[multistage] Retain timestampAdd and timestampDiff functions during SqlNode to RexNode conversion

Background
CalciteSqlParser uses StandardConvertletTable to do series conversions for SqlCall -> RexNode.
One optimization it does is to convert TimestampAdd and TimestampDiff method to arithmetic timestamp and interval expression.
The problem we are facing here is that the literal expression of Interval is not supported which means the query is optimized to the form of Pinot doesn't recognize.
Hence the PR to not perform certain conversion in org.apache.calcite.sql2rel.StandardConvertletTable
Changes

Add PinotConvertletTable which is a wrapper of StandardConvertletTable just override certain SqlRexConvertlet
Implements Pinot TimestampAddConvertlet and TimestampDiffConvertlet to keep the SqlCall as a function call format.
Refine TimestampTests to include more columns and coverage for day, week, month, quarter, year coverage.
Remove all INTERVAL_* types support in RelToPlanNodeConverter to avoid the confusion in v2

Codecov Report

Merging #11400 (0a6a76d) into master (bfa4e9a) will decrease coverage by 62.80%.
Report is 1 commits behind head on master.
The diff coverage is 0.00%.

@@              Coverage Diff              @@
##             master   #11400       +/-   ##
=============================================
- Coverage     62.79%    0.00%   -62.80%
=============================================
  Files          2300     2224       -76
  Lines        123496   119892     -3604
  Branches      18718    18240      -478
=============================================
- Hits          77548        0    -77548
- Misses        40450   119892    +79442
+ Partials       5498        0     -5498

Flag
Coverage Δ

integration
0.00% <0.00%> (-0.01%)
:arrow_down:

integration1
?

integration2
0.00% <0.00%> (ø)

java-11
?

java-17
?

java-20
0.00% <0.00%> (-62.65%)
:arrow_down:

temurin
0.00% <0.00%> (-62.80%)
:arrow_down:

unittests
?

unittests1
?

unittests2
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed
Coverage Δ

.../java/org/apache/pinot/query/QueryEnvironment.java
0.00% <0.00%> (-90.60%)
:arrow_down:

.../query/planner/logical/RelToPlanNodeConverter.java
0.00% <ø> (-86.61%)
:arrow_down:

... and 1950 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Correct, will do that


can't override npm packages that are embedded when extending runtime image.

Given that I have a package.json that I want to use to extend the nodejs runtime
Let's say I want to use a different version of npm package openwhisk and some of my own.
package.json:
{
  "dependencies": {
    "cowsay": "^1.3.0",
    "openwhisk": "2.0.0"
  }
}

I have the following Dockerfile
FROM openwhisk/action-nodejs-v8
COPY package.json .
RUN npm i --production

Running this will not work. This is how I want it to work.
This will wipe the already present /nodejsAction/node_modules directory and install my new npm packages openwhisk and cowsay
A 1/2 workaround is to install my dependcies in the parent directory of /nodejsAction/ which /
This way nodejs ref 1 will not find it in /nodejsAction/tmpXX or /nodejsAction/ and fall back to /
FROM openwhisk/action-nodejs-v8
COPY package.json /
RUN cd / && npm i --production

This will only to find cowsay in the /node_modules but will find the 1.x openwhisk in /nodejsAction/node_modules and never use the version 2.0.0 where I installed it /node_modules/openwhisk
My proposed solution is that we installed embedded npm packages in in the root / this way they act as fallback global modules in the search path, and user is always able to declare the npm packages he wants to use in the action.
cc @rabbah

Close by #73


deps: Use a patched rn-fetch-blob to fix Android 14+ crash

This updates rn-fetch-blob to a version with one cherry-picked commit atop the v0.11.2 we were previously using:
https://github.com/zulip/rn-fetch-blob/commit/e17b2a51c
The rn-fetch-blob package itself is no longer maintained:
https://github.com/joltup/rn-fetch-blob/issues/863
There's a fork that is maintained, react-native-blob-util:
https://npmjs.com/package/react-native-blob-util
That fork addressed the Android 14 requirement to set an explicit RECEIVER_EXPORTED flag (#5903), merging a fix:
https://github.com/RonRadtke/react-native-blob-util/issues/303
https://github.com/RonRadtke/react-native-blob-util/pull/306
Our fix is cherry-picked from that one.
(If this app weren't a legacy codebase in maintenance mode, we'd take the time to upgrade this dependency more generally, probably switching to the react-native-blob-util fork.  As is, we'll skip that and use the time to focus on completing the new Flutter app.)
Fixes: #5903

LGTM, thanks! Merging.


one more change

Docs Build status updates of commit 64f73fe:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

rd/dwight-goins.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Questions regards Unity build

Hey, really excited for this project!
Got several questions while testing out with Unity3D.
Wondering how to get "grpc_csharp_ext" native library work on iOS and Android. Since gRPC official c# native plugin only support win/linux/mac platform.
Thank you very much! =)

Our company has been built C Core library for iOS/Android myself.
https://github.com/grani/grpc/tree/UnityClient
I'll include binaries on this project.

That's amazing. Thank you very much! = )


Set charset and collation for the connection

Environment
Knex version: 0.16.3
Database + version: MariaDB 10.1.38
OS: Ubuntu 18.04
Bug
There is apparently no way to set the connection charset and collation. For instance, with the mysql driver, charset: 'utf8mb4_unicode_ci' allows to define what needs to be used.
Adding this in the connection object has no impact. I've also tried knex.raw('SET NAMES utf8mb4') but it doesn't seem to have any effect either.
Hence, all emojis end up like "?" in the database and selecting the rows that contain them renders the same.
I've tried with the mysql driver and it works well. There's just a missing param.

@Buzut Shouldn't be happening. You can in the sourcecode the following:
  this.connectionSettings = cloneDeep(config.connection || {});
<...>
    return new Promise((resolver, rejecter) => {
      const connection = this.driver.createConnection(this.connectionSettings);

So knex literally is passing entire connection object to the driver when establishing connection. Please investigate further or provide a complete reproduction.

Indeed, my bad. I had set the DB to the old utf8 charset 🤦🏻♂


loader: use template specialization instead of multiple functions

It just looks cleaner to me

@dcbaker How are you feeling about this one? You could always land it and let someone else fiddle with tag dispatch if they care.

I looked at tagged dispatch a bit and got something working, but felt like the end result was worse than either what's in main now or this, so I think my preference would be to merge this now as-is unless and someone else can follow up with tagged dispatch to see if that looks better than what we already have.

@dcbaker Looks like we have conflicts blocking this one.


Fix linter issue

Release note:

NONE

@sebastienvas: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-suite-no_rbac-auth.sh
f2fa6f93596ada71c47ec12df5a443ee112f45b4
link
/test e2e-suite-no_rbac-auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@sebastienvas: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-suite-no_rbac-auth.sh
f2fa6f93596ada71c47ec12df5a443ee112f45b4
link
/test e2e-suite-no_rbac-auth

prow/e2e-suite-rbac-auth.sh
f2fa6f93596ada71c47ec12df5a443ee112f45b4
link
/test e2e-suite-rbac-auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@sebastienvas: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-suite-no_rbac-auth.sh
f2fa6f93596ada71c47ec12df5a443ee112f45b4
link
/test e2e-suite-no_rbac-auth

prow/e2e-suite-rbac-auth.sh
f2fa6f93596ada71c47ec12df5a443ee112f45b4
link
/test e2e-suite-rbac-auth

prow/e2e-suite-rbac-no_auth.sh
f2fa6f93596ada71c47ec12df5a443ee112f45b4
link
/test e2e-suite-rbac-no_auth

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Discrepancy between pylibmc and python-memcached in storing bools

While comparing python-memcached and pylibmc behaviours, I found that python-memcached was able to store and retrieve bool values as bools, while pylibmc would store them as integers being 1 or 0. It looks like python-memcached pickles bools but pylibmc stores them as integers.

Did it cause errors?

Ludvig

On 12 Nov 2018, at 10:29, Chow Loong Jin<EMAIL_ADDRESS>wrote:
While comparing python-memcached and pylibmc behaviours, I found that python-memcached was able to store and retrieve bool values as bools, while pylibmc would store them as integers being 1 or 0. It looks like python-memcached pickles bools but pylibmc stores them as integers.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

On Mon, Nov 12, 2018 at 02:58:27PM +0000, Ludvig Ericson wrote:

Did it cause errors?

Well, storing and retrieving a bool using pylibmc converts bools into
ints, but doing the same in python-memcached returns a bool. The latter
behaviour seems more correct.
--
Kind regards,
Loong Jin

I see. Maybe we should reintroduce bool storage but as int-with-extra flag. Going through the pickle machinery for something so simple seems... counterproductive, if you see my reasoning.

Ludvig

On 14 Nov 2018, at 19:33, Chow Loong Jin<EMAIL_ADDRESS>wrote:
On Mon, Nov 12, 2018 at 02:58:27PM +0000, Ludvig Ericson wrote:

Did it cause errors?

Well, storing and retrieving a bool using pylibmc converts bools into
ints, but doing the same in python-memcached returns a bool. The latter
behaviour seems more correct.
--
Kind regards,
Loong Jin
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

You can subclass pylibmc.Client and override the serialize and deserialize methods to match python-memcached's behaviour


OkayCode School

OkayCode School
Armenia, Yerevan, Vagharshyan Street 12

@yervandgaloyan You might miss the reply above. Please reply.

@yervandgaloyan You might miss my previous comment. Please react.

@yervandgaloyan I am sorry, this request remains unanswered for a while. I have to close it without merging. Please reopen and comment if you have an update regarding the aforementioned issue. Thank you for your understanding!


remove babel setup, replace dependencies, upgrade openlayers

Fixes issues #75, #66, and #63
Fixes NPM security issues


JSON does not mark a tab inside a string as an error

Have the following json:

{
  "a": "	"
}

JSON does not report an error (I have a tab inside the string)
JSON.parse does not allow tabs inside strings which leads to very confusing behavior and optimally we would highlight this user error

fyi @alexandrudima

The reported error is "Expected comma or closing brace" which isnt very helpful

I improved the message.


Crashing on Debug build of external app using Release build of Sparky at String

I've setup the environment as following:
I build Sparky in Release. After that I copy all the .lib (and .pdb file for debug) to another lib folder. I also copy all the .h file and default shader file to another include folder (I do keep the folder structure). The two include and lib folder is now the Sparky library seperated from the source code.
I create a new project and set the include path and lib path to those include and lib folder, set lib name in Linker>Input, and copy the following Preprocessor from Sandbox that I think they are actually important
SP_PLATFORM_WINDOWS
WIN32
_CRT_NONSTDC_NO_DEPRECATE
_CRT_SECURE_NO_WARNINGS
_MBCS

to the new project, same for both Debug and Release. I also put the necessary dll in the same folder as .exe file.
The new project, called TestGame, built successfully in Debug and Release. When I try running in Debug. I got a crash (Access violation to 0x00000000 in memset.asm). Tracing back the stack let me known that in sp::Application's constructor, the string for name passed in was null. I've tried the following:
// class Game;
public:
    String gn = "aaaaa";
    Game()
        : sp::Application(gn, { 1280, 720, false, false }, sp::graphics::API::RenderAPI::OPENGL)
    {}

and when debugging, gn appeared to be null.
What confused me was when I switch to Release, this TestGame project run normally.
I doubt the problem is my fault, but I have tried created another fresh project and it remain the same. I don't know if anyone also encounter this problem, or using Sparky as library like me, but please give it a try and help me in this. I can continue using only Release mode, but that will be pretty annoying if I need to debug some part of my app.

Actually, this has nothing to do with Sparky and is in fact your fault (sorry 😉). The reason this is happening is because the super class constructor (Application) is being called before your string is being initialized; so you're passing an uninitialized string to the Application constructor which is what's causing the crash.
You can solve this by either just passing in your application name directly into the constructor, creating a static/global application name, or by taking in the application name string as a parameter into your Game constructor.

I have Google here and there and they said that containers like std::string should corrupt its contained data when passing through DLL boundaries. I then done some workaround by creating another version of Application constructor that takes in const char* instead of std::string, and it work perfectly, no crash anymore. So can I say the fault is also not on me but because of std::string is being hillarious?
By changing the parameter type from std::string to const char* (or char*), I think I have (temporarily) solved this problem. If you think the solution is okay, feel free to close the issue.


Individual header maps

It looks like the .getHeader() method returns ALL header fields from all parts of the mail. is there a way to get only the fields from the parent part, or individual sub parts?

I am unable to understand the issue here, can you please explain by posting a relevant sample please.

Moreover if you have some requirement , or feature request , kindly elaborate with an example email, I will try to handle that.


No issue, just thank you.

Just wanted to say thank you for a quality product. Free is costly. Greatly appreciate the value poured into making the web a cleaner, better looking, and more usable place.
Keep up the premium work.

<3


Processing obfuscated code

Hi,
I'm doing what you could easily call stress-tests on extendscriptr :-) Let me explain first what I'm after – if you think this kind of discussion is better done elsewhere feel free to move this one where it should more appropriately belong.
Since JsxBin, how can I put it, may not be anymore as sealed as we used to think, I'm trying to find alternatives. JS Obfuscators are either scams (introducing unwanted http requests) or too aggressive to the ESTK taste, so the obfuscated code doesn't work at all when run, say, in Photoshop. Known fact that I proved years ago. Currently I'm testing javascriptobfuscator (free tier, the paid options are too much for my needs) and javascript2img. FYI, I've discarded Dan's Tools for their obfuscated code is perfectly de-obfuscated by their own Beautifier - good job :-)
Then there is Marc Autret JsxBlind.
Results vary, also depending on the source code itself – I'm planning to write an extensive article as soon as I've gathered enough data.
My possibly weird idea is to extendscriptr-ize the obfuscated code (that might rely on some ES5/6 unsupported features) hoping that Photoshop will like it better.
No way so far! Errors spring on javascript2img code for instance (the one I personally find the best obfuscation result ever), while less aggressive options for javascriptobfuscator work out of the box without the need to be extendscriptr-ized.
Suggestions / thoughts?
I've also tried to just manually prepend the Array shims that extendscriptr seems to add to the code, with no luck – apparently javascript2img code is plain indigestible. There is any other secret sauce that extendscriptr adds, that I can add myself manually if the CLI doesn't work?
Thanks guys!!
Davide

Hi Davide,
the secret sauce to make this all work is to prepend the prototypes before anything else. Even before Browserify. It needs for example the https://github.com/fabiantheblind/extendscript.prototypes/blob/master/src/Object.defineProperty.js to make this work.
Did you try to use a higher Node.js version with npm greater then 3.0?

Hello Fabian,
I'm currently using Node v6.3.0 and npm 3.10.3. Have you tried to obfuscate your own code with  javascript2img? javascriptobfuscator is driving me mad, some things work, other don't.
Sad business :-)
Thank you!

No I never tried. I'm totally in ❤  with open source. Never tried one of these. Did extendscriptr work with your Node 6.3?

So far my tests with Node 6.3 and extendscriptr 1.0.3 (globally installed) are still failing, but local installation is OK!
Also, Node-latest is outputting no warnings anymore when installing it, which is a good news.
If I may ask here, what is browserify for, in extendscriptr? Aren't the prepended proto enough, or you need to "massage" the code in some other way afterwards? Thanks!

We use browserify to have the require magic available. If not we would have to implement all that file loading by ourselves. Can you paste the error that occurs with extendscript rad global module or better open an issue for that. Would be awesome

We use browserify to have the require magic available. If not we would have to implement all that file loading by ourselves. Can you paste the error that occurs with extendscript rad global module or better open an issue for that. Would be awesome

I'll keep using the other thread that I opened yesterday. If someone would like to try obfuscation I'll be happy to discuss the results. Thanks!

Looking forward to your article about it.