[wip] firecracker spawn variant

Adds a new function execution platform variant of (LocalUdsRuntimeStrategy named LocalFirecracker) which uses Firecracker Micro-VMs to execute the functions within.
This PR also includes conditional compiling of the VSOCK elements which are not supported on Mac M series chips and some others. This allows the default compilation execution strategy (LocalProcess) to be used on all hosts compatible with SI, not just those which are compatible with the firecracker specific elements on the build. It's important to note that due to this, binaries produced on a host which does not support firecracker, will not be able to execute on firecracker even on another host that does support it.
Currently the Firecracker host must be local to the context of the rest of the stack. I.e. this PR does not add "remote execution host" functionality to the SI stack although adding this should be possible leveraging a router or similar execution-host manager. Additionally, because of the above and the nature of how firecracker has to interact at a privileged level, to run the stack under the state of this PR, the buck2 run dev needs to run as root to allow it to take the relevant actions.

This change will be dead code, unless the values for  these attributes are set:
Enabling in Cyclone Server:
lib/deadpool-cyclone/src/instance/cyclone/local_uds.rs
impl Default for LocalUdsRuntimeStrategy {
    fn default() -> Self {
        Self::LocalFirecracker                           // set from Self::LocalProcess
    }
}

Enabling in Cyclone Client:
lib/cyclone-client/src/client.rs
impl Default for ClientConfig {
    fn default() -> Self {
        Self {
            firecracker_connect: true,             // firecracker-setup: set from false
            watch_timeout: Duration::from_secs(10),
        }
    }
}

Kernel and Rootfs Generation:

Producing the kernel image at this time is as follows:

Clone the kernel repo https://github.com/torvalds/linux on the relevant/chosen git tag
Build the kernel image using make vmlinux / make Image depending on platform, drive the installation with a supported kernel configuration from here

Producing the Rootfs at this time is as follows:

Clone SI repo
Run buck2 run bin/cyclone:image to generate the cyclone image (This puts it into the docker daemon on the host)
Use the outputted cyclone image reference into the bin/cyclone/create-firecracker-root-fs.sh script in the docker run stage and execute the script. This outputs the new rootfs into the /firecracker-data/ folder on the host.

We will migrate the production of both of these artifacts into CI at some point in the future.

Execution Environment

Each Firecracker micro-vm is spawned via the jailer binary, a binary which significantly improves the security posture of the host, find more information on exactly what it does here jailer docs
Each micro-vm has it's own network namespace and two routes:

One out to the internet via the external host interface
One VSOCK interface to allow cyclone-server and cyclone-client (veritech) to talk privately via the virtio-vsock kernel module

Each has it's own Linux user, group and root filesystem path on the host under which it has limited permissions. The path for these are set to the default for firecracker at the minute, namely: /srv/jailer/firecracker/<id>/root/
Currently we don't pass any cgroups to the jailer, but this can be added for process-level cpu allocation isolation in the future.
Each execution has it's own process namespace

Validation on Host
A test has been added (disabled) within lib/deadpool-cyclone/src/lib.rs called chop which validates that the firecracker execution environment on the host running the test is valid and works at a high level (can launch firecracker VM and establish a ping/pong websocket connection through to cyclone server).
Prerequisites on Host

The host must have the SI repository and all prerequisites to compile and run the code.
The Firecracker VMM is built to be processor agnostic. 64-bit Intel, AMD and Arm CPUs with hardware virtualization support are generally available for production workloads. (i.e. does not support Mac M series chips)
The host must have had the si-firecracker-config host config executed against it. It's likely at some point in the near future this config will merge into the main si monorepo to keep the rust and required system configuration together.

Further Notes

There are various TODO's left in the code which can be dealt with at a later point in time:

Hardcoded ProcessRuntime: This should be configurable or otherwise driven by external system/environment settings.
Killall VMs script (currently we only kill one at a time on a host)
Observability deep dive

We have no manner of debugging or seeing traces from cyclone-server running within firecracker.
How do we detect kernel issues (ooms, etc) - we have no real manner to detect or monitor for these

We are using a shared SSH private key on the host to connect to micro-vms. We will likely need to protect this route in more formally using tailscale or similar in the future as customer code will be accessible within that context.
Build/test pipeline - As mentioned in the creation of the kernel and rootfs section, we currently manually create both these artifacts and have limited/zero test coverage over them until we manually check their validity.
Shareable remote host - As mentioned in the pre-amble description, this PR only supports a single-tenanted SI Stack as we do not talk remotely to a firecracker-capable host to run the execution.
Capacity planning - how many VMs per metal instance, how much memory do the VMs need, etc. These calculations and estimations will come as time passes.
No formal performance tests have been executed but the system seems suitably performant at this time.
Tying cyclone image build to rootfs generation. Currently this is a manual process whereby
stop.sh is not getting triggered on oom or similar firecracker fault. I.e. the firecracker micro-vm API process is left intact/unterminated. From the UI/cyclone-server perspective you get a connection lost error.
The provisioning strategy for micro-vms does not support parallelism at this time. The processes will clash when manipulating the hosts iptables rules and cause the secondary one to fail. When we move to use parallel execution we will need to make mild adjustments here to the pooling/launching strategy from veritech.

bors try

bors merge


[Bug] Incorrect test config on stg_facebook_ads__creative_history

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the issue
I have added the ad_reporting package to my project and dbt run was successful for all models. However, I'm getting an error when testing the results because of apparent duplicates in stg_facebook_ads__creative_history. This is the only test that is failing.
The output of this model is filtered by the two directly downstream (facebook_ads__url_tags and int_facebook_ads__creative_history), which use the is_most_recent_record column to remove older rows.
Temporary workaround
Using the package name and full identifier in my project file let me disable the test and pass CI:
# dbt_project.yml
tests:
  facebook_ads_source:
    dbt_utils_unique_combination_of_columns_stg_facebook_ads__creative_history_source_relation__creative_id___fivetran_synced:
      +enabled: false

Fix
Adding a where clause in the test config prevents the error:
# stg_facebook_ads.yml
  - name: stg_facebook_ads__creative_history
    description: Each record in this table reflects a Facebook creative.
    tests:
      - dbt_utils.unique_combination_of_columns:
          combination_of_columns:
            - source_relation
            - creative_id
            - _fivetran_synced
          config:
            where: is_most_recent_record

Let me know if this an acceptable solution and I will open a PR to make the change 🙂
Relevant error log or model output
# dbt test -s package:facebook_ads_source
13:42:45  Running with dbt=1.6.9
13:42:45  Registered adapter: bigquery=1.6.9
13:42:46  Unable to do partial parsing because a project config has changed
13:42:50  Found 106 models, 3 seeds, 181 tests, 35 sources, 0 exposures, 9 metrics, 907 macros, 0 groups, 1 semantic model
13:42:50
13:42:52  Concurrency: 4 threads (target='dev')
13:42:52
13:42:52  1 of 18 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__account_history_source_relation__account_id___fivetran_synced  [RUN]
13:42:52  2 of 18 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__ad_history_source_relation__ad_id__updated_at  [RUN]
13:42:52  3 of 18 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__ad_set_history_source_relation__ad_set_id__updated_at  [RUN]
13:42:52  4 of 18 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__basic_ad_source_relation__date_day__ad_id__account_id  [RUN]
13:42:53  4 of 18 PASS dbt_utils_unique_combination_of_columns_stg_facebook_ads__basic_ad_source_relation__date_day__ad_id__account_id  [PASS in 1.23s]
13:42:53  5 of 18 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__campaign_history_source_relation__campaign_id__updated_at  [RUN]
13:42:53  3 of 18 PASS dbt_utils_unique_combination_of_columns_stg_facebook_ads__ad_set_history_source_relation__ad_set_id__updated_at  [PASS in 1.25s]
13:42:53  6 of 18 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__creative_history_source_relation__creative_id___fivetran_synced  [RUN]
13:42:53  1 of 18 PASS dbt_utils_unique_combination_of_columns_stg_facebook_ads__account_history_source_relation__account_id___fivetran_synced  [PASS in 1.28s]
13:42:53  7 of 18 START test not_null_stg_facebook_ads__account_history__fivetran_synced . [RUN]
13:42:53  2 of 18 PASS dbt_utils_unique_combination_of_columns_stg_facebook_ads__ad_history_source_relation__ad_id__updated_at  [PASS in 1.29s]
13:42:53  8 of 18 START test not_null_stg_facebook_ads__account_history_account_id ....... [RUN]
13:42:54  5 of 18 PASS dbt_utils_unique_combination_of_columns_stg_facebook_ads__campaign_history_source_relation__campaign_id__updated_at  [PASS in 1.22s]
13:42:54  8 of 18 PASS not_null_stg_facebook_ads__account_history_account_id ............. [PASS in 1.17s]
13:42:54  9 of 18 START test not_null_stg_facebook_ads__ad_history_ad_id ................. [RUN]
13:42:54  6 of 18 FAIL 4 dbt_utils_unique_combination_of_columns_stg_facebook_ads__creative_history_source_relation__creative_id___fivetran_synced  [FAIL 4 in 1.22s]
13:42:54  10 of 18 START test not_null_stg_facebook_ads__ad_history_updated_at ........... [RUN]
13:42:54  11 of 18 START test not_null_stg_facebook_ads__ad_set_history_ad_set_id ........ [RUN]
13:42:54  7 of 18 PASS not_null_stg_facebook_ads__account_history__fivetran_synced ....... [PASS in 1.24s]
13:42:54  12 of 18 START test not_null_stg_facebook_ads__ad_set_history_updated_at ....... [RUN]
13:42:56  12 of 18 PASS not_null_stg_facebook_ads__ad_set_history_updated_at ............. [PASS in 1.19s]
13:42:56  13 of 18 START test not_null_stg_facebook_ads__basic_ad_account_id ............. [RUN]
13:42:56  11 of 18 PASS not_null_stg_facebook_ads__ad_set_history_ad_set_id .............. [PASS in 1.25s]
13:42:56  14 of 18 START test not_null_stg_facebook_ads__basic_ad_ad_id .................. [RUN]
13:42:56  9 of 18 PASS not_null_stg_facebook_ads__ad_history_ad_id ....................... [PASS in 1.29s]
13:42:56  15 of 18 START test not_null_stg_facebook_ads__campaign_history_campaign_id .... [RUN]
13:42:56  10 of 18 PASS not_null_stg_facebook_ads__ad_history_updated_at ................. [PASS in 1.35s]
13:42:56  16 of 18 START test not_null_stg_facebook_ads__campaign_history_updated_at ..... [RUN]
13:42:57  13 of 18 PASS not_null_stg_facebook_ads__basic_ad_account_id ................... [PASS in 1.06s]
13:42:57  17 of 18 START test not_null_stg_facebook_ads__creative_history__fivetran_synced  [RUN]
13:42:57  15 of 18 PASS not_null_stg_facebook_ads__campaign_history_campaign_id .......... [PASS in 1.10s]
13:42:57  18 of 18 START test not_null_stg_facebook_ads__creative_history_creative_id .... [RUN]
13:42:57  16 of 18 PASS not_null_stg_facebook_ads__campaign_history_updated_at ........... [PASS in 1.06s]
13:42:57  14 of 18 PASS not_null_stg_facebook_ads__basic_ad_ad_id ........................ [PASS in 1.19s]
13:42:58  17 of 18 PASS not_null_stg_facebook_ads__creative_history__fivetran_synced ..... [PASS in 1.12s]
13:42:58  18 of 18 PASS not_null_stg_facebook_ads__creative_history_creative_id .......... [PASS in 1.13s]
13:42:58
13:42:58  Finished running 18 tests in 0 hours 0 minutes and 7.86 seconds (7.86s).
13:42:58
13:42:58  Completed with 1 error and 0 warnings:
13:42:58
13:42:58  Failure in test dbt_utils_unique_combination_of_columns_stg_facebook_ads__creative_history_source_relation__creative_id___fivetran_synced (models/stg_facebook_ads.yml)
13:42:58    Got 4 results, configured to fail if != 0
13:42:58
13:42:58    compiled Code at target/compiled/facebook_ads_source/models/stg_facebook_ads.yml/dbt_utils_unique_combination_o_e48f84c8ad4c2d29a6b840a1e0b5f2ee.sql
13:42:58
13:42:58  Done. PASS=17 WARN=0 ERROR=1 SKIP=0 TOTAL=18

Expected behavior
The tests pass or accurately reflect an error that needs to be fixed.
dbt Project configurations
models:
  ad_reporting:
    +schema: ad_reporting

  apple_search_ads:
    +schema: apple_search_ads
  apple_search_ads_source:
    +schema: apple_search_ads_source

  facebook_ads:
    +schema: facebook_ads
  facebook_ads_source:
    +schema: facebook_ads_source

  google_ads:
    +schema: google_ads
  google_ads_source:
    +schema: google_ads_source

vars:
  apple_search_ads_schema: fivetran_apple_search_ads
  facebook_ads_schema: fivetran_facebook_ads
  google_ads_schema: fivetran_google_ads
  ad_reporting__amazon_ads_enabled: False
  ad_reporting__linkedin_ads_enabled: False
  ad_reporting__microsoft_ads_enabled: False
  ad_reporting__pinterest_ads_enabled: False
  ad_reporting__reddit_ads_enabled: False
  ad_reporting__snapchat_ads_enabled: False
  ad_reporting__tiktok_ads_enabled: False
  ad_reporting__twitter_ads_enabled: False

Package versions
packages:
  - package: LewisDavies/upstream_prod
    version: [">=0.7.0", "<0.8.0"]
  - package: dbt-labs/dbt_utils
    version: [">=1.1.0", "<1.2.0"]
  - package: fivetran/ad_reporting
    version: [">=1.7.0", "<1.8.0"]

What database are you using dbt with?
bigquery
dbt Version
1.6.9
Additional Context
No response
Are you willing to open a PR to help address this issue?

[X] Yes.
[ ] Yes, but I will need assistance and will schedule time during our office hours for guidance
[ ] No.

Hey there @LewisDavies , thanks for taking the time to dig into this!
your solution definitely makes sense, but i just have one question first to see if we can simplify the test further - does the following test also return a failure?
# stg_facebook_ads.yml
  - name: stg_facebook_ads__creative_history
    description: Each record in this table reflects a Facebook creative.
    tests:
      - dbt_utils.unique_combination_of_columns:
          combination_of_columns:
            - source_relation
            - _fivetran_id

No worries! Just tried your config and the tests are passing for me:
dbt test -s stg_facebook_ads__creative_history
13:36:37  Running with dbt=1.6.9
13:36:37  Registered adapter: bigquery=1.6.9
13:36:38  Found 107 models, 3 seeds, 181 tests, 35 sources, 0 exposures, 9 metrics, 907 macros, 0 groups, 1 semantic model
13:36:38
13:36:39  Concurrency: 4 threads (target='dev')
13:36:39
13:36:39  1 of 3 START test dbt_utils_unique_combination_of_columns_stg_facebook_ads__creative_history_source_relation___fivetran_id  [RUN]
13:36:39  2 of 3 START test not_null_stg_facebook_ads__creative_history__fivetran_synced . [RUN]
13:36:39  3 of 3 START test not_null_stg_facebook_ads__creative_history_creative_id ...... [RUN]
13:36:41  2 of 3 PASS not_null_stg_facebook_ads__creative_history__fivetran_synced ....... [PASS in 1.66s]
13:36:41  3 of 3 PASS not_null_stg_facebook_ads__creative_history_creative_id ............ [PASS in 1.86s]
13:36:43  1 of 3 PASS dbt_utils_unique_combination_of_columns_stg_facebook_ads__creative_history_source_relation___fivetran_id  [PASS in 3.22s]
13:36:43
13:36:43  Finished running 3 tests in 0 hours 0 minutes and 5.01 seconds (5.01s).
13:36:43
13:36:43  Completed successfully
13:36:43
13:36:43  Done. PASS=3 WARN=0 ERROR=0 SKIP=0 TOTAL=3

amazing, let's go that route to keep the test nice and simple. if you're still open to contributing a PR, i'd be happy to prioritze reviewing it! if not, the team can pick this up next sprint 🤠


do not react on rename

Added diff filter only on those actions: Added (A), Copied (C), Deleted (D), Modified (M).
Omitting: Renamed (R), have their type (i.e. regular file, symlink, submodule, ...) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B).

Good idea!


IE touch device fix

Add vendor specific css for IE to let javascript handle touch events instead of letting css attempt to handle them. Without this CSS property IE touch devices do not work. This does not affect IE mouse input behavior.

Cool. Thanks!


Add runtimeconfig support

Add runtimeconfig support (https://nuxtjs.org/guide/runtime-config/) in case if we need to build one docker instead of multiple with different config.

related: https://github.com/TYPO3-Initiatives/nuxt-typo3/pull/73


Increment numbers in the wrong way

Hello,
I want to use your simple extension, but it increases my number not increasingly, but decreasingly, is it the same for you ?
I looked at your code, I see your code for letters but I don't see it for numbers, so I don't know how I can change it...
Thanks !

Sorry, I just see where it is.
I try to modify it...

Hello,
the behavior of the extension depends on how you do the multiple selection. If you get a numbering contrary to what you want, try reversing the multiple selection.
In other words, if you want an increasing numbering (as in the GIF in readme.md) you have to make a "top-down" selection while if you want a descending numbering you have to make a "bottom-up" selection.
I do not know if I explained myself.
Let me know

Yes that's what I just figured out. It's not the same behavior as the extension in ST3, that's why I was confused. I'll have to change a bit my habits, that's all !
Thanks


[Fix][Docs] Update jdbc doc and kafka doc

Purpose of this pull request

The doc of next vsersion has some problems, this pull request fixing some issues with the jdbc and kafka doc.
Check list

[ ] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

LGTM, thansk for your contribution.

It's my pleasure.


Allow full control over HTTP status code on RPC error

Currently raising an exception goes through our standard exception-to-status mapping logic. However not all codes are covered. Allow the user to raise sqlstate 'PTxyz' and then use xyz as the status code.

So this would specifically be for any sort of function that is invoked by the /rpc endpoint?
Would we be able to specify all the things you can specify in the raise statement such as hint and detail in addition to the err code??
Right now, several of our functions being invoked through postgrest are using the plv8 engine.  In that, you return an error by using throw new Error(message).  I'm still fighting with trying to make sure we don't output information that is undesired such as the source code line, and also to be able to provide hint and such.

Yeah, this would be an exception type you could raise in any function (at least plpgsql functions...maybe other languages?). It allows setting message, details and hints. Check out the postgres docs about it - https://www.postgresql.org/docs/9.6/static/plpgsql-errors-and-messages.html
This would be an example:
raise sqlstate 'PT400' using message 'your request is no good';

Would generate HTTP 400 with the "message" key set.

Is it possible to set the http status without throwing an exception?
My login function logs successful and failed login attempts into a different table. However, throwing an exception inside the login function causes transaction rollback to happen, losing my 'commits' to the login attempts table.
The proposed solutions on stackoverflow and elsewhere are not ideal (i.e. using dblink or pg 11/12 procedures). It would be great if I could not throw an exception in my login function, but still somehow return an error status message (code 400 with error details). I could return code 200 with a field that indicates that an error has occurred, but I would prefer an error status code.

@W1M0R Could you open another issue with the feature request? Maybe a SET LOCAL response.status = 400 could be offered.


AST-3695 upgrade go version to 1.16.6

Scan submitted to Checkmarx

Checkmarx SAST - Scan Summary & Details
Cx-SAST Summary
Total of 7 vulnerabilities 0 High 0 Medium 7 Low 0 Info
Violation Summary
No policy violation found

Checkmarx SCA - Scan Summary & Details
Cx-SCA Summary
Total Packages Identified: 0
Scan Risk Score: 0.00
 0 High severity vulnerabilities
 0 Medium severity vulnerabilities
 0 Low severity vulnerabilities
View more details on Checkmarx UI
Cx-SCA vulnerability result overview
No package violation found


Added Kurdish locale

Added Kurdish locale

Thanks for this contribution. There are additional translation strings within the packages/forms/resources/lang and packages/tables/resources/lang directories, could you translate these too?

Thank you @danharrin I didn't know about that packages, I have translated them too. thank you

Thanks Khoshbin :)


[Feature Request] Statically linked arm builds

Is your feature request related to a problem? Please describe.
I'm trying to make a more dynamic installer for our tool and I need somethin more specific so I can make sure I'm grabbing the amd64 builds.
Describe the solution you'd like
mango-amd64
Describe a small use-case for this feature request
I'd like to get rid of the amd64 case here
    case "$(_os_arch)" in
        "arm64" | "arm32")
            dlurl=$(curl -s https://api.github.com/repos/hkalexling/Mango/releases/latest | grep "browser_download_url" | grep "$(os_arch)" | cut -d\" -f 4)
            ;;
        "amd64")
            dlurl=$(curl -s https://api.github.com/repos/hkalexling/Mango/releases/latest | grep "browser_download_url" | head -1 | cut -d\" -f 4)
            ;;
        *)
            echo_error "Unsupported arch?"
            exit 1
            ;;
    esac

Additional context
N/A

Oh never mind, I just realised they're .os. Any chance for fully self-sufficient releases? This complicates my deployment a lot more.

Unfortunately the Crystal compiler does not support static ARM builds (see https://github.com/crystal-lang/crystal/issues/5467) :( Can you mark them as unsupported at this moment? I will be happy to submit a PR to swizzin once the ARM builds are ready.

Oh man that's a bummer. Hope that PR that would close it would get merged... Ah well. go rewrite when? :p
Thanks again for the contribs to this project!

Haha, I have faith in Crystal! I guess the core team members are just busy with the upcoming v1.0 release. I will leave this issue open and keep an eye out for that PR.


Documentation: Kubelet requires beta/alpha channel

nit: Can you change this to be "alpha or beta". Maybe it's just me, but saying "beta or alpha" feels wrong.

@aaronlevy Updated

lgtm


Change "endpoint" to "DNS endpoint"

Changed single endpoint to single DNS endpoint - per the diagram below (and in practical use) there are multiple gateway IPs that the DNS endpoint resolves to.

@da5is : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


Streaming chat responses broke on 0.0.63

The bug
After update to 0.0.63 streaming chat responses from OpenAI broke. On previous version i received data as it came from OpenAI now it waits till the request is completly finished to return all data at once.
To Reproduce
    guidance.llm = guidance.llms.OpenAI("gpt-3.5-turbo")
    program = guidance('''
    {{#system~}}
    You are helpful assistant.
    {{~/system}}
    {{#user}}
    Write me a long poem.
    {{/user}}
    {{#assistant~}}
        {{gen "answer" save_prompt="prompt" max_tokens=300}}
    {{~/assistant}}
    ''') # type: ignore

    pos = 0
    for p in program(stream=True, silent=True, caching=False):
        val = p.get("answer", "")
        print(val[pos:], end="", flush=True)
        pos = len(val)

System info:

Guidance Version (guidance.__version__ = "0.0.63"):

I tested it and found that version 0.061 can streaming generate text, while the issue only appears after version 0.062.

Hopefully it's working in the new release! Please let us know if not :)


Add Vite support and improve console output

This PR adds Vite support

@andrefilsantos thanks for pr but did you looked before doing if anyone else did it? And it seems that you haven't checked if everything works. With Laravel/ui it shouldn't

hi, @krekas!
ill test again the themes with laravel/ui

@andrefilsantos with ui pr is almost done so maybe don't invest your time in that

OK.  I carefully tested all themes with inertia and livewire.  With laravel/ui I was not so careful 😳

@andrefilsantos thanks for your hard work.
We will probably wait for the https://github.com/LaravelDaily/Larastarters/pull/81 to be fully merged, and then will resolve potential conflicts with yours and will merge yours too.
/cc @krekas

@PovilasKorop awesome. Thanks 👍👍

@andrefilsantos now as I've merged that other PR, there are conflicts with your PR, could you resolve please?

@PovilasKorop done!


Automatically upload logs on disconnect errors, for people who have opted in

It's a pain for people to upload logs, and they don't seem to do it much. Let's let them opt in to have this happen automatically, if they want to be testers and don't have privacy concerns.

Related:
https://github.com/uProxy/uproxy/issues/1651
Actually, this is probably a dupe.


[Frontend][ONNX] Add LinearRegressor operator support

Add LinearRegressor operator support in relay onnx frontend.

Thanks @zxy844288792 @huajsj


Similar repo already exists

A repo made for the same purpose already exists. Can we club them?
https://github.com/TheAlgorithms/website

@mrmaxguns, @viragumathe5, @shreyasminocha It would be cool if you could attack #1 and build us a web presence that is cooler than the current https://github.com/TheAlgorithms/website and https://TheAlgorithms.github.io.  This is an area where I have no expertise so you folks will need to compare notes and collaborate to build something that will excite visitors.
No matter which repo that visitors come to, it would be awesome if clicking on the wiki tap presented something cooler than https://github.com/TheAlgorithms/Go/wiki

Thanks for your interest and efforts.

@cclauss on it, Thank you for tagging

@mrmaxguns, @shreyasminocha can we collab???

I can't play an active role at this point, but sure! I'll help out with whatever I can.

I am not at all good with JS
so that's the real problem

Interesting, I will look into that. So you are saying we need to update the wiki and also the main page?

Let's have one page but have all the links point to that one page.

Let's have one page but have all the links point to that one page.

So just have one main page that all the links point to? Will the main page just explain about TheAlgorithms?

You guys can get as fancy as you want...  I am not a web designer.  It should be appealing, respectful, and encourage visitors to both learn and participate but I have not other requirements.

Ok thank you very much for explaining. Let's see if we can do something awesome.

Changes should now be visible on the site

Not.

@cclauss  current website  https://github.com/TheAlgorithms/website is really good why not just port
https://github.com/TheAlgorithms/website -> https://github.com/TheAlgorithms

@itsvinayak thank you for updating the webpage

Jupyter seems to have been dropped:-(

Has a consensus been reached on which repo to keep as a the main Website?

Closing this now that TheAlgorithms/website hosts the official site, and thealgorithms.github.io redirects to it.


[Regression] runZonedGuarded + Firebase + Exception having issues with Null Safety

It seems this commit
https://github.com/flutter/flutter/commit/324b78eb12618d3193c164a90e7bd22b3e11413c, which is more than welcome, is breaking some things.
We have:
  runZonedGuarded<Future<Null>>(() async {
    runApp(App());
  }, (error, stackTrace) async {
    await errorHelper.reportError(error, stackTrace);
  });

And:
try {
    await FirebaseAuth.instance.createUserWithEmailAndPassword(email: email, password: password)
    return true;
} catch (e) {
    return false;
}

Yet, when that code is run, with invalid attributes, the widget temporarily crashes with the message below. That wasn't happening on Friday, or on the dev branch.
Another exception was thrown: Expected a value of type '() => void', but got one of type 'Null'
The following TypeErrorImpl was thrown building _SignInSignUpButton(dirty):
Expected a value of type '() => void', but got one of type 'Null'
The relevant error-causing widget was: _SignInSignUpButton

When the exception was thrown, this was the stack:
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49      throw_
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 64:3        castError
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 442:10  cast
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart 863:12       as
packages/my_project/auth/auth_forms.dart 635:3                            build
packages/flutter/src/widgets/framework.dart 4749:28                               build
packages/flutter/src/widgets/framework.dart 4675:15                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 4756:5                                update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 5693:32                               updateChildren
packages/flutter/src/widgets/framework.dart 6293:17                               update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 5033:5                                update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 4879:5                                update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 4879:5                                update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 5033:5                                update
packages/flutter/src/widgets/inherited_notifier.dart 181:11                       update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 6171:14                               update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 4879:5                                update
packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
packages/flutter/src/widgets/framework.dart 2777:31                               buildScope
packages/flutter/src/widgets/binding.dart 894:9                                   drawFrame
packages/flutter/src/rendering/binding.dart 320:5                                 [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1117:15                               [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1055:9                                handleDrawFrame
packages/flutter/src/scheduler/binding.dart 971:5                                 [_handleDrawFrame]
lib/_engine/engine/platform_dispatcher.dart 876:13                                _invoke
lib/_engine/engine/platform_dispatcher.dart 145:5                                 invokeOnDrawFrame
lib/_engine/engine.dart 239:45                                                    <fn>
dart-sdk/lib/async/zone.dart 1206:13                                              _rootRunUnary
dart-sdk/lib/async/zone.dart 1100:19                                              runUnary
dart-sdk/lib/async/zone.dart 1005:7                                               runUnaryGuarded
dart-sdk/lib/async/zone.dart 1042:26                                              <fn>

Tested on Flutter Web on both last beta and last master.
➜ flutter doctor -v
[✓] Flutter (Channel master, 1.24.0-7.0.pre.61, on Mac OS X 10.15.7 19H2
    darwin-x64, locale en-BR)
    • Flutter version 1.24.0-7.0.pre.61 at /usr/local/flutter
    • Framework revision b7a92f05d2 (27 minutes ago), 2020-11-02 22:18:06 +0100
    • Engine revision<PHONE_NUMBER>
    • Dart version 2.12.0 (build 2.12.0-3.0.dev)

Hi @bernaferrari
Can you please provide your flutter run --verbose and a minimal complete reproducible code sample?
Thank you

Exactly the same error. I can't, because Firebase is not testable/reproducible. But I'm just doing what I told you, a simple login inside a try/catch with a zonedGuarded around and it is causing this issue.
[+9009 ms] ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
[   +1 ms] The following TypeErrorImpl was thrown building _SignInSignUpButton(dirty):
[        ] Expected a value of type '() => void', but got one of type 'Null'
[        ] The relevant error-causing widget was:
[        ]   _SignInSignUpButton
[        ]   file:///[...]forms.dart:154:13
[        ] When the exception was thrown, this was the stack:
[        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49      throw_
[        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 64:3        castError
[        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 442:10  cast
[        ] dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart 863:12       as
[   +1 ms] packages/codelessly_flutter/auth/auth_forms.dart 680:28                           build
[        ] packages/flutter/src/widgets/framework.dart 4749:28                               build
[        ] packages/flutter/src/widgets/framework.dart 4675:15                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[        ] packages/flutter/src/widgets/framework.dart 4756:5                                update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 5693:32                               updateChildren
[        ] packages/flutter/src/widgets/framework.dart 6293:17                               update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[        ] packages/flutter/src/widgets/framework.dart 5033:5                                update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[        ] packages/flutter/src/widgets/framework.dart 4879:5                                update
[   +1 ms] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[        ] packages/flutter/src/widgets/framework.dart 4879:5                                update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[        ] packages/flutter/src/widgets/framework.dart 5033:5                                update
[        ] packages/flutter/src/widgets/inherited_notifier.dart 181:11                       update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 6171:14                               update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[        ] packages/flutter/src/widgets/framework.dart 4879:5                                update
[        ] packages/flutter/src/widgets/framework.dart 3367:14                               updateChild
[        ] packages/flutter/src/widgets/framework.dart 4700:16                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4847:11                               performRebuild
[        ] packages/flutter/src/widgets/framework.dart 4369:5                                rebuild
[   +1 ms] packages/flutter/src/widgets/framework.dart 2777:31                               buildScope
[        ] packages/flutter/src/widgets/binding.dart 894:9                                   drawFrame
[        ] packages/flutter/src/rendering/binding.dart 320:5                                 [_handlePersistentFrameCallback]
[        ] packages/flutter/src/scheduler/binding.dart 1117:15                               [_invokeFrameCallback]
[        ] packages/flutter/src/scheduler/binding.dart 1055:9                                handleDrawFrame
[        ] packages/flutter/src/scheduler/binding.dart 971:5                                 [_handleDrawFrame]
[        ] lib/_engine/engine/platform_dispatcher.dart 876:13                                _invoke
[        ] lib/_engine/engine/platform_dispatcher.dart 145:5                                 invokeOnDrawFrame
[        ] lib/_engine/engine.dart 239:45                                                    <fn>
[        ] dart-sdk/lib/async/zone.dart 1206:13                                              _rootRunUnary
[        ] dart-sdk/lib/async/zone.dart 1100:19                                              runUnary
[        ] dart-sdk/lib/async/zone.dart 1005:7                                               runUnaryGuarded
[        ] dart-sdk/lib/async/zone.dart 1042:26                                              <fn>
[        ] ════════════════════════════════════════════════════════════════════════════════════════════════════
[   +6 ms] Another exception was thrown: Expected a value of type '() => void', but got one of type 'Null'
[  +20 ms] Another exception was thrown: A RenderFlex overflowed by 199480 pixels on the bottom.

Hi @bernaferrari
From what I can see, the issue is related to a FlutterFire plugin rather than to Flutter itself. Please open the issue in the dedicated repository.
Closing, as this isn't an issue with Flutter itself.
If you disagree, please write in the comments,
providing your flutter doctor -v, your flutter run -v,  your pubspec.yaml
a minimal reproducible code sample that does not use 3rd party plugins,
and I will reopen it.
Thank you


Storybook Enhancement

Is your feature request related to a problem? Please describe.
Not a problem. We are using Storybook but not to its full potential.
Describe the solution you'd like
I want to clean up how we are currently implementing Storybook split the HTML markup and story, implement the Docs and Accessibility plugins and general clean up.
Describe alternatives you've considered
Not do it ¯_(ツ)_/¯
Additional context
N/A

Assign to me

I'm going to split this issue into tasks and do them in separate PRs as the current one is getting pretty large.

[ ] Initial Refactor
[ ] Branding & Accessibility
[ ] Snapshot Testing
[ ] Documentation

Still working on this :) just hard finding the time with work :P

No problem 😄. Take your time!


Cannot compile haste program with haste.DOM functions under ghc7.10.2 / hastec <IP_ADDRESS>

I did the following:

delete directories .cabal, .ghc and .haste
cabal update
cabal install haste-compiler
haste-boot

Then I try to compile the following little program with hastec (no options)
{-# LANGUAGE OverloadedStrings #-}
import Haste
import Haste.Foreign
import Haste.Prim
import Haste.DOM
main = do
  body <- getBody
  h1 <- newElem "h1"
  texth1 <- newTextElem  "H1 - Hello "
  addChild  texth1 h1
  addChild h1 body
getBody = ffi $ toJSStr "(function(){return document.body;})"

I get the following errors:
Ex00.hs:11:3:
    No instance for (IsElem parent0) arising from a use of ‘addChild’
    The type variable ‘parent0’ is ambiguous
    Relevant bindings include body :: parent0 (bound at Ex00.hs:7:3)
    Note: there is a potential instance available:
      instance IsElem Elem
        -- Defined in ‘haste-lib-<IP_ADDRESS>:Haste.DOM.Core’
    In a stmt of a 'do' block: addChild h1 body
    In the expression:
      do { body <- getBody;
           h1 <- newElem "h1";
           texth1 <- newTextElem "H1 - Hello ";
           addChild texth1 h1;
           .... }
    In an equation for ‘main’:
        main
          = do { body <- getBody;
                 h1 <- newElem "h1";
                 texth1 <- newTextElem "H1 - Hello ";
                 .... }

Ex00.hs:12:11:
    Overlapping instances for FromAny parent0
      arising from a use of ‘ffi’
    Matching instances:
      instance [overlappable] FFI a => FromAny a
        -- Defined in ‘Haste.Prim.Foreign’
      instance FromAny Elem
        -- Defined in ‘haste-lib-<IP_ADDRESS>:Haste.DOM.Core’
      instance FromAny () -- Defined in ‘Haste.Prim.Any’
      instance (FromAny a, FromAny b) => FromAny (a, b)
        -- Defined in ‘Haste.Prim.Any’
      instance (FromAny a, FromAny b, FromAny c) => FromAny (a, b, c)
        -- Defined in ‘Haste.Prim.Any’
      instance (FromAny a, FromAny b, FromAny c, FromAny d) =>
               FromAny (a, b, c, d)
        -- Defined in ‘Haste.Prim.Any’
      instance (FromAny a, FromAny b, FromAny c, FromAny d, FromAny e) =>
               FromAny (a, b, c, d, e)
        -- Defined in ‘Haste.Prim.Any’
      instance (FromAny a, FromAny b, FromAny c, FromAny d, FromAny e,
                FromAny f) =>
               FromAny (a, b, c, d, e, f)
        -- Defined in ‘Haste.Prim.Any’
      instance (FromAny a, FromAny b, FromAny c, FromAny d, FromAny e,
                FromAny f, FromAny g) =>
               FromAny (a, b, c, d, e, f, g)
        -- Defined in ‘Haste.Prim.Any’
      instance FromAny Bool -- Defined in ‘Haste.Prim.Any’
      instance FromAny Char -- Defined in ‘Haste.Prim.Any’
      instance FromAny Double -- Defined in ‘Haste.Prim.Any’
      instance FromAny Float -- Defined in ‘Haste.Prim.Any’
      instance FromAny Int -- Defined in ‘Haste.Prim.Any’
      instance FromAny GHC.Int.Int16 -- Defined in ‘Haste.Prim.Any’
      instance FromAny GHC.Int.Int32 -- Defined in ‘Haste.Prim.Any’
      instance FromAny GHC.Int.Int8 -- Defined in ‘Haste.Prim.Any’
      instance FromAny JSAny -- Defined in ‘Haste.Prim.Any’
      instance FromAny JSString -- Defined in ‘Haste.Prim.Any’
      instance FromAny a => FromAny (Maybe a)
        -- Defined in ‘Haste.Prim.Any’
      instance FromAny (Opaque a) -- Defined in ‘Haste.Prim.Any’
      instance FromAny (Ptr a) -- Defined in ‘Haste.Prim.Any’
      instance FromAny Word -- Defined in ‘Haste.Prim.Any’
      instance FromAny GHC.Word.Word16 -- Defined in ‘Haste.Prim.Any’
      instance FromAny GHC.Word.Word32 -- Defined in ‘Haste.Prim.Any’
      instance FromAny GHC.Word.Word8 -- Defined in ‘Haste.Prim.Any’
      instance FromAny a => FromAny [a] -- Defined in ‘Haste.Prim.Any’
    (The choice depends on the instantiation of ‘parent0’
     To pick the first instance above, use IncoherentInstances
     when compiling the other instance declarations)
    In the expression: ffi
    In the expression:
      ffi $ toJSStr "(function(){return document.body;})"
    In an equation for ‘getBody’:
        getBody = ffi $ toJSStr "(function(){return document.body;})"

I use the following versions:
roland@Goms:~/Projekte/Html5/src/Haste$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.10.2
roland@Goms:~/Projekte/Html5/src/Haste$ hastec --version
<IP_ADDRESS>
roland@Goms:~/Projekte/Html5/src/Haste$ cabal --version
cabal-install version <IP_ADDRESS>
using version <IP_ADDRESS> of the Cabal library
roland@Goms:~/Projekte/Html5/src/Haste$

When I do the same with ghc 7.8.4 and hastec <IP_ADDRESS> it works!
If I run the file in http://tryplayg.herokuapp.com/try/hello-haste.hs/edit it shows me my h1 title!!
Many thanks for looking into this
Roland

The issue here is that the DOM libraries have a slightly more general type since 0.5. With 0.4, the type of getBody would get inferred from its return value being used by addChild as an Elem, but with 0.5 the element concept is no longer represented by a single type but by an IsElem type class. Fixing the type of getBody will solve the problem:
getBody :: IO Elem
getBody = ffi $ toJSStr "(function(){return document.body;})"

This is also generally a good practice: the marshalling of arguments and return values to/from ffi is decided by the type of the function. By always giving a type signature, you minimize the risk of the compiler inferring some weird type and throwing your marshalling off track.
There are some other things you can do to get slightly nicer code for this example:

Since you're using OverloadedStrings you don't need to use toJSStr - you can just do getBody = ffi "(function() {...})".
Haste.DOM exports document.body as documentBody, so you don't need to import it using the FFI.
You can use the with function when creating an element to set properties on it. In this case, the textContent property: h1 <- newElem "h1" with ["textContent" =: "H1 - Hello"].
addChild is deprecated since its argument order never made much sense, so you should use appendChild documentBody h1 instead.

Here is how I would write your example:
import Haste.DOM

main = do
  h1 <- newElem "h1" `with` ["textContent" =: "H1 - Hello"]
  appendChild documentBody h1

Many  thanks for this excellent explanation!


GO:0015117 thiosulfate transmembrane transporter activity - which CHEBI?

We noticed that the QuickGO page for GO:0015117 thiosulfate transmembrane transporter activity lists two different CHEBI IDs in the 'Cross-ontology relations' section

Relation
Other Ontology
ID
Term

has_participant
CHEBI
CHEBI:33542
trioxidosulfanidosulfate(1-)

has_primary_input
CHEBI
CHEBI:26977
thiosulfate

This is how the term looks in go-edit.obo:
id: GO:0015117
name: thiosulfate transmembrane transporter activity
namespace: molecular_function
def: "Enables the transfer of thiosulfate ions, S2O3(2-), from one side of a membrane to the other." [GOC:ai]
synonym: "thiosulfate permease activity" RELATED []
synonym: "thiosulphate transporter activity" EXACT []
xref: MetaCyc:TRANS-RXN-496
xref: RHEA:32807
intersection_of: GO:0022857 ! transmembrane transporter activity
intersection_of: has_primary_input CHEBI:26977 ! thiosulfate
relationship: part_of GO:0015709 ! thiosulfate transport

And RHEA:32807 is:
thiosulfate(in) = thiosulfate(out)
(where 'thiosulfate' here = CHEBI:33542 = trioxidosulfanidosulfate(1−)
My understanding is that the 'has_primary_input CHEBI:26977 thiosulfate' statement is a manually asserted statement made by the GO editor, while the 'has_participant CHEBI:33542 | trioxidosulfanidosulfate(1-)' is pulled in from the RHEA xref.
is that correct?
The immediate question here is, which CHEBI is correct?:

the 'has_primary_input' statement, specifying CHEBI:26977 = thiosulfate
the RHEA xref, specifying CHEBI:33542 = trioxidosulfanidosulfate(1−)
or the GO def specifying "thiosulfate ions, S2O3(2-)", which is a third chemical, CHEBI:16094 = thiosulfate(2−)

I'm guessing RHEA is correct (i.e. that the form that is found at pH 7.3), and the GO term 'primary input' and def need updating?
The wider question here is do we have a QC check to check for mismatches between the CHEBI(s) specified as a 'has_primary_input' and the CHEBI(s) specified via the RHEA xref (if present)?  If not, it might be instructive to add this check?
@rozaru

CHEBI:26977 (thiosulfate) seems to be one of those terms in #27059 that don't have a pH 7.3 mapping, and so aren't blocked from usage.

But it has at least three different charge states:
thiosulfate(2−) (CHEBI:16094) is conjugate base of thiosulfate(1−) (CHEBI:33541) is conjugate base of thiosulfuric acid (CHEBI:33540)
so we need to know what the predomina t microspecies at pH 7.3 is, and, perhaps, get that useful information propagated into the ChEBI entry for that species. Alan Bridge and Ralf Stephan, whose GitHub tags I have forgotten, would be helpful here.

From ontology call (18th march) -
CHEBI:33542 | trioxidosulfanidosulfate(1-) is the one in use by UniProt, so is the pH 7.3 form.
So we should change the GO term def and logical def to match that.

Maybe ask ChEBI to the synonyms  ?

@sjm41:

Though looking again now, I notice that it's CHEBI:16094 = thiosulfate(2−) that has most of the synonyms (from KEGG, IUPAC, PDBeChem) and it's the only one of the 3 terms mentioned here that is annotated with "has role human metabolite"...

I believe that this is pretty arbitrary, just as it is that the -2 form has the text definition and the exact synonym "thiosulfate", whereas the -1 one has no definition and a related synonym "thiosulfate"
I asked if there was any reason here:
https://github.com/ebi-chebi/ChEBI/issues/4492

Thanks @cmungall. I have contacted CHEBI twice about this via their website help form, but without reply.
I suspect you're right about how the synonyms/xrefs are distributed - I was more influenced by the fact that CHEBI annotates CHEBI:16094 = thiosulfate(2−)as "has role human metabolite". In theory, that label should apply to the pH 7.3 form, no?

Hi all,
I suspect that the assignment of roles may occur to any charge state, and as ChEBI is used to identify metabolites in metabolomics data in MetaboLights too, these roles might also be derived from or influenced by the data in that resource, though Adnan could confirm that.
The pH 7.3 form of this metabolite (i.e. CHEBI:33542) could be assigned the role of "human metabolite" too (as revealed by this search in UniProt):
https://www.uniprot.org/uniprotkb?query=(cc_catalytic_activity%3A"CHEBI%3A33542")&facets=reviewed%3Atrue%2Cmodel_organism%3A9606
I don't know how the roles are derived in ChEBI, whether by curation or by sourcing annotations from resources like MetaboLights (that uses ChEBI as a base) or a knowledgebase like UniProt (leveraging Rhea annotations). If it is the former then it may be very difficult for ChEBI to keep up.
Hope that helps, Alan

Hi,
Esters of thiosulfuric acid are also called 'thiosulfates'. You can remove CHEBI:26977 from the quickGO page as this is the entry for the esters of thiosulfuric acid. CHEBI:33542 is the major microspecies at pH 7.3 according to Marvin pKa predictor hence this is the entry you should be using.

Thanks @amalik01 !  I'll update the GO textual and logical defs to use CHEBI:33542.

@balhoff @cmungall I still think it would be good to have a check for mismatches between CHEBI IDs listed in the LD vs the 'has_participant' (via RHEA), at least for transporters - i.e. check that chemical given in the LD is found among the has_participants list. (I just stumbled across another mismatch in GO:0015446.)
If you agree, shall I make a separate ticket for that?


station sign is not working right

BkCommonLib version: BKCommonLib-1.12.1-v3 (latest)
TrainCarts version: TrainCarts 1.12.1-v2 (build: 95)
Spigot version: CraftBukkit version git-Spigot-da42974-8/bk76d22c (MC: 1.12.1) (Implementing API version 1.12.1-R0.1-SNAPSHOT)

Problem or bug:
The train will not center if he is on a high speed
Expected behaviour:
The train will be get centered
Steps to reproduce:
Setting up a train station sign

and the max speed is olso not right showed

Fix with the other speed issue.


Add channel to meeting to save recordings centrally to team

Talking with the Teams team, if we want to save recordings and transcripts centrally from the REST API Stewardship Board meetings, we need to add the channel to the Teams meeting. When we did this in the past, we also found that people not in the Teams team couldn't access the chat until they were added; thus, we may also need the app to add those members to the team unless I can find a way to permit all our tenant/enterprise (still discussing).

Schedule meeting: https://learn.microsoft.com/graph/api/application-post-onlinemeetings
I don't see, however, how to add a channel but this is possible in the UI:

Add members in bulk (1..N): https://learn.microsoft.com/graph/api/conversationmembers-add

/cc @tg-msft @mikekistler

@heaths if you could like to look into it, the cloud flow responsible for this is: CalendarEvent - Create-child. and concretely, the step is:

Thanks. I'm still waiting to here back from the Teams team about the missing docs on this.


Update sdk version to 15

Update sdk version to minimum be 15.

We're keeping the minimum Android version at 14


Disable install of versioned entrypoints

Is there or can there be an option to disable installation of the Python versioned entrypoints (e.g. coverage3 and coverage-3.5)? Thanks.
cc @ericmjl

There's isn't such an option.  Can you tell me about why you don't want to install them?

We use coverage in conda. So, in any environment coverage is installed, there is only one Python and so there is only one version present. As a result, it has been argued it is a bit silly to have versioned entrypoints.

I guess it isn't necessary to have the versioned names, but I'm not hearing a problem.

It's true there isn't a problem per se. This is more of a user request/feature type question.


use apiservice group and version from SchemeGroupVersion

What type of PR is this?
kind/cleanup
What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

Codecov Report

Merging #466 (dde9af3) into main (4f8f3e3) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #466      +/-   ##
==========================================
- Coverage   13.57%   13.53%   -0.05%
==========================================
  Files          62       62
  Lines        6688     6688
==========================================
- Hits          908      905       -3
- Misses       5710     5712       +2
- Partials       70       71       +1

Impacted Files
Coverage Δ

...ernet/clusternet/pkg/hub/apiserver/shadow/utils.go
89.28% <0.00%> (-10.72%)
:arrow_down:

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


unhandled operation code (240)

Unluau.DecompilerException: unexpected constant passed to 'ConstantToExpression'
at Unluau.Lifter.ConstantToExpression(Constant constant) in C:\Users\rekitrelt\source\repos\unluau\src\Unluau\Lifter\Lifter.cs:line 810

script.txt

What version of unluau did you use, one from releases?

im using the latest version from releases with the update for bytecode version 5 from MaximumADHD's fork

im using the latest version from releases with the update for bytecode version 5 from MaximumADHD's fork

Oh, maybe building the source for this will work since they just updated it with the latest opcodes and stuff for version 5 on here.

im using the latest version from releases with the update for bytecode version 5 from MaximumADHD's fork

Oh, maybe building the source for this will work since they just updated it with the latest opcodes and stuff for version 5 on here.

If you need me to build it for you lmk

I just built it, now I get unhandled operation code (240)

idrk what to say other than make sure you're using the client encoding option for the cli

oh right im dumb;
Unexpected error; please report here: https://github.com/atrexus/unluau/issues
System.NullReferenceException: Object reference not set to an instance of an object.


Crash in readFromSecureStore(): EXC_BREAKPOINT (code=1, subcode=0x1009544dc)

public extension ReadableSecureStorable where Self : GenericPasswordSecureStorable {
    func readFromSecureStore() -> GenericPasswordSecureStorableResultType? {
        do {
            let result = try performSecureStorageAction(performReadRequestClosure, secureStoragePropertyDictionary: asReadableSecureStoragePropertyDictionary)
            return GenericPasswordResult(resultDictionary: result!)
        } catch {
            print(error)
            return nil
        }
    }
}

It looks like result! is nil when trying to use it as a constructor for GenericPasswordResult(resultDictionary:). Not sure why it'd be nil, but we should probably log it instead of allowing it to crash?
I got this running the app on my iPhone 6, tethered to my mac, deployed from Xcode. Optimization settings for my main app are off, but are on for Locksmith.

Experiencing the same issue.
Doing an if let on the result has fixed the crash for me, but I am unsure if it is the appropriate solution e.g. should this check be done in performSecureStorageAction instead.

+1 on the issue and temporary solution.

Thanks for letting me know! Merged in the fix from the PR, but please reopen if the issue occurs again :)


Allow installHandler to include a url to open after success

I'm not sure if this feature would be valuable to others but here is the scenario I was looking at:
A user wants to navigate from their wallet to an issuer's website that is linked within it. They do not yet have CHAPI installed so there is 2 possible strategies for the wallet to allow this.

The wallet has a button that installs the handler and then after success a second button to navigate to the issuer (non ideal UX)
The wallet has a button that installs the handler, which subsequently navigates to the issuer (doing this right now as two separate function calls and using a _blank navigation results in the browser blocking the page thinking it's a popup)

I am hoping there is a way we could add to the installHandler method an optional page to open after success. I'm not 100% sure this would solve the issue even but if so would allow the smoother user experience of option 2

Ok, thanks for the great explanation. Can you clarify for me what 1st vs 3rd person mode means in this context? I think I've seen 2 different interaction patterns when I tested using an app's in app browser, is that 3rd?

So 1p means "first party" and 3p means "third party".
Here, first party refers to the origin that a user directly visits via the URL bar and third party refers to an origin the user may interact with via embeds (usually an iframe) in the first party website.
Browsers will implement or expose a number of features very differently depending on which of these contexts the user is interacting.
For example, in order to prevent cross-site tracking, a number of browsers will "partition" local storage (including storage APIs for localStorage, IndexedDB, cookies, caching, etc.) in third party contexts.
That means that if you visit site A and interact with an iframe that loads site B, the Web application loaded from B will "see" a storage bucket for the combined sites A+B. You can think of this as a sort of double-key'd Map. If the application writes something to local storage in this scenario, like a cookie or using an API like localStorage, etc., then it will only be readable when the user is using an embed of B on site A.
If the user visits site B directly (e.g., by typing its origin into the URL bar), the written value will not be present when an attempt is made to try and read it. The same is true in reverse -- values written by a Web application on site B in a "first party context" will go into a different storage bucket and not be seen when visiting site B via an iframe on site A.
This approach prevents some unwanted tracking behavior by, for example, ensuring that if there's a tracker loaded into an iframe on site A (potentially even invisibly), it cannot create a value that can then be read back on some other site, let's say C, if it embeds an iframe for the same tracker origin. This is what it means to have "partitioned storage" -- every different scenario (site B on site A, site B directly, site B on site C, so on) gets a different storage bucket.
Some browsers, like Brave, have partitioned storage like this -- and -- it's ephemeral. So it gets destroyed quite frequently, perhaps even when you just leave the site (this is up to the manufacturer's policy which can change at any time). Other browsers persist partitioned storage, but perhaps only for a short period of time. Some browsers, like Chrome, do not have partitioned storage and use the same storage bucket everywhere. This can also be controlled by settings -- and the defaults for Chromium-based browsers may differ based on the OS you're using. Chrome (and Chromium generally) are trying to be able to change their default everywhere to use partitioned storage, but can't do so yet without breaking a lot of valid use cases (i.e., not unwanted tracking) on the Web.
Additionally, some browsers implement the "Storage Access API" -- to try and help enable use cases where a user actually wants some service to keep track of things for them. This API allows, so long as the user interacts with an iframe on a page, the 3rd party Web application running in that iframe to request to use the 1st party storage bucket. The user may or may not be prompted by a browser-rendered dialog when this happens ... depending on whether you're using, for example, Firefox or Safari. Whether or not they render that dialog can be based on whatever the browser manufacturers feel is the best policy, and it's open to change at any time.
Some browsers, like Safari, will require the user to have visited whatever site is rendered in an iframe in a first party context before using the iframe. It also requires that the Web application at that time have received transient user interaction coupled with writing a cookie to the 1p storage bucket -- before the Storage Access API can ever be called successfully in a 3p context (iframe) later. Additionally, the storage access and persistence is highly constrained, limiting the storage of cookies to only seven days, if they have been set by JavaScript as opposed to the server. This is problematic for applications (such as the CHAPI polyfill mediator!) that are only intended to run on the client. Furthermore, Safari does not provide shared storage access to anything other than cookies, so localStorage and IndexedDB are non-options using this API.
Some browsers, like Brave, have partitioned storage -- but do not implement the Storage Access API and currently say they do not plan to.
In other words -- all of this gets really complex :).
We've found that for the use case we have with the credential handler mediator polyfill, the Safari implementation of the Storage Access API is essentially unworkable. The whole point of the mediator polyfill is to invisibly store the credential handler registrations that the user wants stored -- without putting some "special mediator storage site" in their face or requiring them to visit it on their own. We also don't want any cookies going anywhere if we can avoid it -- all storage should be local. Given this problem and other complexities we encountered when we tried to make the Storage Access API work in the past, we've opted to just use 1p windows on browsers with partitioned storage.
In short, that means creating popup windows so that the user is visiting a window in a 1p context (with the origin in the URL bar), as opposed to using an embedded iframe in the site they were on. You'll notice that if you use CHAPI in Chrome, you'll get a more integrated and better UX on desktop than if you use CHAPI in another browser -- because that other browser will generate popup windows to ensure that the same storage bucket (always the 1p one) is used. On mobile, the problem is less evident because popups fit more seamlessly into the UX on a small screen where only one window is ever shown.
Getting all of the above to work properly -- and switch properly -- across different browsers is quite challenging. Additionally, there are other complexities around message passing and performance that we have to deal with. This means that we actually always use iframes that minimally load the mediator site (authn.io) on relying party websites. This iframe is always present so when a call is made to CHAPI, we can quickly receive it and decide whether to open an additional 1p window (or not) to process the request. Otherwise, there would be a (user experienced) delay in loading the authn.io mediator site when the API was called.

This is a very good explanation and I appreciate you spending the time to educate. It definitely shows how this gets complex when supporting multiple browsers while also creating a seemless user experience. Thanks!

Hi @dlongley, thank you for writing up your challenges with the Storage Access API. Trying to summarize the main challenges:

Safari cookie retention policies - unfortunately this isn't a standardizable aspect of the Storage Access API but I understand your frustration.
Need user interaction twice (this seems like it should be possible because SAA should not consume the user interaction, unless you found a bug)
Requires prior 1P user interaction (currently only on Safari). This part is slightly confusing to me as I would assume that the user should have previously registered their identity in some way in order for you to use it in an embedded context. Does the user never visit your site in a 1P context? Apologies for my lack of knowledge of CHAPI mechanics :)

I think it would be great if there could be support through FedCM as outlined in https://github.com/fedidcg/FedCM/issues/374 but I'd still be interested in these challenges with SAA (I think they also have implications on the utility for FedCM).

@johannhof,
Thanks for your response!

Need user interaction twice (this seems like it should be possible because SAA should not consume the user interaction, unless you found a bug)

Well, when attempting to make this work with Safari, we end up needing more than just two user interactions. You may be referring to a specific API interaction, e.g., whether a call to SAA to check for current storage access followed by one to request it may not consume a user gesture / activation -- or something along those lines.
I don't know where the behavior is with the SAA these days, but to give some historical background, we've had the CHAPI polyfill for something like seven years now -- and have adapted it over time to whatever browser primitives offer the best UX. This includes implementing several different variants against the SAA over the past two years or so. I'm sure a number of things have changed with how user interactions are consumed (or are not) in that time period, but the totality of what the user must go through still certainly requires more than two on Safari. These challenges ultimately led us to dropping trying to use it. I detail more of that later.

Requires prior 1P user interaction (currently only on Safari). This part is slightly confusing to me as I would assume that the user should have previously registered their identity in some way in order for you to use it in an embedded context. Does the user never visit your site in a 1P context? Apologies for my lack of knowledge of CHAPI mechanics :)

TL; DR: Users directly interact with digital wallet websites, not the polyfilled "mediator website", authn.io, that needs to store the origins of registered digital wallet websites. This "mediator" component is supposed to function as a seamless "part of the browser", not as a website that users intentionally visit as a first party outside of any CHAPI-related flow. SAA wasn't really designed for the CHAPI mediator polyfill use case and it doesn't work well as a solution to it.

So, if you're still reading, here's the long version:
The CHAPI polyfill provides two components to enable the "Credential Handler API" to work properly.
The first is provided via a JavaScript polyfill library that other sites (both relying parties and credential handler providers, aka digital wallet providers) include in their Web applications. This library polyfills the navigator.credentials.get() and navigator.credentials.store() methods to all for a new WebCredential type to be requested, i.e., a Credential that is provided by another Web application (a "digital wallet") instead of the browser directly.
When a call is made to get or store such a credential, a message is sent, via postMessage to an iframe that loads code from the polyfilled "Credential Mediator", the second component. This component is intended to be part of the browser -- not having any "site" of its own, but provides local storage for the user's registered credential handlers, aka "digital wallets". To polyfill this component and ensure a user's registrations are available on any other site, however, we have to run code in polyfill mediator website, authn.io.
The mediator is responsible for:

Storing the registered credential handlers (i.e., digital wallet origins) that a user has previously registered, in local storage. This storage needs to be accessible in the mediator from any relying party website that makes a request.
Showing the mediator UI to allow users to authorize a digital wallet to get / store credentials on their behalf. This UI is shown at registration time when a digital wallet website calls the registration API.
Showing the mediator UI to allow users to select a digital wallet to fulfill the get / store request. This UI is shown when a relying party requests to get or store a credential. Relying parties may make suggestions of digital wallets for the user to use if they haven't pre-registered any, but it's also important that the user can "bring their own" via 2.
Opening an iframe or window to the digital wallet website and passing a get or store request to it so that the digital wallet can render its own UI for the user to interact with. The user uses this digital-wallet-specific UI to complete the get or store request.

Note that this "mediator" component is never meant to be a website that the user visits directly, it is polyfilling a missing piece of the browser. The whole point is for it to function as if it provides browser-native selection menus and local storage of the user's registered digital wallets. Also note that the user registers their digital wallets by visiting the digital wallet website(s) of their choice -- not by visiting the polyfill mediator "authn.io" website.
This means that, in order to use the SAA with Safari previously, the UX for registering a digital wallet was like this:

The user visits https://digitalwallet.example. The website loads the polyfill, which includes creating an invisible iframe to the mediator site: authn.io, preparing it to receive any messages triggered from the polyfilled API.
The user clicks "Register my wallet for use on other websites!". This click causes the website to call the registration API, which in turn sends a message to the authn.io iframe. The authn.io iframe renders a permission dialog that asks the user if they want to authorize https://digitalwallet.example to manage credentials.
The user clicks "Allow". Now we have our first user interaction with authn.io. On Safari we try to get storage access, but we fail, because the user has never visited authn.io in a 1p context -- and, indeed, it never makes sense for them to do so anyway. At the time of implementation, this action also consumed the user activation.
Next, we render a dialog letting the user know that we need to get permission to access their list of digital wallets so we can add a new one to it. I'm sure we've already lost most users at this point. But if they click to continue (another user interaction), we can open a popup window to authn.io in a 1p context.
We show some more text and another authorize button in the 1p window. We need to get another user interaction here on authn.io directly in a 1p context -- and store a cookie in the 1p storage bucket. Note that we never wanted the user to be here in the first place, nor did we want to use cookies at all. In fact, this is less private than what we desired for them since we never wanted to send cookies to authn.io, but it's not terrible. So maybe a some users still click through so we can get this interaction, store the cookie, and then close the popup window.
Now we're back in the authn.io iframe where we wanted to be able to store the digital wallet registration. We have to get another user interaction to request storage access again. So, we get the user to click another authorize / allow button.
Now the user is faced with a confusing prompt, directly from the browser, about allowing tracking by authn.io and so on. The user must click through this to enable storage access.
Finally, we've stored the user's digital wallet registration, i.e., a URL that contains the origin to the digital wallet website. Of course, we have stored it as a cookie here in Safari, because we can't store it using IndexedDB or localStorage, which is unfortunate because we don't ever need this data to hit the server in the first place. But -- now we're hit with the seven day retention policy and then the user's digital wallet registration will be deleted. So we're back to having to make the server set the cookies if we want to avoid this.
Done!

So, that's just digital wallet registration on Safari using SAA. I'm not going to detail processing a get / store request, but suffice it to say, it's similarly bad UX -- and the digital wallet UI the mediator renders may then need to jump through similar hoops for the digital wallet site to get storage access if needed. But... once it's been done once, you can get a much nicer, seamless experience when doing get / store requests like you do today with Chrome. However, I suspect most users would never get that far before thinking someone was trying to scam them in some terrible way.
Now, alternatively -- we could just not use SAA and when the user needs to register a digital wallet, open a popup to authn.io directly and render the permission dialog there and use 1p storage. That's what we do today. You don't get a seamless experience (there are popup windows), but that's not so bad on mobile and it's still clearly better than some kind of "authorization wizard scavenger hunt".
Put simply, SAA was not designed for the use case we have. It was designed for embeds like Twitter, Facebook, and so on -- where users have some relationship with the embedded site. Users are not meant to have a relationship with a polyfill mediator component rendered by authn.io. So it just doesn't work right.
If you want to learn more about the CHAPI polyfill or see some animated GIFs of it in action, you can visit these sites:
https://chapi.io/
https://github.com/credential-handler/credential-handler-polyfill#features

I see, thanks for detailing this, @dlongley! I agree that this isn't great for your use case and it doesn't seem like the web platform can really seamlessly support this kind of integration post 3rd party cookies right now. Maybe we can make progress in https://github.com/fedidcg/FedCM/issues/374 :)
I'll definitely keep this as a reference of how 1p relationship/interaction can be challenging for some use cases!
cc @cfredric @helenyc


[Production] Dataverse: Inconsistent delete function and failure to delete file

Steps

Go to a project with Dataverse linked.
Hover over the dataverse file, now hover to the right in the 'actions'  section next to the download button.
Click on a dataverse file to go to the files detail page
Click on the 'delete' button, submit
Return to the files detail page; look for the same file

Expected
Dataverse files should be consistent from Hgrid to files detail page with the delete function.  IF the delete function is on the the files detail page, then there should also be a delete button action available on the Hgrid files page.
When a user clicks the delete function on the file detail page: the dataverse file is deleted from the file detail page.
Actual
Dataverse files have inconsistent delete action buttons on the Hgrid and the file detail page.

There is no 'x' on hover in the action section to delete a file from the files page Hgrid with dataverse linked files.

Whereas there is a delete button on the files detail page to delete a file.
Receive an 'error: could not delete'

DELETE https://osf.io/api/v1/project/e2k9z/dataverse/file/2428419/ 500 (INTERNAL SERVER ERROR)

Because a "Released" version of a Dataverse study is not editable, deletion of files from that version of the study is not possible. To remove a file from the released version of the Dataverse study through the OSF, the closest equivalent action that the Dataverse permits is to go to the "Draft" version of the study, delete the file, re-release the study, and wait for an overnight job to record that the study has been released. While this behavior is probably more intuitive for Dataverse users, I wonder if there is a way that this sort of information could be better communicated to the user.
The fact that a delete button exists on the files detail page is not intended, and I can address that issue.

@rliebz why don't we wrap this into the dataverse updates for the new api

The new API will have some major changes in how our users interact with Dataverse, so it is probably smart not to invest too much in the interface. For now, it might still be a good idea to prevent users from generating a 500.

As you note, @rliebz , Shall we just remove the 'delete' button for the Dataverse Add-on? @GaryKriebel ?

That should be sufficient.

Corrected with the above PR.


Fix laser cooldown bug

I'm not sure if PRs like these are considered, but this fixes a minor laser cooldown bug that's already fixed in 6-space-game/solution/app.js (lines 307-309) but not in the lessons' individual app.js files.
Describe the bug
Pressing space bar before the laser's cooldown is over will result in the cooldown being nullified, letting the ship shoot much faster than the cooldown should allow.
To Reproduce

Open 'index.html'
Press space bar very quickly

Screenshot
Result of quickly pressing space bar
(intended cooldown is 1200 ms)

that's a lot of pew pew. @softchris what do you think? lgtm. we just want to check that these changes propagate throughout.

that's a lot of pew pew. @softchris what do you think? lgtm. we just want to check that these changes propagate throughout.


Needs 1.18.2 Update

Sodium Video Settings Button does nothing and stays in the default video settings in 1.18.2. Most likely just needs an update

What mods are you using?

This is happening for me with Reese's Sodium Options

Sodium
Sodium extra
balm
client tweaks
cloth config
clumps
fabric api
ferritecore
inventory sorter
lithium
mod menu
reeeses sodium options
starlight fabric
wi zoom
xaeros minimap
xaeros worldmap

What mods are you using?

Sodium Sodium extra balm client tweaks cloth config clumps fabric api ferritecore inventory sorter lithium mod menu reeeses sodium options starlight fabric wi zoom xaeros minimap xaeros worldmap

All up to date (1.18.2)

I created this fix: https://github.com/LimeShulkerBox/better-sodium-video-settings/pull/19

Fixed in #19

Fixed in #19

How do I download this?

Ah I forgot to upload to CurseForge, thank you for the reminder, I will upload it now

NP
On Tue, Apr 26, 2022 at 4:29 AM LimeShulkerBox @.***>
wrote:

Ah I forgot to upload to CurseForge, thank you for the reminder, I will
upload it now
—
Reply to this email directly, view it on GitHub
https://github.com/LimeShulkerBox/better-sodium-video-settings/issues/17#issuecomment-1109506229,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVRGEAW7N3LIIHBOUVHOK73VG6SOHANCNFSM5QVQODWA
.
You are receiving this because you authored the thread.Message ID:
@.***
com>


Angular 8 : working but got an error (a setTimeoutis probably missing somewhere ?)

Describe the bug
Context menu is working, but I've still got an error in the dev console :

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'contextMenu: undefined'. Current value: 'contextMenu: [object Object]'.

To Reproduce
Made a stackblitz (take a look at the console) based on your examples
https://stackblitz.com/edit/ngx-contextmenu-example-p3cmlw?file=src%2Fapp%2Fapp.component.ts
Expected behavior
This should not throw an error

Just discovered that angular execution is broken when this error occurs , some other things that should happen after won't.
So, I think this is bug is blocking...

I was a bit desperate and started to read every issues reported here and found this one (with a totally different problem) https://github.com/isaacplmann/ngx-contextmenu/issues/150 BUT they suggested to add #basicMenu to the context-menu tag, ANNNNND BINGO ! It Works !
You should maybe consider to update the template in your documentation ( https://github.com/isaacplmann/ngx-contextmenu )

It works for me after I change this line in component.xxx.ts
  @ViewChild(ContextMenuComponent, { static: false }) public basicMenu: ContextMenuComponent;

to
  @ViewChild(ContextMenuComponent, { static: true }) public basicMenu: ContextMenuComponent;


Backport "HBASE-28767 Simplify backup bulk-loading code (#6134)" to branch-3

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 27s

Docker mode activated.

-0 :warning:
yetus
0m  3s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-3 Compile Tests _

+1 :green_heart:
mvninstall
3m 12s

branch-3 passed

+1 :green_heart:
compile
0m 21s

branch-3 passed

+1 :green_heart:
javadoc
0m 14s

branch-3 passed

+1 :green_heart:
shadedjars
5m 54s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m  0s

the patch passed

+1 :green_heart:
compile
0m 18s

the patch passed

+1 :green_heart:
javac
0m 18s

the patch passed

+1 :green_heart:
javadoc
0m 13s

the patch passed

+1 :green_heart:
shadedjars
5m 48s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
15m 47s

hbase-backup in the patch passed.

36m 16s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6539/1/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/6539

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux 734b6addb382 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-3 / c1ed116b7637e33d7edd85238ab1966bc260475e

Default Java
Eclipse Adoptium-17.0.11+9

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6539/1/testReport/

Max. process+thread count
3594 (vs. ulimit of 30000)

modules
C: hbase-backup U: hbase-backup

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6539/1/console

versions
git=2.34.1 maven=3.9.8

Powered by
Apache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.


LEDs stuck on, but all services are running, no errors in the services

Pi Zero 2 W with Keyestudio 5V ReSpeaker 2-Mic Pi HAT V1.0
Seems to crash in listening mode. But I cant see any errors from
journalctl -u enhanced-wyoming-satellite.service
I actually cant see any errors in any of the related services, just wont respond until I restart the service, but then crashes again.
Any ideas where to start looking?

I ran into pretty much the same thing and ended up creating a script to turn the lights off, and made that script run on every conversation finish and error.
sudo apt install python3-pip
pip install apa102-pi
git clone https://github.com/respeaker/mic_hat.git
cd mic_hat/interfaces
nano lightsoff.py

And the lightsoff.py I adapted from an example looks like this
import RPi.GPIO as GPIO

from pixels import pixels

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(5, GPIO.OUT)
GPIO.setup(6, GPIO.OUT)
pixels.off()

And then I have a line in my tts_end script that calls python3 ~/mic_hat/interfaces/lightsoff.py. I call that script in my wyoming-satellite arguments for --tts-stop-command, --transcript-command, --error_command. I'm not sure about --transcript-command, but regardless, it works and shuts the light off no matter if the converation ended successfully or not.
Having said all that, this is not optimal and shouldn't be necessary. Right now it looks like the LEDs don't shutoff when an error is received at the end of exchange and that should probably be fixed. It would also be helpful to have a user accessible endpoint into the wyoming-event service that gave us more direct control of the lights. I'd like to be able send TTS announcements to the MPD instance on my satellite and turn on the LED while it's speaking. Is this possible?

Hey, sorry its taken a while to respond. Thanks so much for that info :)
Ive actually just wiped the SD card and am going to start again and see how it goes.
Did you find a more perm solution, or get to the bottom of the actual issue?
Thanks again

Right now it looks like the LEDs don't shutoff when an error is received at the end of exchange and that should probably be fixed. It would also be helpful to have a user accessible endpoint into the wyoming-event service that gave us more direct control of the lights.

The satellite itself and the leds are different "entities", it's not an integrated product per se, and the user must customize it to behave like wanted or to handle all error scenarios. There's no fix to be made, just improvements. ;) However, it's hard to do it right now without any programming knowledge to modify the event service and control the leds. The existing code is the bare minimum as an example only.
One solution could be to create an script similar to- what you did to receive a color parameter and send to the leds. This script could then be called modifying the command line of the satellite. This would allow to control the leds without any programming skill.
You would have to indicate the LED status for each of the events described in https://github.com/rhasspy/wyoming-satellite?tab=readme-ov-file#event-commands

I'd like to be able send TTS announcements to the MPD instance on my satellite and turn on the LED while it's speaking. Is this possible?

Yes and no. :)
It can't be done right now using MPD as we are not able to capture the events of this.
However, I did implement the media_player entity for the wyoming integration, which would allow to send TTS to the satellite without MPD and be able to capture the events to control the leds. This is in test right now and it could take a while to make the cut to the main branch of Home Assistant.

Solution, that worked for me
I managed to solve it after enabling logging for the wyoming integration and looking through the home assistant logs.


"unexpected end of JSON input"

I have as others have noted, got a request timeout since the last 9-10 hours. I was able to get around that by downloading the src and increasing the http-client timeout. However, after doing so, I get this error message:
"unexpected end of JSON input"
I downloaded the source just now and I build and run on windows using new golang compiler.

check if the nvidia store works in your browser. you probably will timeout in there too (check for known available products - like the titan rtx)...
either they are down, or we have been banned indivualy (but here, even my phone doesn't allow me to add to cart a known product).
So it's probably not a "bug" on this side.

something is happening accross the board : https://github.com/jef/nvidia-snatcher/issues/373

Ok, there seems to be something (more than usually) odd with the Nvidia store too. It says out of stock, but that may be just a default..


Taxonomy of Burkholderia vietnamiensis incorrect in PATRIC-does not reflect its place in the Burkholderia cepacia complex

A user has noted problems that we have with our Burkholderia taxonomy in PATRIC, and that it leaves out several species out of the  Burkholderia cepacia complex.  Burkholderia vietnamiensis is needs to be included

Burkholderia cepacia complex_list species.docx


Do not append language to page title when page tree is freeformed

This is only in the admin, doesn't seem that big of an issue to me.. You can always override the get_admin_display_title in your models to not include it. This is so much depending on the kind of installation, that it shouldn't be a feature of wagtailtrans.
I'm opting to close this issue, anyone disagees?

get_admin_display_title should be the way, check.


codec training required ?

Hallo,
i'm having hard time making a good (coarse) pth from scratch, despite the huge number of chunks (i'm now at around 100k) what i get after many tries with many combinations is a model that is unable to go under 5.75 loss, while the default fine-tuned one with a very small subset (2k chunks) easily reach 5.4 with the same validation set.
result is that the models is able to make good drums but nearly unable to produce decent sounds most of the times, even with a lot of "hints" is basically unable to "follow" the sounds that i'm giving, if i compare it with the default fine-tuned model is like day and night.
While one of the reason could be my dataset that is very genre specific and may be a bit redundant and not enough generalized, i'm wondering if i need to train the codec.pth with my specific dataset to get better results.
As you never mentioned this on your project here i'm not sure if it will have any relevance for the end result.
In case i have to train the codec do i have to follow the settings from the codec.pth you have provided in order to avoid issues/extra coding in vampnet?
below metadata from the latest codec from descriptinc:
encoder_dim: 64
encoder_rates: [2, 4, 8, 8]
latent_dim: 128
decoder_dim: 1536
decoder_rates: [8, 8, 4, 2]
n_codebooks: 18
codebook_size: 1024
codebook_dim: 8
quantizer_dropout: False
sample_rate: 44100

while here's yours from ismir2023
encoder_dim: 64
encoder_rates: [2, 6, 8, 8]
decoder_dim: 1536
decoder_rates: [6, 4, 4, 2, 2, 2]
n_codebooks: 14
codebook_size: 1024
codebook_dim: 8
quantizer_dropout: False
sample_rate: 44100

thank you for your time

Hi!
How many hours of audio are in your dataset? Training from scratch will only work with lots of data (~800k tracks for me, between 20-30k hours of audio IIRC)

i'm providing around 100k 10sec chunks, so that means around 280 hours.
Sources:
some pro samples sounds/loop sets (around 10%)
~20k tracks where i've extracted max 3 chunks for each one.
a part of the above chunks (around 30%) are made using demucs on already existing chunks where i've removed drums as i had problems generating sounds i thought to give sounds more importance doubling some chunks after having removed drums.
So i'm basically at 10% of required data if not less... :(


[Segment Replication] Verify All Integ Tests are Passing with Segment Replication Enabled

Describe the bug
Currently few server module integ tests fail with segment replication enabled. These failures happen even after introducing a new segrep client (with wait until replica caught up behaviour), more details can be found in #8925. This issue will be used to track all the integ tests failures with segment replication enabled.
This issue is being tracked as a sub task and part of meta issue https://github.com/opensearch-project/OpenSearch/issues/6761
Sub Tasks:

[x] https://github.com/opensearch-project/OpenSearch/issues/8848
[x] https://github.com/opensearch-project/OpenSearch/issues/9484
[x] https://github.com/opensearch-project/OpenSearch/issues/7161
[x] https://github.com/opensearch-project/OpenSearch/issues/7163
[x] https://github.com/opensearch-project/OpenSearch/issues/9419

Expected behavior
We should have 0 integ tests failing in server module with segment replication enabled.
Plugins
Please list all plugins currently enabled.
Screenshots
If applicable, add screenshots to help explain your problem.
Host/Environment (please complete the following information):

OS: [e.g. iOS]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@Rishikesh1159 : I see all tests mentioned in issue descripted are resolved. Are there more test failures ? If not, can we close this issue


module: add ak script

This was made possible by d85dacb6c27a09f3f3df88e555148d884701ee3c which allows to directly use manage.py. That script is effectively used whenever the ak command is referenced in the docs, e.g. to set a new password for the superuser or to send a test email.
This needs to run as the same (dynamic) user and with the same env file, otherwise manage.py exits early. To achieve that, I decided to use systemd-run(1) because now the invocation can be configured the same way as services are.
cc @WilliButz @fpletz

OK, pushed an update that solves a few issues:

using --collect to remove the transient unit afterwards. Otherwise, my monitoring alerts me for failed units just because I mistyped a command
the workdir /var/lib/authentik is needed for a few commands. The chdir only works though when also specifying the StateDirectory.


should use pk instead of id

When a model uses a primary key for something besides id, it breaks. Using pk fixes this problem because pk will still reference id if id is the primary key

Merged in 5270c14444b5ada7a60c0b644fcc43d456c10a2d - thanks!


Set line stroke for individual series

A feature that would be very useful would be to set the type of line (solid, dotted, dashed, ect.) when adding a series. I use XChart without the markers enabled, as I only need the line to be visible. Declaring the line style would be useful for visualizing estimated data in a chart. Something such as addSeries(name, seriesData).setSeriesStroke(dashed);

I think it has this feature. Maybe you can see / xchart-demo / src / main / java / org / knowm / xchart / demo / charts / line / LineChart05.java
It can work like this
series.setLineStyle(SeriesLines.DASH_DASH);
It also has other line styles, see / xchart / src / main / java / org / knowm / xchart / style / lines / SeriesLines.java

Yes, this is definitely already possible. Thanks, @Mr14huashao .


More helpful error message when using default as parameter name?

Under TypeScript 2.4.0, the following code returns a not-quite-helpful error message:
function Coalesce<T>(t: T, default: T) {
	return t != null ? t : default;
}

The errors are
script.ts(1,28): error TS1003: Identifier expected.
script.ts(2,21): error TS1109: Expression expected.
script.ts(2,29): error TS1128: Declaration or statement expected.

Obviously the actual error here is the use of the reserved keyword default as a parameter name.
Is there a valid usage for default in the parameter list or can this be caught and turned into a more helpful message such as Use of reserved keyword "default" as parameter name. or similar?

Hey, @DanielRosenwasser. I'd like to take this on.

we have a branch for this here: https://github.com/bloomberg/TypeScript/pull/41, will open soon