Housecleaning: small fixes here and there

A collection of small changes I've made while studying the code. I wanted to pull them out of hiding on my machine. It might be easier to review the commits separately instead of all jumbled together. There is no urgency to this PR. I chose reviewers I thought might be interested, but am not expecting anyone in particular to review this.

Codecov Report

Merging #3310 into develop will decrease coverage by 0.00%.
The diff coverage is 87.50%.

@@             Coverage Diff             @@
##           develop    #3310      +/-   ##
===========================================
- Coverage    70.62%   70.61%   -0.01%
===========================================
  Files          676      676
  Lines        54340    54314      -26
===========================================
- Hits         38377    38355      -22
+ Misses       15963    15959       -4

Impacted Files
Coverage Δ

src/ripple/app/ledger/Ledger.cpp
79.26% <ø> (ø)

src/ripple/app/ledger/LedgerMaster.h
53.33% <ø> (ø)

src/ripple/app/ledger/impl/LedgerCleaner.cpp
20.21% <ø> (-0.84%)
:arrow_down:

src/ripple/app/main/Application.cpp
59.59% <ø> (-0.09%)
:arrow_down:

src/ripple/app/main/LoadManager.cpp
60.24% <ø> (-0.94%)
:arrow_down:

src/ripple/app/misc/SHAMapStoreImp.h
96.87% <ø> (-0.19%)
:arrow_down:

src/ripple/basics/impl/PerfLogImp.h
100.00% <ø> (ø)

src/ripple/core/JobQueue.h
100.00% <ø> (ø)

src/ripple/core/Stoppable.h
93.75% <ø> (ø)

src/ripple/core/impl/Config.cpp
67.89% <ø> (ø)

... and 13 more

Continue to review full report at Codecov.

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

Just sneaking in a comment here that is only mildly related to the PR: The GRPCServer class is not part of the stoppable hierarchy. It's constructed as part of ApplicationImpl construction, started in ApplicationImpl::setup() (immediately after the JobQueue's thread count is set), and stopped+destroyed as part of ApplicationImpl destruction. I am not sure if this is okay or not. @thejohnfreeman based on your observations of Stoppable, do you think the GRPCServer should be part of the Stoppable hierarchy?

@cjcobb23 Does the GRPCServer access any other Stoppable component in an asynchronous operation? If not, then I don't think it needs to be part of the hierarchy.

@cjcobb23 Does the GRPCServer access any other Stoppable component in an asynchronous operation? If not, then I don't think it needs to be part of the hierarchy.

@thejohnfreeman It posts coroutines to the JobQueue (via postCoro())

Then I suspect it needs to be Stoppable, but I'm not sure how it needs to be implemented.

Then I suspect it needs to be Stoppable, but I'm not sure how it needs to be implemented.

I'll create an issue for this

I'm going to close this review for now. It has some quality-of-life changes I would still like to see merged, but, while I ended up learning and writing much about the Stoppable hierarchy, I did not replicate or unwind the crash that Scott discovered. I may circle back to it at a later date, but it's not on the roadmap right now.


Access only part of screen

I was wondering if there is any way to configure the code to only capture a subset of the screen, for example a square in the center of the screen. Has anyone thought about this use case?
Thanks,
Will

It is not currently possible to capture only a specific part of the desktop. This is because the Desktop Duplication API is designed to return the entire desktop, and there is a large overhead to crop a portion of it.
Please try using the Loupe component instead, which crops the entire texture and displays a portion of it in a shader. A sample is included in the project.


Wallet nodes

Are there any nodes that can be added to the config file of the wallet for more connections? The core wallet takes very long to sync the network.

try those nodes
connect=<IP_ADDRESS>:8334
connect=<IP_ADDRESS>:8334
connect=<IP_ADDRESS>:8334
connect=<IP_ADDRESS>:8334

Thank you very much for the response. 1 of them I think is connecting, but I still have 9 days to sync my wallet. If more connections are available please let me know. Thanks again!

hi where can i put the nodes? is in wallet setting > network> proxy ip.
is that correct?

@mathabu  in sbtc.conf  file

My client can't connect to any of these nodes, are they still live?


Fix spacing items details panels #394

Description
Adds column spacing to properties on catalogue item & item details panels. Ideally we would use 100% width on the grid container so the grid could use space-between or something but unfortunately MRT renders MUI collapse elements above with a width that can't be modified, and using the example given on MRT fails when columnResizing is true currently.
This PR also removes some unnecessary Grid's and moves Notes from the Details tab to a separate Notes tab on catalogue item details panels to match the items one.
Testing instructions
Add a set up instructions describing how the reviewer should test the code

[ ] Review code
[ ] Check Actions build
[ ] Review changes to test coverage

Agile board tracking
Closes #394

It looks like the gap is getting bigger when you increase the amount properties.

you can recreate this using the mock data (cameras and wavefront sensors)

Yeah this what I mentioned yesterday. It does this for all tabs and I have no idea how to fix it 🙃 I will try though.

A simpler solution is just to force it to only fill one of the two columns by changing xs={6} instead of xs={9}
      <TabPanel value={tabValue} index={1}>
          <Grid item container spacing={0}>
            {catalogueItemIdData.properties &&
              catalogueItemIdData.properties.map((property, index) => (
                <Grid item xs={6} sm={6} key={index}>
                  <Typography color="text.primary">{`${property.name} ${
                    property.unit ? `(${property.unit})` : ''
                  }`}</Typography>
                  <Typography color="text.secondary">
                    {property.value !== null ? String(property.value) : 'None'}
                  </Typography>
                </Grid>
              ))}
          </Grid>
        </TabPanel>

A simpler solution is just to force it to only fill one of the two columns by changing xs={6} instead of xs={12}
      <TabPanel value={tabValue} index={1}>
          <Grid item container spacing={0}>
            {catalogueItemIdData.properties &&
              catalogueItemIdData.properties.map((property, index) => (
                <Grid item xs={6} sm={6} key={index}>
                  <Typography color="text.primary">{`${property.name} ${
                    property.unit ? `(${property.unit})` : ''
                  }`}</Typography>
                  <Typography color="text.secondary">
                    {property.value !== null ? String(property.value) : 'None'}
                  </Typography>
                </Grid>
              ))}
          </Grid>
        </TabPanel>

Unfortunately that doesn't fix the original issue:

A simpler solution is just to force it to only fill one of the two columns by changing xs={6} instead of xs={12}
      <TabPanel value={tabValue} index={1}>
          <Grid item container spacing={0}>
            {catalogueItemIdData.properties &&
              catalogueItemIdData.properties.map((property, index) => (
                <Grid item xs={6} sm={6} key={index}>
                  <Typography color="text.primary">{`${property.name} ${
                    property.unit ? `(${property.unit})` : ''
                  }`}</Typography>
                  <Typography color="text.secondary">
                    {property.value !== null ? String(property.value) : 'None'}
                  </Typography>
                </Grid>
              ))}
          </Grid>
        </TabPanel>

Unfortunately that doesn't fix the original issue:

weren't the numbers overlapping before ?


Unkown error 1003 when trying to login to device

Hi there!
I'm currently running a little project after a while, and I'm unable to login to a device, I get an unknown error with code 1003.
Do you know what this means?

Please expand on what "after a while" means and what device type you interact with so I can try and replicate the issue.
Are you creating a new ApiClient? A new handler? Or are you using login on an existing client?
Is it a recurrent error, or does it happen only once?

Sorry I did not express myself correctly (english is not my first language).
I meant that the problem didn't appear when I started using this library, I only saw it appear since yesterday when I tried to run the app after a while to make some modifications.
I'm interacting with L530 bulbs, I'm creating a new ApiClient for it and calling .login() directly. This call returns the mentioned error.
It happens every time, which means I can't ever login into the bulb.

After upgrading my L530 device to firmware 1.2.4, I am getting random 1301 errors that I wasn't getting before. The occurrence is relatively low and can happen in almost any operation.
I am not getting any errors on login, however.
There's something fishy going on.

That's weird, indeed. I upgraded the L530 just before using the library so this is probably the culprit, but I don't know what the exact problem is.

OK, I've solved the mystery.
Firmware 1.2.4 for HW v1 produces the random 1301 errors I'm getting.
Firmware 1.1.0 for HW v2 produces the 1003 login error you raised.
The request protocol for HW v2 has received a significant change.
I'll look into adding compatibility for the new versions on both HW models, but it will probably take me a few days to get there.

I'll just add that my P100's and P110's return 1003 too

Release v0.7.3 fixes this issue.
I have tested it with L530 (hw ver 1 and 2) and P110 (hw ver 1) devices.
As I do not have a P110 with hw ver 2, I would appreciate it if someone could confirm whether it works.

I can check this tomorrow morning EU time, I think P115 is also hw2?

I can check this tomorrow morning EU time, I think P115 is also hw2?

I know that both L530 and P110 come in both hw v1 and hw v2 variants.
I do not know about P115.
However, it's fairly easy to find out the version by looking at the Device Settings in the Tapo app, or by running get_device_info.

The app shows hw 2.0 for my p100s and hw 1.0 for my p115s.

I may have missed something but it doesn't compile on my machine:

Using WSL 2 (Ubuntu 23.04)

That's odd. Can you please check your Cargo.lock file and see what version of chrono gets used, and if it's pre-0.4.25, investigate why?

Ok I think I got why this happens.
Here is an extract from my lockfile:
[[package]]
name = "chrono"
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
dependencies = [
 "iana-time-zone",
 "num-integer",
 "num-traits",
 "serde",
 "winapi",
]

It was exactly like this before updating to the 0.7.3 version. Looking at tapo's Cargo.toml, it only specifies chrono="0.4".
Which means that, when I added tapo as a dependency, chrono's latest version was 0.4.24. And given the tapo's requirements haven't changed, it keps this version.
So I think the tapo crate should specify chrono="0.4.25" instead to ensure it will be no less than that version.

I compile on Win11, and when running it for P100 (hw 2.0) I get this:
Error: Other(Local hash does not match server hash)

@TTSKarlsson, can you please prepend your command with RUST_LOG=debug and post here the Device inner response decrypted output line that occurs just before the error?

So I think the tapo crate should specify chrono="0.4.25" instead to ensure it will be no less than that version.

Yep, I will add it like so. I was not aware previously that tapo is not compatible with any chrono 0.4 version.
Meanwhile, I hope that cargo update solved your problem?

→ rust/tapo git:(main) ⋗ cargo run --example tapo_p100
    Finished dev [unoptimized + debuginfo] target(s) in 0.43s
     Running `target\debug\examples\tapo_p100.exe`
 2023-09-15T08:49:02.807Z DEBUG tapo::api::api_client > Device url: http://<IP_ADDRESS>/app
 2023-09-15T08:49:02.807Z DEBUG tapo::api::protocol::discovery_protocol > Testing the Passthrough protocol...
 2023-09-15T08:49:02.808Z DEBUG tapo::api::protocol::discovery_protocol > Component negotiation request: {"method":"component_nego","params":null}
 2023-09-15T08:49:02.858Z DEBUG tapo::api::protocol::discovery_protocol > Device responded with: TapoResponse { error_code: 1003, result: None }
 2023-09-15T08:49:02.858Z DEBUG tapo::api::protocol::discovery_protocol > Not supported. Setting up the Klap protocol... 2023-09-15T08:49:02.860Z DEBUG tapo::api::protocol::klap_protocol      > Performing handshake1...
 2023-09-15T08:49:02.868Z DEBUG tapo::api::protocol::klap_protocol      > Handshake1 OK
 2023-09-15T08:49:02.868Z DEBUG tapo::api::protocol::klap_protocol      > Performing handshake2...
 2023-09-15T08:49:02.876Z DEBUG tapo::api::protocol::klap_protocol      > Handshake2 OK
 2023-09-15T08:49:02.876Z INFO  tapo_p100                               > Turning device on...
 2023-09-15T08:49:02.876Z DEBUG tapo::api::api_client                   > Device info will change to: Object {"device_on": Bool(true)}
 2023-09-15T08:49:02.876Z DEBUG tapo::api::protocol::klap_protocol      > Request to passthrough: {"method":"set_device_info","params":{"device_on":true},"requestTimeMilis":1694767742876,"terminalUUID":"00-00-00-00-00-00"}
 2023-09-15T08:49:02.971Z DEBUG tapo::api::protocol::klap_protocol      > Device responded with: "{\"error_code\":0}"
 2023-09-15T08:49:02.972Z DEBUG tapo::api::protocol::klap_protocol      > Device inner response: TapoResponse { error_code: 0, result: None }
 2023-09-15T08:49:02.972Z INFO  tapo_p100                               > Waiting 2 seconds...
 2023-09-15T08:49:04.981Z INFO  tapo_p100                               > Turning device off...
 2023-09-15T08:49:04.981Z DEBUG tapo::api::api_client                   > Device info will change to: Object {"device_on": Bool(false)}
 2023-09-15T08:49:04.982Z DEBUG tapo::api::protocol::klap_protocol      > Request to passthrough: {"method":"set_device_info","params":{"device_on":false},"requestTimeMilis":1694767744982,"terminalUUID":"00-00-00-00-00-00"}
 2023-09-15T08:49:05.055Z DEBUG tapo::api::protocol::klap_protocol      > Device responded with: "{\"error_code\":0}"
 2023-09-15T08:49:05.055Z DEBUG tapo::api::protocol::klap_protocol      > Device inner response: TapoResponse { error_code: 0, result: None }
 2023-09-15T08:49:05.055Z DEBUG tapo::api::api_client                   > Get Device info...
 2023-09-15T08:49:05.055Z DEBUG tapo::api::protocol::klap_protocol      > Request to passthrough: {"method":"get_device_info","params":null}
 2023-09-15T08:49:05.069Z DEBUG tapo::api::protocol::klap_protocol      > Device responded with: "{\"result\":{\"device_id\":\"8022F9A89B15F45DD9B9949B1205BAC920A027ED\",\"fw_ver\":\"1.2.1 Build 230804 Rel.190922\",\"hw_ver\":\"2.0\",\"type\":\"SMART.TAPOPLUG\",\"model\":\"P100\",\"mac\":\"30-DE-4B-21-D0-8D\",\"hw_id\":\"4D44B233807D5BDA45BEC69DC18AAE09\",\"fw_id\":\"00000000000000000000000000000000\",\"oem_id\":\"6A0E161B05B8FB93E53988B66CE51E30\",\"ip\":\"<IP_ADDRESS>\",\"time_diff\":60,\"ssid\":\"RW1zaWU=\",\"rssi\":-46,\"signal_level\":3,\"auto_off_status\":\"off\",\"auto_off_remain_time\":0,\"latitude\":--,\"longitude\":--,\"lang\":\"en_US\",\"avatar\":\"juicer\",\"region\":\"Europe/--\",\"specs\":\"\",\"nickname\":\"UmVzaW4=\",\"has_set_location_info\":true,\"device_on\":false,\"on_time\":0,\"default_states\":{\"type\":\"last_states\",\"state\":{}},\"overheated\":false},\"error_code\":0}"
 2023-09-15T08:49:05.070Z DEBUG tapo::api::protocol::klap_protocol      > Device inner response: TapoResponse { error_code: 0, result: Some(PlugDeviceInfoResult { device_id: "8022F9A89B15F45DD9B9949B1205BAC920A027ED", type: "SMART.TAPOPLUG", model: "P100", hw_id: "4D44B233807D5BDA45BEC69DC18AAE09", hw_ver: "2.0", fw_id: "00000000000000000000000000000000", fw_ver: "1.2.1 Build 230804 Rel.190922", oem_id: "6A0E161B05B8FB93E53988B66CE51E30", mac: "30-DE-4B-21-D0-8D", ip: "<IP_ADDRESS>", ssid: "RW1zaWU=", signal_level: 3, rssi: -46, specs: "", lang: "en_US", device_on: false, on_time: 0, overheated: false, nickname: "UmVzaW4=", avatar: "juicer", has_set_location_info: true, region: Some("Europe/--"), latitude: Some(--), longitude: Some(--), time_diff: Some(60), default_states: PlugDefaultState { type: LastStates, state: PlugState { on: None } } }) }
 2023-09-15T08:49:05.071Z INFO  tapo_p100                               > Device info: PlugDeviceInfoResult { device_id: "8022F9A89B15F45DD9B9949B1205BAC920A027ED", type: "SMART.TAPOPLUG", model: "P100", hw_id: "4D44B233807D5BDA45BEC69DC18AAE09", hw_ver: "2.0", fw_id: "00000000000000000000000000000000", fw_ver: "1.2.1 Build 230804 Rel.190922", oem_id: "6A0E161B05B8FB93E53988B66CE51E30", mac: "30-DE-4B-21-D0-8D", ip: "<IP_ADDRESS>", ssid: "Emsie", signal_level: 3, rssi: -46, specs: "", lang: "en_US", device_on: false, on_time: 0, overheated: false, nickname: "Resin", avatar: "juicer", has_set_location_info: true, region: Some("Europe/--"), latitude: Some(--), longitude: Some(--), time_diff: Some(60), default_states: PlugDefaultState { type: LastStates, state: PlugState { on: None } } }
 2023-09-15T08:49:05.071Z DEBUG tapo::api::api_client                   > Get Device usage...
 2023-09-15T08:49:05.071Z DEBUG tapo::api::protocol::klap_protocol      > Request to passthrough: {"method":"get_device_usage","params":null}
 2023-09-15T08:49:05.095Z DEBUG tapo::api::protocol::klap_protocol      > Device responded with: "{\"result\":{\"time_usage\":{\"today\":515,\"past7\":5834,\"past30\":11687}},\"error_code\":0}"
Error: Serde(Error("missing field `power_usage`", line: 1, column: 66))
error: process didn't exit successfully: `target\debug\examples\tapo_p100.exe` (exit code: 1)

I removed the detailed location data.

Thank you. Were you always experiencing these errors, or did they start occurring after recent firmware upgrades?
Anyway, it appears that P100 currently provides less energy monitoring data than the lightbulbs. Therefore, I will update the object definitions accordingly. I expect to have the fix ready within the next 24 hours.

Anyway, it appears that P100 currently provides less energy monitoring data than the lightbulbs. Therefore, I will update the object definitions accordingly. I expect to have the fix ready within the next 24 hours.

My P100s doesn't have any energy monitoring data, it's all on the 10/15s

Version v0.7.4 should fix both issues.


Online Users Not Isolated By Rooms

All online users appear, not just online users for the room.

Resolved. New list created for the room object (room.users) to hold all the users. Global users array not being used at the moment.


Update for django 3.x

Updated to allow this app to work with Django 3.x by removing reference to python 2 specific code without breaking backwards compatibility (i.e. usable with Django < 2 with python 2.x).

Django dependency in setup.py may need to be limited to <= 3.1
Django-redis module updated to something more contemporary - don't know why it was previously limited but so far seems to work fine.

Currently testing this in a full async Django install (Nginx + daphne + websockets enabled), but tbh the site in question does not yet use a lot of the async capability; some are planned. The currently staged/beta app seems to work and passes all unittests.

Thank you for the PR, I'm a little busy right now so I can't fully review until this weekend. But what I see so far LGTM.

@hsenot Yes, it probably makes sense to make another release.


Support custom cursor style

Support custom cursor style like Chrome.

Ref:
https://chrome.google.com/webstore/detail/custom-cursor-for-chrome/ogdlpmhglpejoiomcodnpjnfgcpmgale
https://custom-cursor.com/en/how-to-use/chrome

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Part 2: Add headless useFetchye

Added Headless mode via using the new useFetchyeContext hook that includes useReducer based fallbacks when context is empty. Hooks can function provider-less now.
Added initialData option to useFetchye Hook for Next.JS style SSR

:tada: This PR is included in version 1.0.0-beta.1 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


maya-agent iscsi operations using cobra-cli

Is this a BUG REPORT or FEATURE REQUEST?
Choose one: BUG REPORT or FEATURE REQUEST
FEATURE REQUEST

What happened:
maya-agent should support CLI for iscsi discover, login, logout, list devices, create partition, format, mount, unmount and delete partition.
How to reproduce it (as minimally and precisely as possible):
maya-agent device list
maya-agent device discover --portal <IP_ADDRESS>
<IP_ADDRESS>:3260,-1 iqn.2016-09.com.openebs.jiva:ganesh
maya-agent device login --portal <IP_ADDRESS>
Login to [iface: default, target: iqn.2016-09.com.openebs.jiva:ganesh, portal: <IP_ADDRESS>,3260] successful.
For logging into multiple discovered devices,
maya-agent device login --portal all
Login to [iface: default, target: iqn.2016-09.com.openebs.jiva:ganesh, portal: <IP_ADDRESS>,3260] successful.

maya-agent device partition-create --disk sdd --start 0 --end 100
maya-agent device partition-delete --disk sdd --number 1
maya-agent device format-mount --partition sdd1
maya-agent device unmount sdd1
maya-agent device logout --portal <IP_ADDRESS>
To logout all logged in devices,
maya-agent device logout --portal all
Anything else we need to know?:

As discussed, the above commands will be modified in such a way:
1.Partition will not be implemented
2.Formatting and mounting will happen directly on the disk
3.iscsi operations and device operations are created as separate issues(this issue is for iscsi)


How to create custom WalletConnector?

Now only these.
export type WalletConnector = InjectedConnectorType | WalletConnectConnectorType | WalletLinkConnectorType | GnosisSafeConnector | MagicConnector;

@The-Lion-King we just released a new package @thirdweb-dev/wallets which now contains all our wallet implementations. You can create a custom one by extending AbstractClientWallet.

@The-Lion-King We have also added docs for creating a custom connector/wallet and integrating with the Connect Wallet button
https://portal.thirdweb.com/wallet/build-a-wallet


How not to use "item_id"?

I have a dataset with only 1 time series array, so item_id is always the same, which is equivalent to not to use it. On the Demo you mention:
The item_id is required only when your dataset has multiple series. However its not working when not specifying this parameter, similarly when using PandasDataset(dfs_dict, target="target"). Do you have any suggestions on how to adapt the data on this case?
Thanks a lot

Hi! I haven't tested it with a single series; maybe it still needs an item_id - I'll check it.
For the time being, can you specify a random (constant) item_id in the item_id column, and see if it works? It shouldn't have any effect on the predictions; it is just for the PandasDataset.

I have a dataset with only 1 time series array, so item_id is always the same, which is equivalent to not to use it. On the Demo you mention: The item_id is required only when your dataset has multiple series. However its not working when not specifying this parameter, similarly when using PandasDataset(dfs_dict, target="target"). Do you have any suggestions on how to adapt the data on this case?
Thanks a lot

If an error appears you can set item_id to 'A' just to justify the model you have just one time series array. I used it for just one array in 'df_wide' in the third section of the demo code and it works without 'item_id'.

i believe if you pull now you should not see this issue

Hi @sebasmos, can you confirm if the issue still exists please?

Yes thanks, the issue was also my own data, which I hadn't noticed it had some missing values. Part 3 of the demo works for me, thanks a lot!


Create BaseResourceCollection

Implement BaseResourceCollection so we can create more resource collections.

What responsibility does the BaseResourceCollection have? Why would Pieces simply be a collection? I would opt to not have a separate class until it is required and has added value.

@Thorry84 The shipments api returns multiple shipments. If this pr gets merged, I will make a shipments collection so we can get multiple labels from the dhl api.

I understand, but why not make it a collection? What does the BaseResourceCollection class add, other than being an extra wrapper?

@Thorry84 It adds a default constructor so you can add objects or arrays.
@mvdnbrk Do you have time to look at this PR?

At the moment I don't see the need for a BaseResourceCollection.
We could simply turn the Pieces class into a PiecesCollection class which extends the Tightenco\Collect\SupportCollection class.
If needed we can always refactor this to some sort of BaseResourceCollection.


FIX: Array encoding

Without the changes it would fail with a runtime exception

will debug the test failures

My take: https://github.com/plausible/ch/pull/74

@Zarathustra2 thank you for catching this issue :) It was pretty big one 🙈

No worries, thanks for fixing it! @ruslandoga
Could you update chto as well so I can update my production code with the fix?

I think you can mix deps.update ch since chto depens on “~> 0.1.0”

On 24 Apr 2023, at 21:06, Dario Heinisch @.***> wrote:

No worries, thanks for fixing it! @ruslandoga
Could you update chto as well so I can update my production code with the fix?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.

ahhh true!!! :)


IF Statement FAILS on string compare with spaces

Description
IF Statments will always return FALSE if you compare a variable with a string with spaces in it.
To Reproduce

run the following script:

SET init=this is a test.
IF %init%==this is a test. ECHO This won't be said

Observe that there is no output in the chat, because the conditional returned false.

Expected behavior
String compare should consider the FULL string rather than one word.
Affected Versions

v2.0.1225.2416 and later.

Known workaround
Only compare variables.

For now, this issue will be left closed as "Eventually..." The current workaround is actually not a bad design choice, and will allow for a cleaner script in the long run... However, maybe in the future I will re-write the system before a major release.


Do we have a sample code over JavaScript?

[Enter feedback here]
Hi, do we have a sample code over JavaScript about "PowerBIEmbedded_AppOwnsData sample".
Thanks!

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

ID: 8345d077-5dab-e3b0-4109-facb509c8b68
Version Independent ID: c666ff4f-6f8d-28b6-c4cf-57f433fc2688
Content: Using row-level security with embedded content in Power BI embedded analytics - Power BI
Content Source: powerbi-docs/developer/embedded/embedded-row-level-security.md
Service: powerbi
Sub-service: powerbi-developer
GitHub Login: @KesemSharabi
Microsoft Alias: kesharab

Hi @suuuuuper,
There are many code samples in the PowerBI-Developer-Samples GitHub folder. I hope one of them can help you.
If you're referring to a row-level security (RLS) code sample, I'm not sure we currently have one. However, we're working on updating the RLS documents, and may have such code snippets in the future.
You can also look for a solution in the Power BI Community or our support page.
Hope this helps,
Kesem


apt package manager version is behind

Hello
I installed SE on few Debian and Ubuntu systems with apt install softether-vpnserver but the version was 5.01 Build 9674 which is behind the latest release in this repository 5.02.5180.
Who's supposed to update this?
P.S. I know I can compile the latest release myself but this way is much more convenient and I prefer this way so I would appreciate it if it was the latest release.

You should ask the maintainer of that package.

@AuthorShin
Just asking: Do you know that 5.01 and 5.02 are developer versions, not stable ones?
The main developers on the forum recommended me yesterday to use the last stable version, which is:
4.38
You may download directly from the: Official page
... and install it manually?
I will need to do the same soon (install to a Debian VPS), so I would appreciate if you could report back, how it went...


Cannot invoke method if the script file name contains hyphens

For example, we have a scripts with the name pipeline-script.Jenkinsfile
And it contains the following code
def hello() {
    println "hello"
}
hello()

If we invoke loadScript('pipeline-script.Jenkinsfile') in tests we will get java.lang.ClassFormatError: Illegal class name "pipeline-script$hello" in class file pipeline-script$hello
However if we remove a hyphen in the script name(pipelinescript.Jenkinsfile) it will run without exceptions.
Jenkins pipeline plugin allows using scripts with any characters. So if our scripts contains hyphens we have to rename them for testing.

Hi @vitalii-vitrenko,
I cannot reproduce this issue. I am thinking that it is linked to GROOVY-7670.
Are you testing on Windows ?

Hi @ozangunalp
Yes, it seems this is a groovy issue.
I tried both Windows 10 and Ubuntu 16.04 and got ClassFormatError on both.

I added an appveyor build to the project but it seems to be passing the tests.
I suggest you to test out different combinations of JDK/Groovy.
It seems to pass on Groovy 2.4.5/2.4.6 on jdk1.8.0_77 Mac OS

@vitalii-vitrenko any news on this issue ?

I tried several version of groovy and Mac OS but this issue still persist. But if it is related to GROOVY-7670. and not to JenkinsPipelineUnit I don't mind if you close this ticket.


Import with typescript

Hi,
Seems that this module is a webpack module.
So, how can i import this module in typescript ?
Doing "import {ORM} from 'redux-orm'" doesn't work because ORM is uneefined.
Thank you.

I've just created TypeScript definitions for the latest release of Redux-ORM. You can try using them, but they're still in alpha. Install instructions

Closing due to inactivity.


Add cpu cfs quota to build

Signed-off-by: Lei Jitang<EMAIL_ADDRESS>The cpu cfs quota should also applied on docker build

LGTM

LGTM, there is a minor change in the docs, does it need docs review?
/cc @moxiegirl

oh no needs a rebase :(

then we can merge :)

ping @jfrazelle rebased

LGTM


CI tests fix

Current coverage is 52.45%

Merging #11 into master will increase coverage by +0.91% as of 236a7a4

@@            master     #11   diff @@
======================================
  Files           39      39
  Stmts          745     753     +8
  Branches        57      58     +1
  Methods                  0
======================================
+ Hit            384     395    +11
  Partial         20      20
+ Missed         341     338     -3

Review entire Coverage Diff as of 236a7a4

Powered by Codecov. Updated on successful CI builds.


how to post with windows-1251 charsets

hot to post with encoding like that:
List<NameValuePair> values..

((HttpPost) request).setEntity(new UrlEncodedFormEntity(values, "windows-1251"))

Please use StackOverflow for usage questions.


better intra-page navigation

Perhaps my use case is not standard as the content is not strictly sequential.  Instead, each cell is responsible for specific analysis of a particular part of the dataset and then the results are aggregated into one HTML cell at the top.  So there is a report cell, a formatting cell with CSS for the report, initialization cells for Python and Javascript and then one Python and one Javascript cell for each analysis section.
In other words, the notebook page is getting long and I have constantly scroll up and down to jump from cell to cell depending on which part of the report I'm working.  Some sort of a navigational widget, like a floating table of content, would be very useful.

yes a table of contents is a good idea.  it has come up a few times, though the only place i can find in the issue tracker is here: https://github.com/twosigma/beaker-notebook/issues/3785
there is a big UI redesign on the horizon and this was mentioned for that.


date coercion should handle invalid records

Invalid date formats raise an error, but should perhaps return a null value instead. Likely due to to_datetime default of raise: https://docs.dask.org/en/stable/generated/dask.dataframe.to_datetime.html
https://github.com/edanalytics/earthmover/blob/b5d0d1ac4fdfb468d32a4242ba11b2e118513f5f/earthmover/operations/column.py#L609

There is an optional argument errors in pd.to_datetime() for handling errors like these. The default is set to 'raise' an exception if a row cannot be parsed. Other options are to 'coerce' the invalid value to NaT (i.e., NaN for datetimes), or to 'ignore' the invalid value and pass it through. We can change the default to whichever choice is preferable, or we can let the user specify in the Earthmover config YAML on how they want to tackle the problem on a case-by-case basis.
Additionally, we may want to add a check on the compile step to make sure the user has input a valid from_format string, as we do with other user-provided parameters in the Earthmover config file.
As an aside, because pd.to_datetime() (and many other pandas/dask methods) has many optional arguments, and because we can't codify all of them as Earthmover arguments, we may want to provide a path for the user to input kwargs that can be passed directly to the function. These would supercede Earthmover arguments and would not undergo the same datatype validation as Earthmover arguments. Just food for thought for a possible new extension to Earthmover.

This feature was added in Earthmover 0.3.0 using the ignore_errors field.


Add pause functionality

Do we need this? I thought this could be achieved like this
const { player } = useNowPlaying();

play.pause();

Do we need this? I thought this could be achieved like this

const { player } = useNowPlaying();

player.pause();

That works as well but I figured it would match the Readme and it is intuitive to import pause along with play & stop. It's your call!


DIST packaging changes note formatting

In the larger scheme of things this is a trifling problem but I thought I'd mention it anyway.
I use finaleplugin.Notes as the text source for INFO pages in dialogs. These are carefully formatted for the best in-dialog display but the formatting gets chewed up in the DIST packaging - even just by deleting carefully placed blank lines. Don't know why these  line deletions in the SRC files are desirable - the file size saving is negligible.
... so if that process is getting updated any time ...

The finaleplugin.Notes field is markdown, or at least a subset of markdown. It doesn't seem like a good fit for displaying raw to users, whether processed or not. If anything, I hope the future moves towards a more complete implementation of markdown for finaleplugin.Notes, which will make it even less suitable for displaying raw to a user.
The next version of RGP Lua will be introducing a new FCCtrlTextEditor control. It is a full-blown text display and editing control that can take rich text or enigma strings and format them for display or editing. (You can then extract the edited versions, with formatting.) If you want to display an info page, that's what I would recommend you use. Maybe you could design it in an editor and export the rich text to be included in your script or config data. It may even be able to display embedded graphics. I haven't tested it, but it might work.
I will be introducing two scripts that make use of a fairly wide range of the capabilities of the control. One is a Lyrics Hyphenator that basically replaces the Lyrics Window but includes ChatGPT prompts for automatic hyphenation. The other is (finally) a simple programming console for ad hoc scripts or just to run a script that isn't configured. It basically has all the most important features of JW Lua's dev window plus some additional goodies.

FCCtrlTextEditor and all the other enhancements for RGP 0.67+ sound great. An ever-bigger leap forward!
I'm using finaleplugin.Notes for INFO pages to avoid duplicating the text, and never use Markdown properties, except forcing the odd line break. (Plain text is fine for my purposes). But that remains a current problem within finaleplugin.Notes (at least as rendered on finalelua.com) because the DIST packaging process is removing empty lines in all multiline strings, including those within plugindef(), so wrecking any Markdown employed therein. It's been doing that since April or so, though not (AFAICT) on older files.

Wow… that sounds amazing!!

On Nov 12, 2023, at 6:56 PM, rpatters1 @.***> wrote:
The finaleplugin.Notes field is markdown, or at least a subset of markdown. It doesn't seem like a good fit for displaying raw to users, whether processed or not. If anything, I hope the future moves towards a more complete implementation of markdown for finaleplugin.Notes, which will make it even less suitable for displaying raw to a user.
The next version of RGP Lua will be introducing a new FCCtrlTextEditor control. It is a full-blown text display and editing control that can take rich text or enigma strings and format them for display or editing. (You can then extract the edited versions, with formatting.) If you want to display an info page, that's what I would recommend you use. Maybe you could design it in an editor and export the rich text to be included in your script or config data. It may even be able to display embedded graphics. I haven't tested it, but it might work.
I will be introducing two scripts that make use of a fairly wide range of the capabilities of the control. One is a Lyrics Hyphenator that basically replaces the Lyrics Window but includes ChatGPT prompts for automatic hyphenation. The other is (finally) a simple programming console for ad hoc scripts or just to run a script that isn't configured. It basically has all the most important features of JW Lua's dev window plus some additional goodies.
—
Reply to this email directly, view it on GitHub https://github.com/finale-lua/lua-scripts/issues/604#issuecomment-1807401525, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMCBUQ2KHMINE7IG354X77LYEGD63AVCNFSM6AAAAAA7IIZUW2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBXGQYDCNJSGU.
You are receiving this because you are subscribed to this thread.

I see these issues:

Scripts in this repo are part of the repo and so should not be using developer-specific conventions. A future contributor who does not know about the INFO window convention could end up introducing markdown into the Notes that messes up the INFO window.
The Notes should be using markdown. (And indeed, I looked at some of @Carls's and they do at least use ticks for code blocks.) The whole point is to make the site more inviting and informative to users. Restricting yourself to the subset that works for both the site and an INFO window means no text formatting in either.
Who are the INFO windows for? Is it really necessary to duplicate the info in the script and on the website? If it is important to have it both places, maybe we should build that into all of the scripts using some sort of convention. Or, alternatively, would it be possible to simply launch a link? One of the small annoyances of the current site is that there is no way to deep-link to a specific script's online notes. I think that is a mod we should look at as well, if we ever get the site to build again.
Personally, I think an INFO window inside the script is going to need different text than the markdown in the Notes, and trying to keep them the same will hurt both formats.

If we ever get the site to build again, we can look into not modifying the Notes. I'm pretty sure the code right now is compressing wherever possible, just because the dist scripts get really big. But for now I'd just like to see the site build at all. Ultimately a better solution might be to come up with a convention for all scripts and use a tool like pandoc to convert the notes into a format that is appropriate for user display inside a script.

Good point all @rpatters1. Just to say that judging by FB feedback, some (many?) of our users don't bother to read plugindef.Notes, and presenting that Info right in the user dialog is massively convenient for everyone, especially in scripts with many moving parts like my measure_span.lua. One benefit of Markdown is that reading **bold** isn't much worse than reading bold, and in-dialog Notes don't need to be pretty just informative. But retaining correct line breaks is **_really important!_**

There probably isn't much else to say here so if there's no other input I'll close this issue in a few days.

I would leave it open. If the website ever gets fixed, we might want to do something about it.

In case this ever gets fixed, I also flag that trailing spaces on every line are being cropped, which also destroys Markdown formatting, as well as my attempts to retain line formats in internal "info_notes".

@cv-on-hub Can you point me to a specific example of these changes in src/dist?

Compare /src/cross_staff_offset.lua (lines 17-21) with dist/cross_staff_offset.lua (lines 4966-4969).  Blank lines and spaces at the end of every line are removed. Which is true in every line of every dist file.
The same is true for all multi-line text selections so I now take preventive measure to retain text spacing for "Info" listings in dist files. As here: /dist/cue_notes_overlay.lua

Okay, this looks like a (possibly unintentional) side effect of a function in the bundler that removes comments. It's probably possible to make the bundler smarter so that it leaves Notes alone.
In many scripts, the Notes are just a description of what the script does; others use the Notes for more detailed usage instructions. Since the Notes can use Markdown, I think it would be nice to be able to use them to display formatted text in the new FCCtrlTextEditor that Robert has introduced.
I could imagine modifying the bundler so that it takes the Notes and does Markdown to HTML to RTF, which I think could then be used in the editor control. There could be a library function to facilitate this -- basically encapsulating what Carl does -- but no script would be required to make use of it.

I understand the bundler is trying to keep file size down, and dist files don't really need to be human-readable, but losing a byte here and there on trailing spaces and 2 bytes for each blank line seems to lose a lot more than it gains. If it's specifically aiming at extended comments surely it could aim more precisely at "--" and "[["..."]]"?

What tool would we use to convert markdown to RTF? Does pandoc do it? I'm wondering if there's a tool that would be easy to embed. If Notes will be auto-converted from markdown to rtf by the build, it would be difficult to test what it looks like from the src without some integrated tool.

I'm not sure, just started poking around. I think the likeliest route is md->html->rtf. There are lua libraries for the first part, but likely not for the second.
I haven't worked with FCCtrlTextEditor -- is it possible to enhance it so that it can also render HTML, or is that an big lift?

I think it's a big lift. The OS controls have built-in support for RTF, but not (sfaik) html.

The Markdown in Notes should be fairly simple: bold, italic, lists, headings, code, maybe tables. In the website repo, I recently made a change so that the Markdown parser spits out exactly the HTML we want, with classes. I could use the same technique to have the parser emit RTF instead of HTML. I wouldn't generally want to have to write RTF by hand, but the RTF needed for this reasonably constrained subset of HTML wouldn't be that big a deal.
The parser for the website is in JS. That could be incorporated into the build process for the scripts, but as Robert suggests, that makes it harder to preview. It looks like there is also a parser in lua which similarly allows for modification of the emitted text. I'll play around with this a little, see what I can get working.

Hmm, it has several dependencies, probably not a great candidate for embedding in RGPLua. I'll do a POC with the JS parser, just to see if I can get RTF working.

The pandoc utility lists rtf as an output format. I haven't tried it, but if it works, it should  be easy for a developer to get a preview with that by running it with os.execute against the contents of the Notes.

Actually, pandoc does a nice, minimal md to rtf. We could just use that in the build process.

I have a working POC of this, with notes converted to RTF during the build process.

@rpatters1 How do I get the text control to have nothing selected and scroll to the top? In my code (largely cribbed from your sample, which has the same issue), I wind up with everything selected and scrolled to the bottom.
local function show_notes_dialog()
    local dlg = finale.FCCustomLuaWindow()
    dlg:SetTitle(finale.FCString("Notes Test"))
    local edit_text = dlg:CreateTextEditor(10, 10)
    edit_text:SetWidth(400)
    edit_text:SetHeight(180)
    edit_text:SetUseRichText(true)
    edit_text:SetReadOnly(true)
    edit_text:SetWordWrap(true)

    dlg:RegisterInitWindow(
        function()
            edit_text:SetRTFString(finale.FCString(finaleplugin.Notes))
            edit_text:SetSelection(finale.FCRange(0, 0))
            edit_text:ScrollToTop()
        end)
    dlg:ExecuteModal(nil)
end

This is a "feature" of windows that when you tab into the field, it selects the entire text, which scrolls it to the bottom. And when there is only one field, that's where it goes first. I'm not sure how much I can do. Maybe offer an options to make the text un-selectable. But that's fairly user-hostile.
Add a control ahead of it, and see if the problem doesn't go away.
As long as I'm responding, I am thinking this may need to be an optional build option. Perhaps with another finaleplugin flag, but I would prefer another mechanism if it is possible. At some point I may want to build into RGP Lua an info window similar to the one JW Lua has for each script, and I wouldn't want to have to guess what the format of the text is. I can't assume every user has pandoc either.

P.S. It might be possible to suppress the tabbing behavior by settin the edit focus to the Ok button, if you add one.

What if I put the RTF notes into a different property, like finaleplugin.RtfNotes? Then your info window could always rely on Notes being text (or markdown) and just ignore RtfNotes.
Setting focus to the Ok button works like a charm, thanks!

Call it RTFNotes, in keeping with HashURL where the acronym is all-caps.

I'm not sure what till happen with your test script on mac. (I've forgotten.) If you want me to try one, send it to me.

With the merging of #665 and #666, we now have:

Whitespace in finaleplugin.Notes is not mangled
Any text or Markdown in Notes is transformed to RTF in finaleplugin.RTFNotes in the dist script file
Utility function utils.show_notes_dialog() will display a basic dialog with the contents of RTFNotes

@cv-on-hub, any need to keep this issue open?

Haven't had time to test it all yet but if all that is true then the issue is solidly closed.

RTFNotes looks great, and I realise this isn't rendering Markdown, so we can't retain nicely formatted bullet lists or tab spacing using md code. But that isn't the end of the world. I also discovered a problem here where some of the original list lacked 2 trailing spaces at the end of lines so the newline wasn't forced. (Hard to track that in the input phase).
Also - Arial 10-point is very squinty on my system. Is 12-point a reasonable compromise? And is it a problem hard-wiring coded RTF into  the dist files, making it hard to change later? Is it acceptable for authors to include our own RTFNotes for script rendering, alongside plugin.Notes for markdown display on the website?

The RTF is generated by pandoc directly from Notes -- if Notes uses Markdown, then pandoc will convert that into RTF. I've found that it handles bullets and numbered lists quite well, in addition to bold, italic, and headings, and inline and fenced code. I'll take a look at the example you pointed out to see why it didn't convert as expected.
As for font size, I don't think there will be something that looks ideal on all systems, given different OSes and monitor resolutions. On Windows, Arial 10 displays larger than the default text in a dialog box, so it seems fine to me, but I'm not opposed to changing it to some other reasonable default.

And if the source script already has an RTFNotes, then the build process will leave it alone.

Ah, it looks like the issue was not the trailing spaces on the list lines, but the fact that there was no blank line between "KEY COMMANDS" and the list.

@cv-on-hub You might want to consider using inline code or bold to indicate your keypresses, instead of brackets. I notice that you use [x], but in Markdown that represents a completed task, and pandoc interprets it that way:

Sorry if I'm slow on the uptake sometimes but I've sorted this out in my head and can now see how powerful this addition is to the repo - on top of curing the missing whitespace problem.
In case it helps others, I found out it's really easy to install pandoc on MacOS, and not hard to get KeyboardMaestro to pass Markdown text to it (via the system clipboard) and get an economical RTF render ready to paste into finaleplugin.RTFNotes. Powerful!

One of the goals here was to make the process as transparent as possible, so that the auto-generated RTF gives a reasonable (and largely consistent) presentation of the content in almost all cases. If you've got suggestions for changing the defaults, then let's discuss.
RTF is an opaque and finicky format; if someone is going to be writing and tweaking Markdown in order to generate your own RTF, why not just use that Markdown in the Notes field and let the build process take care of the rest? Of course, if you want to generate RTF so that you can test the visual display locally, that's fine too, but in that case it's probably not necessary to commit the RTF with your script. (Among other things, if someone chooses to commit their own RTF, then they're responsible for keeping it in sync when fixing typos or making changes.)

The default font size in utils.show_notes_dialog() remains illegible for me so I've submitted a PR suggesting a fourth optional input parameter, fontsize.
So my initial drive was to force a larger font size in self-minted RTF. I like using literal tab chars for formatting (which seem to register in Fin-dialogs on both Win and Mac) and haven't found any way to represent those in Markdown, and pandoc replaces them with single spaces when converting to RTF. They still read when inserted into raw RTF and as long as this survives /dist packaging it is a solution. Other solutions happily considered.
I'm having some other odd renderings from Markdown in plugindef.Notes but will let you know if I can identify clear problem spots. It is handy to now have at least some mechanism to preview Markdown before packaging.

There final skerricks of this issue are now addressed in PR #676 and this can go to bed.


added class api endpoints

Task Done:

Added /api/class API endpoints
Updated listeners to listener ( because listeners is showing as a keyword )
added app.listen into mongoose.connect().then block ( i follow this convention to listen to port once the database is connected )

Thank you. Let me know if you want to change anything.


crypto: post-quantum support roadmap

With the publication of the NIST PQ drafts FIPS 203, FIPS 204, and FIPS 205 and the beginnings of industry adoption of said algorithms (i.e. https://blog.cloudflare.com/post-quantum-for-all/, https://blog.chromium.org/2023/08/protecting-chrome-traffic-with-hybrid.html, etc), we are starting to look at what post-quantum support will look like in Go.
This issue is not going to propose any specific APIs, and is instead meant to lay out the way we intend to approach decisions about what algorithms we will adopt, and the manner in which we will adopt them.
Generally, we are quite conservative about what cryptographic algorithms we choose to support. In part this is because we have a significant maintenance burden once we adopt an algorithm, but also because we want algorithms that are stable (i.e. unlikely to significantly change in the future), and are already being actively used in the wider ecosystem. There are many PQ algorithms which are still experimental, or have found no wider industry adoption as of yet, which do not meet the bar to be included in the standard library, and make more sense being implemented in third-party modules.
When thinking about what PQ algorithms we want to provide support for, the first hurdle is whether that algorithm will actually be used in the standard library itself. What I mean by this is that, at least to begin with, we don't want to introduce support for algorithms which we will not be using ourselves. This means that our choices of initial algorithms are extremely likely to be driven by the adoption decisions made for the TLS protocol (and by extension the X509 web PKI).
Additionally our initial implementations are likely to only be available internally, at least to begin with (i.e. they will not be implemented in public facing libraries which users can directly use). This gives us the opportunity to gain experience with these new algorithms before we commit ourselves to an API design that we'll likely be stuck with for a significant amount of time. Once we are confident that we fully understand the ways users are expected to handle (and mishandle) these APIs we'll propose public APIs.
What's First
The first step in our PQ implementation plan is adding support to the now widely implemented hybrid X25519/Kyber (X25519Kyber768) KEM for TLS, or a successor version, hopefully in Go 1.23. This will provide TLS client/server interoperability with the other public implementations, and provide deployment experience with this new KEM.
This feature will be transparent to users, providing no public Kyber API, and likely will be gated behind a GODEBUG option.
cc @FiloSottile

call me naive, but is this really something that needs to be in the standard library? I know Filippo and others are really passionate about crypto, I get and respect that. but one thing I DON'T want to see with Go is that is become the next Python, with a giant standard library (if its not already that). we have to draw the line somewhere, and in this case the proposed package(s) seem clearly on the "do not add" side (to me).
I invite counter arguments, I dont mind being proven wrong  here, but I DON'T think it should just be assumed that this needs to be in the standard library. post-quantum crypto is in its infancy as I understand it.

@FiloSottile What about the Streamlined NTRU Prime algorithm used by OpenSSH?

Wondering why only crypto/internal/mlkem768 has been added, what is the reason to skip mlkem512 and mlkem1024 described in FIPS 203? Don't think that this "partial" implementation which leads  to use third party libraries instead built-in is good idea.

Also, when will the mlkem768 implementation be ready for use/be exposed outside of internal?

In contrast, I strongly encourage to continue been opinionated and implement whatever you think it is the best/faster/safer now and not everything under the sun.  And make hard choices of sane defaults, never let that to the application.

not everything under the sun

Go could be helpful see:
https://eprint.iacr.org/2022/337

@FiloSottile What about the Streamlined NTRU Prime algorithm used by OpenSSH?

Curious about this too?

We have no plans to implement any other PQ KEM than ML-KEM. Note that OpenSSH 9.9 added a ML-KEM hybrid, and we plan to support that in x/crypto/ssh soon.

We have no plans to implement any other PQ KEM than ML-KEM. Note that OpenSSH 9.9 added a ML-KEM hybrid, and we plan to support that in x/crypto/ssh soon.

@FiloSottile , by "soon" would that likely be Go1.24 which i suppose is around Feb 25?

Hey, I wanted to just ping this thread on if there is an ETA for FIPS 204 and 205 as well, seeing as to how 203 is implemented.

Signatures are lower on our priority list because they are not vulnerable to store-now-decrypt-later attacks and because it’s not as clear how and which to deploy, because none of the available ones are drop in replacements for every setting.
We plan to start with SLH-DSA (FIPS 205) because it is clearly optimal for some use cases: long-term conservative settings where small public keys are desirable and/or long signatures are acceptable, such as firmware signing.
It’s likely it will not be the only PQ signature we implement in the longer term, but we’ll decide also based on what ecosystems such as TLS and the WebPKI land on. (Note that NIST is running another competition for PQ signatures, too.)

I prefer SLH-DSA for document signing (including software/firmware) but currently CNSA 2.0 only lists ML-DSA among the algorithms I consider acceptable (stateful signatures is not something that should ever be implemented in software) for software/firmware signing.
Would be nice to see ML-DSA prioritized as well in case SLH-DSA does not get added to the list of valid algorithms as the clock is ticking. According to CNSA 2.0 software needs to be signed with PQ algorithms starting in 2025 ...

I'm super interested in something for firmware signing such as FIPS 205, so thats good news. Also still keen to know if ML-KEM will possibly be in Go1.24, can you give any hints @FiloSottile ?

About ML-KEM, #70122 is the proposal for the public package, which we hope to land in Go 1.24, as well as crypto/tls support per #69985. x/crypto/ssh is not in the standard library, so it doesn't follow the release cycle and we have no precise ETA for ML-KEM support, but it should be available by the Go 1.24 release at the latest.

Would be nice to see ML-DSA prioritized as well in case SLH-DSA does not get added to the list of valid algorithms as the clock is ticking. According to CNSA 2.0 software needs to be signed with PQ algorithms starting in 2025 ...

I'm afraid there's no chance we'll be able to add ML-DSA in Go 1.24, so we are definitely going to miss a 2025 deadline. Sounds like CNSA 2.0 is forcing some unfortunate choices here.

Would be nice to see ML-DSA prioritized as well in case SLH-DSA does not get added to the list of valid algorithms as the clock is ticking. According to CNSA 2.0 software needs to be signed with PQ algorithms starting in 2025 ...

I'm afraid there's no chance we'll be able to add ML-DSA in Go 1.24, so we are definitely going to miss a 2025 deadline. Sounds like CNSA 2.0 is forcing some unfortunate choices here.

If CNSA is “Commercial National Security Algorithm”, wouldn’t those who need to use CNSA also likely need to use HSMs for code signing?

You still need to verify the signatures, even if you use an HSM to generate them.


lzham_codec: add package

#include "string.h"  is missing for mingw

there is not malloc_usable_size in mingw. maybe need patch code.

Somehow the USE_ASSERT_MIMALLOC define is not being used in test but if I test locally with is-plat("windows"), the mimalloc define would be used

Somehow the USE_ASSERT_MIMALLOC define is not being used in test but if I test locally with is_plat("windows"), the mimalloc define would get used

you need add add_defines("USE_ASSERT_MIMALLOC") in package scope.


bounds.height must be greater than 0

OpenSeadragon fails in IE11 in my simple image example:

this.viewer = OpenSeadragon({
  element: this.container,
  tileSources: {
    type: 'image',
    url: this.source
  },
  showZoomControl: false,
  showHomeControl: false,
  showFullPageControl: false,
  minZoomImageRatio: 0.9,
  maxZoomPixelRatio: 1.7
});

I've tried playing around with the options and googling, but wasn't successful. Since this error isn't visible on the corresponding example of OpenSeadragon itself, I'm not sure about the reason. Is there anyone out there that can help figuring out the reason of this issue?

Interesting... Can you share a CodePen or something so I can take a look?

My mistake. I was reading currentSrc from an <img> inside a <picture> element, and this didn't work in IE11, even when using the picturefill polyfill (scottjehl/picturefill/issues/659). Therefore I was passing undefined to OpenSeadragon and thus, the error appeared. However, having a check of the img source would be a nice to have. But I can understand if you don't like it since this means that others could want other validations too.

I'm happy for more validations if you want to add them! We've been starting to add more asserts, for instance.


Allow strings to be compared.

This change lets strings be compared using comparison operators without generating an error.
Example test case fixed:
    assertTrue("abc" < "def", "Strings should be comparable")

Also fixes bug with backslashes in regex translation. Apparently Javascript needs a whole other level of backslashing backslashes.

Awesome, thank you for this! Do you have a test for the patterns/regex fix too?

I saw the problem when using inspect.lua, there is a line that replaces single backslashes with double backslashes using gsub. That broke the regex translation in starlight. Here is a simple test case:
assertEqual(('abc\\def'):gsub('\\', '\\\\'), 'abc\\\\def', 'Allow backslashes in regexes')

That's great, thank you. One last thing (which I should have spotted earlier) could you update the PR so that the base branch is the dev branch? Then it'll go into v0.2.0.

Switched to #28.


Langchain SQL Database Agent failed to find the view name in the MS SQL database.

I am trying to build a langchain SQL database agent where I want to query only one view for now. I have mentioned the view name in the System Prompt and I have passed view_support=True to the SQLDatabase constructor. When I run the query agent is trying to find out the tables instead views. I am sensing that agent has no method that can fetch the view names of the database, it is trying to call 'sql_db_list_tables' and then sql_db_schema.
look at the code below:
import os
from dotenv import load_dotenv

load_dotenv()

from sqlalchemy import create_engine

odbc_str = 'mssql+pyodbc:///?odbc_connect=' \
                'Driver={ODBC Driver 18 for SQL Server}' \
                ';Server=tcp:' + os.getenv("DB_SERVER")+';PORT=1453' + \
                ';Authentication=ActiveDirectoryPassword' + \
                ';DATABASE=' + os.getenv("DB_NAME") + \
                ';Uid='+os.getenv("UID")'+ \
                ';Pwd='+os.getenv("PWD")'+ \
                ';Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;'
print(odbc_str)
db_engine = create_engine(odbc_str)

from langchain.chat_models import AzureChatOpenAI

llm = AzureChatOpenAI(
    openai_api_type=os.getenv("OPENAI_API_TYPE"),
    api_version=os.getenv("OPENAI_API_VERSION"),
    azure_deployment=os.getenv("DEPLOYMENT_NAME"),
    model=os.getenv("OPENAI_CHAT_MODEL"),
    azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),
    temperature=0,
    verbose= True)

from langchain.prompts.chat import ChatPromptTemplate

final_prompt = ChatPromptTemplate.from_messages(
    [
        ("system",
         """
          You are a helpful AI assistant expert in querying SQL Database to
          find answers to user's question about database view: XXXXXXXXXX.vw_YYYYYYYYY
          where XXXXXXXXXX is the schema and vw_YYYYYYYYY is the view. You need to directly query
          this view: XXXXXXXXXX.vw_YYYYYYYYY for all user's questions.
          Note: DO NOT EXECUTE DROP, DELETE or UPDATE SQL QUERIES.
         """
         ),
        ("user", "{question}\n ai: "),
    ]
)

from langchain.agents import AgentType, create_sql_agent
from langchain.sql_database import SQLDatabase
from langchain.agents.agent_toolkits.sql.toolkit import SQLDatabaseToolkit

db = SQLDatabase(db_engine, view_support=True)

sql_toolkit = SQLDatabaseToolkit(db=db, llm=llm)
sql_toolkit.get_tools()

sqldb_agent = create_sql_agent(
    llm=llm,
    toolkit=sql_toolkit,
    agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True,

)

sqldb_agent.run(final_prompt.format(
    question="What is the Exposure for id: 574182 by type ?"
))

AGENT ANSWER:

Entering new AgentExecutor chain...
Action: sql_db_list_tables
Action Input: ""
Observation: xyz, abc, pqr
Thought:The table I need to query, XXXXXXXXXX.vw_YYYYYYYYY, is not listed in the database tables. I need to check the schema of the view to understand its structure and the fields it contains.
Action: sql_db_schema
Action Input: "XXXXXXXXXX.vw_YYYYYYYYY"
Observation: Error: table_names {'XXXXXXXXXX.vw_YYYYYYYYY'} not found in database
Thought:It seems like there is an error in finding the view XXXXXXXXXX.vw_YYYYYYYYY in the database. I need to inform the user about this.
Final Answer: I'm sorry, but it seems like the view 'XXXXXXXXXX.vw_YYYYYYYYY' does not exist in the database. Please check the view name and try again.

Finished chain.

One option is to override the sql agent action methods or add new methods, but I dont want to do do that as per prompt instructions it should successfully find the view in the schema and query.
Please help anyone has achieved this. Thanks in advance.

after following your suggestion to add view name in the include_tables I got below error:
ValueError: include_tables {'XXXXXXXXXX.vw_YYYYYYYYY'} not found in database

@dosubot the suggestion that you gave isnt working.

I resolved this issue by passing schema="abc" in the SQLDatabase class.

Hi @vishalpatidar00789
I'm also facing the same issue
Can you tell how you resolved it.
agent = create_sql_agent(         llm=llm,  # Passing the LLM explicitly here as well         toolkit=toolkit,         verbose=True,         handle_parsing_errors=True,         view_support=True       )

Hi!
I was working on the views a few days ago and faced the same issue.
I resolved it by simply adding view_support=True when initializing the db object:
db = SQLDatabase.from_uri(connection_url, view_support=True)


Update test for step 19 of authors project

Describe the Issue
A camper on the forum was unable to pass with the following code:
https://forum.freecodecamp.org/t/learn-fetch-and-promises-by-building-an-fcc-authors-page-step-19/672642
 <a href="${url}" class="author-link" target="_blank">
          ${author}'s author page
        </a>

This is was with this test
```js
assert.equal(document.querySelector('a')?.textContent, `${authorDataArr[0].author}'s author page`);
```

Adding the trim method here will fix this
updated test
```js
assert.equal(document.querySelector('a')?.textContent.trim(), `${authorDataArr[0].author}'s author page`);
```

Affected Page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/learn-fetch-and-promises-by-building-an-fcc-authors-page/step-19
Your code
see explanation above
Expected behavior
see explanation above
Screenshots
No response
System

Device: [e.g. iPhone 6, Laptop]
OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04]
Browser: [e.g. Chrome, Safari]
Version: [e.g. 22]

Additional context
No response

This has been opened for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors.
If you would like to contribute and have not read the contributors docs, please do so here: https://contribute.freecodecamp.org/#/
If you have any issues with contributing, be sure to join us on the contributors channel, or on the contributors sub-forum
Files that need to be changed
https://github.com/freeCodeCamp/freeCodeCamp/blob/main/curriculum/challenges/english/15-javascript-algorithms-and-data-structures-22/learn-fetch-and-promises-by-building-an-fcc-authors-page/641da86294fd9f485d3c2bf0.md
Happy coding


Support TameEntityEvent for Mountable Entities

I am currently running

SpongeVanilla version: 1.12.2-7.1.6-RC169

Issue Description
Requesting support for TameEntityEvent for Mountable Entities such as Horses and related entities.

Horses were the last one for which the event was not fired.
Fixed by https://github.com/SpongePowered/SpongeCommon/commit/7a19f298f6b998fbe9106860181df01b5eefedcb


Wrong arm architecture on google-assistant/README.rst

Missed a 'v' at arm7l on Supported configuration lines

So it should say armv7l?


{Core} Remove restrictions for parameters zones_type and zone_type to support more than 3 zones

Related command

Description

Service team expects the removal for the following reason (mail: AZ CLI Zone 4 Support):

More than 3 AZ’s (in short: >3AZ’s) is a company-wide initiative. As a company, we’re working to enable Azure regions to expand in size beyond the limits that a size and distance of 3 zones allows, and allow for wider expansion. This allows Azure to bring more capacity into a region, in a form of additional Availability Zones, yet preserving promises that we as a company have made to external users. Those promises are in a form of resiliency but also latency governing communication within a single zone.
Of course, the initiative can only be successful if Azure services are able to take advantage of the new capacity, and allow end users (3P’s) to use that capacity. That’s why each service team has been reviewing their architecture and adjusting where needed to support 4th++ Availability Zones (4th, 5th, 6th), and enabling this functionality in their UI/UX. While we’re testing this, we’ve realized that client CLI’s has its own logic that hardcoded 3 zones permanently.
We need your help to remove the hardcoded value of 3 zones in a core CLI module, and allow the client module to pass through any zone number, letting the service RP Api’s make a decision.

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Core

Hi @jiasli, could you please help review this change? @Jacekey23 has awared this change and reviewed this PR.

Notes:
the change is relatively minor and just synced with Yan about timeline. Targeted for current sprint if no underlying impact. If there is, we may plan it before early Dec, Thx.

Hi @jiasli, could you please help review this change? @Jacekey23 has awared this change and reviewed this PR.

I have little knowledge regarding this change. @zhoxing-ms is also the core owner and can approve this PR.

Please let the server team also review this PR and confirm the following two questions:

If the CLI side removes the verification of zone restrictions, is the error message provided by the server side user-friendly and meets expectations when the customer enters the illegal zones?
There are multiple Resource Providers that support edge zones. Can the restrictions of zones on the CLI side be removed for all the Resource Providers?

Please let the server team also review this PR and confirm the following two questions:

If the CLI side removes the verification of zone restrictions, is the error message provided by the server side user-friendly and meets expectations when the customer enters the illegal zones?
There are multiple Resource Providers that support edge zones. Can the restrictions of zones on the CLI side be removed for all the Resource Providers?

Since PowerShell and Terraform have no restriction for the edge zones, I think it makes sense to remove the restriction.

Since PowerShell and Terraform have no restriction for the edge zones, I think it makes sense to remove the restriction.

OK, sounds good

In fact, I see that other modules also have restrictions on zones, and they do not use the unified code in the azure-cli-core. Can they be removed together?
such as: https://github.com/Azure/azure-cli/blob/5bca3f5a64ebed43a826e0c668857bbe7604d8c8/src/azure-cli/azure/cli/command_modules/network/_params.py#L59-L63C11

In fact, I see that other modules also have restrictions on zones, and they do not use the unified code in the azure-cli-core. Can they be removed together? such as: https://github.com/Azure/azure-cli/blob/5bca3f5a64ebed43a826e0c668857bbe7604d8c8/src/azure-cli/azure/cli/command_modules/network/_params.py#L59-L63C11

yeah, this change only applies to the modules which import zones_type or zone_type from core directly.
In my opinion, this change is sufficient for the current need (Compute and AKS modules), it is not necessary to change all modules which do not use unified code of the core module. We could change the logic from customed defining to importing core code directly case by case in the future. How do you think?


Need a way to identify submitting user

We need to identify what user submitted a job in some unique way, so that in the future they can query based on that.

how are we going to stop malicious clients impersonating random users on the network? will we require that REST API calls are signed, so that everyone can verify that only they could have that public identity?

oh, cool, that is exactly what @Bubblyworld is doing in https://github.com/filecoin-project/bacalhau/pull/315 :+1:

@lukemarsden Yeah, a user's identity is going to be defined by their configured keypair 👌 one interesting problem is how the client is going to share their public key with the server so that the signature can be verified. Probably the easiest option for now is just attaching it to each API call, don't think it's going to be a big bottleneck.

Libp2p automatically signs messages in the gossip network right? So once we're passed the api server boundary then message authenticity shouldn't be a problem.

Sounds right to me

Last thing is that currently system/config.go only supports RSA keys, but we can support ECDSA keypairs fairly easily if we want to. I've left a detailed TODO for it in the code. Generally I'd guess that users will just use the autogenerated key, so it shouldn't be a big deal for now.


Improve finding values in large categories in the cellxgene explorer LSB

Story
Data consumers want to easily discover and select values in large categories in the cellxgene explorer LSB.  This is validated by a recent user request:

For large dataset, the cell type list can be very long and hard to get to the cells of interest.

See related discussion in ux. This also intersects with truncation strategies. @hthomas-czi wrote:
Improve Finding Values in Large Categories — Everyone likes the categorical search feature but considering the technical complexity, we don’t plan to deliver [with the other seamless changes]. However, we’d like to better understand the technical considerations behind the truncation behavior for categories with 1000+ labels, because that seems pertinent to how we’d design search.
@colinmegill responded:
we can render any amount we want, we have them all on the client. We don't because if it were say 10,000, the user would have to scroll and it would lag out the UI.

UX Concepts
Show more
Search

Closing as a low priority


Tests for s390 are broken

Test for S390 became broken for all python versions.
For example, compare https://travis-ci.org/graphite-project/carbon/jobs/639241436 (successful) and https://travis-ci.org/graphite-project/carbon/jobs/645084882 (broken).
Unfortunately, I didn't find any reason for that.
@sangitanalkar - could you please check? Otherwise I think we need to revert https://github.com/graphite-project/carbon/pull/869

Hi @deniszh , yes checking it.

Thanks a lot, @sangitanalkar !

Hi @deniszh
The jobs for s390x at the mentioned link had Permission denied warnings like following:
WARNING: Building wheel for txAMQP failed: [Errno 13] Permission denied: '/home/travis/.cache/pip/wheels/52'
WARNING: Building wheel for coverage failed: [Errno 13] Permission denied: '/home/travis/.cache/pip/wheels/b0'
WARNING: Building wheel for mocker failed: [Errno 13] Permission denied: '/home/travis/.cache/pip/wheels/89'
WARNING: Building wheel for mmh3 failed: [Errno 13] Permission denied: '/home/travis/.cache/pip/wheels/38'

Checked the permissions of "/home/travis/.cache/pip/wheels" for amd64 and s390x in the travis image
For amd64:
$ ls -la $HOME/.cache/pip/wheels
total 12
drwxrwxr-x 3 travis travis 4096 Feb  7 05:14 .
drwxr-xr-x 5 travis travis 4096 Feb  7 05:14 ..
drwxrwxr-x 3 travis travis 4096 Feb  7 05:14 b9

For s390x:
$ ls -la $HOME/.cache/pip/wheels
total 6
drwxr-xr-x 10 root   root   10 Jan 20 13:03 .
drwxrwxr-x  5 travis travis  5 Jan 20 13:02 ..
drwxr-xr-x  3 root   root    3 Jan 20 13:03 66
drwxr-xr-x  3 root   root    3 Jan 20 13:03 9b
drwxr-xr-x  4 root   root    4 Jan 20 13:03 ad
drwxr-xr-x  3 root   root    3 Jan 20 13:03 ae
drwxr-xr-x  3 root   root    3 Jan 20 13:03 b5
drwxr-xr-x  3 root   root    3 Jan 20 13:02 c1
drwxr-xr-x  3 root   root    3 Jan 20 13:03 e5
drwxr-xr-x  3 root   root    3 Jan 20 13:02 f2

Since the owner was root, travis user was unable to modify the pip directory.
Cleared the cache at the beginning (code changes) and the issue is fixed.
Travis job for "python version 2.7 TOXENV=py27" (link) has passed.
For travis jobs for python versions 3.6, 3.7, 3.8 ; two test case failures for carbon.tests.test_client and carbon.tests.test_protobuf are observed for both amd64 as well as s390x.
Travis jobs log: https://travis-ci.com/linux-on-ibm-z/carbon/builds/147909666

Hi @sangitanalkar ,
You're right, I'm completely missed permission errors. Thanks for fixing issues!
Another issues are something new, will fix it separately.


Shouldn't MongoDB extended JSON be accepted in queries?

Repro steps:

Open a new Mongo Scrapbook
Execute:db.spaces.find({"foo": {"$numberLong": "180122546362908678"}})

Action: cosmosDB.executeMongoCommand
Error type: 2
Error Message: unknown operator: $numberLong
Version: 0.7.0
OS: linux

Hi @rdumont , the merged fix was published today (version 0.8.0). Hope this fixes your issue. :-)
Let us know how the fix holds up with your use-case.


Enhancing Footer

The footer is little disturbed and elements are not properly aligned

can you provide some more details about what to be updated in footer?

the footer was large and there is more space left between the copywright ,github and elements

Same as #48


frontend vars

To use the assets generation correctly APOS_BUNDLE and NODE_ENV must be set to assets and production. (See generation assets in frontend)

@stijnvandervegt might this also be the reason they don't get genereated in the first place

@stijnvandervegt I think good to add, but should already be in the docker build right the assets?


FeatureFormView - Use finishEditing

Related Apollo 703

submitChanges() -> submitEdits() to balance with discardEdits()
finishEdits() -> finishEditing() to match the function it wraps (FeatureForm.finishEditing())
checkFeatureEditResults() -> [FeatureEditResult].errors
submitEdits() coordinates the full workflow now (as opposed to the chain pattern of submit calling validation, validation calling finish, finish calling apply)

I'll handle this PR in two parts. Once these base changes are approved, I'll update the tutorial to match.

This is ready for re-review. I've updated the tutorial to match the latest example code.


Add NLP Connor's work

Vik and PAht has the files

/legacy/ directory?

I think it's in vik's onedrive.

I believe Kashyap is working on a new NLP. What do we plan doing with Connor's code? Also, is this referring to SEALs as well?

Closed in pull request #69


Can't access appsync data from Lambda function & iOS App

Describe the bug
I have an iOS app using cognito user pools to authenticate against Datastore. I also need to able to access appsync from a lambda function that sends a push notification to the app and runs daily on a cron job.  When I added the appropriate auth access to my schema in order for the Lambda to be able to access it, I started to receive Datastore errors and I am no longer receiving the hub event let isDataReady = HubFilters.forEventName(HubPayload.EventName.DataStore.ready) at which point I show data to my user and drop a loading screen.
Errors received:
021-04-18 21:36:03.747456-0700 VeesHoneyFoodDiary[96121:11447614] WebsocketDidReceiveMessage - {"id":"EC797900-BAD8-4E08-9837-1D3DC36859E2","type":"error","payload":{"errors":[{"errorType":"Unauthorized","message":"Not Authorized to access onUpdateSupplement on type Subscription"}]}}

and then later after every subscription fails:
2021-04-18 21:36:03.976080-0700 VeesHoneyFoodDiary[96121:11447625] Self is nil, listener is not called.
2021-04-18 21:36:03.995362-0700 VeesHoneyFoodDiary[96121:11447629] WebsocketDidReceiveMessage - {"id":"74A368CE-3229-47D7-9FD7-C6EAF27173BB","type":"error","payload":{"errors":[{"errorType":"UnknownOperationError","message":"Unknown operation id 74A368CE-3229-47D7-9FD7-C6EAF27173BB"}]}}

Then a bunch of syncing errors occur:
2021-04-18 21:36:06.206639-0700 VeesHoneyFoodDiary[96121:11447620] [RemoteSyncEngine] DataStoreError: An error occurred syncing Supplement
Caused by:
DataStoreError: GraphQL service returned a successful response containing errors: [Amplify.GraphQLError(message: "Not Authorized to access syncSupplements on type Query", locations: Optional([Amplify.GraphQLError.Location(line: 2, column: 3)]), path: Optional([Amplify.JSONValue.string("syncSupplements")]), extensions: Optional(["errorType": Amplify.JSONValue.string("Unauthorized"), "errorInfo": Amplify.JSONValue.null, "data": Amplify.JSONValue.null]))]
Recovery suggestion: The list of `GraphQLError` contains service-specific messages
Caused by:
GraphQLResponseError<PaginatedList<AnyModel>>: GraphQL service returned a successful response containing errors: [Amplify.GraphQLError(message: "Not Authorized to access syncSupplements on type Query", locations: Optional([Amplify.GraphQLError.Location(line: 2, column: 3)]), path: Optional([Amplify.JSONValue.string("syncSupplements")]), extensions: Optional(["errorType": Amplify.JSONValue.string("Unauthorized"), "errorInfo": Amplify.JSONValue.null, "data": Amplify.JSONValue.null]))]

To Reproduce
Steps to reproduce the behavior:

use a schema like this:

type User
@model
@auth(rules: [
  { allow: owner},
  { allow: groups, groups: ["Admins"]},
  { allow: private, provider: iam }
  ]) {
  id: ID!
  email: String!
  groups: [String]
  name: String!
  journalEntries: [JournalEntry] @connection(keyName: "byUser", fields: ["id"])
  supplements: [SupplementDosage] @connection(keyName: "byUser", fields: ["id"])
  deviceToken: String
}

try to run the app and receive the hub event mentioned above.

Expected behavior
I expect to receive the hub event and to not receive errors. I don't want to use the second form of auth at all in my application but it needs to be there for the Lambda and just ignored by Datastore on iOS
Environment(please complete the following information):

Amplify Framework Version: podfile.lock below:

PODS:
- Amplify (1.8.0):
  - Amplify/Default (= 1.8.0)
- Amplify/Default (1.8.0)
- AmplifyPlugins/AWSAPIPlugin (1.8.0):
  - AppSyncRealTimeClient (~> 1.4.0)
  - AWSCore (~> 2.23.3)
  - AWSPluginsCore (= 1.8.0)
- AmplifyPlugins/AWSCognitoAuthPlugin (1.8.0):
  - AWSAuthCore (~> 2.23.3)
  - AWSCognitoIdentityProvider (~> 2.23.3)
  - AWSCognitoIdentityProviderASF (~> 2.23.3)
  - AWSCore (~> 2.23.3)
  - AWSMobileClient (~> 2.23.3)
  - AWSPluginsCore (= 1.8.0)
- AmplifyPlugins/AWSDataStorePlugin (1.8.0):
  - AWSCore (~> 2.23.3)
  - AWSPluginsCore (= 1.8.0)
  - SQLite.swift (~> 0.12.0)
- AppSyncRealTimeClient (1.4.4):
  - Starscream (~> 3.1.1)
- AWSAuthCore (2.23.3):
  - AWSCore (= 2.23.3)
- AWSCognitoIdentityProvider (2.23.3):
  - AWSCognitoIdentityProviderASF (= 2.23.3)
  - AWSCore (= 2.23.3)
- AWSCognitoIdentityProviderASF (2.23.3)
- AWSCore (2.23.3)
- AWSMobileClient (2.23.3):
  - AWSAuthCore (= 2.23.3)
  - AWSCognitoIdentityProvider (= 2.23.3)
  - AWSCognitoIdentityProviderASF (= 2.23.3)
  - AWSCore (= 2.23.3)
- AWSPluginsCore (1.8.0):
  - Amplify (= 1.8.0)
  - AWSCore (~> 2.23.3)
- SQLite.swift (0.12.2):
  - SQLite.swift/standard (= 0.12.2)
- SQLite.swift/standard (0.12.2)
- Starscream (3.1.1)

DEPENDENCIES:
- Amplify
- AmplifyPlugins/AWSAPIPlugin
- AmplifyPlugins/AWSCognitoAuthPlugin
- AmplifyPlugins/AWSDataStorePlugin

SPEC REPOS:
trunk:
  - Amplify
  - AmplifyPlugins
  - AppSyncRealTimeClient
  - AWSAuthCore
  - AWSCognitoIdentityProvider
  - AWSCognitoIdentityProviderASF
  - AWSCore
  - AWSMobileClient
  - AWSPluginsCore
  - SQLite.swift
  - Starscream

SPEC CHECKSUMS:
Amplify: 550f9e628e68f829ee4d9daa802912ad3644cb96
AmplifyPlugins: 3ed478220b60e5544f3a4968beb971b4d8abcb34
AppSyncRealTimeClient: 4479354d262a23d2cc9fea1760f3815b75a4091a
AWSAuthCore: 2aaf8dec7f50e3f7606857bdca0db9263faed0c5
AWSCognitoIdentityProvider: fcd9b00fec0ef5ac6768548af948ad033b52da98
AWSCognitoIdentityProviderASF: 719578cca39b3233bd67e656bdf04d409e8fc255
AWSCore: c60e635b1a61cb27b6dfff646ce9f402be870b62
AWSMobileClient: bdfc148fc11b846331f2bec4a7063c95e66c329e
AWSPluginsCore: 6305f711ed8d967ba3b46e272cdad8f857e2ed4a
SQLite.swift: d2b4642190917051ce6bd1d49aab565fe794eea3
Starscream: 4bb2f9942274833f7b4d296a55504dcfc7edb7b0

PODFILE CHECKSUM: 983d3172490a4f8f0c578d64c675b5952a4ad751

COCOAPODS: 1.10.0

Dependency Manager: Cocoapods
Swift Version: 5.3
CLI Version: 4.48.0
Include any relevant log output under ~/.amplify/logs/amplify-cli-<issue-date>.log

Device Information (please complete the following information):

Device: Simulator
iOS Version: iOS 14

@kneekey23 just to follow up from our conversation yesterday, I tested this use case on Android, and it works (no "Unauthorized" error), so perhaps this is an iOS bug.  On Android, regardless of the @auth directives, all requests are signed with the credentials associated with the default auth type for your API.  The default auth type is defined in amplifyconfiguration.json at this JSON path: api.plugins.awsAPIPlugin.yourApiName.authorizationType, which is AMAZON_COGNITO_USER_POOLS for my test scenario.  Can you share your amplifyconfiguration.json (with sensitive info redacted)?

I got this working by changing the supplement dosages/supplements part of the schema to:
type SupplementDosage
  @model
  @key(name: "byUser", fields: ["user"])
  @auth(rules: [
         { allow: groups, groups: ["Admins"]},
         { allow: owner, ownerField: "user", operations: [update, read] },
         { allow: private, provider: iam }
      ]
    ) {
    id: ID!
    user: ID!
    supplementID: ID!
    supplement: Supplement @connection(fields: ["supplementID"])
    dosage: [Dosage]!
    amountRemaining: Int!
}

type Supplement
  @model
  @auth(rules: [
         { allow: groups, groups: ["Admins"]},
         { allow: private, operations: [read]}
         { allow: private, provider: iam }
      ]
    ) {
    id: ID!
    name: String!
    bottleCapacity: Amount!
    squareToken: String!
    brand: String!
}


Feature/migrate gulp to version 4

changes in this pr allow usage of newer node versions like 17
related issues: #474, #606

lgtm

will this be merged?


Colcon build error

Im currently using ROS2 foxy branch and by following the steps described i get the following error:

Unfortunately I am not good to debug these kinds of error, so i hope someone could help me?

Well, it kinda work but is probably not the final solution.
I did this in order ( starts in ws in src folder) :

git clone --branch=foxy https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git
cd ..
colcon build
Got some error and googled to use this
rosdep install --ignore-src --from-paths src -y -r
colcon build
Got some more errors with ur_msgs
cd src
git clone --branch=ros2 https://github.com/destogl/ur_msgs.git
cd ..
colcon build
source install/setup.bash
ros2 launch ur_description view_ur.launch.py ur_type:=ur5e

Rviz will how and everything will be ok. However, other launch files do not work properly.
@NebuDa my src/Universal_Robots_ROS2_Driver/Universal_Robots_ROS2_Driver.repos File. shows almost the same except control_msgs, but it says galactic-devel. I git clone foxy branch, do you know how to clone it properly? Tried deleting the folder and clone the right branch but didnt colcon build properly.

@ravi-kumaaar If you have followed all the steps fro Getting Started you wouldn't need to clone packages manually.
The foxy branch .repose file states control_msgs should be on the foxy-devel branch. Check once more which branch are you using currently?


Running out of memory when try to update Yii2 to 2.0.10

I am trying to update from 2.0.4-dev to 2.0.10 because there is some feature I'd like to use.
What steps will reproduce the problem?
php -d memory_limit=-1 composer.phar require "yiisoft/yii2:~2.0.9"
(According to https://github.com/yiisoft/yii2/blob/2.0.10/framework/UPGRADE.md)
With additional command to allow unlimited memory
What is the expected result?
Able to update successfully
What do you get instead?
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Reading bower.json of bower-asset/bootstrap (dev-revert-20962-v4-fix-unescaped-h

Reading bower.json of bower-asset/modernizr (dev-greenkeeper-grunt-istanbul-0.7.

Reading bower.json of bower-asset/modernizr (dev-greenkeeper-grunt-mocha-test-0.

Reading bower.json of bower-asset/modernizr (dev-greenkeeper-load-grunt-tasks-3.

Reading bower.json of bower-asset/modernizr (dev-greenkeeper-serve-static-1.10.1

PHP Fatal error:  Out of memory (allocated<PHONE_NUMBER>) (tried to allocate 134217
728 bytes) in phar://...../composer.phar/src/Composer/Dep
endencyResolver/RuleSetGenerator.php on line 126

Fatal error: Out of memory (allocated<PHONE_NUMBER>) (tried to allocate 134217728 b
ytes) in phar://...../composer.phar/src/Composer/Dependen
cyResolver/RuleSetGenerator.php on line 126

(Some message got cut off due to the command line limitation)
Additional info

Q
A

Yii version
2.0.4-dev

PHP version
5.5.24

Operating system
Window 7 (8GM RAM)

Actually, the reason is the composer plugin gets too much package definition. However, during the update, it is highly recommended to enable this feature unless we will get incompatible packages. So I think I must do something wrong but I can't figure it out.

Unfortunately, the problem relates to Composer and your environment configuration, so is out of Yii scope.
Change your memory limits and update will succeed.

I actually used the unlimited setting if you really look at the command line and my comment. That's why I came for help. But thank for replying anyway.


Enable xds retry test for cpp

@lidizheng

Do you have a sponge link that proves this runs okay on Kokoro?

Yes, see in https://fusion.corp.google.com/projectanalysis/summary/KOKORO/prod:grpc%2Fcore%2Fmaster%2Flinux%2Fgrpc_xds_url_map Build# 533

@dapengzhang0 Do you plan to add this test case to Python as well? It will be really useful for Python users. I can help, if needed.

Do you plan to add this test case to Python as well?
Is continuous URL map tests running for python already?

It will be really useful for Python users.

Yeah we have users asking for the feature.

I can help, if needed.

That'll be great! Otherwise I will do it later.

Is continuous URL map test running for python already?

Yes, it's up at https://fusion.corp.google.com/projectanalysis/summary/KOKORO/prod:grpc%2Fcore%2Fmaster%2Flinux%2Fgrpc_xds_url_map_python

Thanks @lidizheng !


UI(User Interface) Issues

There should be scroll up and down option in the table view section
There can be an edit option button to edit the table
There should be a little description of teacher name with their related subjects in the final generated table

Fixed no. 3 in c974ce9.

Fixed no. 1 in 714c144. The height of the .sh_subcontainer_timetable class is relative now so it will adjust according to the content.

We can't provide the no. 2 suggestion since then there will be no purpose of writing an algorithm then if we are going to change the schedule.

Closing this issue.


Add GraphQlTester.PathSpec#is(Not)Null() methods

The existing methods do not cover this case. The valueIsEmpty and valueIsNotEmpty methods do way more checks.

I've made a small adjustment in 2095e1795f446a6bcdad2f16200b8878dae0e79f.
That aside, you can use pathExists().valueDoesNotExist() if you want to check both that the path is present and there is no value there, or otherwise valueDoesNotExist() if it's enough to check there isn't a value one, and possibly no such path at all.
null is a tricky concept with a JSONPath which can be indefinite.

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

The concepts of absence and null are clearly separated in the spec: https://spec.graphql.org/draft/#sel-FAHlBFDCAACEMnwN

Fields are always optional within the context of a selection set, a field may be omitted and the selection set is still valid. However fields that return Non-Null types will never return the value null if queried.

It talks about "optional" fields (the absence of a field). and Non-Null/Null fields, aka "field is present but null"
These two states should both be assert-able separately

On further thought and review, 'm going to re-purpose this to do a broader update of the options. The current choice is confusing, with some completely overlapping (valueExists and valueIsNotEmpty) and lack of guidance (it's hard to choose from a long list).
As far as I can see, the following should suffice:

hasValue - valid field, possibly partial but not null
isNull - failed field, or optional field set to null
doesNotExist - the path is not even present

Note, the isNull check can only apply to single value paths, e.g. books, books[1].title. Indefinite paths like book[*]<EMAIL_ADDRESS>= 'fiction')] cannot be supported and will be rejected.
For anything beyond, there is toEntity and toEntityList.

Sounds great, exactly what the issue was aimed at, thank you!


SA1003 violation if using postfix increment in object initializer

The following code triggers a violation but didn't in StyleCop 'classic'.
new Foo
{
  Foo = "foo",
  Bar= i++
};

If you use the code fix the generated code causes an SA1500 violation.

grabbed


Error in library(yarrr) : there is no package called ‘yarrr’

Hello,
I just started this book. Installing the yarrr packages with install.packages('yarrr') goes somewhere but I seem to have this two warning messages at the end:
Warning messages:
1: In install.packages("yarrr") :
  installation of package ‘BayesFactor’ had non-zero exit status
2: In install.packages("yarrr") :
  installation of package ‘yarrr’ had non-zero exit status

Upon loading the library seems like it's not there
> library(yarrr)
Error in library(yarrr) : there is no package called ‘yarrr’

R version 3.3.3
Debian 9
Hope this helps, I don't think I'm missing something, I mean those are the very first two commands to use =D

Yep this is the notorious BayesFactor package issue. Just install it first with install.packages("BayesFactor") then try installing yarrr again, it should work!

Seems like BayesFactor won't install, another unmet dependency which is not satisfied even with dependencies = TRUE. Guess I should ask to the BayesFactor people, but for documentation I'll paste the error here too.
Thanks!
> install.packages("BayesFactor")
Installing package into ‘/home/tombom/R/x86_64-pc-linux-gnu-library/3.3’
(as ‘lib’ is unspecified)
Warning: dependency ‘mvtnorm’ is not available
trying URL 'https://cran.stat.unipd.it/src/contrib/BayesFactor_0.9.12-4.2.tar.gz'
Content type 'application/octet-stream' length 3779186 bytes (3.6 MB)
==================================================
downloaded 3.6 MB

ERROR: dependency ‘mvtnorm’ is not available for package ‘BayesFactor’
* removing ‘/home/tombom/R/x86_64-pc-linux-gnu-library/3.3/BayesFactor’

The downloaded source packages are in
	‘/tmp/Rtmp48IgO6/downloaded_packages’
Warning message:
In install.packages("BayesFactor") :
  installation of package ‘BayesFactor’ had non-zero exit status

Closing as this appears to be a dependency issue. Please reopen if needed


Whitelist additional California endpoints

The following need to be allowed outbound on port 22
Staging - saphiresftpstage.cdph.ca.gov
Production - saphiresftp1.cdph.ca.gov

@jeremy-page Please I just want to confirm that there is no more work to do here.


docs(math/base/ops): improve math/base/ops README.md examples

Resolves #1569 .
Description

What is the purpose of this pull request?

This pull request:

Adds examples for methods in math/base/ops namespace
Updates ReadMe.md with the same methods.

Related Issues

Does this pull request have any related issues?

This pull request:

resolves #1569
fixes #1569

Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

Thank you for taking time to review! Will take note of these details in future 😄


include stake units in a stake tx

for example in event http://<IP_ADDRESS>:8080/v1/txs?offset=0&limit=1&txid=94C89E803EAC096AF5CFAAC367504E564EFE4E36E4AC17CFD7A4F0750CC33869

I can do it