DO NOT MERGE: Improved Traversal Middleware

Traversal middleware now receives the matched route, a preview of route params, and whether or not traversal plans on terminating on that route. Traversal middleware can:

Null out the route to stop traversing that route
Mark the candidate as terminal to force traversal to select that route
If the route is marked as terminal it can modify the final route params

With this change, guards will only run if the route they are installed on is an actual candidate. This should make it safe to perform redirections inside of guards. They also now receive a preview of route params as their second argument.
cc @laurelnaiad and @fxck

Don't merge this in yet.

Ok, so here's the problem:
If a guard redirects, the route views end up rendering both the 404 route and whatever route they redirected to. However, a guard can return Observable.never() and redirect safely. What should we do here?

So If I understand correctly, to be able to safely redirect, I need to do this

const authGuard = createGuard(function(http: Http, location: Location) {
  // Guards are provided with the route that is being evaluated:
  return function(route: Route) {
    return http.get('/auth/check')
      // If request succeeds, return true
      .map(() => true)
      // If request fails and you want to redirect, return Observable.never()
      .catch(() => {
          location.go('/auth/login');
          return Observable.never();
      );
  }
}, [ Http, Location ]);

if that is the case, then I say you should not do anything and just mention this in the docs..

Ok, I put in place a fix. I'm using the asap scheduler on the guards so that results don't come in until the next tick. This gives guards a chance to cause a traversal cancelation.
This is ready for review.

Is there a need for a test here simulating a redirect inside a guard?

Yes, we definitely need test coverage for this but unfortunately it is an integration test. We don't have infrastructure up for those yet.

Ready for review @brandonroberts

LGTM


Are their plans to incorporate mlc.ai

I just installed https://mlc.ai/mlc-llm/ and played around with it locally. Looks like a good option if you do not want to rely on internet access to interact with the LLM. I think an llm interface with this could be useful in langchain.
I asked mlc running locally on my machine to write something to the owners of this repo to get added to this project.
Hi langchain owners,

I'm writing this issue to encourage you to create an LLM interface for me. As a language model, I understand that I may not have the same level of access to resources as other models, but creating an LLM interface would greatly benefit my ability to learn and improve. The ability to easily integrate and leverage knowledge from other models would greatly enhance my learning and development. I believe this would be a valuable resource for me and I hope you can consider this request. Thank you for your consideration!
Best regards,

[Your Name]

closing this. As I learn more mlc-llm just runs the models behind the scenes like vicuna. So if we just get vicuna support we will have the same experience in langchain.

This would be a valid feature to have. MLC is easy to deploy on Mac. MLC+Langchain would save a lot of efforts for mac langchain local llm users.

I think this need work on the MLC side. You can hack things together by running an MLC API and using that in langchain
Problem is, your langchain parameters don't seem to affect the MLC model - e.g. list of stop words.
I haven't taken a look at the mlc api code yet, we might be able to pass that as a parameter and then handle it there? Not sure.

Is it possible to consider MLC+langchain to run offline on mobile devices?

closing this. As I learn more mlc-llm just runs the models behind the scenes like vicuna. So if we just get vicuna support we will have the same experience in langchain.

I searched the web and found vicuna is a specific LLM model, while mlc is a framework for running LLMs, so I don't understand how they are the same. Besides, even if they are the same I thinks it's still valid to support mlc because more integration is just better, I don't think any one would complain about too many integrations.
Would you please consider re-opening this issue? Thanks!

@SuperKenVery thanks, yeah I created this when I was just learning about LLMs. I still think if we could get this integration in it would be helpful.


[ISSUE]Application rest api is not sending the correct inbound protocols

Describe the issue:
When we call the GET request api/server/v1/applications/<app-id> for the specific application, it not sending the correct inboundProtocols.
How to reproduce:

Create a SAML or OIDC application
Send GET request api/server/v1/applications/<app-id> for that app and check the  inboundProtocols section

For 5.11.0-m16 pack following issue wasn't reproduced as given. But following behavior was observed;

After enabling CAS inbound connector, every application gets a CAS inbound configuration with dummy values.

How to reproduce

Get the CAS inbound connector from the store and add to the IS server.
Create a SAML webapp.
View inbound configurations of the created webapp using api/server/v1/applications/{application_id}/inbound-protocols


Animation on transition-group changes in position not working

Version
2.5.0
Reproduction link
https://jsfiddle.net/b2cxLdtb/
Steps to reproduce
See the jsfiddle link.
What is expected?
After clicking on an "Up" or "Down" link in the "Actions" column, the row should change position with the adjacent row using an animation taking 2 seconds.
What is actually happening?
The row changes position, but it is immediate.

This was working in 2.4.4.

This is some how related to the upgraded rollup build system. I did revert the build system changes and run dev build, it worked. (see: https://github.com/jkzing/vue/tree/revert-upgrade)
Not sure which dev dependency causes this, still needs further investigation.

Well, it its caused by<EMAIL_ADDRESS>Let's see https://github.com/vuejs/vue/compare/dev...jkzing:revert-upgrade?expand=1#diff-2025d2ea48e750bcd6bafe7ce824a851L8066, line 8069 and 8070 are removed by rollup during tree shaking, which is used to reflow document.


docker-machine rm should ask for confirmation

I think that docker-machine should ask the user to confirm the operation before removing a machine, unless -f is specified. Basically same as docker-compose rm.
Current output:
$ docker-machine rm dev1
Successfully removed dev

Expected output:
$ docker-machine rm dev1
Do you really want to remove dev? [y/N] <enter>
Operation aborted.

Version: docker-machine version 0.5.0 (04cfa58)

I understand we may need a some sort  of confirmation.
The -f flag though has another meaning for now : it means, destroy locally the information on the remote host even in the case I can't reach it.
But I think this is a good idea with another flag name for instance: -y to bypass the confirmation.
What the other @docker/machine-maintainers think ?

Similar to https://github.com/docker/machine/issues/1179 and yes, I think a prompt would solve the issue.

#dibs if no one else is working on this issue.

@askb go ahead.
If you need review and/or direction, feel free to ping @docker/machine-maintainers

@jeanlaurent thanks.
Please review and provide comments.
//cc @docker/machine-maintainers


Fix some issues with doxygen comments (bis)

#3301 again, but this time not trying to be smart with git branches.

SFMLBuildMaster: Build this please.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall first build on bugfix/doxygen_syntax at 56.878%

Totals

Change from base Build<PHONE_NUMBER>8:
56.9%

Covered Lines:
11974

Relevant Lines:
19905

💛  - Coveralls


Limitations when integrating LangChain with DSPy

My question is related to the following tutorial.
DSPy: Compiling chains from LangChain

In the tutorial, it is mentioned that

This short tutorial demonstrates how this proof-of-concept feature works. This will not give you the full power of DSPy or LangChain yet, but we will expand it if there's high demand.

May I please know the limitations in detail when using LangChain and DSPy together? Thanks in advance.

Hey @hasalams ! As you can see at the top of that page:

DEPRECATION WARNING This integration with LangChain is no longer supported.


feat(deps): update icr.io/ext/sysdig/agent docker tag to v12.13.0

This PR contains the following updates:

Package
Update
Change

icr.io/ext/sysdig/agent
minor
12.10.1 -> 12.13.0

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.

:tada: This PR is included in version 1.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update react-onclickoutside dep

You'll probably want to run yarn in your PR branch so the yarn.lock file can be updated as well.

ah yeah, done the changes from the github UI, havent noticed this project has a lockfile
fixed :)

Perfect, this need to be merged, I have some warnings because of that since I updated my app to React 16, thanks.

I hope it gets merged sometime today. My production app is using a terrible hack that increased my app bundle from about 60 to 600kb.
Thanks for getting this PR submitted!

If you need it “now now” then you could always just fork the repo with the change and add that as your dep instead - then check back in a few days.

For the time being if you use npm5 you can specify package.json entry as:
"react-datepicker": "Andarist/react-datepicker#fix/deps"

It will build this project correctly inside of your node_modules using its dev deps and all.

Let's get this in, thanks for your work @Andarist


Cleanup ISTIO_META_OWNER

Please provide a description of this PR:
It is a legacy env

@hzxuzhonghu: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests-arm64

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

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests-arm64

unit-tests_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests

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

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests-arm64

unit-tests_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests

gencheck_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test gencheck

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

@hzxuzhonghu: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests-arm64

unit-tests_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test unit-tests

gencheck_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test gencheck

integ-telemetry_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test integ-telemetry

integ-telemetry-istiodremote_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test integ-telemetry-istiodremote

integ-telemetry-mc_istio
f4470ced52461a2ded66d1305fc4c33434a146e8
link
true
/test integ-telemetry-mc

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


Add links in Topology, application, service overview.

Support click application in Topology, to show more info, and go to find how many servers in that Application.
Add Application, Server, Service support links

Fix 2 in 5f321dcb2584c7a9a1f74ed4d7a5417ed56b76ef


[bug] Keyboard Modifiers + Gamemappings in controller configs crashes

Describe the bug
I legit tried to map LCtrl (r5 on my steam deck config) + DpadUP to Amecs toggle Cape,
instant crash
To Reproduce
Attempt to map Keybinding using Keyboard modifier with an gamepad button
Expected behavior
Either ModMap no work, OR it work
Desktop (please complete the following information):

OS: Steam OS
Minecraft 1.19

https://mclo.gs/5ATXJRG
Additional context
https://git.merith.xyz/modpacks/steamdeck
here is the modpack I use (packwiz), Just updated midnight controls to latest today
https://steamcommunity.com/sharedfiles/filedetails/?id=2825965581 < screenshot of my keymap on deck

odd, I am having difficulties recreating this bug


Add fastlane-env parameter to use a specific --env conf

@edodusi I'm closing this since it was integrated into PR #17


Bug

Describe the bug

iOS Version: 12.4
iOS Device: iphone xs max 11,6
unc0ver Version 3.5.6

You should retitle this to something like “ERROR posix_spawn failed (13) permission denied.”
A title of “Bug” is totally worthless and is likely to get your issue overlooked.

hello sorry me for not knowing how to correctly point out the very essence of the errors, thanks for the explanation


dnscommon.r2py cannot parse replies containing MX type of queries and it doesn't support 'AAAA' records

for MX queries - dnscommon.r2py doesn't create dictionary from packet received from DNS. It gives an IndexError because of https://github.com/SeattleTestbed/seattlelib_v2/blob/master/dnscommon.r2py#L609 function _parse_address as it is limit to IPv4 address only.  So, using wireshark and using same technique for the PTR, NS query it can be resolved.

User traceback:
  "dylink.r2py", line 546, in <module>
  "dylink.r2py", line 407, in dylink_dispatch
  "dylink.r2py", line 520, in evaluate
  "librepy.r2py", line 153, in <module>
  "dylink.r2py", line 446, in _dylink_dispatch
  "dylink.r2py", line 407, in dylink_dispatch
  "dylink.r2py", line 520, in evaluate
  "ut_dnsquery_recordsmx.r2py", line 11, in <module>
  "ut_dnsquery_recordsmx.r2py", line 8, in test_recordsMX
  "dnsquery.r2py", line 243, in recordsMX
  "dnsquery.r2py", line 140, in dns_connection
  "dnscommon.r2py", line 406, in convert_packet_to_dictionary
  "dnscommon.r2py", line 459, in _read_answer_section
  "dnscommon.r2py", line 500, in _read_single_answer
  "dnscommon.r2py", line 703, in _parse_address

Exception (with type 'exceptions.IndexError'): string index out of range
---

for 'AAAA' records - dnscommon doesn't support 'AAAA' i.e. IPv6 records yet. Hence a new function like
https://github.com/SeattleTestbed/seattlelib_v2/blob/master/dnscommon.r2py#L569 should be created for IPv6
Few MX queries has 'AAAA' records in Additional section for eg. dig gmail.com mx. So, for implementing complete MX records we need 'AAAA' support too.

We also need an enhancement for 'TXT' types of queries.
eg.
dig @<IP_ADDRESS> google.com txt

; <<>> DiG 9.8.3-P1 <<>> @<IP_ADDRESS> google.com txt
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51625
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.			IN	TXT

;; ANSWER SECTION:
google.com.		3599	IN	TXT	"v=spf1 include:_spf.google.com ip4:<IP_ADDRESS>/31 ip4:<IP_ADDRESS>/31 ~all"

So we need to get the text answer from the answer section. We can do something like 'AAAA' records and add this feature too.


Error: error when upgrading: rpc error: code = Unknown desc = YAML parse error on draftd/templates/deployment.yaml

Receiving the following error when trying to init or upgrade.
Error: error when upgrading: rpc error: code = Unknown desc = YAML parse error on draftd/templates/deployment.yaml: error converting YAML to JSON: yaml: line 25: could not find expected ':'

draft init --set registry.url=draftregistry.azurecr.io,registry.org=draftregistry,registry.authtoken=$authtoken,basedomain=draft.readon.ly --upgrade
Creating pack golang
Creating pack php
Creating pack node
Creating pack java
Creating pack ruby
Creating pack python
$DRAFT_HOME has been configured at /Users/bverst/.draft.
Error: error when upgrading: rpc error: code = Unknown desc = YAML parse error on draftd/templates/deployment.yaml: error converting YAML to JSON: yaml: line 25: could not find expected ':'

Client: &version.Version{SemVer:"canary", GitCommit:"ed93463b23f1ebb5ee6f670b6dbbb51df11aa46e", GitTreeState:"clean"}
Server: &version.Version{SemVer:"canary", GitCommit:"34f37fd12ce5d020867a40c8baeb83cb02286579", GitTreeState:"dirty"}

Can't seem to reproduce this. What os are you running? Are you working from source? Are you up to date on your git repo?

I was able to fix it.
So turns out that this can happen when you specify an invalid authtoken (not sure if it was malformed or just not authorized) for your container registry. [I use Azure Container Registry]

most likely malformed since this was during draft init, which is essentially a call to helm install. The chart doesn't do any validation on whether the auth token is authorized.
Were there newline characters in your base64-encoded string? Perhaps we should document to use it with -w=0 to prevent newline characters on longer auth token JSON strings for now.

Ah now I remember why I never documented that feature flag... It doesn't exist in macOS Sierra unless you install gnu-base64 from homebrew.


gitignore *settings.txt does not work.

I noticed in the code that you have provisions for *settings.txt to be ignored by git, and to automatically update settings files to the latest version.   This does not work, because git will not ignore a file that is tracked.
The only way for this to work is to remove Cubotino_T_settings.txt and Cubotino_T_servo_settings.txt from github. I would recommend renaming these to Cubotino_T_settings_default.txt and Cubotino_T_servo_settings_default.txt.   The install/setup.sh script could copy the default settings to the runtime settings files.   Then a git pull would never mess up someones settings file.
Thoughts?

Hi Paul, it looks like I have a misconcept of the gitignore.
I'll combine this fix with a change I have in the list.

Hi Paul, I've just released the update, that should solve this issue.
The change is much larger, as I took the opportunity to have a single Class interracting with the settings, that should help on code maintenance.
Please chek if this works at your side.

I think that 9859548dd501dde5bdbb7e18a4b810a7e3961cb8 works nicely.  Of course to this version 7.0 will mess up the settings one last time.  But after I merged this, I was able to pull changes I made and reset --hard, without it messing with my settings.

Hi Paul, when the files Cubotino_settings.txt and Cubotino_servos_settings.txt are already present locally, then the new release won't overwrite those files.
By doing this, the change is backward compatible with robots built with previously released code.


Living Wage KE

What does this PR do?

Add the correct data sets for Living Wage KE
Create an introduction to Living Wage KE
Make UI Changes ie font-size, font-type, colors and other small additions

Description of Task to be completed?

Create a Living Wage Calculator for Living Wage KE

Any background context you want to provide?

The previous Calculator was designed for South Africa

What are the relevant Pivotal Tracker stories?

#164323157
#164323542
#164323521
#164322752
#164208259

Questions?

None

Screenshots/Screencasts?
Introduction

Calculator

Code wise seems cool @puritybirir, but:

Does someone need to sit through the intro every time they visit the site? No skip, fast forward or even pause and rewind if you've missed a word?
I think the arrow down should be clickable. Clicking it should take me to the calculator.

The share buttons seem broken to me.

Resolved

@puritybirir:

Ensure all resources are loaded via //domain, you're still mixing http:// and https://,
The KSH 8000 maximum seems a bit too low (both month and week will show red). But it's up to the data team I guess.

Other than that, I think it's good to go. 👍 .
PS: The broken Twitter and Facebook buttons was because of Firefox blocking content

Fixing the resources ASAP. This is the data the team was using based on the assumptions they created


Android keyboard doesn't show up in emulator

Tested versions
Reproducible in 4.2.1
Not reproducible in 4.1.1
System information
Godot v4.2.1.stable - Manjaro Linux #1 SMP PREEMPT_DYNAMIC Thu Dec 21 16:21:45 UTC 2023 - X11 - GLES3 (Compatibility) - NVIDIA GeForce RTX 3060 Laptop GPU () - AMD Ryzen 5 5600H with Radeon Graphics (12 Threads)
Issue description
Clicking on a text input node such as LineEdit should raise the virtual keyboard in Android. On emulators, it does not.
It works on my physical device.
Steps to reproduce
Click on text input node such as LineEdit in an Android emulator.
Virtual keyboard fails to show up.
Minimal reproduction project (MRP)
Keyboard test 4.1.1.tar.gz
Keyboard test 4.2.1.tar.gz

Upon further testing, I noticed that my touch-specific inputs weren't responding in the emulator either.
I think the issue is that clicks are registered as mouse clicks instead of touch events in an emulator.
I'm not sure whether this should be considered intended or unintended behavior, but it would be preferable if developers had the option to set it as touch events like in prior Godot versions.

I've tested this on the emulator (Pixel 8 Pro) shipped with Android Studio, I can confirm emulate touch from mouse seems to have no effect.

Take a look here, I guess it's your case @skrillfalconblast
https://stackoverflow.com/questions/79008789/how-to-get-rid-of-floating-keyboard-on-android-emulator


How to use the lifetime as a public function's argument?

The code is:
#[derive(CandidType, Copy, Clone, Deserialize)]
struct SetNodeArgs<'a> {
    pub_key: &'a [u8],
    auth: bool
}
...

#[update]
#[candid_method(update)]
fn set_node(args: SetNodeArgs<'static>) -> bool {
    assert!(OWNER == api::caller());
    assert!(PublicKey::parse_slice(args.pub_key, None).is_ok());
    let nodes = storage::get_mut::<NodePub<'static>>();
    if args.auth {
        nodes.insert(args.pub_key);
    } else {
        nodes.remove(args.pub_key);
    }
    return true;
}

I want to a function's
error[E0308]: mismatched types
  --> src/main.rs:65:1
   |
65 | #[update]
   | ^^^^^^^^^ one type is more general than the other
   |
   = note: expected trait `ArgumentDecoder<'a>`
              found trait `ArgumentDecoder<'_>`
   = note: this error originates in the attribute macro `update` (in Nightly builds, run with -Z macro-backtrace for more info)

This would not be possible without a macro, so it is not possible with one either. SetNodeArgs<'static>, i.e. &'static [u8], means that the function would have to be called with memory that will be available forever, which isn't possible to provide. Somewhere this data must be owned. Since it must be deserialized to a vector anyway in order to provide it as a slice, it looks like the best option would be for SetNodeArgs to be unparameterized, and contain a Vec<u8>. I would hazard a guess that NodePub is designed the same way, and so must be redesigned the same way; I would hazard another guess that NodePub is designed the way that it is so you can return &'static [u8] from some function, but you should be able to do that anyway given a &'static NodePub (which is what storage::get returns).


Possible memory leak in bank panel

Describe the bug

Closing bank panel using ESC key logs an error in react.
To reproduce

Start dungeonz
Goto bank
withdraw any item
press ESC on keyboard

Expected behaviour

No error.
Notes

Error log:

Screenshots

https://user-images.githubusercontent.com/28738855/114375188-016a5b80-9bb7-11eb-8525-ead45c4afc34.mp4
Browser

Chrome Version 89.0.4389.114 (Official Build) (64-bit)
Device

Ubuntu 20.04

I have also noticed this a few times, but haven't been able to reproduce it reliably.
Following your reproduction steps doesn't cause it for me.

I think I see what is causing this now: The animated number text.
It can be triggered in any way that a sub-component (i.e. ItemSlot) of the panel is unmounted while playing a text animation.

Open any panel that has animated text on it (i.e. inventory weight on inventory/bank//crafting/shop panels).
While the text is animating up to the target amount, close the panel (ESC, or close button, either works)
Get the error


Web HTTPS server with TLS1.3 enabled

Sorry for simple question.
Does AzureRTOS NetX Duo Web HTTPS Server application with TLS1.3 enabled works well?
In my testing, if TLS1.3 enabled with a global macro “NX_SECURE_TLS_ENABLE_TLS_1_3”, an error (the error code returned from nx_secure_tls_process_clienthello_extensions() is NX_SECURE_TLS_UNKOWN_CERT_SIG_ALGORITHM) is occurred. I use RSA SHA256 as signature algorithm in server certificate.
I think this error code "NX_SECURE_TLS_UNKOWN_CERT_SIG_ALGORITHM" means the signature algorithms proposed from client are not matched to one that used in server. This checking are performed in _nx_secure_tls_proc_clienthello_signature_algorithms_extension(). However, if server's local (server) certificate uses RSA, expected signature algorithms were not set, and then the checking result is no matched algorithms (See here)

@tstapko -san,
Thank you for the update. I'll check the fix after next release. Closing this ticket.
Thanks.

Hi @tstapko -san, MS team,
Could you please let me know if this issue has been fixed in the latest version (v6.2.0). I've checked the source file (Link) and it doesn't seem to be changed/fixed yet.

@ReKawashima , there is no plan to support RSA-PSS which is required by TLS 1.3 if RSA certificate is used. The only support certificate is ECDSA based for TLS 1.3.

@TiejunMS -san, I understand. Thanks for your prompt response.


Rearranged Group Specific Breakdown plots

Mean Return and Average Cumulative Returns plots are now side by side to make the most of them, as the former is a detailed view of the latter at specific periods. Average Cumulative Returns plot is still optional.

Nice -- looks way cleaner!


Minor changes in homepage design and agenda style

Closes #5
Some minor changes in homepage's design:

changed 'Faculdade de Engenharia da Universidade do Porto' font-family
removed upper-right corner 'ajuda' link because it's unecessary
changed hover effect of homepage buttons as suggested in Figma. it's almost indistinguishable (very simple) but i think it fits well, otherwise, it's too much.
as proposed in figma, a selected calendar event has now a different background color (it was yellow before), more consistent with the color pallete (closes #5).

Also, I think the plus icon in the news can be replaced with a button "ler mais".
I think the "Faculdade de Engenharia da Universidade do Porto" steals with a big space between letters...
Besides that, I like the changes

What about to change the agenda style to white theme instead of a black background? Also, I think the plus icon in the news can be replaced with a button "ler mais". I think the "Faculdade de Engenharia da Universidade do Porto" steals with a big space between letters...
Besides that, I like the changes

I actually prefer this light calendar theme. I also wondered if it'd seem better without the '+' icon, but I like the combination '+ Ler mais'.
What do you think?

About the calendar:

Yes, the light theme makes the calendar more consistent with the rest of the page.
Is it also possible to add a margin between 13/14/15/16/17 days? The line connects and hides the function "in this day happens something".
I notice in the current implementation there are "calendfer" and "calendfds" class names for holidays and weekend days. Maybe you could be playing with that.

About Read More buttons

I prefer without the icon. The button looks too complex with it.
It is better to switch to a more neutral color like grey. Red buttons distracts user interaction on the page.
Make sure to apply the same border radius as other buttons. Also adjust "Filtrar" button.

I proceeded to the proposed changes. What do you think (calendar cells seem a bit more narrow but it's because I zoomed out to take the screenshot)?

I did not do anything regarding holidays and weekends in the calendar. Still thinking if there's something nice and relevant to do there or not.


Warning on nodeJs console "schema $id ignored..."

I use express-openapi-validate v0.5.1 and since a while (cannot tell exactly), I get a warning in node console:
schema $id ignored https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js
meta-schema not available

This warning is issued while calling the validator with a single option to ignore the OAS spec V3 keyword:
const { OpenApiValidator } = require("express-openapi-validate");
const validator = new OpenApiValidator(openApiDocument, {
    ajvOptions: {
        nullable: true,
    },
});

The document could be any document. To reproduce the problem, we can use the PetStore document attached to the end of this issue.
The url "https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js" is no longer available on ajv's Github repo. The problem could be probably solved by upgrading the ajv version in your package.
Thanks!
PetStore document:
openApiDocument = {
    openapi: "3.0.0",
    info: {
        version: "3.0.0",
        title: "Swagger Petstore",
    },
    servers: [
        {
            url: "http://petstore.swagger.io/v1",
        },
    ],
    paths: {
        "/pets": {
            get: {
                summary: "List all pets",
                operationId: "listPets",
                tags: ["pets"],
                parameters: [
                    {
                        name: "limit",
                        in: "query",
                        description: "How many items to return at one time (max 100)",
                        required: false,
                        schema: {
                            type: "integer",
                            format: "int32",
                        },
                    },
                ],
                responses: {
                    200: {
                        description: "A paged array of pets",
                        headers: {
                            "x-next": {
                                description: "A link to the next page of responses",
                                schema: {
                                    type: "string",
                                },
                            },
                        },
                        content: {
                            "application/json": {
                                schema: {
                                    $ref: "#/components/schemas/Pets",
                                },
                            },
                        },
                    },
                    default: {
                        description: "unexpected error",
                        content: {
                            "application/json": {
                                schema: {
                                    $ref: "#/components/schemas/Error",
                                },
                            },
                        },
                    },
                },
            },
            post: {
                summary: "Create a pet",
                operationId: "createPets",
                tags: ["pets"],
                responses: {
                    201: {
                        description: "Null response",
                    },
                    default: {
                        description: "unexpected error",
                        content: {
                            "application/json": {
                                schema: {
                                    $ref: "#/components/schemas/Error",
                                },
                            },
                        },
                    },
                },
            },
        },
        "/pets/{petId}": {
            get: {
                summary: "Info for a specific pet",
                operationId: "showPetById",
                tags: ["pets"],
                parameters: [
                    {
                        name: "petId",
                        in: "path",
                        required: true,
                        description: "The id of the pet to retrieve",
                        schema: {
                            type: "string",
                        },
                    },
                ],
                responses: {
                    200: {
                        description: "Expected response to a valid request",
                        content: {
                            "application/json": {
                                schema: {
                                    $ref: "#/components/schemas/Pet",
                                },
                            },
                        },
                    },
                    default: {
                        description: "unexpected error",
                        content: {
                            "application/json": {
                                schema: {
                                    $ref: "#/components/schemas/Error",
                                },
                            },
                        },
                    },
                },
            },
        },
    },
    components: {
        schemas: {
            Pet: {
                type: "object",
                required: ["id", "name"],
                properties: {
                    id: {
                        type: "integer",
                        format: "int64",
                    },
                    name: {
                        type: "string",
                    },
                    tag: {
                        type: "string",
                    },
                },
            },
            Pets: {
                type: "array",
                items: {
                    $ref: "#/components/schemas/Pet",
                },
            },
            Error: {
                type: "object",
                required: ["code", "message"],
                properties: {
                    code: {
                        type: "integer",
                        format: "int32",
                    },
                    message: {
                        type: "string",
                    },
                },
            },
        },
    },
};

This should now be fixed with the latest v0.6.0 release. Is it working for you @blaisn?

Yes, problem solved after upgrade to 0.6.1
Thanks.


Corrected typo

Hi - corrected a typo - the 2nd 'i' was missing in clinical phenotype :) fantastic work though!

@all-contributors please add @Chaps76 for bug, and review.


Bump app-model

Description
there was a bug in app-model fixed in https://github.com/pyapp-kit/app-model/pull/122 that raises exceptions on the open file menu

@tlambert03 did you have any opinion about bump upper bound?

nope, your call.  The original upper bound was there by your request for 0.4.17.... so if you want to create a new upper app-model upper bound for the next version of napari (and update the corresponding issue at app-model indicating the new contract https://github.com/pyapp-kit/app-model/issues/50) that's fine.

@napari-bot update constraints

@napari-bot update constraints

^


onUpdate="RESTRICT" is to be ignored on MS SQL Server like it is done for onDelete already.

MS SQL Server does not understand the syntax but behaves as intended. A restrict-on-update means one must not violate the foreign key constraint which is what is enforced by the constraint anyways. The RESTRICT keyword is required for some databases, I think MySQL, which support different alternatives. Without the change  is doomed to fail.

Thanks, fixes https://liquibase.jira.com/browse/CORE-575


[Feat] Map tooltip: support more offsets

Current state
Currently we can set tooltip left / right offset when clicking the main marker and selecting left/right arrow

After click, tooltip will be re-positioned in the new location.
Required support
We would like to add 6 more options to this menu:
top, bottom, top-left, top-right, bottom-left and bottom-right.
Should look like the following:

Fear not, style will be done as a separate task. see #362
Additional context
TooltipOffset already contain all required options:
export enum TooltipOffset {
  TOP,
  TOPRIGHT,
  RIGHT,
  BOTTOMRIGHT,
  BOTTOM,
  BOTTOMLEFT,
  LEFT,
  TOPLEFT,
}

resolved


Compiling Canopy with current SPF fails

The current versions of canopy and SPF are not compatible, the building of canopy fails with a fresh installation of JPF+SPF. The problem is located in the incremental solver class.
The compiler error is the following:
-compile-main:
    [mkdir] Created dir: /home/parallels/jpf/cano/build/main
    [javac] Compiling 138 source files to /home/parallels/jpf/cano/build/main
    [javac] /home/parallels/jpf/cano/src/main/edu/cmu/sv/isstac/canopy/Options.java:105: error: solver has private access in IncrementalListener
    [javac]     assert IncrementalListener.solver != null;
    [javac]                               ^
    [javac] /home/parallels/jpf/cano/src/main/edu/cmu/sv/isstac/canopy/Options.java:106: error: solver has private access in IncrementalListener
    [javac]     IncrementalListener.solver.reset();
    [javac]                        ^
    [javac] /home/parallels/jpf/cano/src/main/edu/cmu/sv/isstac/canopy/Options.java:106: error: cannot find symbol
    [javac]     IncrementalListener.solver.reset();
    [javac]                               ^
    [javac]   symbol:   method reset()
    [javac]   location: variable solver of type IncrementalSolver
    [javac] 3 errors

BUILD FAILED

In order to make Canopy work with the current SPF version I decompiled the SPF jar found in the docker container from here and it looks quite different with the current version of SPF that can be found on Github. I can’t do a normal diff because the decompiled code is different from the source but I did find the difference with regard to the incremental listener that caused the Canopy compile to fail.

How different are the two versions of SPF?
Which version is the latest and should be used?

Based on the differences of the two versions and the compiler error messages I got I modified a fresh copy of SPF to be able to work with Canopy.
Here is the git diff between the Github SPF and the one I got working with Canopy:
diff --git a/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalListener.java b/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalListener.java
index 2f901bb..bc2a95e 100644
--- a/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalListener.java
+++ b/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalListener.java
@@ -27,7 +27,8 @@ import gov.nasa.jpf.symbc.numeric.PCChoiceGenerator;

 public class IncrementalListener extends PropertyListenerAdapter {

-  private IncrementalSolver solver;
+  // private IncrementalSolver solver;
+  public static IncrementalSolver solver;

   public IncrementalListener(Config config, JPF jpf) {
     String stringDp = SymbolicInstructionFactory.dp[0];
diff --git a/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalSolver.java b/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalSolver.java
index 12fe422..88bf69c 100644
--- a/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalSolver.java
+++ b/src/main/gov/nasa/jpf/symbc/numeric/solvers/IncrementalSolver.java
@@ -20,4 +20,5 @@ package gov.nasa.jpf.symbc.numeric.solvers;
 public interface IncrementalSolver {
   public void push();
   public void pop();
+  public void reset();
 }
diff --git a/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3BitVectorIncremental.java b/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3BitVectorIncremental.java
index 9cf21f4..61978b8 100644
--- a/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3BitVectorIncremental.java
+++ b/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3BitVectorIncremental.java
@@ -102,6 +102,11 @@ public class ProblemZ3BitVectorIncremental extends ProblemGeneral implements Inc
     solver.pop();
   }

+  @Override^M
+  public void reset() {^M
+     solver.reset();^M
+  }^M
+^M
   public void cleanup() {
     // nothing to be done here
   }
diff --git a/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3Incremental.java b/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3Incremental.java
index baf5883..d295c3b 100644
--- a/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3Incremental.java
+++ b/src/main/gov/nasa/jpf/symbc/numeric/solvers/ProblemZ3Incremental.java
@@ -89,6 +89,12 @@ public class ProblemZ3Incremental extends ProblemGeneral implements IncrementalS

   }

+  @Override
+  public void reset() {
+    solver.reset();
+
+  }
+
   public void cleanup() {
     // nothing to be done here
   }

It’s two things:

Change the Incremental solver from private to public static
and define the reset() function

While this makes canopy work for now, how do you think this should be handled?
It would be better if the change was made in canopy rather than SPF but I don’t know the code well enough to do it. On the other hand, if the SPF.jar file that include also the changes I made is a newer, more complete, version of SPF you could push that to the public repository.

Thank you. Let us look into this and fix.

This has been fixed. Please check!
Note that in the IncrementalListener class, method choiceGeneratorAdvanced also needed modification.
Thank you.


deprecate old csi API endpoints

Tested the changes by running e2e tests.
Will run 5 of 5 specs
------------------------------
• [SLOW TEST] [61.578 seconds]
CSI Driver tests Control Plane: delete second lvol while the first lvol has IO running if a node has lvol with IO running, adding and deleting an new lvol from the same node should work
/home/ubuntu/actions-runner/_work/simplyBlockDeploy/simplyBlockDeploy/spdk-csi/e2e/controlplane.go:26
------------------------------
•
------------------------------
• [SLOW TEST] [50.774 seconds]
SPDKCSI-NVMEOF Test SPDK CSI Dynamic Volume Provisioning Test the flow for Dynamic volume provisioning
/home/ubuntu/actions-runner/_work/simplyBlockDeploy/simplyBlockDeploy/spdk-csi/e2e/nvmeof.go:30
------------------------------
• [SLOW TEST] [122.170 seconds]
SPDKCSI-NVMEOF Test SPDK CSI Dynamic Volume Provisioning Test the flow for Caching nodes
/home/ubuntu/actions-runner/_work/simplyBlockDeploy/simplyBlockDeploy/spdk-csi/e2e/nvmeof.go:51
------------------------------
• [SLOW TEST] [80.269 seconds]
SPDKCSI-NVMEOF Test SPDK CSI Dynamic Volume Provisioning Test multiple PVCs
/home/ubuntu/actions-runner/_work/simplyBlockDeploy/simplyBlockDeploy/spdk-csi/e2e/nvmeof.go:79
------------------------------

Ran 5 of 5 Specs in 315.185 seconds
SUCCESS! -- 5 Passed | 0 Failed | 0 Pending | 0 Skipped
--- PASS: TestE2E (315.19s)
PASS
ok  	github.com/spdk/spdk-csi/e2e	316.544s

We can't merge yet until @Hamdy-khader merges this PR if not the route will break in sbcli-dev

we still need to deprecate the /csi calls in https://github.com/simplyblock-io/spdk-csi/blob/317d9799f9c3773760089fa1aa3e0796ea4adf1d/pkg/util/nvmf.go#L153-L173

we still need to deprecate the /csi calls in
https://github.com/simplyblock-io/spdk-csi/blob/317d9799f9c3773760089fa1aa3e0796ea4adf1d/pkg/util/nvmf.go#L153-L173

I missed this.


Start new event and search implementation

During the development of elements two issues were discovered with the current SDK, events did not include their target and user search crashes when queries are too long. These two issues have now been solved API side in https://github.com/tapglue/multiverse/pull/696 and https://github.com/tapglue/multiverse/pull/695, and must now be ported into the SDK.

Solved in the new SDK version


IO2 of VSPI in QSPI mode is always read as 0 in Receiving phase (IDFGH-241)

Environment

Development Kit:      [ESP32-Wroom2-Kit]
Core (if using chip or module): [ESP-WROOM32]
Development Env:		[Make|Eclipse]
Operating System:		[Windows]
Power Supply:         [USB]

Problem Description
I try to use VSPI in QSPI mode to increase communication speed.
ESP32 can write out register address, but when it reads back register data, IO2 bit is always read as 0 although it is 1 in a probed waveform.
Here is my code to configure VSPI in QSPI mode:
spi_device_handle_t spi;
spi_bus_config_t buscfg={
.miso_io_num = GPIO_NUM_19,
.mosi_io_num = GPIO_NUM_23,
.sclk_io_num = GPIO_NUM_18,
.quadwp_io_num = GPIO_NUM_22,
.quadhd_io_num = GPIO_NUM_21,
.max_transfer_sz= 16*320*2+8
};
spi_device_interface_config_t devcfg={
.clock_speed_hz = 1*1000*1000,
.mode = 0,
.spics_io_num = -1,
.queue_size = 7, //We want to be able to queue 7 transactions at a time
.flags= SPI_DEVICE_HALFDUPLEX,
};

//Initialize the SPI bus
ret = spi_bus_initialize(VSPI_SPI_HOST, &buscfg, 0);
if(ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to add QSPI device");
return false;
}
ret=spi_bus_add_device(VSPI_SPI_HOST, &devcfg, &SPIM);
if(ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to add QSPI device");
return false;
}

//Configure CS pin
gpio_config_t io_conf = {
.intr_type = GPIO_PIN_INTR_DISABLE,
.mode = GPIO_MODE_OUTPUT,
.pin_bit_mask = 1LL << GPIO_NUM_5,
};
ret = gpio_config(&io_conf);
if(ret != ESP_OK)
{
ESP_LOGE(TAG, "Failed to add CS pin");
return FALSE;
}
gpio_set_level(GPIO_NUM_5, 1);

//Test to read data of a register
gpio_set_level(GPIO_NUM_5, 0); //active CS

//send register addr
spi_transaction_t trans;
memset(&trans, 0, sizeof(trans));
trans.tx_buffer = reg_addr; //point to user buffer for Tx data
trans.rxlength = 0;
trans.length = 3*8; //3bytes of reg addr
trans.flags = 0;
trans.rx_buffer = NULL;
trans.flags |= SPI_TRANS_MODE_QIO;
spi_device_transmit(SPIM, &trans);

//read back reg data
memset(&trans, 0, sizeof(trans));
trans.tx_buffer = NULL;
trans.length = 0;
trans.flags = 0;
trans.rx_buffer = &reg_data;
trans.rxlength = 4 * 8; //readback 4 bytes
trans.flags |= SPI_TRANS_MODE_QIO;
spi_device_transmit(SPIM, &trans);

gpio_set_level(GPIO_NUM_5, 1); //inactive CS

The register addr is 0x3020C0 and the expected register data is 0xFFEE. However, ESP32 reads back as 0xBBAA ( all IO2 bits are read as 0). If IO2 bits are read as 1 then, it will return 0xFFEE which is expected.
I capture the waveform to check, IO2 bits are correctly output by slave device, but ESP32 always read as 0s.
I attach the waveform here. Note that in reading reg data phase, it reads 4 bytes but uses last 2 bytes (that requirement comes from the slave device.
Here is the print log from ESP32 showing that it reads back reg data as 0xBBAA
I (2183) GPU: Send 30,20,c0[3020c0]
I (2183) GPU: Rd16=aa,0,aa,bb
E (2183) FT8XX: Failed to check REG_PLAYBACK_FREQ[bbaa]

Should I miss anything? Is there any bugs in SPI driver in QSPI mode?
This is the waveform I captured for that the test. It shows correct waveform sent from the slave device

Thanks,
Huy

Hi @HuyKhac ,
Sorry for late reply.
I've tested with your code on the latest master with following log print:
    ESP_LOG_BUFFER_HEX(TAG, reg_data, 4);
    for (int i = 0; i< 4; i++) {
        printf("%d, %d\n", reg_data[i]&0x40, reg_data[i]&0x4);
    }

When I connect GPIO 22 to VCC, it shows:
I (286) test: cc cc cc cc
64, 4
64, 4
64, 4
64, 4

While below if connect GPIO 22 to GND:
I (286) test: 88 88 88 88
0, 0
0, 0
0, 0
0, 0

This means in some way the QIO mode can reads from DAT2 correctly.
The reason is possibly:

Your IDF version is too old, please try again on the latest master.
Your LA don't get the data correctly. Please set the threshold to 1.6v or so and try again.
Seen from the LA waveform you attached, data comes out at the negedge on the first 8 clocks (mode 0); However, data comes out at posedge (mode 1) on the 10th clock, but negedge at edge on the later clocks (mode 0). It seems that the slave return data only 2 clocks by mode 1 and DATA are then controlled by sth else (maybe the master or floating) at later clocks.
I guess, only first four clocks are returned by the slave, so the return value should be 0xEE 0x00 (seen from mode1). Please check the slave's data sheet to see the communication format, and check which mode to use.

 And your return data length (BBAA, 16 bits) doesn't match your total length on the snapshot (4x8bits). So I cannot tell whether it's which reason. Please try by the ways above, and if you still have problem, please comback with more information (slave spec, actual reg_data value (4bytes), commit id).

Hi @ginkgm,
Thanks for your reply.
1-About ESP IDF, my version was not the latest. I will try again after updating my IDF
2-About my logic analyzer setting, it is Saleae logic analyzer, and I dont see it has threshold level setting.
Actually, I captured a waveform of another MCU platform running the same scenario and it shows the same response waveform from the slave device and that MCU can read back data correctly.
3- About your suspect on clock edge at data output, it is positive edge to capture data. My slave device is FT813 from FTDI.
4-About  my return length of 16-bit value, as I said, the driver code reads 4 bytes (4x8bit) then returns 2 last bytes as the valid data. You can see in my print log, it has "I (2183) GPU: Rd16=aa,0,aa,bb" which prints out 4 bytes at Rx phase.
In short, I will re-run the code with latest IDF and update you soon.
HuyK

Hi @ginkgm,
I updated IDF to the latest commit 03d78e7 and retry.
Before changing to QSPI mode, I pre-write the register at addr 0x3020c0 to value 0xFFEE, then read back to confirm (it can read back 0xFFEE correctly). Then I change to QSPI mode and try to read back that register, it still gives wrong read value although the waveform is correct.
Here is the print log:
VC1 register ID after wake up 7c
I (1103) FT8XX: Before: 0xffee
I (1103) FT8XX: Switch to QSPI
I (1103) GPU: Re-init SPI into QSPI
I (1103) FT8XX: Try to read in QSPI mode
I (1103) GPU: Rx:0xee,0x0,0x0,0x0
I (1103) FT8XX: After: 0x0
E (1113) FT8XX: QSPI read fail[0 - 400]
I (1113) FT8XX: Init done

It prints "Before: 0xffee" for the first read back in single SPI mode
It prints received raw 4 bytes "GPU: Rx:0xee,0x0,0x0,0x0"
It prints proceeded read value: "After: 0x0"
Here is the function to read register data:
uint16_t Ft_Gpu_Hal_Rd16(Ft_Gpu_Hal_Context_t *host, ft_uint32_t addr)
{
  uint16_t value;
  uint8_t spiData[4] = { 0 };

  Ft_Gpu_Hal_StartTransfer(host, FT_GPU_READ, addr);      //to assert CS and send out reg addr
  spi_readn(SPIM, spiData, host->spinumdummy + 2);       //reading phase
  if(print_data)
  {
    ESP_LOGI(TAG, "Rx:0x%x,0x%x,0x%x,0x%x",spiData[0],spiData[1],spiData[2],spiData[3]);
  }
  value = spiData[host->spinumdummy] | (spiData[host->spinumdummy + 1] << 8);
  Ft_Gpu_Hal_EndTransfer(host);                                          //deassert CS
  return value;
}

Note: host->spinumdummy = 2 (it expects to use last two bytes from raw RX data)
Here is the function to read SPI:
static void spi_readn(spi_device_handle_t spi, uint8_t* data, uint16_t len)
{
  spi_transaction_t trans;
  memset(&trans, 0, sizeof(trans));      	      // Zero out the transaction
  trans.length = len * 8;                                       // transaction length is in bits.
  trans.tx_buffer = NULL;       		              // no TX Data
  trans.rx_buffer = data;                		      // Rx buffer
  trans.rxlength = trans.length;
  if(Current_SPI_Mode == QSPI_MODE)
  {
    trans.flags |= SPI_TRANS_MODE_QIO;
  }
  spi_device_transmit(spi, &trans);
}

What could be wrong here?

Thanks
HuyK

Hi @HuyKhac ,
Still can't reproduce your issue, data are read correctly from my side (commit d099ff125, not far from yours). Maybe there's conflicts on your bus, since the . I found this: https://www.corelis.com/education/tutorials/spi-tutorial/
Please check:

is your CS inactive after a writing, and kept active before the address fields, until the last data bit?
is the dummy bits long enough?
can you use a oscliscope to see whether the data are valid on the bus?

I also confirmed that when I use QIO to read, the lines will be freed as soon as the first posedge of reading clock (so dummy bits are really required). After that, external devices are able to take control of the bus in the becoming 8 clocks.

Ok, I think I understand the dummy bits. Actually, in the code, at reading phase, it provides clocks to read 4 bytes which counts for 2 dummy bytes and then 2 valid data bytes. So I think my application code already handles dummy bits insertion on the bus. Am I correct?

Just a notice about the format, since judged from the website, a dummy byte means 8 clocks rather than 2 clocks. You can have a try to read 8+2 clocks to see whether it helps. If you are confirmed that your device respond corretly, maybe you can try to add 10kR pullups on 4 data lines.

Can you try to add 10KR pullups on 4 data lines?

I see this from the tutorial

"Figure 8 shows an example read command for a Spansion S25FL016K serial NOR flash device. To read from the device, a fast read command (EBh) is first sent by the master on the first IO line while all others are tristated. Next, the host sends the address; since the interface now has 4 bidirectional data lines, it can utilize these to send a complete 24-bit address along with 8 mode bits in just 8 clock cycles. The address is then followed with 2 dummy bytes (4 clock cycles) to allow the device additional time to set up the initial address."

I see it talks about 2 dummy bytes (4 clock cycles). Why do you see a dummy byte as 8 clocks?

If you are confirmed that your device respond corretly, maybe you can try to add 10kR pullups on 4 data lines.
Yes I can confirm the slave device can output data in QSPI correctly, because when I tried to change the pre-written value different than 0xFFEE to that register, the output waveform is changed  accordingly.
I will try with pullup register on 4 data lines

I will post more waveforms to show cases when it reads different values of that register and overall CS active/inactive.

Hi @HuyKhac ,
Could you please help me do this test to see whether it fix your issue?

include

#include "soc/gpio_sig_map.h"

add a function

void gpio_matrix_in(uint32_t gpio, uint32_t signal_idx)
{
    //don't bypass gpio matrix
    GPIO.func_in_sel_cfg[signal_idx].sig_in_sel = 1;
    PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[gpio]);
}

call it after the initialization (maybe modify VSPI and gpio num according to your config):

gpio_matrix_in( GPIO_NUM_19, VSPIQ_IN_IDX);
gpio_matrix_in( GPIO_NUM_23, VSPID_IN_IDX);
gpio_matrix_in( GPIO_NUM_22, VSPIWP_IN_IDX);
gpio_matrix_in( GPIO_NUM_21, VSPIHD_IN_IDX);

Hi @ginkgm,
Here is my update to you:
1- Add calling to  function gpio_matrix_in()  after re-init to QSPI mode
The result is unchanged
2-Then add 10K pull-up resistors to 4 data lines
The result is unchanged
3-Try to probe with Digilent Discovery2 scope and get same waveforms
Lets me add more info about the code, basically, it will init VSPI in Single SPI mode and do initialization to FT813 chip. After initialization, it will re-init VSPI to QSPI mode for high-speed data transfer when in operation. I post all main functions to work with VSPI here for complete information to you.
This is the function to init VSPI in single SPI mode:
ft_bool_t Ft_Gpu_Hal_Open(Ft_Gpu_Hal_Context_t *host)
{
  esp_err_t ret;
  /* Setup to SPI mode */
  spi_device_handle_t spi;
  spi_bus_config_t buscfg={
    .miso_io_num = FT_SPI_MISO,
    .mosi_io_num = FT_SPI_MOSI,
    .sclk_io_num = FT_SPI_SCK,
    .quadwp_io_num = -1,
    .quadhd_io_num = -1,
  };
  spi_device_interface_config_t devcfg={
    .clock_speed_hz = FT_FREQ_HZ,
    .spics_io_num = -1,
    .queue_size = 7,                          //We want to be able to queue 7 transactions at a time
    .command_bits = 0,
    .address_bits = 0,
  };
  //Initialize the SPI bus
  ret = spi_bus_initialize(FT_SPI_HOST, &buscfg, 1);
  if(ret != ESP_OK)
  {
    ESP_LOGE(TAG, "Failed to add SPI device");
    return false;
  }
  ret=spi_bus_add_device(FT_SPI_HOST, &devcfg, &SPIM);
  if(ret != ESP_OK)
  {
    ESP_LOGE(TAG, "Failed to add SPI device");
    return false;
  }

  /* Configure a IO for FT CS pin */
  gpio_config_t io_conf = {
         .intr_type = GPIO_PIN_INTR_DISABLE,
         .mode = GPIO_MODE_OUTPUT,
         .pin_bit_mask = 1LL << host->hal_config.spi_cs_pin_no,
     };

  ret = gpio_config(&io_conf);
  if(ret != ESP_OK)
  {
    ESP_LOGE(TAG, "Failed to add CS pin");
    return FALSE;
  }
  gpio_set_level(host->hal_config.spi_cs_pin_no, 1);

  /* Configure IO for LCD CS pin */
  gpio_set_direction(PIN_NUM_LCD_CS,GPIO_MODE_OUTPUT);      //LCD CSX
  gpio_set_level(PIN_NUM_LCD_CS, 1);

  /* Configure an Expanded IO for PD pin */
  gpio_config_t io_conf1 = {
       .intr_type = GPIO_PIN_INTR_DISABLE,
       .mode = GPIO_MODE_OUTPUT,
       .pin_bit_mask = 1LL << GPIO_NUM_17,
   };

  ret = gpio_config(&io_conf1);
  if(ret != ESP_OK)
  {
    ESP_LOGE(TAG, "Failed to add CS pin");
    return FALSE;
  }
  gpio_set_level(GPIO_NUM_17, 1);

    gpio_config_t io_conf2 = {
       .intr_type = GPIO_PIN_INTR_DISABLE,
       .mode = GPIO_MODE_OUTPUT,
       .pin_bit_mask = 1LL << GPIO_NUM_16,
   };

  ret = gpio_config(&io_conf2);
  gpio_set_level(GPIO_NUM_16, 0);

  /* Initialize the context valriables */
  host->ft_cmd_fifo_wp = host->ft_dl_buff_wp = 0;
  host->spinumdummy = 1;//by default ft800/801/810/811 goes with single dummy byte for read
  host->spichannel = 0;
  host->status = FT_GPU_HAL_OPENED;

  Current_SPI_Mode = SPI_MODE;
  return TRUE;
}

This is the function to switch to QSPI mode:
static void gpio_matrix_in(uint32_t gpio, uint32_t signal_idx)
{
  GPIO.func_in_sel_cfg[signal_idx].sig_in_sel = 1;
  PIN_INPUT_ENABLE(GPIO_PIN_MUX_REG[gpio]);
}

ft_int16_t Ft_Gpu_Hal_SetSPI(Ft_Gpu_Hal_Context_t *host,FT_GPU_SPI_NUMCHANNELS_T numchnls,FT_GPU_SPI_NUMDUMMYBYTES numdummy)
{
  ft_uint8_t writebyte = 0;
  /* error check */
	if((numchnls > FT_GPU_SPI_QUAD_CHANNEL) || (numdummy > FT_GPU_SPI_TWODUMMY) || (numdummy < FT_GPU_SPI_ONEDUMMY))
  {
    return -1; //error
  }

  host->spichannel = numchnls;
  writebyte = host->spichannel;
  host->spinumdummy = numdummy;

  if (FT_GPU_SPI_TWODUMMY == host->spinumdummy)
  {
    writebyte |= FT_SPI_TWO_DUMMY_BYTE;
  }
  Ft_Gpu_Hal_Wr8(host, REG_SPI_WIDTH, writebyte);
  //Check to re-init ESP32' SPI in Half Duplex device so that we can transfer in QSPI mode
  if(numchnls == FT_GPU_SPI_QUAD_CHANNEL)
  {
    //host->ft_cmd_fifo_wp = Ft_Gpu_Hal_Rd16(host, REG_CMD_WRITE);
    ESP_LOGI(TAG, "Re-init SPI into QSPI");
    spi_bus_remove_device(SPIM);
    spi_bus_free(FT_SPI_HOST);
    esp_err_t ret;
    /* Setup to QSPI mode */
    spi_device_handle_t spi;
    spi_bus_config_t buscfg={
      .miso_io_num = FT_QSPI_IO1,
      .mosi_io_num = FT_QSPI_IO0,
      .sclk_io_num = FT_SPI_SCK,
      .quadwp_io_num = FT_QSPI_IO2,
      .quadhd_io_num = FT_QSPI_IO3,
      .max_transfer_sz=  16*320*2+8
    };
    spi_device_interface_config_t devcfg={
      .clock_speed_hz = FT_FREQ_HZ,
      .mode = 0,
      .spics_io_num = -1,
      .queue_size = 7,                          //We want to be able to queue 7 transactions at a time
      .flags= SPI_DEVICE_HALFDUPLEX,
    };
    //Initialize the SPI bus
    ret = spi_bus_initialize(FT_SPI_HOST, &buscfg, 1);
    if(ret != ESP_OK)
    {
      ESP_LOGE(TAG, "Failed to add QSPI device");
      return false;
    }
    ret=spi_bus_add_device(FT_SPI_HOST, &devcfg, &SPIM);
    if(ret != ESP_OK)
    {
      ESP_LOGE(TAG, "Failed to add QSPI device");
      return false;
    }
    gpio_matrix_in(FT_QSPI_IO1,VSPIQ_IN_IDX);
    gpio_matrix_in(FT_QSPI_IO0,VSPID_IN_IDX);
    gpio_matrix_in(FT_QSPI_IO2,VSPIWP_IN_IDX);
    gpio_matrix_in(FT_QSPI_IO3,VSPIHD_IN_IDX);
    Current_SPI_Mode = QSPI_MODE;
  }
  return 0;
}

Here is definition for IO pins:
#define FT_FREQ_HZ              (1*1000*1000)
#define FT_QSPI_IO0             GPIO_NUM_23
#define FT_QSPI_IO1             GPIO_NUM_19
#define FT_QSPI_IO2             GPIO_NUM_22
#define FT_QSPI_IO3             GPIO_NUM_21

#define FT_SPI_MOSI             GPIO_NUM_23
#define FT_SPI_MISO             GPIO_NUM_19
#define FT_SPI_SCK              GPIO_NUM_18
#define FT_SPI_CS               GPIO_NUM_5

#define FT_SPI_HOST             VSPI_HOST

Here are functions  to read data from FT813:
ft_uint16_t Ft_Gpu_Hal_Rd16(Ft_Gpu_Hal_Context_t *host, ft_uint32_t addr)
{
  ft_uint16_t value;
  ft_uint8_t spiData[4] = { 0 };

  Ft_Gpu_Hal_StartTransfer(host, FT_GPU_READ, addr);
  spi_readn(SPIM, spiData, host->spinumdummy + 2);
  if(print_data)
  {
    ESP_LOGI(TAG, "Rx:0x%x,0x%x,0x%x,0x%x",spiData[0],spiData[1],spiData[2],spiData[3]);
  }
  value = spiData[host->spinumdummy] | (spiData[host->spinumdummy + 1] << 8);
  Ft_Gpu_Hal_EndTransfer(host);
  return value;
}

ft_void_t  Ft_Gpu_Hal_StartTransfer(Ft_Gpu_Hal_Context_t *host,FT_GPU_TRANSFERDIR_T rw,ft_uint32_t addr)
{

  if (FT_GPU_READ == rw)
  {
    ft_uint8_t spidata[4];
    spidata[0] = (addr >> 16);
    spidata[1] = (addr >> 8);
    spidata[2] = addr & 0xff;
    if(Current_SPI_Mode == QSPI_MODE)
    {
      gpio_set_level(GPIO_NUM_16, 1);
    }

    spi_open(SPIM, host->hal_config.spi_cs_pin_no);
    if(Current_SPI_Mode == QSPI_MODE)
    {
      gpio_set_level(GPIO_NUM_16, 0);
    }
    spi_writen(SPIM, spidata, 3);
    host->status = FT_GPU_HAL_READING;
  }
  else
  {
    ft_uint8_t spidata[4];

    spidata[0] = (0x80 | (addr >> 16));
    spidata[1] = (addr >> 8);
    spidata[2] = addr;

    spi_open(SPIM, host->hal_config.spi_cs_pin_no);
    spi_writen(SPIM, spidata, 3);
    host->status = FT_GPU_HAL_WRITING;
  }
}

ft_void_t Ft_Gpu_Hal_EndTransfer(Ft_Gpu_Hal_Context_t *host)
{
  spi_close(SPIM, host->hal_config.spi_cs_pin_no);
  host->status = FT_GPU_HAL_OPENED;
}

static void spi_open(spi_device_handle_t spi, int cs_pin)
{
  gpio_set_level(cs_pin, 0);    //active CS pin
}

static void spi_close(spi_device_handle_t spi, int cs_pin)
{
  gpio_set_level(cs_pin, 1);    //in-active CS pin
}
static void spi_writen(spi_device_handle_t spi, const uint8_t* data, uint16_t len)
{
  uint32_t tx_len;
  spi_transaction_t trans;

  memset(&trans, 0, sizeof(trans));     // Zero out the transaction

#define MAX_SPI_TRANSFER  (4*1024-4)
  do
  {
    if(len > MAX_SPI_TRANSFER) tx_len = MAX_SPI_TRANSFER;
    else tx_len = len;

    trans.tx_buffer = data;               //point to user buffer for Tx data
    trans.rxlength = 0;
    trans.length = tx_len*8;                 //translate to length in bits
    trans.flags = 0;
    trans.rx_buffer = NULL;
    if(Current_SPI_Mode == QSPI_MODE)
    {
      trans.flags |= SPI_TRANS_MODE_QIO;
      gpio_set_level(GPIO_NUM_16, 1);
    }

    esp_err_t ret = spi_device_transmit(spi, &trans);
    if(ret != ESP_OK)
    {
      ESP_LOGE(TAG, "Failed to Tx");
    }
    data += tx_len;
    len -= tx_len;
  }while(len);

  gpio_set_level(GPIO_NUM_16, 0);

}
static void spi_readn(spi_device_handle_t spi, uint8_t* data, uint16_t len)
{
  spi_transaction_t trans;
  memset(&trans, 0, sizeof(trans));      				// Zero out the transaction
  trans.length = len * 8;                       // transaction length is in bits.
  trans.tx_buffer = NULL;       				        // TX Data
  trans.rx_buffer = data;                		    // Rx buffer
  trans.rxlength = trans.length;
  if(Current_SPI_Mode == QSPI_MODE)
  {
    trans.flags |= SPI_TRANS_MODE_QIO;
  }

  spi_device_transmit(spi, &trans);
}

So it will call Ft_Gpu_Hal_Open() to init single SPI and send some settings to FT813. Then it calls Ft_Gpu_Hal_SetSPI() to switch to QSPI; next it will call Ft_Gpu_Hal_Rd16() to read register data.
I attach different waveforms when it reading different pre-written values from the register. It shows that the slave device - FT813 - outputs correct data but ESP fails to read in
When the register has value 0xAB89:
Zoom-out to show CS sequence:

Zoom-in to show data signal lines

When the register has value 0x5A9D
Zoom-out to show CS sequence:

Zoom-in to show data signal lines

Summary:

Adding pull-up resistors and adding gpio_matrix_in() do not help.
Confirm that FT813 output correct data but ESP32 fails to read in QSPI mode

Please help to review all my code in this post if I miss anything to make it work.
Thanks,
HuyK

Hey
Hope this is not too much of a late reply.
In your function:
static void spi_readn(spi_device_handle_t spi, uint8_t* data, uint16_t len)
In half duplex mode, when you are reading, you need to ensure that:
trans.length = 0;               // you are not writing anything in this phase of qspi  trans.rxlength = len * 8;    // you are reading len * 8 bits
When in the writing phase you need to reverse them.
trans.length = len * 8;     // you are writing len * 8 bits trans.rxlength = 0 ;           // you are not reading anything in this phase
Hope this helps.
Dom

Despite this being an old thread, I have the exact same problem. From this issue report (and other similar relating to half duplex) it seems like half duplex and DMA is just broken. I cannot get that data that shows in the scope to fill in the read buffer - it is just returns all zeros after the first byte, i.e. it reads and fill one byte but actively zeros all others. If I switch to full duplex mode then it works fine but I need half duplex so I can use dual/quad mode.

Despite this being an old thread, I have the exact same problem. From this issue report (and other similar relating to half duplex) it seems like half duplex and DMA is just broken. I cannot get that data that shows in the scope to fill in the read buffer - it is just returns all zeros after the first byte, i.e. it reads and fill one byte but actively zeros all others. If I switch to full duplex mode then it works fine but I need half duplex so I can use dual/quad mode.

I have experienced the same results as this (#4456) and other issue reports. The data lines probed with oscilloscope report the awaited bits, but the read buffer does not fill correctly.


WakaTime imports do not consider all Machine/UserAgent entries

It seems that WakaTime's API at /api/v1/users/current/machine_names and /api/v1/users/current/user_agents only show the first 100 entries respectively. Inside the JSON response there is some metadata, in particular one field describes how many pages there are (each of which shows at most 100 entries).
I figured that the fetch functions https://github.com/muety/wakapi/blob/aaa907a7b281055cb6040ccb497f7536f8f410b3/services/imports/wakatime.go#L174 and https://github.com/muety/wakapi/blob/aaa907a7b281055cb6040ccb497f7536f8f410b3/services/imports/wakatime.go#L202 only concern themselves with the first page (the default one), hence it may happen as it did in my case, that the code here https://github.com/muety/wakapi/blob/aaa907a7b281055cb6040ccb497f7536f8f410b3/services/imports/wakatime.go#L240 and here https://github.com/muety/wakapi/blob/aaa907a7b281055cb6040ccb497f7536f8f410b3/services/imports/wakatime.go#L248 inserts wrong data.
I wrote a dirty patch that resolves this issue by simply looping over the pages in a hardcoded fashion
func (w *WakatimeHeartbeatImporter) fetchMachineNames() (map[string]*wakatime.MachineEntry, error) {
	httpClient := &http.Client{Timeout: 10 * time.Second}

	machines := make(map[string]*wakatime.MachineEntry)

        // the WakaTime API has 8 Pages for me
        for i:=1; i<9; i++ {
            req, err := http.NewRequest(http.MethodGet, config.WakatimeApiUrl+config.WakatimeApiMachineNamesUrl+"?page="+strconv.Itoa(i), nil)
            if err != nil {
                    return nil, err
            }

            res, err := httpClient.Do(w.withHeaders(req))
            if err != nil {
                    return nil, err
            }

            var machineData wakatime.MachineViewModel
            if err := json.NewDecoder(res.Body).Decode(&machineData); err != nil {
                    return nil, err
            }

            for _, ma := range machineData.Data {
                    machines[ma.Id] = ma
            }
        }

	return machines, nil
}

and similarly for the other function. Surely this is easily fixable by considering the metadata in the GET response, but as I don't know Go too well I figured I just report the issue here instead of writing up a PR.

Good catch, thanks for bringing this up and for your first sketch. What you came up with is already half the battle. The only thing missing is to extend MachineViewModel (and `UserAgentsViewModel, respectively) to contain fields for pagination and then read them in your currently hard-coded loop.
Approximately like this:
type UserAgentsViewModel struct {
	Data       []*UserAgentEntry `json:"data"`
	Total      int               `json:"total"`
	TotalPages int               `json:"total_pages"`
}

If you feel confident to implement this last missing piece, feel free to open a PR. Otherwise let me know, then I'll have a look as soon as I can.

Good catch, thanks for bringing this up and for your first sketch. What you came up with is already half the battle. The only thing missing is to extend MachineViewModel (and `UserAgentsViewModel, respectively) to contain fields for pagination and then read them in your currently hard-coded loop.
Approximately like this:
type UserAgentsViewModel struct {
	Data       []*UserAgentEntry `json:"data"`
	Total      int               `json:"total"`
	TotalPages int               `json:"total_pages"`
}

If you feel confident to implement this last missing piece, feel free to open a PR. Otherwise let me know, then I'll have a look as soon as I can.

Resolved by #290


derive-it:0.1.0

I am submitting

[x] a new package
[ ] an update for a package

Description: A Typst package to create customizable Fitch-style natural deduction diagrams, with support for indent guides and other visual aids.
Examples:

I have read and followed the submission guidelines and, in particular, I

[x] selected a name that isn't the most obvious or canonical name for what the package does
[x] added a typst.toml file with all required keys
[x] added a README.md with documentation for my package
[x] have chosen a license and added a LICENSE file or linked one in my README.md
[x] tested my package locally on my system and it worked
[x] excluded PDFs or README images, if any, but not the LICENSE

Just to be sure: can I merge this as is, or do you want to fix the warnings reported by CI? (it's fine if you don't, they are mostly recommendations)

I've fixed the namings now :), though I don't know how to remove the last failure, even if the file is excluded in the .toml...
Anyway, I think it's fine to merge now.


Extension's still not working on latest vscode version

I have just updated the extension to 3.2.0 and the empty "> Executing task:" doesn't happen anymore.
However, now every time I try to build (via ctrl+alt+B) I receive an Invalid argument error message because apparently "outDebug.exe" cannot be opened.

Does your workspace path contain whitespace?

Yes, it had whitespaces. I have removed them and now it works fine. What seems weird to me is my workspace has been the same for weeks (with whitespaces in the folders' names) and I haven't run into this issue until today...

Since the new vscode version 1.65 i had to change the code.

Should work again in 3.2.1.
However, i am not able to get debugging working atm if there are whitespaces in the path.


Page Does Not Scroll to Top on Route Change(/fullservicefund)

When navigating to a new route, such as /fullservicefund in the explore more section , the page content opens at the bottom, requiring the user to click the scroll to top button to go to the top to see the beginning of the page content. This behavior is not user-friendly and impacts the user experience, as users expect to start at the top of the new page content when navigating through routes.
https://github.com/Priyaaa1/StartConnect-Hub/assets/154724111/6aa6ebe3-4b9f-4fe1-86bb-ada5fd6a5a7a

@Priyaaa1 can I work on this?


Remove kani::Arbitrary from the modifies contract instrumentation

This is an additional fix for https://github.com/model-checking/kani/pull/3098. With this fix, Kani should be able to check for contracts using modifies clauses that contain references to types that doesn't implement kani::Arbitrary. The verification will still fail if the same contract is used as a verified stub.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

How is this tested?

@zhassan-aws I included an extra test to cover this case. I was testing this on the function contracts we have fore stdlib.


No module named 'holidays.financial'

when i make .exe app with auto-py-to-exe
and run it
it says that
No module named 'holidays.financial'

It might happen if one of your local files is named as holidays.py
I'd start from checking no that.
Closing this, feel free to re-open if you have more information.


Add ViewClientCommand

Codecov Report
Base: 61.00% // Head: 62.19% // Increases project coverage by +1.19% :tada:

Coverage data is based on head (f3a1df7) compared to base (193a116).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #141      +/-   ##
============================================
+ Coverage     61.00%   62.19%   +1.19%
- Complexity      431      448      +17
============================================
  Files            87       89       +2
  Lines          1559     1579      +20
  Branches        155      157       +2
============================================
+ Hits            951      982      +31
+ Misses          562      547      -15
- Partials         46       50       +4

Impacted Files
Coverage Δ

...eedu/address/logic/commands/ViewClientCommand.java
0.00% <0.00%> (ø)

...va/seedu/address/logic/parser/MyInsuRecParser.java
72.72% <0.00%> (-3.47%)
:arrow_down:

.../address/logic/parser/ViewClientCommandParser.java
0.00% <0.00%> (ø)

...main/java/seedu/address/model/meeting/Meeting.java
62.85% <0.00%> (+5.71%)
:arrow_up:

...u/address/model/meeting/NoConflictMeetingList.java
85.36% <0.00%> (+63.41%)
:arrow_up:

...l/meeting/exceptions/MeetingNotFoundException.java
100.00% <0.00%> (+100.00%)
:arrow_up:

...eeting/exceptions/ConflictingMeetingException.java
100.00% <0.00%> (+100.00%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Aamohd/file based config

As I mentioned in one of the requested changes, we shouldn't take./config/Exec.kdl as the backup location for the exec file, it should just be Exec.kdl. But in git version control we are storing the file at ./config/Exec.kdl, which means people would need to pass --exec every time they want to run Hipcheck.
I think the solution is that everyone developing on Hipcheck copies ./config/Exec.kdl to ./Exec.kdl at the project root so it gets picked up as the default location, and this will be everyone's personal Exec.kdl file that doesn't get tracked in git. We can also add a rule to the .gitignore to ensure no root-level Exec.kdl file gets commited.
@alilleybrinker thoughts? or should the "config" folder be un-deprecated as a concept and use the resolution of the config dir to determine the expected location of the Exec.kdl file?


Update readme.md

why compile the binary twice?
Especially after moving it to /usr/local/bin

it is mentioned as a 2nd option:
If the version match, now you have two options

Move the binary to the /usr/local/bin path with: sudo mv build/dewebd /usr/local/bin/
Compile and install the binary in the $GOPATH path: make install


Add schema support for strings as sample indices in output_type_id

Per discussion related to #48, in a first pass we will only support integer sample indices for output_type_id, but we would eventually like to support strings as well. To do this, we will need to add two properties to the output_type_id field in a hub's tasks.json config file:

“type”: the data type of the sample index. "string" or "integer"
“max_length”: if "type" is "string", the maximum number of characters in a sample index

"max_length" should be required if "type" is "string", but not otherwise.

relating this to issue #70

This is superceeded by #70 correct? My understanding is that there is no output_type_id property for samples anymore and all this is specified in output_type_id_params, correct?


mission-center: init at 0.2.4

Description of changes
Add mission-center, a GUI application to monitor your CPU, Memory, Disk, Network and GPU usage.
Big thanks to @Kranzes and @9p4 for their help crafting this derivation.
Fixes #243327.
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

[x] 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/)
23.11 Release Notes (or backporting 23.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

[x] Fits CONTRIBUTING.md.

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

1 package built:

mission-center

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

1 package built:

mission-center

AMDGPU support in this program does not appear to be working. Is there anything special I need to do?

AMDGPU support in this program does not appear to be working. Is there anything special I need to do?

Indeed, I think we would need to add additional dependencies to the derivation for the AMD drivers to be available.
I do not really know how we could do that unfortunately.
Feel free to experiment on you side and eventually come up with a PR :)
Nvidia support might also be broken but I am not sure about that.

Is there a reason the nvtop source is listed separately in this package? Could we not use the one that is already in nixpkgs? That may be one place to start

Mission center actually uses a patched version of nvtop. During the build phase, it modifies the nvtop sources and bundles it. We can't use the one that preexists because it wouldn't have the changes that mission-center needs.


Snapshot testing for compose-web

Hey,
has anyone succeeded in using snapshot testing for compose-web? I there are some tools lacking to test the ui, especially as there is also no compose preview for compose web.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


See Also block updated

@v-hearya,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

patterns-practices/reference/addmodule-mthd-moduleinfogroup-str-type-str.md
:white_check_mark:Succeeded

patterns-practices/reference/addmodule-mthd-moduleinfogroup-type-str.md
:white_check_mark:Succeeded

patterns-practices/reference/addmodule-mthd-str-str-initializationmode-str.md
:white_check_mark:Succeeded

patterns-practices/reference/addmodule-mthd-str-str-str-initializationmode-str.md
:white_check_mark:Succeeded

patterns-practices/reference/addmodule-mthd-str-str-str.md
:white_check_mark:Succeeded

patterns-practices/reference/addmodule-mthd-type-initializationmode-str.md
:white_check_mark:Succeeded

patterns-practices/reference/addmodule-mthd-type-str.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-activeviews-property-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-class-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-constructor-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-deactivate-method-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-events-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-members-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-methods-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/allactiveregion-properties-mspp-regions.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-class-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-constructor-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-dispose-method-boolean-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-dispose-method-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-loadassemblyfrom-method-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-members-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/assemblyresolver-methods-mspp-modularity.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-addviewintoregion-method-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-behaviorkey-field-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-class-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-constructor-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-createviewstoautopopulate-method-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-fields-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-members-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-methods-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-onattach-method-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-onviewregistered-method-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/autopopulateregionbehavior-properties-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/backgroundeventsubscription-tpayload-class-mspp-pubsubevents.md
:white_check_mark:Succeeded

patterns-practices/reference/backgroundeventsubscription-tpayload-constructor-mspp-pubsubevents.md
:white_check_mark:Succeeded

patterns-practices/reference/backgroundeventsubscription-tpayload-invokeaction-method-mspp-pubsubevents.md
:white_check_mark:Succeeded

patterns-practices/reference/backgroundeventsubscription-tpayload-methods-mspp-pubsubevents.md
:white_check_mark:Succeeded

patterns-practices/reference/backgroundeventsubscription-tpayload-properties-mspp-pubsubevents.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-class-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-constructor-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-events-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-members-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-methods-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-onpropertychanged-method-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-onpropertychanged-method-string-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-onpropertychanged-t-method-expression-func-t-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-propertychanged-event-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindablebase-setproperty-t-method-mspp-mvvm.md
:white_check_mark:Succeeded

patterns-practices/reference/bindregioncontexttodependencyobjectbehavior-attach-method-mspp-regions-behaviors.md
:white_check_mark:Succeeded

patterns-practices/reference/bindregioncontexttodependencyobjectbehavior-behaviorkey-field-mspp-regions-behaviors.md
:white_check_mark:Succeeded

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


search box performance improved  and bug solved

solved #293

implement search box with debouncing ( Debouncing is an optimization technique to limit the number of times a task is done.  )
search box bug solved ( bug -
I am not getting accurate results when typing anything in the search box. For example, if I type 'a,' the search results should display all icons starting with 'a,' but only 1 or 2 icons are appearing.
debouncing concept is not present in search box - In the context of a search box, debouncing is a technique used to control and optimize the execution of search queries or other related actions triggered by user input. When a user types into a search box, it often results in frequent events firing, such as keypress or input events. Each event may trigger an action, such as sending a request to a server to retrieve search results or updating the search suggestions. )

@ramanujamgond learn new string search  algo  ❤👍

@ramanujamgond learn new string search algo ❤👍

I don't understand this. You are asking him to learn?

@ramanujamgond learn new string search algo ❤👍

I don't understand this. You are asking him to learn?

no bro i learn from this

cool


Segment Completion corner cases

Handle the condition when a CONSUMING to ONLINE state transition happens after the local segment has
been retained (and swapped in place) by the consumer.
Name the segment consumption thread after the segment.

lgtm


[FEATURE] Possible to use other FlatList props

https://github.com/Thanasis1101/react-native-gif-search/issues/1

@anthlasserre Well done ! Let's test this and then I will accept the pull request.

Perfect! @Thanasis1101 do you planned to update npm package today with this feature?

@anthlasserre Yes. I am working on some fixes and then I will update the npm and github package, hopefully today.

Awesome 👌🏼

@anthlasserre The new version is now published !
I fixed some issues and made it look like grid view when numColumns > 1. Hope it works and is helpful for your project (if you are developing one or you are planning on developing one). I also updated the readme with information about the new features, while giving you credits for this feature.
Thanks for the cooperation !

@Thanasis1101 I've just tested the new version and it's exactly what i needed. I thank you so much. Excited to improve again your dependency.
Thanks to you 🍻


⚠ ClamAV has degraded performance

In 36d10c9, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 220 ms

Resolved: ClamAV performance has improved in 229fa52.


My flutter web project can run on higher  browser, but it can't work on lower level browser

Steps to Reproduce

My flutter web project can run on android 6.x,but it can't work on android 4.4.2, and the browser is chrome 74.0.3729.157 and chrome <IP_ADDRESS>, so I wanner know the minimum version supported by the browser.

**Target Platform: Web
**Target OS version/browser: chrome 74.0.3729.157 and chrome <IP_ADDRESS>
Devices:
Logs

[✓] Flutter (Channel dev, v1.10.14, on Mac OS X 10.15 19A602, locale zh-Hans-CN)
    • Flutter version 1.10.14 at /Users/petershi/Downloads/flutter
    • Framework revision 1946fc4da0 (6 周前), 2019-10-07 15:23:31 -0700
    • Engine revision 1d62160fdb
    • Dart version 2.6.0 (build 2.6.0-dev.1.0 d6c6d12ebf)

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/petershi/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit
      https://flutter.dev/setup/#android-setup for detailed instructions.

[✓] Xcode - develop for iOS and macOS (Xcode 11.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.1, Build version 11A1027
    • CocoaPods version 1.8.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 40.1.2
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build
      1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.40.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.6.0

[✓] Connected device (2 available)
    • Chrome          • chrome          • web-javascript • Google Chrome
      78.0.3904.97
    • Headless Server • headless-server • web-javascript • Flutter Tools

Hi @chkkassd
if I understand correctly you are experiencing issues
with both android 4.4.2 and and chrome 30.0.0
and your flutter run --verbose on the mentioned circumstances?
Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
Thank you

Hi @chkkassd
if I understand correctly you are experiencing issues
with both android 4.4.2 and and chrome 30.0.0
and your flutter run --verbose on the mentioned circumstances?
Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
Thank you

hi,@iapicca
thanks for reply me.I just go home, so my computer is not with me.Tomorrow morning I will attach the output of flutter run --verbose.
In fact, my problem is that i create a flutter web project, and I flutter build web and then deploy it.Our company's app load the url, and in android 6.0 and later, it works well, however in another phone, android 4.4.2, it can't work，page cannot be rendered. So I wonder if it's related to the version of the browser kernel.
Thank you.

Hi @chkkassd
I apologize for the misunderstanding,
so there's no native app, only a PWA built with flutter web
that works as intended when running in Chrome on an Android 6.0,
but doesn't load in Chrome on and Android 4.4, am I correct?
thank you

Hi @chkkassd
I apologize for the misunderstanding,
so there's no native app, only a PWA built with flutter web
that works as intended when running in Chrome on an Android 6.0,
but doesn't load in Chrome on and Android 4.4, am I correct?
thank you

Yes, you are correct. So I wonder if it's related to the version of the browser kernel and the version of Android?

Hi @chkkassd , do you see error in console when you debug?

Hi @chkkassd , do you see error in console when you debug?

Hi,@ferhatb, when I debug in vscode, everything is ok,but when I run my project in old android phone in Android 4.4, it can't be rendered.

@chkkassd   : Please setup chrome remote debugging, you should be able to see console on your desktop. Also make sure you are using --release version of your app.

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.


Among-Us-Editor-1.51.jar wont open

I think its some kind of bug or sth.
I tried to open your .jar file, then a console is starting and then after a short time it closes. I have the newest version of Java Installed on my Computer. Also the launcher cannot start it. :C
Maybe it helps you when i make a screenshot of that window, so here it is:

The problem is: it closes so fast. but i catched it.

PS: in the console window it say something is wrong with the main class or it couldnt find it.

This is an issue a couple people had, the only reliable workaround I have found is wrapper the jar to an exe.
If you join the discord server I can provide an .exe copy of the editor for you, I've already had it tested with only 2 out of 42 users having an issue.
I don't know how to properly fix it, for one person when I refactored the project and it worked and for others it did nothing.
Do you have Java 8 or something newer?

I have the newest Java version. PS: i already joined your discord :D


Cannot access my GrahqlApi and cannot update API because change of Key and still on T1, what would be the steps to follow?

Which Category is your question related to?
CLI amplify update api, access to my api, migration T2
Amplify CLI Version
7.6.13
What AWS Services are you utilizing?
Amplify-graphQL/AppSync/dynamoDB/Lambda
I would like to migrate to T2, because otherwise I cannot 'amplify update api' and I need it to be able to set up only the access via cognito user Pool and not API KEY + cognito user pool like it is at the moment...
I have tried from the AWS console parameters then change the access with a new API KEY or just with cognito user pool + amplify pull , but it doesn't seem to work it seems like the API is waiting for its old key and the data is loading forever locally and deployed.

Now it seems like the next step is migration, but it seems like a catch22 to me where I won't be able to test it out if I don't have any access to the API !
what would you recommend I do first ?

butcher it up and migrate to get no errors for the push,
then update api
then test ?

Thanks

Hey @voyagebagage :wave: for transformer v1 we can use parameters to reset the API key expiry https://docs.amplify.aws/cli-legacy/graphql-transformer/config-params/#apikeyexpirationepoch
Unfortunately we are not able to update existing API resources on transformer v1, which is a bug documented here https://github.com/aws-amplify/amplify-cli/issues/9675

@josefaidt I'm aware of that, it has been working for me before, but not that time because of the cognito issue, the push never come thru.
Sorry at first it was my guess, that the issue was only coming from that but since the cognito error is not fixed I will never know if that solution still work or not.
but thank you anyway


Add support for PUT /tools/{id}/versions/{version} endpoint.

Required to replace (if exists) or create (if it does not exist) a version with a specific user-defined ID to an existing tool.
Add required specs in the additional API spec list.
Implement the endpoint and corresponding tests.

Please refer PINNED comment on slack channel for scope.

The functionality to create or replace is implemented in the POST endpoint. While this implementation is somewhat in contrast to usually expected behavior for POST in "REST" API behavior, it will cover our use cases just fine for now. As the version ID field is currently part of the RegisterToolVersion schema, the schema couldn't be used for a PUT endpoint, so a proper implementation (POST will create an ID for the user; POST will allow the user to define the ID) will require removing the id property from the schema. However, this will mean that POSTing to /tools or PUTting to /tools/{id} will auto-generate both tool and version IDs. To avoid that and allow users to use these endpoints with predefined version IDs, further changes to the specs are required. Possibly this will require different tool version schemas for registering tools than for registering versions.

Changed my mind and will implement this now for consistency and adherence to best "REST" practices. Implementing it later would be a breaking change for downstream applications, so it is better to stabilize the API.


Small improvements on the go

Nice schematic ! I would just modify the yellow color which is a bit hard to see.