[Feature-4093][server] Support for stored procedures and stored function calls and data source supports DB2

What is the purpose of the pull request
fix #4093
fix #3990
1.Support for stored procedures and stored function calls
2. Task node page data source parameters can support the selection of a variety of data sources, rather than currently only limited to mysql, Oracle and other data sources
3. When the calling script is filled in on the page, there will be subtle differences between the calling scripts corresponding to various data sources
Brief change log
1.Task node page data source parameters can be selected for more types of data sources, such as DB2
2.Task node page script parameters write the SQL script directly, rather than spelling the SQL script in the back end, which can better support different data script changes
Verify this pull request
This change added tests and can be verified as follows:

Manually verified the change by testing locally.

pull request的目的是什么
1.支持存储过程和存储函数调用
2.任务节点页面数据源参数可以支持选择多种类型数据源，而不是现在只限制mysql，oracle等几个数据源
3.调用脚本在页面填写，各个数据源对应的调用脚本会存在细微区别
简短的更改日志
1.任务节点页面数据源参数可以选择更多类型数据源，如DB2
2.任务节点页面脚本参数直接写sql脚本，而不是在后端去拼出sql脚本，这样可以更好的支持不同数据的脚本变化
验证此pull request
此更改添加了测试，并可以验证如下:

*通过本地测试手动验证更改

Codecov Report

Merging #4094 (85ef401) into dev (f152cae) will decrease coverage by 0.03%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                dev    #4094      +/-   ##
============================================
- Coverage     39.39%   39.35%   -0.04%
+ Complexity     2968     2965       -3
============================================
  Files           467      467
  Lines         22104    22080      -24
  Branches       2712     2695      -17
============================================
- Hits           8708     8690      -18
+ Misses        12589    12582       -7
- Partials        807      808       +1

Impacted Files
Coverage Δ
Complexity Δ

.../server/worker/task/processdure/ProcedureTask.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...che/dolphinscheduler/common/utils/LoggerUtils.java
62.50% <0.00%> (-8.34%)
5.00% <0.00%> (-1.00%)

...e/dolphinscheduler/common/shell/AbstractShell.java
44.53% <0.00%> (-5.89%)
5.00% <0.00%> (-1.00%)

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
3.00% <0.00%> (-1.00%)

...pache/dolphinscheduler/common/utils/FileUtils.java
28.92% <0.00%> (-3.31%)
9.00% <0.00%> (ø%)

.../apache/dolphinscheduler/common/utils/OSUtils.java
44.57% <0.00%> (-2.41%)
23.00% <0.00%> (ø%)

...inscheduler/service/zk/CuratorZookeeperClient.java
60.97% <0.00%> (ø)
7.00% <0.00%> (ø%)

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 f152cae...85ef401. Read the comment docs.

Code coverage is greater than 33%

sorry, the review time is so later, can you resolve conflicting files first？

sorry, the review time is so later, can you resolve conflicting files first？

done.

Codecov Report

Merging #4094 (e54eec4) into dev (d93a9dc) will increase coverage by 3.16%.
The diff coverage is 45.73%.

@@             Coverage Diff              @@
##                dev    #4094      +/-   ##
============================================
+ Coverage     45.21%   48.38%   +3.16%
- Complexity     3395     3868     +473
============================================
  Files           538      592      +54
  Lines         23053    24466    +1413
  Branches       2687     2766      +79
============================================
+ Hits          10423    11837    +1414
+ Misses        11698    11554     -144
- Partials        932     1075     +143

Impacted Files
Coverage Δ
Complexity Δ

...eduler/plugin/alert/script/ScriptAlertChannel.java
16.66% <0.00%> (ø)
1.00 <0.00> (ø)

...org/apache/dolphinscheduler/alert/AlertServer.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...che/dolphinscheduler/api/ApiApplicationServer.java
33.33% <0.00%> (ø)
1.00 <0.00> (ø)

...scheduler/api/controller/DataSourceController.java
4.76% <0.00%> (+0.11%)
2.00 <0.00> (ø)

...uler/api/controller/ProcessInstanceController.java
3.44% <0.00%> (-0.19%)
2.00 <0.00> (ø)

...nscheduler/api/controller/SchedulerController.java
5.26% <0.00%> (-0.46%)
2.00 <0.00> (ø)

...cheduler/api/controller/WorkerGroupController.java
8.69% <0.00%> (-9.49%)
2.00 <0.00> (ø)

...duler/api/interceptor/LoginHandlerInterceptor.java
80.95% <ø> (ø)
6.00 <0.00> (ø)

...scheduler/api/service/impl/MonitorServiceImpl.java
13.63% <0.00%> (ø)
2.00 <0.00> (ø)

.../org/apache/dolphinscheduler/common/Constants.java
80.00% <ø> (-1.82%)
1.00 <0.00> (ø)

... and 260 more

Continue to review full report at Codecov.

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


Calling a NativeModules method from the safari debugger crashes at RCTAssertJSThread

This is w/ the iOS 9.2 simulator on OSX. React Native 0.21.0-rc.
Repro steps:

start up a react native app
open the safari debugger

enter require('NativeModules').Clipboard.setString("something") in the safari inspector js console

The error:
RCTBatchedBridge.m @ 805

However, calling native modules functions from the RN app (e.g. in response to a touch event) works just fine.

@tadeuzagallo - this seems like something you could answer in your sleep, any ideas?

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with ProductPains! Check out its new home: https://productpains.com/post/react-native/calling-a-nativemodules-method-from-the-safari-debugger-crashes-at-rctassertjsthread
ProductPains helps the community prioritize the most important issues thanks to its voting feature.
It is easy to use - just login with GitHub. GitHub issues have voting too, nevertheless
Product Pains has been very useful in highlighting the top bugs and feature requests:
https://productpains.com/product/react-native?tab=top
Also, if this issue is a bug, please consider sending a pull request with a fix.
We're a small team and rely on the community for bug fixes of issues that don't affect fb apps.


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v4.4.295",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=d1bb703ad050de9095f10b2d3416c32921ac6bcc"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "d1bb703ad050de9095f10b2d3416c32921ac6bcc",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "ALSA: pcm: oss: Limit the period size to 16MB\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v4.4.295 by commit d1bb703ad050de9095f10b2d3416c32921ac6bcc. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2021-1002366


Enable viewing archived vaults

User should be able to view vaults that are archived

Verified this issue on keeper app v 1.1.11(297)


scrollTo() needs to be changed as its using deprecated version

this.refs.scrollView.scrollTo(0,activePage * width);
to
this.refs.scrollView.scrollTo({x:0,y:activePage * width,animated:true});

This should be fixed now.


build process requires outbound internet connections

I would appreciate it if the documentation would reflect the fact that this library downloads approximately 55,000 lines of code from github at build time.  This can cause problems for people who expect a build to work within sandboxed package-build environments.

Thx for reporting. I'll default the build to Release and no unit test.
Working on a fix.


Tabs always highlights the first tab when using tabs as routerLinks

I'm using tabs as child routes for a component with the following:
              <clr-tabs>
                <clr-tab *ngFor="let subComponent of subComponents">
                  <button clrTabLink [routerLink]="subComponent.path" routerLinkActive="active">{{subComponent.label}}</button>
                </clr-tab>
              </clr-tabs>

The routerLinkActive attribute works correctly when landing on the first tab's route and highlights the correct tab but loading a child route directly highlights the current tab/route but the first tab is always highlighted.

Am I using this incorrectly or is this a bug?

This is likely a problem with your implementation, because you are setting the routerLinkActive class based on the URLs. This can happen when you have a root path (like /status) and then child paths (like /status/daily). With nested routes, its technically true that both would be active when you are on a child.
To fix this usually you just add [routerLinkActiveOptions]="{exact: true}" to your routerLinks to force the active class to only be applied to the exact match and not parents.
I'm going to close this as resolved based on the above, but if not please provide a working demo with Stackblitz so we can see what is happening.

Editor:
https://stackblitz.com/edit/angular-5kueix
Non-default route showing that the first tab is always active on first load:
https://angular-5kueix.stackblitz.io/clients/settings

Here is a fork of the same thing but without Clarity:
Editor:
https://stackblitz.com/edit/angular-rvhbwz
Non-default route:
https://angular-rvhbwz.stackblitz.io/clients/settings

Please see https://github.com/vmware/clarity/issues/627
If you want to use the clr-tabs component, you'll have to manually update the current ClrTabLink component, based on the router.url. I have a demo of it, but it's pretty complicated, and seeing that you don't use the tab-content at all, you don't need all the underlying state and services. I'd suggest using the Static version of the tabs like this:
https://stackblitz.com/edit/clarit-tabs-with-router-static?file=src/app/clients/clients.component.html

Thank you @Jinnie .  Switching to static did the trick.


Feature request: Jupyter/Google Colab Install and run support of the repo

I wanted to quickly process some gnss stuff locally, and I realized that it would be super useful if one could open a jupyter/colab session, run some simple install commands and be able to use gnss_lib_py. Do you think that is doable?

I think running !pip install gnss-lib-py will solve this issue

@ayushmankumar7 is correct.
Since #73 , we are compatible with Python 3.7 (which Google Colab uses). To use gnsss_lib_py with Google Colab one needs to:

run !pip install gnss-lib-py
restart the kernel


App: Avatar.js should be broken up to better separate concerns

Avatars file is huge, want to clean it up to make implementing an animation state system more manageable.

move classes to their own files
move related configs to new class files
move _applyAnimation and related animation code into a separate file so animation refactoring can be continued while master continues to be updated(this file will be changed/removed in future updates)
move animation functions into variables for readability, rather than defining them in an if/else block

Yeah, this is probably one of the most impactful refactors we could do.


How to log the raw traffic when sending a key command?

Hi Martin,
I have already created an issue @Toxblh s samsung-tv-control library...
https://github.com/Toxblh/samsung-tv-control/issues/204
Sorry for double-posting... but i cant figure out if my question is better placed here or in the lib...
Maybe you also have an idea how it could be possible to log the raw traffic when a key is send?
To be able to copy this an fire it up from another device...
My tv is an old one UE46ES8090 which uses the legacy Protocol on Port 55000.
Thanks in advance.

Hi @huddx01
The datagrams send to the TV's in the legacy protocol are fairly simple. This post for example describes pretty well how to build them. I hope this helps.
Kind regards


Sync Github Releases with npm releases

Hi,
I had opened #9 a few months ago and periodically checked the Releases page on Github to see if a new version was released that contained the fix for it (thanks @gesiu!).
Today, I updated my node packages and noticed the version bump to 1.0.5, which indeed fixed the above-mentioned issue.
However, the Releases page on Github only lists versions up to 1.0.2.
Please fix this so that Github releases are synced with npm releases.

Closing all issues since this repo is being archived and no longer maintained.


Leading zeros and other bit manipulations

#188

For the following architectures you need to:

fill in an LLVM bug: ideally you just write LLVM-IR in godbolt for one case that works, say in x86_64, compile it for one of these targets, and show the LLVM error.
open a bug here referencing the LLVM bug
add a workaround to codegen for these targets that, instead of using the LLVM intrinsic, uses pure rust code to compute these - these workaround should have a FIXME referencing the bug in these repo

It looks like these are not available in aarch64:
LLVM ERROR: Cannot select: 0x7fb76ee85270: v8i8 = cttz 0x7fb76ef05270, src/codegen/bit_manip.rs:176:39
  0x7fb76ef05270: v8i8,ch = load<(dereferenceable load 8 from %ir.5)> 0x7fb76ef23758, FrameIndex:i64<2>, undef:i64, src/codegen/bit_manip.rs:176:31
    0x7fb76ee5b138: i64 = FrameIndex<2>
    0x7fb76ee90958: i64 = undef
In function: _ZN110_$LT$packed_simd..Simd$LT$$u5b$u8$u3b$$u20$_$u5d$$GT$$u20$as$u20$packed_simd..codegen..bit_manip..BitManip$GT$4cttz17h3aae67eb204ee427E
error: Could not compile `packed_simd`.

And in s390x:

Turns out aarch64 has instructions for ctlz and ctpop. We should add those to assert_instr tests.

Please ping me when CI is green :) I try to check on this every now and then, but if you don't hear from me, then just ping me :D

The remaining CI failures seem to be unrelated.

Also could you open an issue about optimizing the aarch64 intrinsics here (and maybe include there adding assert_instr tests for those) ?

It seemed like every s390x intrinsic was failing so I just disabled them entirely

@TheIronBorn do you want to be a maintainer of packed_simd ?


runtests.sh proceeds on compilation error

Exit status of javac not checked. Script continues to run even if javac fails.
This is the same behaviour for runtests.bat.

@vivekscl intd on this issue? ^^ Since you presented on Bash recently.

to verify that it works, can probably try to modify the system environment variable PATH a bit to make java doesn't work :P

Or may I suggest testing the exit status of javac?  If non-zero, then terminate the script prematurely?

Or may I suggest testing the exit status of javac? If non-zero, then terminate the script prematurely?

Yup, sorry for my bad english when I type on the go.
What I actually mean is the fix (testing the exit status of javac) should work when jdk isn't available as well.

I'll work on this soon, thanks for letting me know @Zhiyuan-Amos!


is there any plan to support datatable/dataset

this extension really a great time saver.But In my practice,most of times i just simply to convert database data to excel files.it is tedious to map db structures to class files.so i think it will be better to just simply transform a datatable/dataset to excel file(s).But it seems that currently this extension does not support datatable.
so,I looking forward that datatable to excel will be supported in the next version for barely transfer db to excel without and modifications.

Good suggestions! But I do not like datatable and dataset API, so to impls your suggestions, I will support directly export database to excel file in the next release.

But, the future features will be support by FluentExcel, and will only support Fluent API. so, all the issues will solved or fixed by that project.

This plan had been delay to FluentExcel v2 or v2.x


Fixed SSHFP-Record, Added NAPTR

Hi,
I noticed, that I made a mistake on SSHFP-Records (where I did not specify the algorithm previously) and added support for NAPTR. Would be great if you would merge these into your repo.
If something is missing, please tell me.
Thanks!

Sry I totally missed your PR. Will be merged shortly. Thank you!


Introduce the reservedData to support more custom pluggable accessCheckers

Background
In current implementation, DelegationRssShuffleManager could decide whether to use uniffle or sort shuffle service by calling remote coordinator. The pluggable accessCheckers can be extended in coordinator to support more custom requirements.
Motivation
When we hope the uniffle can be applied to specified spark jobs to control which shuffle service to use, the mechanism of pluggable accessCheckers is useful.
We can implement the CustomDelegationRssShuffleManager(like DelegationRssShuffleManager)to inject some custom accessInfo and remote call the coordinator which use the custom access policy to decide which spark job use the uniffle shuffle service. However the current codebase dont support inject more accessinfo in client, only have tags and accessid. So this proposal hopes to introduce the data structure to store more custom extensible requirement.
Goals

Support injecting more custom data in AccessClusterRequest, which can be set in client

Tasks

[ ] https://github.com/apache/incubator-uniffle/pull/42
[ ] https://github.com/apache/incubator-uniffle/pull/43
[ ] https://github.com/apache/incubator-uniffle/pull/41

As i know the pluggable access checkers have been supported in current implementation of coordinator, which are managed by AccessManager.
And to support customized acess checker, i hope we can introduce a  general pb message in AccessInfo. Feel free to discuss more. @duanmeng

hope we can introduce a general pb message in AccessInfo
We coud add a pb message AccessInfo and put it inside the pb message AccessClusterRequest. And then make the client can populate these extraProperties through spark conf. So that we can inject special access checkers (not part of the code base of uniffle) for business requirements.

message AccessInfo {
  string accessId = 1;
  repeated string tags = 2;
  map<string, string> extraProperties;
}

All done. Close


Fix broken links in README.md

Links to the Tutorial and Reference Documentation were broken.

Thanks for your contribution Nacho!


feat: scale effect

Closes https://github.com/marc2332/freya/issues/939

TODO:

Docs
Tests
Update compositor to consider scale effects


Bundle Tendermint Application with Tendermint Core:

Produces a single binary
Removes overhead

Codecov Report

Merging #105 into master will decrease coverage by -3.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #105      +/-   ##
==========================================
- Coverage   80.66%   77.66%   -3.01%
==========================================
  Files          29       29
  Lines        1831     1831
==========================================
- Hits         1477     1422      -55
- Misses        260      336      +76
+ Partials       94       73      -21

Impacted Files
Coverage Δ

generator/repo/repo.go
23.97% <ø> (-37.68%)
:x:

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 8e9e715...a3f7da0. Read the comment docs.


architecture section small tweaks

The following PR introduces the following changes to the Architecture:

rename of Architecture Glossary page to architecture-glossary instead of just glossary (this matches the convection introduced by architecutre-overview and there might be a second "glossary"/"appendix" when the new architecture Playbook will land). Ideally we should start to group the docs files into subfolders (v1 doesn't support this afaik, but it should not be a problem in v2.
update the Architecture sidebar, so it structure matches the other top-level pages on the website (flipped collapsible)
reorder platforms in one of the sentence to alphabetical order.

Sidebar preview

Thanks for these changes @Simek! I think we have to update the 0.66 version of the docs too.
I've been doing it manually so far, but do you happen to know if there is a better way?

I've been doing it manually so far, but do you happen to know if there is a better way?

Unfortunately there is no "mechanism" or another way to do this AFAIK. I also backport the changes manually, when it's needed.

@lunaleaps The changes has been backported to 0.66 release (including sidebar tweaks).
I would appreciate the review on this, since due to file name change this PR produces a lot of conflicts in time. 😅

@lunaleaps The changes has been backported to 0.66 release (including sidebar tweaks).
I would appreciate the review on this, since due to file name change this PR produces a lot of conflicts in time. 😅


Remove the term "master" from the docs

What can we help you with?
Aiven has plans to remove the use of the word "master" in the UI (for example, by using "promote to primary" instead of "promote to master" for PG). In the meantime, to make our documentation more inclusive, we should remove the use of the term "master". Some articles where this term is used:

https://docs.aiven.io/docs/products/cassandra.html
https://docs.aiven.io/docs/products/redis/concepts/high-availability-redis.html
https://docs.aiven.io/docs/products/redis/concepts/memory-usage.html
https://docs.aiven.io/docs/products/postgresql/concepts/upgrade-failover.html

Of course, we will not be able to change code samples or parameters that require the use of this word.

Feel free to open followup issues for the code samples, we can share them around people with the expertise in each tech stack?


[backend] Don't segfault on unsupported mma->mma

https://github.com/triton-lang/triton/pull/4492/ started causing an issue where chained MMAs on hopper would segfault with 8 warps. It seems that previously this was checked, but the check got removed in this PR and it's still unsupported.
Adding back this check means these MMAs will have to go back to shared memory, but it's better than segfaulting until it's actually supported.
Resolves https://github.com/openxla/xla/issues/17356

Can you copy & paste me the mma->mma instruction and the layouts?

Can you copy & paste me the mma->mma instruction and the layouts?

Does https://github.com/openxla/xla/issues/17356#issuecomment-2371535222 contain what you need?

Oh, I think it's mma->dot instead of mma->mma. It's not supposed to be handled by my previous PR. Why did I take it out...I need some further investigation before getting back to you.

I agree with the fix. I actually didn't take out the getWarpsPerCTA, but the previous mmaToMmaShortcut is a misnomer.
@chsigg How about changing the title to:
Fix improper mma->dot shortcut when warpsPerCTA[1] > 1


[Question/FR] Add Dracula ZSH Theme

I'm triyng to add the Dracula ZSH theme to my install but there's no instructions on how to actually add themes that are hosted in github. Is it  possible to add the theme to my setup?

+1

Sadly, this isn't really Prezto's fault, but more that the Dracula Zsh theme doesn't adhere to the promptinit standard, which comes with Zsh. It only provides an Oh-My-Zsh zsh-theme. You can read more about the proper way to set up a Zsh prompt here.
However, it is possible to shoehorn this theme into Prezto. You will can add this snippet to your .zshrc prior to sourcing Prezto's init.zsh, or you can just run it once from an interactive Zsh session:
# .zshrc
# get dracula theme
ZPREZTODIR=${ZPREZTODIR:-${ZDOTDIR:-~}/.zprezto}
if [[ ! -d $ZPREZTODIR/contrib/dracula ]]; then
  git clone https://github.com/dracula/zsh $ZPREZTODIR/contrib/dracula
  echo 'setopt prompt_subst' >! $ZPREZTODIR/contrib/dracula/init.zsh
  mkdir -p $ZPREZTODIR/contrib/dracula/functions
  echo '. $ZPREZTODIR/contrib/dracula/dracula.zsh-theme' >! $ZPREZTODIR/contrib/dracula/functions/prompt_dracula_setup
fi

Then, in your .zpreztorc, add 'dracula' to the module list, but do it before loading the 'prompt' module:
# .zpreztorc
zstyle ':prezto:load' pmodule \
  ... \
  'dracula' \
  'prompt' \
  ...

By doing this, I got it to work. It might be worth working with the Dracula theme folks to make a PR that adds a proper prompt_dracula_setup function, but for now, this seems to work.
Vote to close this issue.

After answering this question, I was inspired to make a prompt contrib that has some other popular prompts like starship, lean, and all the OMZ themes, with support for 3rd party OMZ themes like Dracula too. Feel free to grab it here: https://github.com/mattmc3/prezto-prompt-contrib

The recommended suggestion for new modules is to use a custom contrib-module and keep the core of prezto tiny.


Offline behaviour. Reconnecting client properly troubles

Hello, it has been a time since I am trying to implement Offline behaviour as described on the specification.
When the server or connection is not available, the client is supposed to reconnect (or try it) but also offer the possibility of offline transactions. I have wrapped the ConnectionClosed exception but, the way it is done, it reinstantiates the class and starts the tasks again (the old tasks are not closed). Also, it resends boot notification (which should not).
Here it is my idea to do this, although it is not fully working:
async def main(server_ip):
    print("Connecting...")
    try:
        async with websockets.connect(
                'ws://' + server_ip + ':9000/CP_1',
                subprotocols=['ocpp2.0.1']
        ) as ws:
            cp = ChargePoint('CP_1', ws)
            try:
                await asyncio.gather(cp.start(), cp.send_boot_notification(), cp.wait_transaction())
            except websockets.exceptions.ConnectionClosedError as e:
                print(e)
                await main(server_ip)
    except ConnectionRefusedError as e:
        print(e)
        await main(server_ip)

cp.wait_transaction() is just a routine to wait for the ev plug in or authorization.
So, my main objective is:

Reconnect client maintaining the same class instantiation
Use already started tasks if possible.
Not to send boot notification again.

I think this issue would be very useful for the future implementation of the offline behaviour of the library when resolved.
Has anyone implemented it?.
Thank you!

#119 and #103 are relevant to this situation
I am working on implementing a subclass of ChargePoint for the client end based on my suggestions in 119. It is still a work in progress but does manage to reconnect without re-instantiating the ChargePoint class every time.
My business logic is based on queues so I have also changed the interface to the class to use queues rather than the @xxx methods. When disconnected messages are held in a queue and are sent when reconnected. This is not correct but I plan to change the behaviour as I implement the business logic.
I dropped the context manager approach and instead implemented a reconnect coroutine that runs whenever disconnected from the server, along with support for closing cleanly.
The current state of the work is pasted below. Some of this will be specific to my particular application but it might be helpful.
Note it is unfinished
class _ChargePoint(ChargePoint):
    """subclass to over-ride some methods to provide
        a) queues for call requests and responses
        b) automatic (re-)connection to the server

    Args:
        body_in_q: queue feeding responses to the body
        client_in_q: queue to receive call requests
        server_uri: convenience for server uri
    """

    def __init__(self, **kwargs):
        """instantiate a chargepoint subclass

        Args:
            charger_id (str): ID of the charger.
            connection: Connection to CP (ignored).

        Kwargs:
            body_in_q: q to feed messages to the body
            client_in_q: q to feed messages to the client
            server_uri: str uri
            must_close_event: threading.Event to signal to close the socket
        """
        self.body_in_q = kwargs.pop('body_in_q')
        self.client_in_q = kwargs.pop('client_in_q')
        self.server_uri = kwargs.pop('server_uri')
        # threading.Event signalling when to close the socket
        self.must_close_event = kwargs.pop('must_close_event', None)
        # event signalling when (dis-)connected to server
        # note this can be changed by various coroutines so the sequence
        # if not disconnected_event.is_set():
        # does not guarantee that the following code will find the server there
        self.disconnected_event = asyncio.Event()
        self.disconnected_event.set()
        # now can instantiate super
        charger_id = kwargs.pop('charger_id')
        super().__init__(charger_id, connection=None, **kwargs)

    async def receive_calls(self):
        """replacement for the original start method to handle disconnection
        and remove the call to logging"""
        while True:
            if self.disconnected_event.is_set():
                await asyncio.sleep(0.01)
                continue
            # if the server closes or goes away this raises
            try:
                message = await self._connection.recv()
            except ConnectionRefusedError:
                logger.info('got ConnectionRefusedError')
                self.disconnected_event.set()
            except websockets.exceptions.ConnectionClosed: # closed OK or Error
                logger.warning('got ConnectionClosed from websockets.connect')
                self.disconnected_event.set()
            else:  # no exception
                await self.route_message(message)

    async def _send(self, message):
        """override _send to remove the log"""
        if not self.disconnected_event.is_set():
            await self._connection.send(message)
        else:
            # TODO how should this be handled?
            print('unable to send')

    async def handle_call_requests(self):
        """handle call requests from the sync code in the body

            These become calls to the csms server which should send a response

            Waits on a queue for a request then sends that to the remote server
            and returns the response to the body

            The body should apply a timeout that matches the max allowed
            response time from the server while waiting for the response.

            The hope is that, if the connection to the server is lost at any
            point, the body will timeout.

            The body cannot tell if the request was sent to the server before
            the connection was lost.

            The request could remain in the queue and would be sent when the
            connection is restored. The ChargePoint code should notice that
            the response UUID does not match the new request and drop the
            response.
        """
        while True:
            print(time.time(), 'ocpp handle_call_requests loops')
            # if connection is lost while async_get() this instance closes and
            # no message is lost, but instead remains in the queue.
            # The body is not aware that the call is failing until it fails to
            # get a response on its input queue and decides to time-out.
            # The body could check the qsize to see if the request has been
            # removed.
            # The message will remain on the queue and will be sent when the
            # connection is restored. - confirmed with refactored chargepoint
            request = await self.client_in_q.async_get()
            print(time.time(), f'handle_call_requests sending {request}')
            # if connection closes now the call will fail and the request is
            # lost and there will be no response put on the queue
            # The get will timeout. The body cannot know about this
            #
            # This call can fail if the connection is lost or absent.
            # Cannot catch the exception and report it back to the body as this
            # instance will be deleted.
            # the call can also raise a timeout if the server fails to respond
            # or if it disconnects after we sent the request
            # should be able to catch a timeout, but a disconnect will close
            # this instance.
            # On a timeout just absorb it and allow the body to timeout on the
            # get. This assumes there is no need to close the websocket if the
            # server is slow to respond.
            # OCPP requires that certain request are handled differently if
            # there is a timeout
            #
            # jan21 if the server goes, the call times-out after 30s even though
            # re-connected and only then continues with the new connection
            try:
                response = await self.call(request)
            except asyncio.TimeoutError:
                logger.warning(
                    'csms timeout responding to %r', request, exc_info=True
                )
                # if raised then run_asyn_main gather exits so absorb it
            else:
                print(f'handle_call_requests got response {response}')
                self.body_in_q.put(response)

    async def ensure_connected_to_server(self):
        """handle reconnections to the server whenever needed"""
        while True:
            # wait on an event
            await self.disconnected_event.wait()
            if self.must_close_event.is_set():
                # closing down so do not try to reconnect, wait to die
                logger.info('ensure_connected_to_server waiting to die')
                await asyncio.sleep(5)
            # now do the connection bit
            try:
                logger.info('trying to connect to %s', self.server_uri)
                web_sock = await websockets.connect(
                    self.server_uri,
                    subprotocols=['ocpp2.0'],
                    # ping_timeout=40,
                    # close_timeout=20,
                )
                logger.info('connected to %r', web_sock)
                self._connection = web_sock
                self.disconnected_event.clear()
            except ConnectionRefusedError:
                logger.info('got ConnectionRefusedError')
                await asyncio.sleep(1)  # should be a backoff
            except websockets.exceptions.ConnectionClosed: # closed OK or Error
                logger.warning('got ConnectionClosed from websockets.connect')
                await asyncio.sleep(1)  # should be a backoff

    async def close_socket(self):
        """attempt to close the socket"""
        # how's about this for a bit of functional code?
        _ = self._connection and await self._connection.close()
        # TODO set disconnected but also do not reconnect
        self.disconnected_event.set()

    async def monitor_for_close_event(self):
        """wait on a threading.Event signal to close the socket"""
        # expecting a threading event here which returns false on timeout
        while not self.must_close_event.wait(timeout=0.001):
            # have to put an ansync wait here or the other coroutines do not
            # ever run. could probably make this a thread etc but left for now
            await asyncio.sleep(0.5)
        logger.info('monitor_for_close_event is closing socket')
        await self.close_socket()

#119 and #103 are relevant to this situation
I am working on implementing a subclass of ChargePoint for the client end based on my suggestions in 119. It is still a work in progress but does manage to reconnect without re-instantiating the ChargePoint class every time.
My business logic is based on queues so I have also changed the interface to the class to use queues rather than the @xxx methods. When disconnected messages are held in a queue and are sent when reconnected. This is not correct but I plan to change the behaviour as I implement the business logic.
I dropped the context manager approach and instead implemented a reconnect coroutine that runs whenever disconnected from the server, along with support for closing cleanly.
The current state of the work is pasted below. Some of this will be specific to my particular application but it might be helpful.
Note it is unfinished
class _ChargePoint(ChargePoint):
    """subclass to over-ride some methods to provide
        a) queues for call requests and responses
        b) automatic (re-)connection to the server

    Args:
        body_in_q: queue feeding responses to the body
        client_in_q: queue to receive call requests
        server_uri: convenience for server uri
    """

    def __init__(self, **kwargs):
        """instantiate a chargepoint subclass

        Args:
            charger_id (str): ID of the charger.
            connection: Connection to CP (ignored).

        Kwargs:
            body_in_q: q to feed messages to the body
            client_in_q: q to feed messages to the client
            server_uri: str uri
            must_close_event: threading.Event to signal to close the socket
        """
        self.body_in_q = kwargs.pop('body_in_q')
        self.client_in_q = kwargs.pop('client_in_q')
        self.server_uri = kwargs.pop('server_uri')
        # threading.Event signalling when to close the socket
        self.must_close_event = kwargs.pop('must_close_event', None)
        # event signalling when (dis-)connected to server
        # note this can be changed by various coroutines so the sequence
        # if not disconnected_event.is_set():
        # does not guarantee that the following code will find the server there
        self.disconnected_event = asyncio.Event()
        self.disconnected_event.set()
        # now can instantiate super
        charger_id = kwargs.pop('charger_id')
        super().__init__(charger_id, connection=None, **kwargs)

    async def receive_calls(self):
        """replacement for the original start method to handle disconnection
        and remove the call to logging"""
        while True:
            if self.disconnected_event.is_set():
                await asyncio.sleep(0.01)
                continue
            # if the server closes or goes away this raises
            try:
                message = await self._connection.recv()
            except ConnectionRefusedError:
                logger.info('got ConnectionRefusedError')
                self.disconnected_event.set()
            except websockets.exceptions.ConnectionClosed: # closed OK or Error
                logger.warning('got ConnectionClosed from websockets.connect')
                self.disconnected_event.set()
            else:  # no exception
                await self.route_message(message)

    async def _send(self, message):
        """override _send to remove the log"""
        if not self.disconnected_event.is_set():
            await self._connection.send(message)
        else:
            # TODO how should this be handled?
            print('unable to send')

    async def handle_call_requests(self):
        """handle call requests from the sync code in the body

            These become calls to the csms server which should send a response

            Waits on a queue for a request then sends that to the remote server
            and returns the response to the body

            The body should apply a timeout that matches the max allowed
            response time from the server while waiting for the response.

            The hope is that, if the connection to the server is lost at any
            point, the body will timeout.

            The body cannot tell if the request was sent to the server before
            the connection was lost.

            The request could remain in the queue and would be sent when the
            connection is restored. The ChargePoint code should notice that
            the response UUID does not match the new request and drop the
            response.
        """
        while True:
            print(time.time(), 'ocpp handle_call_requests loops')
            # if connection is lost while async_get() this instance closes and
            # no message is lost, but instead remains in the queue.
            # The body is not aware that the call is failing until it fails to
            # get a response on its input queue and decides to time-out.
            # The body could check the qsize to see if the request has been
            # removed.
            # The message will remain on the queue and will be sent when the
            # connection is restored. - confirmed with refactored chargepoint
            request = await self.client_in_q.async_get()
            print(time.time(), f'handle_call_requests sending {request}')
            # if connection closes now the call will fail and the request is
            # lost and there will be no response put on the queue
            # The get will timeout. The body cannot know about this
            #
            # This call can fail if the connection is lost or absent.
            # Cannot catch the exception and report it back to the body as this
            # instance will be deleted.
            # the call can also raise a timeout if the server fails to respond
            # or if it disconnects after we sent the request
            # should be able to catch a timeout, but a disconnect will close
            # this instance.
            # On a timeout just absorb it and allow the body to timeout on the
            # get. This assumes there is no need to close the websocket if the
            # server is slow to respond.
            # OCPP requires that certain request are handled differently if
            # there is a timeout
            #
            # jan21 if the server goes, the call times-out after 30s even though
            # re-connected and only then continues with the new connection
            try:
                response = await self.call(request)
            except asyncio.TimeoutError:
                logger.warning(
                    'csms timeout responding to %r', request, exc_info=True
                )
                # if raised then run_asyn_main gather exits so absorb it
            else:
                print(f'handle_call_requests got response {response}')
                self.body_in_q.put(response)

    async def ensure_connected_to_server(self):
        """handle reconnections to the server whenever needed"""
        while True:
            # wait on an event
            await self.disconnected_event.wait()
            if self.must_close_event.is_set():
                # closing down so do not try to reconnect, wait to die
                logger.info('ensure_connected_to_server waiting to die')
                await asyncio.sleep(5)
            # now do the connection bit
            try:
                logger.info('trying to connect to %s', self.server_uri)
                web_sock = await websockets.connect(
                    self.server_uri,
                    subprotocols=['ocpp2.0'],
                    # ping_timeout=40,
                    # close_timeout=20,
                )
                logger.info('connected to %r', web_sock)
                self._connection = web_sock
                self.disconnected_event.clear()
            except ConnectionRefusedError:
                logger.info('got ConnectionRefusedError')
                await asyncio.sleep(1)  # should be a backoff
            except websockets.exceptions.ConnectionClosed: # closed OK or Error
                logger.warning('got ConnectionClosed from websockets.connect')
                await asyncio.sleep(1)  # should be a backoff

    async def close_socket(self):
        """attempt to close the socket"""
        # how's about this for a bit of functional code?
        _ = self._connection and await self._connection.close()
        # TODO set disconnected but also do not reconnect
        self.disconnected_event.set()

    async def monitor_for_close_event(self):
        """wait on a threading.Event signal to close the socket"""
        # expecting a threading event here which returns false on timeout
        while not self.must_close_event.wait(timeout=0.001):
            # have to put an ansync wait here or the other coroutines do not
            # ever run. could probably make this a thread etc but left for now
            await asyncio.sleep(0.5)
        logger.info('monitor_for_close_event is closing socket')
        await self.close_socket()

Seems a nice approach! I adapted my code with some ideas extracted from yours. For now, it does the things I want. I will be refinishing the code for cleaner results. At least,  the class is not reinstantiated and I keep my routines working fine. Future advances will be communicated.
I am very very grateful for your response! Thank you!!

Seems a nice approach! I adapted my code with some ideas extracted from yours. For now, it does the things I want. I will be refinishing the code for cleaner results. At least,  the class is not reinstantiated and I keep my routines working fine. Future advances will be communicated.
I am very very grateful for your response! Thank you!!

I realize that the current API of this library is not well suited to support the use case of the opening post. There are some ideas see here: https://github.com/mobilityhouse/ocpp/discussions/165
@jr-tactiq You code sample suggests that you mix async code with threaded code. Note that several asyncio constructs like asyncio.Event and asyncio.Queue are not thread-safe.

I realize that the current API of this library is not well suited to support the use case of the opening post. There are some ideas see here: https://github.com/mobilityhouse/ocpp/discussions/165
@jr-tactiq You code sample suggests that you mix async code with threaded code. Note that several asyncio constructs like asyncio.Event and asyncio.Queue are not thread-safe.

I realize that the current API of this library is not well suited to support the use case of the opening post. There are some ideas see here: https://github.com/mobilityhouse/ocpp/discussions/165
@jr-tactiq You code sample suggests that you mix async code with threaded code. Note that several asyncio constructs like asyncio.Event and asyncio.Queue are not thread-safe.

Link not working

As this has gone stale, I'll close this (Although this is still valid and is referenced by discussion https://github.com/mobilityhouse/ocpp/discussions/165)


[Snyk] Upgrade lodash from 4.17.15 to 4.17.21

Snyk has created this PR to upgrade lodash from 4.17.15 to 4.17.21.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 6 versions ahead of your current version.
The recommended version was released 4 years ago, on 2021-02-20.

The recommended version fixes:

Severity
Issue
PriorityScore (*)
Exploit Maturity

Code Injection SNYK-JS-LODASH-1040724
681/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 7.2
Proof of Concept

Prototype Pollution SNYK-JS-LODASH-567746
681/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 7.2
Proof of Concept

Prototype Pollution SNYK-JS-LODASH-608086
681/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 7.2
Proof of Concept

Prototype Pollution SNYK-JS-LODASH-6139239
681/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 7.2
Proof of Concept

Regular Expression Denial of Service (ReDoS) SNYK-JS-LODASH-1018905
681/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 7.2
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Release notes

Package name: lodash

4.17.21 - 2021-02-20Bump to v4.17.21

4.17.20 - 2020-08-13Bump to v4.17.20.

4.17.19 - 2020-07-08Bump to v4.17.19

4.17.18 - 2020-07-08

4.17.17 - 2020-07-08

4.17.16 - 2020-07-08Rebuild lodash and docs

4.17.15 - 2019-07-194.17.15

    from lodash GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

 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.


cilium: fix restore v6 router ip to not break pod connectivity on restart

See commit msg.

This change is

test-me-please

Coverage decreased (-0.007%) to 44.018% when pulling 25497518a0c02689d5fe03c3d3e806dee5e308ce on pr/fix-v6-router-restore into 1e19ec510241165107edc292ab24935bb6e73152 on master.


Cookies Collective Agreement

Actually, I already write some Cookies Agreements on the MDearth.io front page. But the thing is, there are no details for that. It will be better if there is a former agreement.


Fix string parser bug

The current implementation does not eat the new line character - \n, so if there's a line 123\n, the variable std::string r will contain a '\n'.

Codecov Report

Merging #46 (34b8a0e) into master (7b5adbb) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   82.47%   82.47%   -0.01%
==========================================
  Files          48       48
  Lines        3053     3052       -1
==========================================
- Hits         2518     2517       -1
  Misses        535      535

Flag
Coverage Δ

app_tests
82.47% <ø> (-0.01%)
:arrow_down:

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

Impacted Files
Coverage Δ

grape/io/line_parser_base.h
100.00% <ø> (ø)

grape/io/tsv_line_parser.h
100.00% <ø> (ø)


windows: fix handle leak on EMFILE

If CreateFileW succeeds, but _open_osfhandle fails, the handle must be closed.

LGTM

Nice catch Brian! Landed in 12c9360


Test NAPI-rs V2 integration

Most of the test failures I saw are unrelated and probably caused by this Engine being branched off from an earlier commit, while newer commits were integrated (concrete: https://github.com/prisma/prisma-engines/commit/a2a89a7dfb88dbe9b1a27e8d1a6325b35e1ca41f) and the snapshots updated. Rebasing the Engine branch should fix this (or branching off here from an older commit before that integration)


Future-proof JAX array API import

As of https://github.com/google/jax/pull/22818, jax.numpy supports the array API directly, and jax.experimental.array_api is deprecated. This change will ensure that array_api_compat works correctly with future JAX releases.

Thanks. If you grep for jax.experimental there's a few other places that should be updated too.

Thanks. If you grep for jax.experimental there's a few other places that should be updated too.

Done - thanks!

As of google/jax#22818, jax.numpy supports the array API directly, and jax.experimental.array_api is deprecated.

That's awesome 🎉


nsc-events-nestjs-8-129-auto-archive-past-events

Satisfies #129

Implements functionality to auto archive past events in the backend

https://github.com/SeattleColleges/nsc-events-nestjs/assets/22021615/6db5b2f5-7993-49e9-a1f4-9d23659732c9

@bennettsf I agree, that would be better. Or making the events archive as soon it hits the event's end time, perhaps? @Ali-7s Could we do this?

@bennettsf I agree, that would be better. Or making the events archive as soon it hits the event's end time, perhaps? @Ali-7s Could we do this?

Yeah, I just updated the code to implement it

I'm late to the party but this looks great and functions as expected on my end when I create events with past due dates. Good job!

@bennettsf I agree, that would be better. Or making the events archive as soon it hits the event's end time, perhaps? @Ali-7s Could we do this?

Yeah, I just updated the code to implement it

@Ali-7s The events are no longer archiving with expired events or when I create events with past due dates or events that have started.

@bennettsf I agree, that would be better. Or making the events archive as soon it hits the event's end time, perhaps? @Ali-7s Could we do this?

Yeah, I just updated the code to implement it

@Ali-7s The events are no longer archiving with expired events or when I create events with past due dates or events that have started.

Sorry about that, it should work now based on date and event end time
https://github.com/SeattleColleges/nsc-events-nestjs/assets/22021615/e01a558e-756f-45c5-aa85-23638cdfaaa6

@bennettsf I agree, that would be better. Or making the events archive as soon it hits the event's end time, perhaps? @Ali-7s Could we do this?

Yeah, I just updated the code to implement it

@Ali-7s The events are no longer archiving with expired events or when I create events with past due dates or events that have started.

Sorry about that, it should work now based on date and event end time
Screen.Recording.2024-06-11.at.8.mp4

@Ali-7s It's working, but it seems I am only able to get an event to auto archive if the event is created using the Create Event page. Strangely, events created using Postman do not auto archive on my end.

@bennettsf I agree, that would be better. Or making the events archive as soon it hits the event's end time, perhaps? @Ali-7s Could we do this?

Yeah, I just updated the code to implement it

@Ali-7s The events are no longer archiving with expired events or when I create events with past due dates or events that have started.

Sorry about that, it should work now based on date and event end time
Screen.Recording.2024-06-11.at.8.mp4

@Ali-7s It's working, but it seems I am only able to get an event to auto archive if the event is created using the Create Event page. Strangely, events created using Postman do not auto archive on my end. Did you create your events using the Create Event page or Postman?

I created mine using the create event page


Workflow: Deletion Service

Summary
After a WorfklowExecution has either completed or errored, a user may want to delete it. Since this doesn't require a call to the WES API we can just delete immediately after the user clicks the Delete button for a workflow
Acceptance Criteria

Create a WorkflowExecutions::DeletionService

Accept a workflow_execution as parameters
Validate that the workflow_execution is in one of the deletable states (either completed, or errored)
If it is in one of the above states, then the workflow and it's children should be destroyed
A controller under workflow_executions
UI updated to include Delete on the workflow executions table listing

@ericenns @deepsidhu85 @joshsadam Can I assume the workflow executions table will not have pagination, like the personal access token table? I'm trying to decide how best to remove the deleted worfkflow from the table. Thanks.

@ksierks The workflow executions table will eventually have pagination, so I wouldn't take the same approach as the personal access tokens table.

Currently, I am not required to implement action policies for this issue. Assume the user is the submitter.


fix(atomic): replace cypress server

lets see how this goes
https://coveord.atlassian.net/browse/KIT-562

I've skipped all the facet tests which can be flaky, they will be unskipped on https://coveord.atlassian.net/browse/KIT-565
I've changed the browser to chrome instead of using electron, seemed like a good idea


[question] Any plans to support v8.0.0????

When can we expect a v8.0.0 compatible version?
Thanks for the awesome work!!!!

Hey there @jorgercg, the test-runner is compatible with Storybook 8! But as Storybook 8 is under a prerelease, so is the test-runner.
While Storybook 8 is not out, you can try it like so:
yarn add @storybook/test-runner@next


ocrweb -> ValueError: not enough values to unpack (expected 4, got 2)

Issue

working with RapidOCR - ocrweb
when submitting an image without text, it will cause the following issue

testing sample: test2.png (a plain white picture)

╰─○ python main.py
 * Serving Flask app 'main' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://<IP_ADDRESS>:9003 (Press CTRL+C to quit)
<IP_ADDRESS> - - [29/Jun/2022 09:40:38] "GET / HTTP/1.1" 200 -
<IP_ADDRESS> - - [29/Jun/2022 09:40:38] "GET /static/css/main.css HTTP/1.1" 200 -
<IP_ADDRESS> - - [29/Jun/2022 09:40:38] "GET /static/js/jquery-3.0.0.min.js HTTP/1.1" 200 -
<IP_ADDRESS> - - [29/Jun/2022 09:40:38] "GET /static/css/favicon.ico HTTP/1.1" 200 -
dt_boxes num: 0, elapse: 0.14057278633117676
[2022-06-29 09:40:48,101] ERROR in app: Exception on /ocr [POST]
Traceback (most recent call last):
  File "/Users/userXXX/anaconda3/envs/rapid/lib/python3.7/site-packages/flask/app.py", line 2077, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/userXXX/anaconda3/envs/rapid/lib/python3.7/site-packages/flask/app.py", line 1525, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/userXXX/anaconda3/envs/rapid/lib/python3.7/site-packages/flask/app.py", line 1523, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/userXXX/anaconda3/envs/rapid/lib/python3.7/site-packages/flask/app.py", line 1509, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "main.py", line 35, in ocr
    return detect_recognize(image)
  File "/Users/userXXX/Downloads/ocrweb_debug/task.py", line 29, in detect_recognize
    dt_boxes, rec_res, img, elapse_part = text_sys(image)
ValueError: not enough values to unpack (expected 4, got 2)
<IP_ADDRESS> - - [29/Jun/2022 09:40:48] "POST /ocr HTTP/1.1" 500 -

Cause & Proposed solution

root cause: rapid_ocr_api.py, return logic within if dt_boxes is None or len(dt_boxes) < 1:

class TextSystem(object):
    ... ...
    def __call__(self, img: np.ndarray):
        dt_boxes, det_elapse = self.text_detector(img)
        if self.print_verbose:
            print(f'dt_boxes num: { len(dt_boxes)}, elapse: {det_elapse}')

        if dt_boxes is None or len(dt_boxes) < 1:
            return None, None
            # fixed with: return None, None, img, None

Thanks, I'll update this to the repository later, or you can just submit a PR on your side.

The bug has been fixed, thanks a lot again.


Feat/m8 with visualizations

Hi @mplaine,
Please review this pull request: I added output image of m8 and updated metrics.json as well.
The output image is in grayscale mode and normalized between 0-255 (same as Matlab code).

Hi @kargaranamir ! Big thanks for the PR!
I refactored your code a bit and merged the branch with the latest code in aim2.
Could you kindly test that everything still works as expected?
Could you also explain to me why you use 255 / 2 as the fill value in:
return np.full_like(arr, 255 / 2).astype("uint8")

If possible, try to find and use original inputs for unit tests so that we can compare the results against the ones in the publication/project page.

Hey @kargaranamir ! Any progress regarding the unit tests? Can I help you somehow?

Hi @mplaine,
I was a little busy with my university assignments. Thanks for remining me, i will make the changes asap.

Hi @mplaine, sorry for the delay. I checked the Measuring Visual Clutter paper, and select map.png as an original input.
Also, the high-quality map.png was available as the only test image in the author's source code files.
I edited the test_m8.py for the map.png with both scalar and visualization expected results. The test file becomes heavy if we want to add all visualization outputs for each test, so I kept the previous test cases as before.

Thanks @kargaranamir ! I will review and test your changes next week at the latest.

Looks and works perfectly! Thanks @kargaranamir !


InternalActionID is a hash, which cannot be depended on for equality comparison

Windows Terminal version
latest
Windows build number
10.0.22621.0
Other Software
No response
Steps to reproduce
From doc\specs\#885 - Terminal Settings Model\Actions Addendum.md:
std::map<KeyChord, InternalActionID> _KeyMap;
std::map<InternalActionID, Command> _ActionMap;

InternalActionID will be a hash of ActionAndArgs such that two ActionAndArgs with the same ShortcutAction and IActionArgs output the same hash value.

A hash function can be used to quickly determine if two items are NOT equal: if they have different hashes, they are not the same.
However, if the hashes are the same, that does not mean the items are equal.  But Terminal uses InternalActionID as a dictionary key (and the values are not lists), so if you have a collision, an action gets dropped.
I ran into this trying to add a new action--the hash function was not great, so there were collisions, which resulted in very confusing behavior, since some of my actions appeared to be straight-up do the wrong thing, but not just any wrong thing; but the same thing as some other instance of the command with different arguments!
I was fortunately able to improve the hash function, but this still depends on getting lucky.
Expected Behavior
I expected to be able to add a new ActionAndArgs, even though it had a not-very-good hash function, without some of my actions being mysteriously subsumed by others.
Actual Behavior
Some new actions appeared to do the wrong thing (the same thing as some other action that had different args, but ended up with the same hash value).

Previously discussed in https://github.com/microsoft/terminal/pull/10341#issuecomment-856168045.

There's two ways forward I see here...

Quick fix: Replace til::hasher's FNV1a algorithm with a modern one. My personal preference is xxhash 3 which has a very low collision rate in line with the birthday paradox. It would effectively reduce the likelihood of this being an issue for a long time with a low development cost.
Long term fix: ActionMap.cpp's Hash() functions are already build in terms of til::hasher's generic Write() function, which only accepts binary data. We can make our own, equivalent Write() function which builds a std::vector<std::byte> out of the binary data instead, then we hash the vector and finally keep both, the vector and the memoized hash, around in a struct InternalActionID. InternalActionID can also be aliased as a std::shared_ptr so that the behavior of it as a "cheap" ID would be the same as before.


As an operator I want to chose whether I use compiled releases or not.

The following ops files all have hardcoded compiled releases.
bosh.yml
bosh-lite.yml
bosh-lite-grootfs.yml
bosh-lite-runc.yml
credhub.yml
uaa.yml
This requires me to create additional ops files in order to change the stemcell version which is a bit cumbersome.

cf-deployment takes the approach of having no compiled releases in their default ops files and provides an use-compiled-releases.yml operation

im lobbying cf-deployment to use compiled releases by default as well, as it saves a lot of time when installing things like this.

If bosh-deployment was always using the latest stemcell, would that solve your concerns?

thoughts?

We have the same use case: we'd like to be able to upgrade stemcells before bosh-deployment does. If bosh-deployment always used the latest stemcell, this wouldn't be an issue. Is that an option?

Closing this due to inactivity.
If you would like to discuss this contribution further, please open a new issue.


[BUG] SkiaSharp color filters not works in the latest version(2.80.2) in iOS 14.5

Description
When I was uing CreateColorMatrix method, if the fifth column of color-transform matrix has value, it will occur the wrong phenomenon in the latest version (2.80.2). However, the version of  1.68.3 works.
Code
For example the Matrix as follows:
    paint.ColorFilter = SKColorFilter.CreateColorMatrix(new float[] {
        1.0546f,0,0,0,40.578f,
        0,1.445f,0,0,-88.57f,
        0,0,1.0546f,0,-28.42f,
        0,0,0,1.0f,0
    });

Expected Behavior

Actual Behavior

Basic Information
SkiaSharp.Views.Forms

Version with issue:  2.80.2
Last known good version:  1.68.3
IDE:  Visual Studio For Mac 8.9.8(Buidl 7)
Platform Target Frameworks:

iOS:  14.5

Detailed IDE/OS information (click to expand)

PASTE ANY DETAILED VERSION INFO HERE

Screenshots

Reproduction Link

@Jiang-Junjie Not sure if you are still struggling with this, but we ran into the same issue and found a solution. Though I'm not sure if this is a bug or by design.
To be honest, I barely understand all this matrix stuff so I'm vague on the actual meaning of everything in the matrix, but we used to multiple the RGB components so that they were values between 0-255. On SkiaSharp 1.x this worked as expected.  Now in 2.x it seems to want values between 0-1.
Old Code (Works in 1.x)
var matrix = new float[]
{
    0, 0, 0, 0, ( float ) ( Color.R * 255 ),
    0, 0, 0, 0, ( float ) ( Color.G * 255 ),
    0, 0, 0, 0, ( float ) ( Color.B * 255 ),
    0, 0, 0, 1, 0
};

args.Paint.ColorFilter = SKColorFilter.CreateColorMatrix( matrix );

New Code (Works in 2.x):
var matrix = new float[]
{
    0, 0, 0, 0, ( float ) Color.R,
    0, 0, 0, 0, ( float ) Color.G,
    0, 0, 0, 0, ( float ) Color.B,
    0, 0, 0, 1, 0
};

args.Paint.ColorFilter = SKColorFilter.CreateColorMatrix( matrix );

@cabal95 Oh, that's cool! Now, I'm using the Old Code in my project. And last week, I had a try with the newest version of SkiaSharp to check. However it not works, so I am using the Old Code now. Your New Code make me can use the newest version. Thx, bro! 😊


SDK JS V7 is broken , file picker is not showing files

I created an integration using the guidelines here https://dev.onedrive.com/sdk/js-v7/js-picker-open.htm
The file picker opens but dont show any files .. even if I try to pick files on your demo https://dev.onedrive.com/sdk/js-v7/js-picker-open.htm , it does not show any file in the file picker modal ..
No-files in file picker:

Actual screenshot from my one drive account, I do have a lot of files but they are not showing up in file picker modal:

even if I try to pick files on your demo https://dev.onedrive.com/sdk/js-v7/js-picker-open.htm , it does not show any file in the file picker modal ..
Please let me know what do you find .. Thanks in Advance !!

I am also encountering this issue. This occurs on the demo and my new app just the same.

We've found and fixed the source of this problem in the v7.0 picker. You should see the normal behavior again now.

Yes this works now, Thanks @rgregg 👍  👍  👍  👍


Change CSS and JS dependencies to allow autoloading

At the moment I very often have to refresh the page in the CMS to get the Javascript to load. This appears to be dues to the fact that the JS is loaded as "customscript" or "javascripttemplate" (so written into the page).
These changes move the JS libs to being required by LeftAndMain (and so they will be included by default and added to combined files) or in the case of GoogleSuggestField move to using a standard Requirements::javascript call (which causes the JS to be loaded via ajax).
I have tested these changes on a vanilla SilverStripe install and everything works as expected (both on SiteTree objects and on custom DataObjects) with no refreshing required.

Hi @mlewis-everley ,
Sorry for the delay and thanks for this!


Poor results without skip connection

It seems like the code cannot converge without skip connection. Can you provide a code without skip connection? Thanks!

In my experiments, I found that the model can converge even without the skip connections.
Could you specify more details about your task, and what setting you are trying?
-Gaurav


Add polling interval to CodeBuildStep

When there are too many parallel CodeBuild steps from the same Jenkins instance, the number of API calls is high enough for the AWS api infrastructure to throttle the calls. The build fails because of this.
Proposed solution
Add a pollingInterval build parameter to the CodeBuildStep. Keep the default to 5 seconds. Let the users decide if they want to increase it to suit their parallelism requirement.
See https://github.com/awslabs/aws-codebuild-jenkins-plugin/issues/31
This contribution is under the Apache 2.0 license.

Thanks for the contribution--I'm testing your change right now.

@leobaran-aws @jvusich. There seems to be a more elegant solution as suggested in https://github.com/awslabs/aws-codebuild-jenkins-plugin/issues/31#issuecomment-311656212.
I am going to close this PR for now and will submit another one with the suggested solution.


Difficulty Levels

[x] Implement different difficulty levels for the game.

[x] Introduce easy, medium, and hard:

•	HARD: Actors only (user will be presented with a list of actors, and they need to guess the corresponding movie) - 3points
•	MEDIUM: Actors + Genre -2points
•	EASY: Actors + Genre + Plot (description) -1point

Issue closed!
Different difficulty levels have been successfully implemented:

HARD: Test  movie knowledge with actors-only questions (3 points).
MEDIUM: A mix of actors and genre questions (2 points).
EASY: Challenge with actors, genre, and plot description questions (1 point).


can i translations from Chinese lang to English lang?

i buy Vacuum G1 but he's a china server
when i connent to HASS
text of mode is Chinese
i want text of mode to English lang

oh ok my bad
i know now


Remove province

https://github.com/namely/issues/issues/2597

+1

@macat @edisgreat is it okay if i hit that "merge pull request" button, or does someone else want to take on that responsibility? :)

@jharris119 is there a reason why this PR is against master and not develop branch?

@viola Not really, except that it's originally forked off of the master branch on hexorx/countries. (There's gem 'countries', '~> 0.9.8', git: 'https://github.com/namely/countries.git' in the namely/namely Gemfile, does that pull from the master branch?)

@jharris119 NM I see, my bad!


python310Packages.govee-ble: 0.19.0 -> 0.19.1

Description of changes
https://github.com/bluetooth-devices/govee-ble/blob/main/CHANGELOG.md#v0191-2022-09-30

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 193875 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.govee_ble
python310Packages.govee-ble
python39Packages.govee-ble

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 193875 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.govee_ble
python310Packages.govee-ble
python39Packages.govee-ble

The following issues got detected with the above build packages.
Please fix at least the ones listed with your changed packages:

home-assistant-component-tests.govee_ble:

got build log for '/nix/store/hxzjc39i2pn6w0cl92k747614243wvj9-homeassistant-test-govee_ble-2022.9.7' from 'daemon'
When evaluating attribute ‘home-assistant-component-tests.govee_ble’:
warning: unused-argument
Unused argument: fetchpatch.
Near pkgs/servers/home-assistant/default.nix:5:3:
  |
5 | , fetchpatch
  |   ^


DataGrid issue with adding new row

In DataGrid when you filter out all data and nothing found row showing up. In this case if you will try to add new row, it will never show up. This is only happens in nothing found case.
To Reproduce
Steps to reproduce the behavior:

Open page with DataGrid
Apply a filter on one of the columns so nothing will be found
Try to add new record (row)
See that new row didn't appear

Expected behavior
New row should show up instead of nothing found

I'm unable to reproduce this on our demo: https://blazor.radzen.com/datagrid-inline-edit

@enchev
You are unable to reproduce it because in that demo example it is not using LoadData method callback.
This bug only exist when you are using LoadData.
Here is example setup:
<RadzenDataGrid
    @ref="@Grid"
    Style="height: calc(100vh - 149px)"
    AllowFiltering="true"
    FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
    AllowColumnResize="true"
    FilterMode="FilterMode.Advanced"
    AllowPaging="true"
    PageSizeOptions="@PageSizeOptions"
    PageSize="@DefaultPageSize"
    AllowSorting="true"
    IsLoading="@IsLoading"
    LoadData="@LoadData"
    Data="@Data"
    Count="@Count"
    RowCreate="@AddRow"
    RowUpdate="@UpdateRow"
    TItem="IdrdPeriodViewModel"
    EditMode="DataGridEditMode.Multiple"
    LogicalFilterOperator="LogicalFilterOperator.And">

In the demo: https://blazor.radzen.com/datagrid-inline-edit
When I create a new row and click on any sort tab, that row disappears (In my real case, although it does appear in the database and when I press F5)

i confirm i have the same bug, i cant add a new line when i use the loaddata event when my datagrid have no data


:bwipe doesn't remove file from jumplist of other tabpages

Problem:  :bwipe doesn't remove file from jumplist of other tabpages.
Time complexity of mark_forget_file() is O(n^2) when removing
all entries.
Solution: Use FOR_ALL_TAB_WINDOWS().  Start the loops over the arrays
from the end instead of the start.

thanks!


Release to Maven central

Hi,
It would be useful to release the openiec61850 as a maven dependency, so it could be easily imported into the project.

the latest release can be found on maven central in the old "org.openmuc" namespace. I will soon release a new version in the new "com.beanit" namespace.

Excellent, thanks. I suggest adding this to the README file.


Accept time offset at getting Timestamp value

We might need to adjust timestamp value in various cases. For example, time value in log records can be wrong by invalid machine time.Or time value only in log records but date value can exist in file path.

Good feedback. This feature was implemented on #425


Make Worker id config mandatory field

Signed-off-by: manju956<EMAIL_ADDRESS>

This would also require all the documentation files to be updated -

All clients
Ethereum Besu/Ganche
Fabric


⚠ Bofrost.at has degraded performance

In 31f594e, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1850 ms

Resolved: Bofrost.at performance has improved in 3b2a70a after 6 minutes.


beta react

Fix RM-XYZ

🧰 Changes
Describe your changes in detail.
🧬 QA & Testing

Broken on production.
Working in this PR app.

This PR was released!
🚀 Changes included in v6.67.0-beta.1


Error: redirect_uri_mismatch

I am trying to run the locally but when I try to login, it keeps giving me an error:
Error: redirect_uri_mismatch
The redirect URI in the request, http://localhost:8000/oauth2callback, does not match the ones authorized for the OAuth client.
Help!

okay, so the Authorized Redirect URI should be:
http://localhost:8000/oauth2callback not http://localhost:8000/auth/oauth2callback
however, when I choose a google account to authorize, I am getting another error:
TokenError: Unauthorized     at Strategy.OAuth2Strategy.parseErrorResponse (/Users/reginagarcia/Documents/GitHub/builderbook/node_modules/passport-oauth2/lib/strategy.js:329:12)     at Strategy.OAuth2Strategy._createOAuthError (/Users/reginagarcia/Documents/GitHub/builderbook/node_modules/passport-oauth2/lib/strategy.js:376:16)     at /Users/reginagarcia/Documents/GitHub/builderbook/node_modules/passport-oauth2/lib/strategy.js:166:45     at /Users/reginagarcia/Documents/GitHub/builderbook/node_modules/oauth/lib/oauth2.js:191:18     at passBackControl (/Users/reginagarcia/Documents/GitHub/builderbook/node_modules/oauth/lib/oauth2.js:132:9)     at IncomingMessage.<anonymous> (/Users/reginagarcia/Documents/GitHub/builderbook/node_modules/oauth/lib/oauth2.js:157:7)     at emitNone (events.js:91:20)     at IncomingMessage.emit (events.js:185:7)     at endReadableNT (_stream_readable.js:974:12)     at _combinedTickCallback (internal/process/next_tick.js:80:11)     at process._tickDomainCallback (internal/process/next_tick.js:128:9)

@reggarcia thanks for pointing out problem in callback URL https://github.com/builderbook/builderbook/commit/ea8589c94ca3a59c136381510c9404b54ee2afe1
As for you second error, do you have  Google+ API enabled in your Google Cloud account?

yup, that was the fix — enable google + api

On Feb 14, 2018, at 7:30 PM, Tima<EMAIL_ADDRESS>wrote:
@reggarcia https://github.com/reggarcia thanks for pointing out problem in callback URL ea8589c https://github.com/builderbook/builderbook/commit/ea8589c94ca3a59c136381510c9404b54ee2afe1
As for you second error, do you have Google+ API enabled in your Google Cloud account?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/builderbook/builderbook/issues/26#issuecomment-365816354, or mute the thread https://github.com/notifications/unsubscribe-auth/ADvlR2KeiBqjo0dGiCDRbRa9_Ld6r-XIks5tU6TYgaJpZM4SGOah.


Revert "support Iris driver"

This reverts commit 9cc7cdc490349db1fa7abd83c85223bcfe5e8cc1.

@Shao-Feng & @feijiang1  & @YuanjunHuang
Could you help take a review of this changes? Same HWC changes for celadon, thanks a lot!

@Shao-Feng & @feijiang1  & @YuanjunHuang
Could you help take a review of this changes? Same HWC changes for celadon, thanks a lot!

Did you ever ping @tpalli for this issue?

Did you ever ping @tpalli for this issue?

This is fine, iris should work well on Android now with explicit sync. This is of course assuming the Mesa sources are recent enough to have the fixes in place. Let me know if there is any trouble and we can figure out what fixes would be missing.

This is fine, iris should work well on Android now with explicit sync. This is of course assuming the Mesa sources are recent enough to have the fixes in place. Let me know if there is any trouble and we can figure out what fixes would be missing.

This is fine, iris should work well on Android now with explicit sync. This is of course assuming the Mesa sources are recent enough to have the fixes in place. Let me know if there is any trouble and we can figure out what fixes would be missing.

Thanks @tpalli! Currently, the mesa version is 20.2.3 on Celadon, we will keep monitor if there is issue on TGL, : )

This is fine, iris should work well on Android now with explicit sync. This is of course assuming the Mesa sources are recent enough to have the fixes in place. Let me know if there is any trouble and we can figure out what fixes would be missing.

Thanks @tpalli! Currently, the mesa version is 20.2.3 on Celadon, we will keep monitor if there is issue on TGL, : )


Where(x => x.Int != number) not working

I took a dive into the code.
There generated query is "AND (id:[261217 TO<PHONE_NUMBER>9999999] OR id:[-99999999999999999 TO 261219])".
Is there any reason to not make it "NOT (id:261218)"? I changed the query to that and it worked.

I'll take a look into fixing it.


Add default TTL

Description
I am constantly adding a default Cache Time To Live value to modules and projects that interact with the cache. It's quite frustrating that the framework interface and handlers have this value hard-coded, so we cannot change that in version 4, but supplying this in the config file gives an opportunity for developers to implement it themselves (and to replace the hard-coded interface in version 5).
Checklist:

[X] Securely signed commits
[X] Component(s) with PHPdocs
n/a Unit testing, with >80% coverage
[X] User guide updated
[X] Conforms to style guide

Two points...

Numerous components rely on the cache. For example, if I want my WidgetFactory to be able to store/save a Widget to cache I can call cache()->save('widget', $widget) but then developers using my WidgetFactory are locked into 60 seconds (which sometimes is wildly inappropriate). If I want to let developers set their own TTL I either need to add parameters to every method that might save to cache or supply a configuration (I typically choose the latter). But then when you make a FruitFactory now we have WidgetConfig::$cacheTTL and FruitConfig::$cacheTTL. If we don't provide a means of managing this in the framework then every component that uses cache is stuck with this choice.
Introducing the configuration value now lets people start using it so there are no surprises when it is added in version 5. This includes us - we cannot change the Cache handler interface but anywhere in the framework we want to pass in $cacheConfig->ttl (with default value 60) we will be maintaining backwards-compatibility while also offering configurability.

I'll also add, TTL is starting to push me towards the cache edge. The handling is very inconsistent (e.g. sometimes 0 means "don't cache", others it means "cache indefinitely"). We've already had some small breaking changes to Cache to fix bugs, and still haven't released our PSR adapters (https://github.com/codeigniter4/cache/pull/2). We might need to think about some larger Cache changes soon.


"panic: version queue is empty, should not happen" while trying to use "develop" branch of "github.com/gin-gonic/gin"

What version of Go (go version) and dep (git describe --tags) are you using?
$ go version
go version go1.8 windows/386

$ git describe --tags
v0.1.0-175-gc79b048

Description
I first run dep init -v. Here the files:

Gopkg.toml
Gopkg.lock
Output of dep init -v

Dep automatically choose the default branch of Gin project (master), but I need develop. So I changed Gopkg.toml from:
[[constraint]]
  name = "github.com/gin-gonic/gin"
  version = "1.1.4"

To:
[[constraint]]
  branch = "develop"
  name = "github.com/gin-gonic/gin"

Then I runned dep ensure and got the panic.

Output of dep ensure -v

Seems like the root problem is that https://github.com/gin-contrib/sse doesn't have any tags or branches with version names. dep isn't handling gopkg.in's Version Zero correctly, which should resolve to the default branch.

I'm going to work on this (and #777) as they are both related to how we sort/resolve gopkg.in versions.

@carolynvs Is this resolved by #1053?

Nice catch, yes it has! dep now picks the default branch instead of panicing:
(44)  ? attempt github.com/gin-contrib/sse with 1 pkgs; 1 versions to try
(47)      try github.com/gin-contrib/sse@master
(47)  ✓ select github.com/gin-contrib/sse@master w/1 pkgs

phew, I saw this come up in my notifications and thought we had a regression 😅

I screwed up validating this was fixed (I used github.com instead of gopkg.in in the import path). Reopening...

any eta fixing the issue?


⚠ Bofrost.at has degraded performance

In 04d607c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2816 ms

Resolved: Bofrost.at performance has improved in 85acc74.


Black screen with TFT

Hi, I always get a blackscreen with all the TFT examples I try.
The backlight works but nothing is displayed on the screen.
Test with the included TFT library and with version 2.5.0.
Test with arduino 2.1.0 and 1.8.18
arduino_gfx_demo and factory example works.
I need help please, if anyone can also send me working TFT example compiled to .bin format for me to try and see if it works.
Thanks

Since Day-One this has been a problem with people, myself included, 'simply' trying to get a demo test program of some sort uploaded.
I am using Arduino v2.1 and ESP32 board def 206, I heard some problems with the latest.
Even though the TFT_eSPI by Bodmer is no longer forked, I recommend following LilyGO's instruction and copying all the files in their 'lib' folder into your libraries folder and 'replacing' I/e. destructive overwriting. not merging these files. Resist the temptation to do an 'Arduino update' !!!
There is a file in the TFT_eSPI directory called "User_Setup_Select.h" Be sure that style 206 is uncommented and is the only uncommented setup in the file. It is halfway down the file. (Also be sure to check that one of the first selections "// #include <User_Setup.h>  // Default setup is root library folder" is also commented-out!!!
Since I had a lot of trouble getting mine going 8 months ago I made a user support repository here:
https://github.com/teastainGit/LilyGO-T-display-S3-setup-and-examples.
The HotHead example is designed to get a sampling of TFT features like push image, sprites, etc and it has a Serial.print() message for troubleshooting!
It is possible to skip or modify my setup procedure details, but for now, please follow them!
Hope this helps
-Terry

Since Day-One this has been a problem with people, myself included, 'simply' trying to get a demo test program of some sort uploaded. I am using Arduino v2.1 and ESP32 board def 206, I heard some problems with the latest. Even though the TFT_eSPI by Bodmer is no longer forked, I recommend following LilyGO's instruction and copying all the files in their 'lib' folder into your libraries folder and 'replacing' I/e. destructive overwriting. not merging these files. Resist the temptation to do an 'Arduino update' !!! There is a file in the TFT_eSPI directory called "User_Setup_Select.h" Be sure that style 206 is uncommented and is the only uncommented setup in the file. It is halfway down the file. (Also be sure to check that one of the first selections "// #include <User_Setup.h> // Default setup is root library folder" is also commented-out!!! Since I had a lot of trouble getting mine going 8 months ago I made a user support repository here: https://github.com/teastainGit/LilyGO-T-display-S3-setup-and-examples. The HotHead example is designed to get a sampling of TFT features like push image, sprites, etc and it has a Serial.print() message for troubleshooting! It is possible to skip or modify my setup procedure details, but for now, please follow them! Hope this helps -Terry

Hey, thanks for the reply.
I'm quite familiar with the TFT_eSPI library, so I have already performed the following manipulations..

Version 206: Uncommented.

User_Setup.h: Commented-out.

Tried with LilyGO library and Bodmer version 2.5.0.

Tried on a clean install of Arduino 1.8.18 and 2.1.0 (Virtual Machine)

I selected the Arduino settings as indicated on the github (ESP32S3 Dev Module and more..)
Always the same problem. No display just the backlight.
On the other hand I get an image with the other examples so my LCD works correctly.
I also found your github while looking for similar cases, and unfortunately it didn't help me.
If you have a .bin file of a sketch using TFT_eSPI that works for you, it would be nice if you could send it to me so I can make sure it works for me as well and that's a problem. from library somewhere.
Thanks for the help.

sound so me, that you did not patch the libraries.....you need to install the shipped libraries and do not update them, unless you understand which files you need to copy manually after refreshing

esp32.esp32.zip
here bin of my actual multimeter project

sound so me, that you did not patch the libraries.....you need to install the shipped libraries and do not update them, unless you understand which files you need to copy manually after refreshing

I tried with the libraries on the Lilygo github AND with the official TFT_eSPI library in version 2.5.0 (which contains the line for S3 T-Display in User_setup)
Both don't work.
However, my problem seems to be more complex.
I have 2 S3 T-Display cards.
One works fine with the TFT example
The other does not work with the same sketch.
Both work with the factory and adafruit_gfx examples.
Your example doesn't work for me (on both cards)
Thanks

So, if one board works fine, could you export that binary?
I am curious how do you burn a binary into an ESP32, sincere question!
If one board does not work it may have some remainder code snippet that is corrupted. To test for this upload the TFT sketch with “erase all memory n flash” set. It adds a long scary minute to the upload, but it can work.
Please let me know your progress, as dozens of users have said that my HotHead example was helpful.

So, if one board works fine, could you export that binary? I am curious how do you burn a binary into an ESP32, sincere question! If one board does not work it may have some remainder code snippet that is corrupted. To test for this upload the TFT sketch with “erase all memory in flash” set. It adds a long scary minute to the upload, but it can work. Also can you receive Serial.print() messages to indicate that code is executing? Please let me know your progress, as dozens of users have said that my HotHead example was helpful.

Your "HotHead" example works on one of my two cards, but not the other.
The serial displays "tick/tock".
I tried "Erase All Flash Before Sketch" it didn't change anything.
I tried to directly upload the .bin of your "HotHead" example, doesn't work.
I use "flash_download_tool_3.9.4" for ESP32 S3 to upload the .bin file, and it works with the .bin from the "factory" example.
Configuration: https://imgur.com/Xm6SHvd
Do you think a hardware problem is possible? Knowing that the board works fine with the example "factory" and "adafruit_gfx" but nothing works using TFT_eSPI. (And it's not a library problem because it works perfectly for the other board.)
Thanks

Well, this is a head scratcher !
When you upload HotHead to the bad board do you see the tick/tock?
The big difference between the "factory.ino" sketch and the "tft.ino" sketch is that factory uses lvgl exclusively and tft uses TFT_eSPI. (which you may already know)
But I don't understand how one board works and not the other!!!
So...that's all I got!
Keep us posted, maybe someone else has an idea.
-Terry

Also...would you like me to post a .bin of the tft sketch?
I just figured out how to do that.
-Terry

Well, this is a head scratcher ! When you upload HotHead to the bad board do you see the tick/tock? The big difference between the "factory.ino" sketch and the "tft.ino" sketch is that factory uses lvgl exclusively and tft uses TFT_eSPI. (which you may already know) But I don't understand how one board works and not the other!!! So...that's all I got! Keep us posted, maybe someone else has an idea. -Terry

Also...would you like me to post a .bin of the tft sketch? I just figured out how to do that. -Terry

When I realized that TFT_eSPI works on the other board I immediately try to upload the .bin on the bad board, same problem.
Yes the bad board displays tick/tock, the sketch works perfectly but without display while it works perfectly on the board.
Yes I know Lvgl, I know adafruit and I know TFT_eSPI, unfortunately it's TFT_eSPI that I want to use.
The strangest thing is that the bad board works perfectly with adafruit and lvgl, so the display is not corrupted/broken.
I contacted the support of the Lilygo site, I'm waiting for an answer...
Thanks

Thanks for following up!
Best of luck, cheers.

Please try this firmware

Please try this firmware
Hi,

Doesn't work on the faulty card. (Blackscreen, backlight on)
Works on the other card.

I noticed that the faulty card was not recognized as "ESP-32-S3" on arduino, it has no name just the port "COMX"
Thanks anyway

There is no doubt about it, it can be determined that it is a malfunction.

There is no doubt about it, it can be determined that it is a malfunction.
Open Serial Monitor, what can you see? Can you see it start up?

Yes serial monitor report what it should be reporting, even on a sketch with no display I can see the return in the Serial Monitor.
The board behaves normally except the board name which I don't see in Arduino and no display when using TFT_eSPI.
Thanks

It can only be said that it is not normal.

It is not normal.

Yes, not normal and strange.. I really don't understand why it works if I use other method than TFT_eSPI.
I need to use TFT_eSPI, otherwise I certainly would have never discovered this problem.
I contacted Lilygo support.. I'm waiting..
Anyway, thank you for trying to help me.

Hey Cary !
I d be interested to know if you found out what the pb was.
( I have the same kind of issues with the TFT_eSPI ! )
kind regards,
Jean-Paul

I have 4 T-Displays that use to work fine but all 4 screens died. Programs upload and the serial monitor works, but I now have a black screen on all 4 modules. Did I fry all 4? If I did, how?

@robcloot You may have updated the default configuration of TFT-eSPI through ide, please check if it is the same as your configuration
https://github.com/Xinyuan-LilyGO/T-Display-S3/blob/main/lib/TFT_eSPI/User_Setup_Select.h

Same problem here. My Program works fine. Sends Temperature over MQTT. Touch ist working.
Until Today the Display work correctly but now only backlight. Any answers ?

@Michaelmilz  Is it not displayed after re-updating the sketch?

@lewisxhe Yes. I am uploading the sketch several times. I try to upload older versions of the sketch. No success.
Uploading the sketch to another board works correctly.

I fixed it! Yes I did update the TFT_eSPI library and messed things up. Use the T-Display-S3-main/lib/TFT-eSPI folder in GitHub, and do not update the library.

Hi! You can use the up-to-date Bodmer TFT_eSPI (version=2.5.30) if you edit the "User_Setup_Select.h" to comment-out the line:
//#include <User_Setup.h>           // Default setup is root library folder
and un-comment:
#include <User_Setups/Setup206_LilyGo_T_Display_S3.h>     // For the LilyGo T-Display S3 based ESP32S3 with ST7789 170 x 320 TFT
which is about halfway down the huge file of setups.
This way you can safely keep current without fear.
-Terry

It works now! Use the TFT_eSPI folder in Github and do not update the library.
WO4ROB

From: Terry Stainton @.>
Sent: Wednesday, June 28, 2023 4:43:55 PM
To: Xinyuan-LilyGO/T-Display-S3 @.>
Cc: robcloot @.>; Mention @.>
Subject: Re: [Xinyuan-LilyGO/T-Display-S3] Black screen with TFT (Issue #151)
Hi! You can use the up-to-date Bodmer TFT_eSPI (version=2.5.30) if you edit the "User_Setup_Select.h" to comment-out the line:
//#include <User_Setup.h> // Default setup is root library folder
and un-comment:
#include <User_Setups/Setup206_LilyGo_T_Display_S3.h> // For the LilyGo T-Display S3 based ESP32S3 with ST7789 170 x 320 TFT
which is about halfway down the huge file of setups.
This way you can safely keep current without fear.
-Terry
—
Reply to this email directly, view it on GitHubhttps://github.com/Xinyuan-LilyGO/T-Display-S3/issues/151#issuecomment-1612244713, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANZ22SCN4ICDCJU4SQNHCQDXNS6TXANCNFSM6AAAAAAYIKB6F4.
You are receiving this because you were mentioned.Message ID: @.***>

So, did you try updating the TFT_eSPI in Arduino or from bodmer’s github, and edit the selection file?This procedure now works well, for the last couple months!Cheers !TerryOn Jun 28, 2023, at 8:47 PM, robcloot @.***> wrote:
It works now! Use the TFT_eSPI folder in Github and do not update the library.
WO4ROB

From: Terry Stainton @.***>
Sent: Wednesday, June 28, 2023 4:43:55 PM
To: Xinyuan-LilyGO/T-Display-S3 @.***>
Cc: robcloot @.>; Mention @.>
Subject: Re: [Xinyuan-LilyGO/T-Display-S3] Black screen with TFT (Issue #151)
Hi! You can use the up-to-date Bodmer TFT_eSPI (version=2.5.30) if you edit the "User_Setup_Select.h" to comment-out the line:
//#include <User_Setup.h> // Default setup is root library folder
and un-comment:
#include <User_Setups/Setup206_LilyGo_T_Display_S3.h> // For the LilyGo T-Display S3 based ESP32S3 with ST7789 170 x 320 TFT
which is about halfway down the huge file of setups.
This way you can safely keep current without fear.
-Terry
—
Reply to this email directly, view it on GitHubhttps://github.com/Xinyuan-LilyGO/T-Display-S3/issues/151#issuecomment-1612244713, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ANZ22SCN4ICDCJU4SQNHCQDXNS6TXANCNFSM6AAAAAAYIKB6F4.
You are receiving this because you were mentioned.Message ID: @.***>
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

One key thing I left off:
GFX Library for Arduino by Moon On Our Nation.
In the working stack, it was version 1.3.1.
Version 1.3.5 works with esp32 2.0.11 and lvgl 8.3.9.
Versions 1.3.6 and 1.3.7 either return a black screen or some major degradation.

Since Day-One this has been a problem with people, myself included, 'simply' trying to get a demo test program of some sort uploaded.
I am using Arduino v2.1 and ESP32 board def 206, I heard some problems with the latest.
Even though the TFT_eSPI by Bodmer is no longer forked, I recommend following LilyGO's instruction and copying all the files in their 'lib' folder into your libraries folder and 'replacing' I/e. destructive overwriting. not merging these files. Resist the temptation to do an 'Arduino update' !!!
There is a file in the TFT_eSPI directory called "User_Setup_Select.h" Be sure that style 206 is uncommented and is the only uncommented setup in the file. It is halfway down the file. (Also be sure to check that one of the first selections "// #include <User_Setup.h> // Default setup is root library folder" is also commented-out!!!
Since I had a lot of trouble getting mine going 8 months ago I made a user support repository here:
https://github.com/teastainGit/LilyGO-T-display-S3-setup-and-examples.
The HotHead example is designed to get a sampling of TFT features like push image, sprites, etc and it has a Serial.print() message for troubleshooting!
It is possible to skip or modify my setup procedure details, but for now, please follow them!
Hope this helps
-Terry

^^^^THIS HELPED^^^^ Thank you