Port index of discoverable taps and targest to dedicated MeltanoHub website

Migrated from GitLab: https://gitlab.com/meltano/hub/-/issues/4
Originally created by @DouweM on 2021-02-24 16:17:33

This will be the Singer equivalent of PyPI, Docker Hub, or dbt Hub.
Part of this is defining the first draft of the spec for taps and targets https://gitlab.com/meltano/singerhub/-/issues/14

[x] Convert all targets to YAML
[x] Convert all taps to YAML
[x] Validate existing YAML is clean w/ no meltano-specific items https://gitlab.com/meltano/hub/-/merge_requests/1

[x] Generate JSON schema to validate against (ideally single schema for both taps / targets) #14

[x] Make HTML more sensible (no uls with h3s and ps without li) @DouweM
[x] Index

[x] Large Banner welcoming Singer community and linking to hub.meltano.com/singer (#21)
[x] 3 Plugin categories - Extractors / Loaders / Utilities

[ ] Highlight a few that we support? Link to docs on what those are?

[x] Add pages for /singer, /taps, /targets #21
[x] Tap and target lists

[x] Sort taps and targets by name
[x] Add logos grid @DouweM  https://gitlab.com/meltano/hub/-/merge_requests/4

[ ] Details pages

[x] Break discovery.yml into separate meltano-specific files for generation of
[x] Add "| MeltanoHub" to title
[x] Add description
[ ] Add permalink?
[x] Move over from subpages under https://meltano.com/plugins/extractors/ and https://meltano.com/plugins/loaders/ to hub.meltano.com/plugins/extractors and hub.meltano.com/plugins/loaders:

[x] Introduction

[x] Link to source API docs

[x] Maintenance

[ ] Suggestion to find a fork/variant when status is responsive
[x] Get maintainer data from maintainers.yml

[x] Installation

[x] pip install <pip_url>
[x] meltano add X --variant Y

[x] Settings

[x] Default value
[x] Descriptions, which in some cases is more complete than what's in discovery.yml
On Meltano pages:

[x] Env var
[x] meltano config...

[x] Troubleshooting

View 57 previous comments from the original issue on GitLab


Provide link to updated Chromium docs.

Docs Build status updates of commit 7660a32:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/extensions/includes/deprecation-note.md
:white_check_mark:Succeeded

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

Docs Build status updates of commit 9fc42d2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/extensions/includes/deprecation-note.md
:white_check_mark:Succeeded

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

#sign-off and merged.

Docs Build status updates of commit 680f468:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/extensions/includes/deprecation-note.md
:white_check_mark:Succeeded

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


data: tanishkamakode.json

Add socials links

I have changed the filename to tanishkamakode.json. Kindly, review it again.


feat/autogenerate click options

Description
To have a single source of truth for all configs and defaults and help texts, this PR introduces logic to autogenerate the click options needed for each command from the pydantic base models now being used.
All files that were explicitly generating a cmd for each connector were now removed and these are now autogenerated, with the help text moved to the description parameter of the Field used to mark every variables exposed by the base models.

This is wonderful. Removed an entire section of the code by leveraging pydantic's default and description.


chore(readme): add angular2 Tour of Heroes seed project with webpack build system

This project features the official angular2 tutorial but with webpack instead of systemjs.

@mgechev, @rolandjitsu Solved merge conflict with the base branch


Add ability to run new-e2e tests based on test-infra

What does this PR do?
Run new e2e tests in Gitlab CI.
Motivation
Additional Notes
Possible Drawbacks / Trade-offs
Describe how to test/QA your changes
No QA, CI run.
Reviewer's Checklist

[x] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[x] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[x] A release note has been added or the changelog/no-changelog label has been applied.
[x] Changed code has automated tests for its functionality.
[x] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[x] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[x] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[x] If applicable, the need-change/operator and need-change/helm labels have been applied.
[x] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[x] If applicable, the config template has been updated.

LGTM.
Can you list the requirements to run TestE2ESuite from VSCode?

The only requirement is to provide the relevant configuration:

Run VSCode from an environment with env variable E2E_STACK_PARAMS set (equivalent to -c key=value)
Create a run/debug profile with environment variable E2E_STACK_PARAMS

To ease it in the future, the idea is to have dot file, something like ~/.test-infra-user-config.yaml or something


Release 2.18 API Name (Lookup Summary Unique Name) enhancements #1236

Review Issue in Dev Repo
Review Documentation to find any current references to this feature or screenshots that need to be updated. Create list of updates and locations in a comment on this Issue.
Determine if issue needs a larger write up or explanation. If so, add detailed documentation to this google doc - ask in the Slack group if you are unsure.
Move to In Review when you are done and at mention sharicarlson13 in a comment

I have added a comment on this item in the Dev Repo because these enhancements only apply to the new wizard. I have written the documentation to that effect.
Moving to In Review and tagging @sharicarlson13


Auth input field consistency sweep

:nut_and_bolt: Description: What code changed, and why?
Another sweep of consistency checks for auth UI code covering:

All required fields are marked with an asterisk--and in an aria-hidden span.
All input fields disallow whitespace-only values.
Extraneous leading/trailing whitespace automatically trimmed.
Field name in the error pop-up matches the displayed field name exactly.

:chains: Related Resources
N/A
:+1: Definition of Done
All auth inputs have identical behavior with respect to the items noted above.
:athletic_shoe: How to Build and Test the Change
rebuild automate-ui
Navigate through the auth pages to see that any and all input fields behave consistently.

@msorens i had intentionally left the asterisks off of the rule attribute, operator, and values because the pattern is a bit different, its not an individual required item. we can chat more tomorrow if you feel strongly they need to be marked.
im also curious if these kinds of sweeps should be across automate in the future, there aren't too many form inputs currently and it would be rad to get them to all be consistent.

@susanev

No strong feelings on my part; I was simply trying to channel you consistently. So just call out any of the things here that you do not want.
Happy to do all A2 but was hesitant to undertake that without discussion first. 😁

cool, yah then lets take them off for the rule attribute, operator, value, thank you!
prolly a good call on a bigger discussion, maybe a good topic for an automate standup?

Asterisks on condition fields--removed. ✅


Question! Deploy PHP Code on Google Compute Engine. Why /home/runner/work is empty?

Hello There,
Can anyone help me to understand why I'm not seeing the code under /home/runner/work?
I have PHP code which I want to deploy on Google Compute Engine!
Here is my workflow file:
on:
  push:
    branches: [ "test" ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest

    permissions:
      contents: 'read'
      id-token: 'write'

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - id: 'auth'
        name: 'Authenticate to Google Cloud'
        uses: 'google-github-actions/auth@v1'
        with:
          workload_identity_provider: '${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}'
          service_account: '${{ secrets.GCP_SERVICE_ACCOUNT }}'

      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '7.4'

      - name: Install dependencies
        run: composer install

      - id: 'compute-ssh'
        name: Deploy to Compute Engine
        uses: 'google-github-actions/ssh-compute@v0'
        with:
          project_id: ${{ secrets.GCP_PROJECT_ID }}
          zone: ${{ secrets.GCP_ZONE }}
          ssh_private_key: ${{ secrets.GCP_SSH_PRIVATE_KEY }}
          instance_name: ${{ secrets.GCP_INSTANCE_NAME }}
          command: echo "Code Deployed!"

      - id: 'output'
        run: |-
          echo '${{ steps.compute-ssh.outputs.stdout }}'
          echo '${{ steps.compute-ssh.outputs.stderr }}'

Even I tried this but no luck
command: |-
cd /var/www/test
git pull origin test

I checked the log auth and ssh are successful, there is no error.
Help me to correct above file to deployed the code on compute engine.
Thanks,

Hi @durgesh-sahani - thank you for opening an issue. Please provide the debug output and error you're getting.

Hello @sethvargo thanks for your reply. It's not an issue sort of question, I'm not getting any error. Every steps run successfully but code is not deploying on my server. So hoping someone can help me to figure out missing steps or guide me to right direction.

There are no steps in your workflow that would deploy any code.

Yes, thats what I was trying to find out. There was a permission issue now all good. Please feel free to close this.


First name variations

I have a dataset of several hundred thousand of patient records.
I would now like to create a subset of that with first name variations, such as Bill for William, Mike for Michael, etc.
Does synthea provide the means for this type of scenarion.
Thanks!

Hi @proxsys, Synthea has an experimental feature called fixed records that may be a fit for your situation. You can check out the documentation on it here: https://github.com/synthetichealth/synthea/wiki/Fixed-Records

If you have any other questions, please start a discussion.


NBU: Understand the intermittent/2G connectivity experience

Add new section to Tools.
(One of several issues raised to cover NBU requirements, as discussed via email — more detail here.)

I believe you did this, if not, please re-open and assign to yourself.


[Documentation / Question] Can toybox be combined with e. g. mruby?

This is more a question, but perhaps it could also be added to the main README
or a FAQ entry (which could be useful IMO).
Can we combine toybox with e. g. mruby to produce one combined binary?
I am quite ok-ish with ruby code, but C is still over my head (I should have
learned C properly first ... now ruby spoiled me).
It would be super-convenient to be able to combine toybox + mruby into one
static binary. I could then use this to bootstrap e. g. small linux systems or,
if not bootstrap, use tons of ruby scripts that aid in numerous things, written
over 20 years or so. Of course mruby could be used separately too, so strictly
speaking it is not necessary that toybox is combined with mruby - but I am
also curious in this case IF it were possible to combine these two, and if not,
what could be done to allow this.
This could also be extended for other binaries, e. g. kind of meta-combining
stuff "into" toybox, or use toybox as the general entry point to bootstrap
things. That may also include e. g. tying sysinit into toybox for a custom
boot setup. Or perhaps grub2 into toybox (I am just spawning ideas at
this point in time, but perhaps someone with some C knowledge could
answer a few things).

Toybox has a small system builder called "mkroot", that's what I'm giving the talk about this weekend:
https://github.com/landley/toybox/tree/master/mkroot
It's a ~400 line bash script that compiles a bootable Linux system:
https://github.com/landley/toybox/blob/master/mkroot/mkroot.sh
I've got prebuilt tarballs for over half the architectures QEMU supports:
https://landley.net/bin/mkroot/latest/
Grab one and ./run-qemu.sh should boot you to a shell prompt.
It's interactive by default, but here's a bash script that automatically boots each target, has the emulated system run some commands (things like "date" and "wget" to make sure everything's working ok), and parses the results into a simple status report:
https://github.com/landley/toybox/blob/master/mkroot/testroot.sh
No strong reason you couldn't add a ruby build into https://github.com/landley/toybox/tree/master/mkroot/packages if you wanted to add that. (Might fill up the kernel's initramfs capacity and need a different filesystem packaging type though, possibly an extra squashfs like testroot or the C native compilers in https://landley.net/bin/toolchains/latest/ maybe? Happy to discuss a design for that on the project's mailing list...)

As for incorporating https://github.com/mruby/mruby into toybox, it's doesn't look impossible but I'm not sure it makes sense? (Vs just packaging it together into the same filesystem.)
Toybox has incorporated external projects before, such as https://git.tukaani.org/xz-embedded becoming https://github.com/landley/toybox/blob/master/toys/pending/xzcat.c (but see also https://github.com/landley/toybox/blob/master/toys/pending/README about the "pending" directory and https://landley.net/toybox/cleanup.html about what it takes to get OUT of the pending directory).
But the limiting factors are 1) does it make design sense, 2) language, 3) license.
Toybox's tar command should support at least extracting the "tar.xz" file format (as explained in https://landley.net/toybox/roadmap.html again sorry your browser can't render plain html legibly), so having an "xzcat" command in toybox itself was appealing (as long as we were going to call out to one anyway). There was one written in plain C and available under a public domain equivalent license.
From a design perspective, you'll notice we collapsed together multiple *.c and .h files into a single xzcat.c file for toybox. The result works but needs a lot of cleanup (it doesn't currently sure any of toybox's common lib/.c code, I estimate that a cleanup process as described on the above page could probably shrink it to less than half its current line count). Note that collating the files like that (even before further work to integrate them with toybox) means keeping up with "upstream" changes has to be done by hand (http://lists.landley.net/pipermail/toybox-landley.net/2024-March/030164.html).
The "plain C" part is also important, toybox is fairly portable C11 code with some gnu extensions but only those well supported by llvm. (A longstanding todo item is looking at other compilers like tinycc.) It has no mandatory external dependencies (like curses or zlib), it can optionally use a few for acceleration purposes (mostly because the Android guys insisted) and has some optional features like selinux support that want to pull in a library, but all of it can be disabled and a version built using built-in implementations of sha3sum the bzip2 decompression and so on.
Code that incorporates any C++, or links to external libraries, would not make design sense to integrate into toybox. Github thinks mruby is mostly C but finds some C++ in there too, I dunno if that's true or not. Also a large chunk of the project is written in ruby (presumably ruby's "standard library"), and I dunno how you'd integrate that into an ELF executable...?
And then there's the license: we use a public domain equivalent license (zero clause BSD, SPDX short name "0BSD") which doesn't even require you to copy specific license text into derived works:
https://en.wikipedia.org/wiki/Public-domain-equivalent_license
The MIT license is not public domain equivalent, we'd need to start a stuttering list if we incorporated code under that:
http://www.youtube.com/watch?v=SGmtP5Lg_t0#t=15m09s
So an external fork that sucked in mruby would be fine (and you could legally distribute it under the MIT license), but it's not going upstream into the main project.

Code that incorporates any C++, or links to external libraries, would not make design sense to integrate into toybox. Github thinks mruby is mostly C but finds some C++ in there too, I dunno if that's true or not.

Incorporating C++ code into vanilla toybox is near impossible from my knowledge.
Since we have C++ keywords in our variable names to intentionally break compatibility with C++,
You could of course change those and switch to a C++ compiler if you really wanted C++ code
in toybox (eww). But there are likely other things that would need to be worked around because
C++ is a mess.

FYI I took a stab at doing a mkroot/packages/mruby build but mruby needs a build tool called "rake" that's implemented in ruby, and the "minirake" script it has is a ruby script that just does exec "rake", *ARGV
So you can't build mruby without having first installed ruby on the host. The mruby package has ruby as a build dependency.
So then I ran "mkroot/record-commands rake all" and the resulting log.txt only had compiler, assembler, and linker commands, and thought "maybe I can build this with a shell script"... except the assembler commands are all consuming generated files produced by running locally built binaries which aren't called out of the $PATH (and thus not intercepted and recorded in log.txt). I then ran the rake build under strace to see if I could tally up the exec calls, but haven't had the heart to look at that yet. (Do the c file builds pull in host libraries or headers from the apparently required parent ruby install? Dunno...)

Since we are talking about building programming languages with mkroot packages. And since I've personally been learning lua lately, I took a shot at building a lua interpreter under mkroot:
#!/bin/echo Try "scripts/mkroot.sh lua"

download 83f41abf92620dd15f022e6f863807b07e318495 \
  http://lua.org/ftp/lua-5.4.6.tar.gz

setupfor lua
make MYLDFLAGS=--static CC=cc &&
cp src/lua{,c} "$ROOT/bin"
cleanup

The lua people decided to put CC=gcc --std=gnu99 in the makefile for some reason, when it's all ANSI C anyways.
Also this build does require ar, don't know why, but I didn't go out of my way to take that out of the makefile.

when it's all ANSI C anyways.

Not exactly. Lua can be compiled as ANSI C, however that is not recommended. As per src/Makefile:
	@echo '*** C89 does not guarantee 64-bit integers for Lua.'
	@echo '*** Make sure to compile all external Lua libraries'
	@echo '*** with LUA_USE_C89 to ensure consistency'

Looking through the code, it also effects valid strftime sequences, and max integers, along with some other config stuff. But other than that, it's made for plain C89.
The dependence on C89 actually becomes mildly annoying, because there is no way to do things like stat a file
without calling external C code (From my understanding, this is the reason toybox wasn't written in Lua).
The toolchains we care to support toolchains use C99 (I think toybox actually moved to C11 some time ago) and POSIX (Plus some compiler and library extensions from lib/gcc).

Also this build does require ar

It seems to be needed only for liblua.a, which contains the object files linked into both lua and luac... It should be trivial to skip the creation of liblua.a and link the executables to the object files directly.

The way I removed it in http://lists.landley.net/pipermail/toybox-landley.net/2024-April/030311.html was:
sed -i 's/^LUA_A=.*/LUA_A=$(BASE_O)/; s/$(LUA_A):/notran:/' src/Makefile. Just changing the Makefile rules
to not do that.
Building a .a file for lua is understandable since it's a language designed to be embedded, But the Lua people didn't need to make that necessary.


Update sample code so it runs for 1.5.4

I can't compile and run the sample code in VS2015.
'VideoPlayer' does not implement interface member 'DashChunkSource.IEventListener.OnAvailableRangeChanged(int, ITimeRange)'

@MKuckert

same here. I can't get my project to compile after the last update

This will be fixed by @bspinner soon!


Add Dijkstra’s shortest path algorithm in Java

@tstreamDOTh can you assign this to me, since I'm a beginner.

@tstreamDOTh, please assign this to me


Silent refresh should work using sso, even for new tab (with no token in storage)

Is your feature request related to a problem? Please describe.
The silent refresh with iframe seems to only work if user was logged in in the current tab, it doesn't seem to work with sso.
After reading the code,setupAutomaticSilentRefresh checks for a token before trying to refresh, this prevents it from refreshing on app startup (using sso) on on another tab login.
Describe the solution you'd like
if a silentRefreshRedirectUri is specfied, and try login doesn't find a state..., it tries to refresh the token using the iframe (sso).
Describe alternatives you've considered
no matter the value of useSilentRefresh if the user calls setupAutomaticSilentRefresh and user is not yet authenticated (in the current tab)
Additional context
Maybe there is a way to make this work, but I couldn't find it in the doc nor through going through the code, and I know it's is possible by reading the spec of oidc and seeing it implemented in: https://github.com/keycloak/keycloak/blob/6332ed42c03c52b47e9f14af87aac3592959f06f/adapters/oidc/js/src/main/resources/keycloak.js

You could check my sample repository where I explicitly kick off silentRefresh() at the start of bootstrapping auth.
The 'auto silent refresh' you mention is meant to refresh automatically when a token is about to expire. It is not about logging someone in 'automatically'.
Note that this trick with iframe-based silent refresh is under a lot of pressure though, as Safari's "ITP" is the first step to breaking that setup if your IDS lives on a different domain than your SPA.

Thanks for pointing me to the right direction, I retried silentRefresh no with more debugging, I had some csp issues to fix server side... not it's working on firefox but not on chrome I suppose due to cookie issues when not using https, I will retry with a proper server and let you know.
Thank a lot for your help.
I suggest you add a section in the documentation website maybe here:
https://manfredsteyer.github.io/angular-oauth2-oidc/docs/additional-documentation/silent-refresh.html
explaining how it allows to login without redirect, using sso, and that it might results on problems with chrome, csp...

Good to hear you're on the right path! Improved docs are always nice, if a community member wants to have a stab at that, we'll see the PR coming <3


added namespace configuration operator

@raffaelespazzoli Thanks for your submission. Encouraging you to provide a bit more description and usage scenarios, like we propose in the checklist. Right now it's not clear why I would expect from this Operator other than a very generic "policy" management.

added more explanation and an example.
on the full Lifecycle observation. I admit I don't fully understand what all the options mean. This operator manages creation/updates/deletions and supports the updating of the operator itself (kind of difficult to test). so I thought full lifecycle was the right choice.


Can't find the Covid-19 Disease Node

Hi!
Thank you for your work and putting out this tremendous graph! I just have one question concerning the Covid-19 node. All I could find was 27 different SARS-CoV-2 nodes. These are categorized as diseases, but as far as I understand it, they actually are Virus Proteins. I also looked for a node for the actual Disease and couldnt find it via its DOIDs (DOID:0080600 and DOID:0080848 for long Covid).
For my research I'll just go ahead and use the SARS-CoV-2 Spike node as a proxy for Covid 19. Did you intend it that way or did I miss something?
Thanks!

Do you have any information about COVID-19 disease node? Or any links (edges) from it to existing nodes in DRKG?
We welcome contributions.

If you want, @fratajcz, you could rewire edges from all relevant viral proteins in DRKG into a comprehensive COVID-19 disease node as Cheng et al. (@ChengF-Lab) did here.


Java doccomment does not contain sample usage

After generating a client, @kolea2 noticed that the methods don't have sample usage. Is there a config that is incorrect here or is this perhaps a bug?
Java missing sample: https://github.com/googleapis/google-cloud-java/blob/master/google-api-grpc/grpc-google-cloud-speech-v1/src/main/java/com/google/cloud/speech/v1/SpeechGrpc.java#L259
Python method: https://github.com/googleapis/google-cloud-python/blob/master/speech/google/cloud/speech_v1/gapic/speech_client.py#L333

@andreamlin is there a reason why this is the case?

For the given Java class, that is a file generated by the grpc-protoc plugin. We don't own that plugin. Also, even though that class is public, it isn't really meant to be used by user; our gapic-generated classes wrap them.
For the given Python class, I'll have to do a little more digging. A very premature guess is that we might not generate sample code for streaming methods.

For the python method given, there is a method sample inside the method. It's a little bare, but it's still there.

feel free to reopen for followup questions


Propose updates to ExternalEntity CRD named port usage

Lets discuss the proposal based on discussion https://github.com/vmware-tanzu/antrea/pull/1084#discussion_r485798409 on this issue.
In a nutshell, it is proposed that we update the ExternalEntity CRD spec to remove named ports per interface and instead associate named ports with the entity itself. This would require a change in the GroupMember struct used in internal communications.
Following are the proposed changes:
ExternalEntity CRD
type ExternalEntitySpec struct {
        Endpoints []Endpoint
+       Ports []NamedPort
        ExternalNode string
}
type Endpoint struct {
        IP string
        Name string
-       Ports []NamedPort
}

Change proposed to the GroupMember struct:
type GroupMember struct {
	Pod *PodReference
	ExternalEntity *ExternalEntityReference
	IPs []IPAddress
	Ports []NamedPort
}

/cc @jianjuns @tnqn @suwang48404 @Dyanngg

Thanks @abhiraut for creating the issue. CC @wenyingd as the proposed GroupMember struct change affects dual stack pod processing.

@suwang48404 Are we good with the proposed change in EE crd? i.e.
--- a/build/yamls/base/crds.yml
+++ b/build/yamls/base/crds.yml
@@ -547,16 +547,16 @@ spec:
                     format: ipv4
                   name:
                     type: string
-                  ports:
-                    type: array
-                    items:
-                      type: object
-                      properties:
-                        protocol:
-                          type: string
-                        port:
-                          x-kubernetes-int-or-string: true
-                        name:
-                          type: string
+            ports:
+              type: array
+              items:
+                type: object
+                properties:
+                  protocol:
+                    type: string
+                  port:
+                    x-kubernetes-int-or-string: true
+                  name:
+                    type: string
             externalNode:
               type: string

I am sorry, what is difference before and after this change? can u summarize, yaml is bit harder to read.
Thx, Su

As summarized in the issue base, the proposed change is to move the ports array from being a property of endpoint, to a property that belongs to the base spec of externalEntity. This way we do not duplicate this information for each endpoint. @abhiraut to comment on versioning

type GroupMember struct {
	Pod *PodReference
	ExternalEntity *ExternalEntityReference
	IPs []IPAddress
	Ports []NamedPort
}

Questions

IPs are used in AddressGroup only right?
For AppliedToGroup, do we have the requirements to apply to part of interfaces/endpoints in the VM?

yes for 1. i was thinking we will do what we have been doing with GroupMemberPod conversions, i.e. includeIP only if generating GroupMember for AddressGroups

@suwang48404  could answer that one

Thought over. Anyway we might extend GroupMember to have an Endpoints field then. So, the current definition looks good.

fixed by #1335


chore(theme-translations): complete French translations

Pre-flight checklist

[X] I have read the Contributing Guidelines on pull requests.
[ ] If this is a code change: I have written unit tests and/or added dogfooding pages to fully verify the new behavior.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation
Complete translations in French
Test Plan

Test links

Deploy preview: https://deploy-preview-_____--docusaurus-2.netlify.app/
Related issues/PRs

LGTM thanks 👍


When will the BoM be available?

Looks like a BoM was added for the Adobe dependencies: #402
Any ETA when this will be available on MavenCentral?

@G00fY2 We're still finalizing something internally. We don't have an ETA at this point in time, but the release should be available very soon. I will keep you updated.
Thanks,
Yansong

Hi @G00fY2 ,
The beta build for the BOM artifact is released. Please give it a try when you have time, and we would appreciate any feedback.
Thanks,
Yansong

@yangyansong-adbe We just switched to the new BOM and removed all adobe version references. We use a setup with Gradle version catalog (.toml) and Kotlin Script Gradle buildscripts. We have not faced any issues so far. 👍
PS: I think the BOM is more in the state of an RC rather than beta, right?

@yangyansong-adbe In the meantime there was the release of core 2.1.2 and 2.1.3 and also the release of assurance 2.1.0. Will this BOM be updated any time soon? Otherwise there is no point in using it and we would need to switch back to separately maintaining the version numbers.

Hi @G00fY2 , we're working on adding more scripts for the BOM release automation. We will release an RC build for BOM next week, including the latest SDKs.

Having a current BOM will help my team manage our Adobe dependencies too. +1 for this issue.

Hi @G00fY2 , @jahunt1
Close this issue now because the BOM artifact 1.0.0 was released last week. Please take a look at the release notes here: https://developer.adobe.com/client-sdks/documentation/release-notes/#june-1-2023.
Thanks,
Yansong

@yangyansong-adbe Any update on v3 BoM? 😃

@G00fY2 After we release all SDK extensions, BOM 3.0.0 will be released later this week.


Move signal reading outside __init__ method.

I think it is import not to overload the channel names completely with new names, but also being able to get a list of all channels that are in the file even if they are not recognized by the spmpy import function.


Not working with trpc version 10

Hi, first of all thank you for this package!
TRPC has gone under some breaking changes in v10, and they just moved to a flat 10.0.0 from rc-9 so far.
I tried fixing some things such as some imports have been shifted around but couldn't grok it.
Would you be updating this package for v10?

Hi, thanks for reporting this. I'll update ASAP

I don't think this package is needed with v10 right? I got it working like so:
// pages/api/trpc/[trpc].ts

import { APIRoute } from 'astro';
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
import { initTRPC } from '@trpc/server';

const t = initTRPC.create();

const router = t.router({
  // ... routes
});

export const all: APIRoute = ({ request }) => {
  return fetchRequestHandler({
    req: request,
    endpoint: '/api/trpc',
    router,
  });
};

export type AppRouter = typeof router;

// client file

export const trpc = createTRPCProxyClient<AppRouter>({
  links: [
    httpBatchLink({
      url: 'http://localhost:3000/api/trpc',
    }),
  ],
});

I manage to fix a SSR error where the client request did not made to the createTRPCProxyClient in the astro frontmatter by intercepting query/mutation context and sending to the httpBatchLink.
// src/lib/client.ts
import type { AnyRouter } from '@trpc/server'

import { createTRPCProxyClient, httpBatchLink, TRPCLink } from '@trpc/client'
import type { AppRouter } from '../pages/api/trpc/[trpc]'

function astroSSRLink<TRouter extends AnyRouter>(): TRPCLink<TRouter> {
  return (runtime) => {
    return (props) => {
      const incomingReq = props.op.context?.incomingReq as Request

      return httpBatchLink({
        url: 'http://localhost:3000/api/trpc',
        fetch: (url, options) => fetch(url, {
          ...options,
          headers: incomingReq?.headers ? incomingReq.headers : options?.headers,
          credentials: 'same-origin'
        })
      })(runtime)(props)
    }
  }
}

export const trpc = createTRPCProxyClient<AppRouter>({
  links: [astroSSRLink()]
})

That way you can use trpc context to get client headers and cookies like that:
---
// src/pages/index.astro
import { trpc } from '@lib/client';

const user = await trpc.me.query(undefined, {
  context: { incomingReq: Astro.request } // <-- Redirect client request to trpc context
})
---

<UserComponent user={user} />

// src/pages/api/trpc/[trpc].ts
import type { APIContext } from 'astro'
import { initTRPC } from '@trpc/server'

const t = initTRPC.create()

const appRouter = t.router({
  me: t.procedure.query(async ({ ctx }) => {
    const { cookies } = ctx as APIContext
    if (!cookies.has('sessionId')) return null
    // ....
  })
})

export const all: APIRoute = (apiContext) => {
  return fetchRequestHandler({
    req: apiContext.request,
    endpoint: '/api/trpc',
    router: appRouter,
    createContext: () => apiContext
  })
}

Oh nice that's a neat way. I've currently made a caller via createCaller api which accepts a Request, and uses that to create my context object.

@Ehesp and @carlos8v Thank you so much for your feedback. I'll try your suggestions and see if it's time to deprecate this package since tRPC is that easy to setup now with the fetch adapter and performance is increased.

It's been a while, didn't have enough time to consider this but that's it!
Thanks again!


Document creation of JSON files for Linux distributions

When we generate the JSON files for Linux distributions like Debian and ClefOS, it's done programmatically. Document how this is done for each distribution we support, and add any scripts used in the bin/ directory to help future maintainers keep the sources updated.

I've already mentioned it here https://github.com/openmainframeproject/software-discovery-tool/blob/master/docs/Installation.md#using-data-from-pds
Do you need a separate doc for that?

Maybe a specific readme for the bin directory?
Which binary does what.
I'm going to include an autoconfig bin too, so...

I'm referring to the project-side, how do WE update the Debian JSON file for inclusion in the -data project. We'll need to do an update at least every month to keep it fresh.

That should be simply
./bin/package_build.py Debian

Every month :)

Oh, I see! In the case of PDS it pulls from the GitHub repo, but for Debian it actually creates the file, rather than downloading it from our data repo. That'll do.


Allow download of taxon groups

The current CoL interface provides a dwca download service for higher taxa and their entire descendants subtree, optionally including synonyms, common names, distributions and linked references: http://www.catalogueoflife.org/DCA_Export/
The Clearinghouse should provide sth very similar, but integrated into the main UI. On every taxon page it should be possible to download the taxon and all its descendants, optionally restricted down to a certain rank (e.g. all Animalia but only down to family). Options to include synonyms, linked references, distributions, descriptions, media and vernacular names should be provided.
ColDP is most suited as the download format.
Consider a recursive CTE query for the taxa, remembering all visited taxon ids and ref ids (publishedIn) which then later can be used to populate the optional synonyms, common names, etc

Has any progress been made on this? I note that the DCA Export previously provided has been removed and I can't see an option for this in the public API documentation.

Has any progress been made on this? I note that the DCA Export previously provided has been removed and I can't see an option for this in the public API documentation.

Yes we have made quite some progress, but not completed this.
The idea is that there is an asynchronous export of an entire dataset or a part of it by defining optional filters with

a root taxon to only consider the subtree
rank filter to exclude any taxa of ranks below that (so you can get kingdom-family only, or just genera in families)
exclude synonyms

This is available now for DwC-A and some simple JSON & TextTree formats
The DwC-A exports is waiting for our next deploy to prod in the next days

Yes we have made quite some progress, but not completed this.
The idea is that there is an asynchronous export of an entire dataset or a part of it by defining optional filters with

a root taxon to only consider the subtree
rank filter to exclude any taxa of ranks below that (so you can get kingdom-family only, or just genera in families)
exclude synonyms

This is available now for DwC-A and some simple JSON & TextTree formats
The DwC-A exports is waiting for our next deploy to prod in the next days

Great, thanks for the update.
Would you be able to point me in the right direction as to where in the API the DwC-A exports will become available?

Great, thanks for the update.
Would you be able to point me in the right direction as to where in the API the DwC-A exports will become available?

Sure. I'll use 3LR (latest release of COL) as the dataset key in my examples here:
Asynchronous API methods
There is a single export resource to trigger the build of an asynchronous export by POSTing an export request:
curl -s -X POST --data-binary '{"format":"DWCA", "taxonID":"6224G", "exclusions": ["VS"], "minRank":"GENUS"}' "https://api.catalogueoflife.org/dataset/3LR/export"

This will return the UUID key for the export to be generated.
The request object has these props right now:

format: DWCA, ACEF (COLDP, TEXT_TREE shortly)
taxonID: root taxon id
exclusions: array of taxon ids and its descendants to exclude from the export, i.e. above call excludes order Carnivora from the Mammalia export
synonyms: true/false, defaults to true i.e. they are included
minRank: a lowest rank to still include. In above request only genera and above are included, but no species or below

You will then be able to download the export at:
GET   /export/{exportKey}
For non project datasets that have been imported (not COL, but all its sources) you can also download the original archive:
curl -s -H "Accept: application/zip" https://api.catalogueoflife.org/dataset/1010/export

Synchronous API methods
There is also a synchronous "export" method that returns simple results directly either in JSON, HTML or TextTree.
That requires to request a single root taxon as the idea is to just use it for smaller subtrees:
curl -s -H "Accept: application/json" https://api.catalogueoflife.org/dataset/3LR/export/6224G
curl -s -H "Accept: text/html" https://api.catalogueoflife.org/dataset/3LR/export/6224G
curl -s -H "Accept: text/plain" https://api.catalogueoflife.org/dataset/3LR/export/6224G

I just realise we have an issue with our varnish cache and Accept headers, so you'll probably only see JSON for above requests. You can also force the Accept header using the accept  parameter, which works fine with caching already now:
curl -s "https://api.catalogueoflife.org/dataset/3LR/export/6224G?accept=json"
curl -s "https://api.catalogueoflife.org/dataset/3LR/export/6224G?accept=html"
curl -s "https://api.catalogueoflife.org/dataset/3LR/export/6224G?accept=plain"

See also https://github.com/CatalogueOfLife/portal/issues/77 for integration into the portal UI

Sure. I'll use 3LR (latest release of COL) as the dataset key in my examples here:
Asynchronous API methods
There is a single export resource to trigger the build of an asynchronous export by POSTing an export request:
curl -s -X POST --data-binary '{"format":"DWCA", "taxonID":"6224G", "exclusions": ["VS"], "minRank":"GENUS"}' "https://api.catalogueoflife.org/dataset/3LR/export"

This will return the UUID key for the export to be generated.
The request object has these props right now:

format: DWCA, ACEF (COLDP, TEXT_TREE shortly)
taxonID: root taxon id
exclusions: array of taxon ids and its descendants to exclude from the export, i.e. above call excludes order Carnivora from the Mammalia export
synonyms: true/false, defaults to true i.e. they are included
minRank: a lowest rank to still include. In above request only genera and above are included, but no species or below

You will then be able to download the export at:
GET   /export/{exportKey}
For non project datasets that have been imported (not COL, but all its sources) you can also download the original archive:
curl -s -H "Accept: application/zip" https://api.catalogueoflife.org/dataset/1010/export

Synchronous API methods
There is also a synchronous "export" method that returns simple results directly either in JSON, HTML or TextTree.
That requires to request a single root taxon as the idea is to just use it for smaller subtrees:
curl -s -H "Accept: application/json" https://api.catalogueoflife.org/dataset/3LR/export/6224G
curl -s -H "Accept: text/html" https://api.catalogueoflife.org/dataset/3LR/export/6224G
curl -s -H "Accept: text/plain" https://api.catalogueoflife.org/dataset/3LR/export/6224G

I just realise we have an issue with our varnish cache and Accept headers, so you'll probably only see JSON for above requests. You can also force the Accept header using the accept  parameter, which works fine with caching already now:
curl -s "https://api.catalogueoflife.org/dataset/3LR/export/6224G?accept=json"
curl -s "https://api.catalogueoflife.org/dataset/3LR/export/6224G?accept=html"
curl -s "https://api.catalogueoflife.org/dataset/3LR/export/6224G?accept=plain"

See also https://github.com/CatalogueOfLife/portal/issues/77 for integration into the portal UI

Thanks for taking the time to explain that, Markus - I think that's exactly what I'll need for my project.

Thanks for taking the time to explain that, Markus - I think that's exactly what I'll need for my project.

Thanks for taking the time to explain that, Markus - I think that's exactly what I'll need for my project.

Thanks for taking the time to explain that, Markus - I think that's exactly what I'll need for my project.

Sorry, I need a bit more help, please.
How do I find the taxon ID? It doesn't appear to be one the fields returned when I do a search using /dataset/{key}/nameuseage/search. Also somewhat confusing is that the API documentation says that the taxon ID is a 32-bit integer (under /dataset/{key}/taxon/), but many of them appear to be hex strings.

Sorry, I need a bit more help, please.
How do I find the taxon ID? It doesn't appear to be one the fields returned when I do a search using /dataset/{key}/nameuseage/search. Also somewhat confusing is that the API documentation says that the taxon ID is a 32-bit integer (under /dataset/{key}/taxon/), but many of them appear to be hex strings.

The taxonID is the content of the id field in a Taxon record - which is a NameUsage record with status=accepted or doubtfully accepted.
You can find it in the search http://api.catalogueoflife.org/dataset/3LR/nameusage/search under result[].id which in turn is a copy of result[].usage.id

The taxonID is the content of the id field in a Taxon record - which is a NameUsage record with status=accepted or doubtfully accepted.
You can find it in the search http://api.catalogueoflife.org/dataset/3LR/nameusage/search under result[].id which in turn is a copy of result[].usage.id

The {key} parameter is the datasetKey, which is an integer indeed.
With the undocumented exception of the magic LR suffix that replaces a project datasetKey to the datasetKey of its latest release. So datasetKey=3 refers to the COL project (the COL draft that is actively edited and can be in an inconsistent state); 3LR then refers to its latest release, currently datasetKey=2242:
http://api.catalogueoflife.org/dataset/3LR

The {key} parameter is the datasetKey, which is an integer indeed.
With the undocumented exception of the magic LR suffix that replaces a project datasetKey to the datasetKey of its latest release. So datasetKey=3 refers to the COL project (the COL draft that is actively edited and can be in an inconsistent state); 3LR then refers to its latest release, currently datasetKey=2242:
http://api.catalogueoflife.org/dataset/3LR

Thanks for the explanations, Markus. I misread the API documentation mixed up the dataset key and taxon ID datatypes - my apologies.
Regarding the taxon ID field, I wondered one of the IDs in the JSON response from nameusage might be the right one, but none matched up with what I saw on the web interface. For example, looking at the genus entry for [i]Paphiopedilum[/i] on the COL website suggests a taxon ID of 6DFD:
https://www.catalogueoflife.org/data/taxon/6DFD
Whereas the API returns:
curl -X GET "https://api.catalogueoflife.org/dataset/3LR/nameusage/search?q=Paphiopedilum&minRank=GENUS&maxRank=GENUS&offset=0&limit=10" -H  "accept: application/json"

200830f2-e5ed-4171-b66c-a85b1399b250

If I then use this ID in the synchronous request, though, it returns an empty array:
curl -s -H "Accept: application/json" https://api.catalogueoflife.org/dataset/3LR/export/200830f2-e5ed-4171-b66c-a85b1399b250
[]

Have I missed something here? From the API documentation it looks like I need to send a POST query instead with a user key.
I haven't yet tested the asychronous export.

Thanks for the explanations, Markus. I misread the API documentation mixed up the dataset key and taxon ID datatypes - my apologies.
Regarding the taxon ID field, I wondered one of the IDs in the JSON response from nameusage might be the right one, but none matched up with what I saw on the web interface. For example, looking at the genus entry for [i]Paphiopedilum[/i] on the COL website suggests a taxon ID of 6DFD:
https://www.catalogueoflife.org/data/taxon/6DFD
Whereas the API returns:
curl -X GET "https://api.catalogueoflife.org/dataset/3LR/nameusage/search?q=Paphiopedilum&minRank=GENUS&maxRank=GENUS&offset=0&limit=10" -H  "accept: application/json"

200830f2-e5ed-4171-b66c-a85b1399b250

If I then use this ID in the synchronous request, though, it returns an empty array:
curl -s -H "Accept: application/json" https://api.catalogueoflife.org/dataset/3LR/export/200830f2-e5ed-4171-b66c-a85b1399b250
[]

Have I missed something here? From the API documentation it looks like I need to send a POST query instead with a user key.
I haven't yet tested the asychronous export.

We indeed change identifiers during the release of a project to ensure we have stable ids that do not change.
The project uses temporary UUIDs whereas all COL releases use short keys like 6DFD.
The UUID in the search results is for the name though, the usage.id is 6DFD. We might change the name ids in the future to, but in general a Name.ID is not the same as a NameUsage.ID (which is the union of all Taxon.ID and _Synonym.ID_s)

We indeed change identifiers during the release of a project to ensure we have stable ids that do not change.
The project uses temporary UUIDs whereas all COL releases use short keys like 6DFD.
The UUID in the search results is for the name though, the usage.id is 6DFD. We might change the name ids in the future to, but in general a Name.ID is not the same as a NameUsage.ID (which is the union of all Taxon.ID and _Synonym.ID_s)

Thanks for the clarification. I am making progress but have run into an issue with the asynchronous export.
I can successfully obtain the export key, but when I try to GET the archive from https://api.catalogueoflife.org/export/{key} using curl or Python requests, I receive a HTTP 406 error. However, pasting the URL into my browser (Firefox) works fine. I'm guessing there's a header I'm missing somewhere?
curl -X GET "https://api.catalogueoflife.org/export/{key}"
{"code":406,"message":"HTTP 406 Not Acceptable"}

and
r = session.get(export_retrieve_url, auth=HTTPBasicAuth(username, password), headers={"Accept": "application/zip"}, stream=True)
print(r.status_code)
406

As an aside, the POST query to /dataset/{key}/export doesn't work for the magic value 3LR. I found I had to extract the datasetKey from the usage data returned in the namesearch results.

Thanks for the clarification. I am making progress but have run into an issue with the asynchronous export.
I can successfully obtain the export key, but when I try to GET the archive from https://api.catalogueoflife.org/export/{key} using curl or Python requests, I receive a HTTP 406 error. However, pasting the URL into my browser (Firefox) works fine. I'm guessing there's a header I'm missing somewhere?
curl -X GET "https://api.catalogueoflife.org/export/{key}"
{"code":406,"message":"HTTP 406 Not Acceptable"}

and
r = session.get(export_retrieve_url, auth=HTTPBasicAuth(username, password), headers={"Accept": "application/zip"}, stream=True)
print(r.status_code)
406

As an aside, the POST query to /dataset/{key}/export doesn't work for the magic value 3LR. I found I had to extract the datasetKey from the usage data returned in the namesearch results.

Several things to note:

the /export/{key} route is basically a redirect to https://download.catalogueoflife.org/exports/ which you can also access directly. Keys are grouped into folders by their first characters.
A 406 error means you are requesting the wrong content type via an "Accept" header. In case its missing the API defaults to application/json, which in this case is wrong as you want a zipped, binary archive. I will try to change the API to not default to json in this case and also allow for application/zip. Currently should need to add this header: "Accept: application/octet-stream"

Several things to note:

the /export/{key} route is basically a redirect to https://download.catalogueoflife.org/exports/ which you can also access directly. Keys are grouped into folders by their first characters.
A 406 error means you are requesting the wrong content type via an "Accept" header. In case its missing the API defaults to application/json, which in this case is wrong as you want a zipped, binary archive. I will try to change the API to not default to json in this case and also allow for application/zip. Currently should need to add this header: "Accept: application/octet-stream"

Thanks Markus! Just tested it with the application/octet-stream header and it works (somehow I missed that that was on the API documentation). If you can change the default, that would be great.

Thanks Markus! Just tested it with the application/octet-stream header and it works (somehow I missed that that was on the API documentation). If you can change the default, that would be great.

Hi again,
I've noticed that even if I set synonyms=True when requesting a DwC-A export, there aren't any listed in the exported data.
data = {"format":"DWCA", "taxonID":taxonID, "synonyms": True}
r = session.post(export_request_url, auth=HTTPBasicAuth(username, password), data=json.dumps(data), headers={"Content-Type": "application/json"})

In this case I tried with the genus [i]Cymbidium[/i] and no synonyms were returned, only the accepted names.

Hi again,
I've noticed that even if I set synonyms=True when requesting a DwC-A export, there aren't any listed in the exported data.
data = {"format":"DWCA", "taxonID":taxonID, "synonyms": True}
r = session.post(export_request_url, auth=HTTPBasicAuth(username, password), data=json.dumps(data), headers={"Content-Type": "application/json"})

In this case I tried with the genus [i]Cymbidium[/i] and no synonyms were returned, only the accepted names.

No Cymbidium species seems to have any synonym in COL, that might be the simple reason.
Have you tried others where they are known to exist, e.g. genus Aganisia

No Cymbidium species seems to have any synonym in COL, that might be the simple reason.
Have you tried others where they are known to exist, e.g. genus Aganisia

Thanks Markus; you're right, the synonyms are displaying correctly for Aganisia.
That is exceptionally odd that there are no synonyms for Cymbidium in the COL; there used to be (they are still listed at the source dataset - KEW WSCP) and there are certainly still some in common use! I'll have to contact COL support about it and see if that was intentional.

Thanks Markus; you're right, the synonyms are displaying correctly for Aganisia.
That is exceptionally odd that there are no synonyms for Cymbidium in the COL; there used to be (they are still listed at the source dataset - KEW WSCP) and there are certainly still some in common use! I'll have to contact COL support about it and see if that was intentional.

Yes, lets file an issue for COL. You can best do this by creating an issue in the data repository:
https://github.com/CatalogueOfLife/data/issues/new/choose

Yes, lets file an issue for COL. You can best do this by creating an issue in the data repository:
https://github.com/CatalogueOfLife/data/issues/new/choose

I just created an issue: https://github.com/CatalogueOfLife/data/issues/229
add to it if you have more insight

I just created an issue: https://github.com/CatalogueOfLife/data/issues/229
add to it if you have more insight

Thanks Markus. I'll do that instead.

Thanks Markus. I'll do that instead.


[USBDevice] PC's wont boot with device plugged in using large descriptor (>1500b)

Using the standard Force Feedback Joystick descriptor with this USBDevice library many of our systems refuse to boot while device is connected.
The descriptor I am using is here: http://www.microchip.com/forums/FindPost/378772
If device is connected after system has booted everything is working normally.
Turning off Legacy USB 2.0 support in BIOS options seems to help in some cases, but this is not ideal because then the keyboard will not work in BIOS after.
This happens with many newer model motherboards from ASRock, MSI and only with a large descriptor (~1500 bytes).
Core of the issue seems to be the handling of BIOS descriptor requests and it is difficult to debug, but easily reproducible. (Lockup occurs after descriptor is read into CONTROL_TRANSFER packet)
Any idea what I could change to resolve this or debug this further?
I have created a latch system that sends a small descriptor then resets the mbed some seconds later then sends the larger descriptor.. but this is a bit too hacky (sometimes causes windows to reboot the system if i do not reset device at the right moment) and I'm considering switching to a different board, because I have had success using the same descriptor on other platforms (other usb stacks).

problem solved,  just needed to make sure to idle transmit packet for appropriate time  when the computer sends the SET_IDLE packet

issue still here
if i dont send any INPUT reports during bootup its ok, i initially had 20 second delay once SET_IDLE, this worked but what if somones computer takes longer than 20 seconds to boot, and that means everytime the device is plugged in there is a 20 second wait before it can be used.
nhot sure what is going on here but it is something low-level, with large descriptors and writing to endpoint1

ARM Internal Ref: IOTMORF-248


Unable to log into Azure account in Bot Framework composer - this means I cant use other Azure services such as Cognitive services or the QnA maker.

I am sorry if this is the incorrect place to submit this issue - please let me know if I have made a mistake. _
Describe the bug
I cant log into my Azure Account within Bot Framework Composer - this prevents linking other services. I enter my details and it takes me the the page for multifactor Authentication.  However none of the links on this page work.  So the connection fails.
Version
v2.1.1
Browser

[ ] Edge

OS

[ ] Windows

To Reproduce
Steps to reproduce the behaviour:
Download Bot Framework Composer.
Update to late version.
Click sign in button.
Use a business Azure subscription that has multifactor authentication switched on.
Request a text message to verify.
Expected behaviour
Should receive code and be allowed to connect my Azure account to Bot Composer to allow me to link other cognitive services into my Bot.
Screenshots

Hello @EduBotz ...are you still seeing the same issue? The team mentioned the Authentication Service had an issue but it should be back now.

Thanks for getting back to me @munozemilio unfortunately the problem remains.
Is it possible my subscription does not have access to this service ? Would this behaviour make sense in this context ?
The error message has changed to:
Azure sign-in
Sign in failed: Failed to fetch

Again the behaviour is the same. My login brings up the MFA pane but none of the buttons on this pane are responsive to click.
Thanks for your time I appreciate it.

@benbrown Any ideas what might be going on here?

Hello @benbrown. Could you help me route this issue to the right person?

@benbrown Could you please provide an update to this issue?

This error occurs when our auth system fails to retrieve a list of available tenants. It is not clear to me why this would occur with your particular account.
Since you report that the 2FA navigation is not clickable, do you think this might be causing a timeout of your login?
Does it appear to successfully login otherwise?

@EduBotz, if this is still an issue, could you please take a look at the questions above? Thank you.

Hi sorry for the delay in my response.
@benbrown
I am a little unsure what you mean by login otherwise ?
I can log into the Azure Portal on all my devices and In the Azure CLI.
This app is the only service in which I have this issue, and within the App the is no evidence the the log in is successful. The app remains associated with my account.
The issue has changed somewhat since the most recent update.  now using V2.1.2

Hi @EduBotz,
There have been several known sign-in issues related to tenant not being found in the latest relsease. I see you were using 2.1.1 initially, have you tried going back to 2.1.1 to see if this issue is resolved?
Download composer 2.1.1 here and try to sign in again.
Let me know if this worked. Thanks

@EduBotz @ramfattah,
I've experienced the "Tenant not found" login error with version 2.1.2. I was able to remedy by uninstalling the Bot Framework Composer (BFC) along with the registry entries and related BFC folders found in .../App Data/Local & .../App Data/Remote.  Then, I installed version 2.1.1 which allowed me to complete my sign in with Azure and 2FA.  I had to remain at version 2.1.1 because when upgrading back to 2.1.2 caused the Tenant Not Found issue to resurface. Hopefully this annoying bug will be resolved with the next release of BFC.

Hi @slapinheimer, thank you for your patience. For now, the workaround is to use 2.1.1 to bypass any login issue in composer.


Updates browserify-shim to 3.8.9

Updates browserify-shim from 3.8.6. to 3.8.9.
Changes

Updates browserify-shim from 3.8.6. to 3.8.9.
Regenerates JS.

Testing

Site should function as expected.

Review

@sebworks
@KimberlyMunoz
@jimmynotjim

Notes

Compatibility update for browserify-shim dependencies mostly.
Weird, I don't actually see any change in the JS for this, ¯_(ツ)_/¯, fine to bump the version regardless.

:+1:


Bug: No way to recover volume flyout if the default position is set to go offscreen

Once a position higher than the height and width of the display is set, the flyout can no longer be seen:
To Reproduce:
Steps to reproduce the behavior:

Go to the settings.
Scroll down to Flyout Default Position
Enter X,Y values of 1920,1080.
(That's the resolution of my display.)
Press one the volume keys.
Click on 'Align to default position.'
Repeat step 4.
No flyout.

Settings screenshot:

OS Version:

Windows 10 Version: 20241

ModernFlyouts Version:

Version: v0.7.5

Additional context:
I'd like to have the flyouts displayed in the bottom-right corner, like in Chrome OS. Maybe a default option to place those on each display corner & limiting the X and Y axis bounds to the display width & height would help.
Chromium OS (CloudReady 85.3) screenshot:

Once a position higher than the height and width of the display is set, the flyout can no longer be seen

The one and only workaround you can do currently is to reset the app's data.
Go to the installed apps page on Windows Settings. Find the app and reset its app data and restart the app.
Guide : https://www.howtogeek.com/264824/how-to-reset-an-apps-data-on-windows-10/
One downside is that all your settings will be cleared 😅.

I'd like to have the flyouts displayed in the bottom-right corner, like in Chrome OS. Maybe a default option to place those on each display corner & limiting the X and Y axis bounds to the display width & height would help.

#74 and #71 is what you're looking for.
This is planned for v0.9
I'll try to do this ASAP 😄

Thanks!
I did the reset multiple times already.
One strange thing I noticed that setting X=1800 also renders the flyout offscreen.
Note that this is on 13" display with 125% scaling.

1920x1080 / 1.25 = 1536x864.
So setting 1800 will sure hop it out of the screen.
This is WPF's default behaviour. Window size scale up with increase in Dpi.
Screen size will scale down with increase in Dpi.
You have to be careful with the values.

Maybe simply have a "Reset to defaults" button at the bottom of the settings panel?

@Tropix126,
Yes, that would be a good idea.

Speaking of a reset button, this one doesn't do anything.

@erayrafet,
There is a misunderstanding here.
That option will only restore the windows built-in flyout.
It says "Restore Default" not "Reset to Defaults".
I should change the term to "Restore legacy flyout" to reduce confusion.

I should change the term to "Restore legacy flyout" to reduce confusion.

Agreed

@erayrafet @Tropix126
Are these new options enough for you?

@ShankarBUS Should do. Thanks!

Wow that was quick 😂.
Thank you for letting me know such an issue exists.
GitHub issues let us track our progress and prioritize our work.
I must thank you for opening this issue!


Use vSocketCloseNextTime instead of FreeRTOS_closesocket

This avoids problems with calling FreeRTOS_closesocket
from the IP task.
This is an alternative to #229

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@htibosch
Actually this does not address the select anomaly in !HANG_PROTECTION build,
I will create a separate PR for this.

Hmm, the CBMC Proofs fail over the configASSERT( xIsCallingFromIPTask() != pdFALSE ); which I added in the
last update.
I'll try to fix that.

Hmm, that is a bit unfair,
the trace for the failing proofs are show that  xIsCallingFromIPTask returns first true, and then false:
State 255 file test/cbmc/proofs/TCP/prvTCPHandleState/TCPHandleState_harness.c function harness line 49 thread 0
----------------------------------------------------
  socketSize=400u (00000000 00000000 00000001 10010000)

Assumption:
  file TCPHandleState_harness.c line 57 function harness
  (unsigned int)byte_extract_little_endian(pxSocket->u, 0, IPTCPSocket_t).xTCPWindow.ucOptionLength == (sizeof(uint32_t) /*4u*/  * 16u) / sizeof(uint32_t) /*4u*/

Assumption:
  file TCPHandleState_harness.c line 59 function harness
  tmp_if_expr

Assumption:
  file TCPHandleState_harness.c line 61 function harness
  (unsigned int)byte_extract_little_endian(pxSocket->u, 0, IPTCPSocket_t).usInitMSS == sizeof(uint16_t) /*2u*/

State 281 file FreeRTOS_IP.c function xIsCallingFromIPTask line 638 thread 0
----------------------------------------------------
  xReturn=-1 (11111111 11111111 11111111 11111111)

State 288 file FreeRTOS_IP.c function xIsCallingFromIPTask line 642 thread 0
----------------------------------------------------
  xReturn=1 (00000000 00000000 00000000 00000001)

[...]

State 967 file FreeRTOS_IP.c function xIsCallingFromIPTask line 638 thread 0
----------------------------------------------------
  xReturn=-1 (11111111 11111111 11111111 11111111)

State 974 file FreeRTOS_IP.c function xIsCallingFromIPTask line 646 thread 0
----------------------------------------------------
  xReturn=0 (00000000 00000000 00000000 00000000)

Violated property:
  file FreeRTOS_TCP_IP.c function vTCPStateChange line 1864 thread 0
  Assertion Error
  return_value_xIsCallingFromIPTask != (BaseType_t)0

Hello @bernd-edlinger,
the CBMC proofs try to cover every possible scenario. They return an indeterministic value (meaning anything can be returned - I hesitate to say randomly because that would not be correct but can make the nature of the return value clearer).
Since the function xIsCallingFromIPTask is not defined in the proof, the signature defaults to something like this:
BaseType_t xIsCallingFromIPTask(void)
{
    BaseType_t xReturn;

    /* Return a non-deterministic value. */
    return xReturn;
}

I have been busy with other tasks at hand. I'll try and fix the proofs which are broken in this PR.
Regards,
Aniruddha

Thanks @AniruddhaKanhere for clarifying.
Now I understand a lot better.
Likely the problem is xTaskGetCurrentTaskHandle() needs to be added to the test.

CBMC proofs do now pass.
@AniruddhaKanhere I've added this to the failing tests:
/* Abstraction of xTaskGetCurrentTaskHandle */
TaskHandle_t xTaskGetCurrentTaskHandle( void )
{
    static int xIsInit = 0;
    static TaskHandle_t pxCurrentTCB;
    TaskHandle_t xRandomTaskHandle; /* not initialized on purpose */

    if( xIsInit == 0 )
    {
        pxCurrentTCB = xRandomTaskHandle;
        xIsInit = 1;
    }

    return pxCurrentTCB;
}

do you agree with my approach?

Although merged, this PR was still on my list to do a real-life test.
I just took one example: a client wants to connect but it sends the wrong TCP flags (e.g. SYN + FIN).
The server will complain about the flags and call vTCPStateChange():
    /* In case pxSocket is not yet owned by the application, a closure
     * of the socket will be scheduled for the next cycle. */
    vTCPStateChange( pxSocket, eCLOSE_WAIT );

vTCPStateChange() sees that the socket is not yet owned by the application and so it calls vSocketCloseNextTime(). A few µs later, the socket is closed and deleted.
Bernd, thank you for this PR, and also for your patience and flexibility.


Add component dependencies to metadata.json

Purpose

Add component dependencies to metadata.json

Codecov Report

Merging #440 into master will increase coverage by 0.27%.
The diff coverage is 95.45%.

@@            Coverage Diff             @@
##           master     #440      +/-   ##
==========================================
+ Coverage   82.08%   82.35%   +0.27%
==========================================
  Files          29       29
  Lines         843      856      +13
  Branches       61       63       +2
==========================================
+ Hits          692      705      +13
  Misses        109      109
  Partials       42       42

Impacted Files
Coverage Δ

...ang/src/main/java/io/cellery/CelleryConstants.java
66.66% <ø> (ø)
:arrow_up:

...src/main/java/io/cellery/impl/CreateCellImage.java
87.88% <95.45%> (+0.5%)
:arrow_up:

Continue to review full report at Codecov.

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


Add as_json option to 21.1 SHOW BACKUP docs

The as_json option has been added to the 21.2 docs, this has also been backported and can be added into the 21.1 docs.

For reference: https://cockroachlabs.slack.com/archives/C01PHNMUFLN/p1636987447074400

Add some further detail in an example, with interpretation of the output.


Added code which captures how to start agent

Code here generally captures how the interface for starting the profiling agent should work.
Generally, one should be able to start the profiler by either including, then starting the profiler
var profiler = require('./index'); profiler.start(config); // where config implements Config interface
or by requiring the profiler at runtime
node --require ./index some_program.js

I'm going to close this, and resubmit something which more closely resembles the config set-up in cloud-debug-nodejs


Segmentation fault with the rewrite branch in certain benchmarks

The newer rewrite branch seems to be crashing with a segmentation fault in some benchmarks.
I tried running the benchmarks from: https://github.com/daanx/mimalloc-bench, with the code in the newer branch. The ghostscript, lua and rocksdb benchmarks crash with a segmentation fault, and the redis benchmark results in an infinite loop.

I have noticed another anomaly in the rewrite code, from the mimalloc-bench code it seems that page reclaims for rpmalloc are extremely high in certain benchmarks.
# test    alloc   time  rss    user  sys   page-faults page-reclaims
sh8benchN   rp    22.19 181544 13.58 11.70 0           2466417
sh8benchN   rp    21.27 190632 13.17 11.08 0           2466019
sh8benchN   rp    20.61 179172 12.82 10.56 0           2466126
sh8benchN   rp    20.75 183456 12.60 10.84 0           2466496
sh8benchN   rp    21.41 184020 13.31 10.99 0           2466958

Around 2.5 million page reclaims for this benchmark, with the system malloc having around 150k, and mimalloc only having around 15k.
# test        alloc   time   rss   user sys  page-faults page-reclaims
xmalloc-testN   rp    12.238 45336 2.85 3.11 0           591105
xmalloc-testN   rp    12.103 44136 2.95 3.04 0           596727
xmalloc-testN   rp    10.555 45300 3.28 3.26 0           685687
xmalloc-testN   rp    11.020 44308 3.22 3.23 0           657453
xmalloc-testN   rp    12.245 45848 2.89 3.08 0           587162

It's also quite high in the xmalloc-test benchmark at around 600k, with the system malloc having around 50k, and mimalloc only having around 2k.
I'll also include the Redis benchmark errors here, this results in the benchmarks getting stuck (on GitHub Actions) and not being able to progress to the next ones.
It might be safe to assume that the server is immediately crashing with a segmentation fault as well, if this is the same issue as the other ones:
run 1: redis rp: LD_PRELOAD=/home/runner/work/mbench/mbench/extern/rp/bin/linux/release/x86-64/librpmallocwrap.so /home/runner/work/mbench/mbench/extern/redis-7.0.12/src/redis-benchmark -r 1000000 -n 100000 -q -P 16 lpush a 1 2 3 4 5 lrange a 1 5
start server
Could not connect to Redis at <IP_ADDRESS>:6379: Connection refused
Could not connect to Redis at <IP_ADDRESS>:6379: Connection refused
WARNING: Could not fetch server CONFIG

The others I mentioned crash with signal 11 (segmentation fault):
run 1: gs rp: LD_PRELOAD=/home/runner/work/mbench/mbench/extern/rp/bin/linux/release/x86-64/librpmallocwrap.so gs -dBATCH -dNODISPLAY /home/runner/work/mbench/mbench/extern/large.pdf
Command terminated by signal 11
gs          rp    0:01.99 76720 1.79 0.06 0 2222

run 1: lua rp: LD_PRELOAD=/home/runner/work/mbench/mbench/extern/rp/bin/linux/release/x86-64/librpmallocwrap.so make
~/work/mbench/mbench/extern/lua ~/work/mbench/mbench/extern/lua ~/work/mbench/mbench/out/bench
rm -f liblua.a lua lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o ltests.o lua.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o loslib.o ltablib.o lstrlib.o lutf8lib.o loadlib.o lcorolib.o linit.o
~/work/mbench/mbench/extern/lua ~/work/mbench/mbench/out/bench
Command terminated by signal 11
lua         rp    0:00.15 10840 0.00 0.00 0 224

run 1: rocksdb rp: LD_PRELOAD=/home/runner/work/mbench/mbench/extern/rp/bin/linux/release/x86-64/librpmallocwrap.so /home/runner/work/mbench/mbench/extern/rocksdb-8.1.1/db_bench --benchmarks=fillrandom
... finished 1000000 ops
RocksDB:    version 8.1.1
Date:       Thu Jul 27 05:34:08 2023
CPU:        2 * Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
CPUCache:   36608 KB
... finished 100 ops
[REDACTED]
... finished 1000000 ops
Received signal 11 (Segmentation fault)
Invoking GDB for stack trace...
GDB failed; falling back on backtrace+addr2line...
#0   /home/runner/work/mbench/mbench/extern/rp/bin/linux/release/x86-64/librpmallocwrap.so(__libc_free+0xea) [0x7f5a5f13a36a] ??	??:0
Command terminated by signal 11
rocksdb     rp    0:07.36 131096 5.89 1.82 2 2358

This line caught my attention:
#0   [redacted]/librpmallocwrap.so(__libc_free+0xea) [0x7f5a5f13a36a] ??	??:0
Command terminated by signal 11

If I understand correctly how the override is meant to work, then __libc_free+0xea shouldn't be there right? Unless I'm mistaken, this means that there's a call to glibc free somewhere in there when it shouldn't.
@mjansson, the rocksdb benchmark seems to be the most descriptive when it comes to the error, would it be safe to assume that the segmentation fault in the rocksdb benchmark is the same as the other 3?

It seems the gs test does some free in global destructors which is called after the rpmalloc global destructor. Will fix that so it is supported.
Regarding page reclaims the current rewrite branch is extremely easger to decommit any unused memory pages. Working on some good heuristics on when to keep pages around and when to decommit.

I've pushed a couple of fixes, if you want to try them out that would be great.
If you want to run without the aggressive decommit/recommit pages you can change the ENABLE_DECOMMIT define to 0

The ENABLE_DECOMMIT=1 should work pretty well now in all the benchmarks

Closing for now, let me know if there are more issues


sh: 74: [: UG}: unexpected operator

When running this with wget command on Raspbian I get the following errors:
sh: 74: [: UG}: unexpected operator
sh: 77: [: UG}: unexpected operator
sh: 88: syntax error: Missing '}'

Maybe retry with
wget -O- https://raw.githubusercontent.com/glenpike/npm-g_nosudo/master/npm-g-nosudo.sh | bash

?

With the latter script on bash:
bash: line 142: syntax error near unexpected token `)'
bash: line 142: `    [Yy]* ) fix_env;;'

Got exactly the same errors in both cases on Ubuntu 16.04

@maikokuppe - can you please try running the script as below (I've done a Pull Request with a possible fix)
wget -O- https://raw.githubusercontent.com/glenpike/npm-g_nosudo/b28-case-esac/npm-g-nosudo.sh | bash

Just tried the PR with possible fix, get the following error:
bash: line 142: syntax error near unexpected token `)'
bash: line 142: `    [Yy]*) fix_env;;'

I got exactly the results as the others with the listed scripts. I'm using Xubuntu 16.04.

Getting the same error right now.
Ubuntu 16.04

Okay, I've tried fixing this problem again on the branch, please try the following:
wget -O- https://raw.githubusercontent.com/glenpike/npm-g_nosudo/b28-case-esac/npm-g-nosudo.sh | bash

or download the file from the branch and run manually - https://raw.githubusercontent.com/glenpike/npm-g_nosudo/b28-case-esac/npm-g-nosudo.sh
If you have problems, please tell me what shell you are running with the following:
which sh | xargs ls -al

Hi, @a2nt
Okay - it looks like piping the wget output to bash causes issues with the elif statement.
If you download 'manually' change permissions and execute it, what happens?
wget -O- https://raw.githubusercontent.com/glenpike/npm-g_nosudo/b28-case-esac/npm-g-nosudo.sh >npm-g-nosudo.sh

Then
chmod 755 npm-g-nosudo.sh

Then
./npm-g-nosudo.sh

(I've just tried this in a brand new vagrant machine on Ubuntu 16.04 using the shell and it seems to behave correctly)

If that's not behaving, do you have bash installed on Debian - I'm guessing I could change the shebang so it has to run under bash, but that might exclude people - I've tried making it compliant as possible, but maybe doing something wrong there.

Thanks @gauntface - is that using master branch or the PR one?


Mac OS docker directory Mapping error

The command used to create a container on Mac OS will get an error.  Cause the directory . is invalid.  @Stig124 It is better to point out that in README.
$ ls  demo
slides.md
$ docker run --rm -v /full/path/of/demo:/root/slides -p 3030:3030 stig124/slidev:latest

Hope that can help.

Hello,
Thanks for reporting that, will do


mitmproxy/mitmdump fail on certain github API calls

Steps to reproduce the problem:

run mitmdump
proxy through to github API (single call is enough)
see boom.

This is strange, but I can only see it when I successfully authenticate to github. I can't come up with a sample program and publish the values in the issue (I can provide them to you personally).
What is the expected behavior?
not crash?
What went wrong?
May be related to #169

[vps@palladin]~$ mitmdump
<IP_ADDRESS>:34144: clientconnect
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/libmproxy/proxy/server.py", line 121, in handle
root_layer()
File "/usr/lib/python2.7/site-packages/libmproxy/proxy/modes/http_proxy.py", line 11, in call
layer()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 345, in call
self._establish_tls_with_client_and_server()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 427, in _establish_tls_with_client_and_server
six.reraise(*sys.exc_info())
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 424, in _establish_tls_with_client_and_server
self._establish_tls_with_client()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 433, in _establish_tls_with_client
cert, key, chain_file = self._find_cert()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 566, in _find_cert
return self.config.certstore.get_cert(host, list(sans))
File "/usr/lib/python2.7/site-packages/netlib/certutils.py", line 341, in get_cert
sans),
File "/usr/lib/python2.7/site-packages/netlib/certutils.py", line 96, in dummy_cert
ipaddress.ip_address(i.decode("ascii"))
AttributeError: 'NoneType' object has no attribute 'decode'
mitmproxy has crashed!
Please lodge a bug report at: https://github.com/mitmproxy/mitmproxy
<IP_ADDRESS>:34144: Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/libmproxy/proxy/server.py", line 121, in handle
root_layer()
File "/usr/lib/python2.7/site-packages/libmproxy/proxy/modes/http_proxy.py", line 11, in call
layer()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 345, in call
self._establish_tls_with_client_and_server()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 427, in _establish_tls_with_client_and_server
six.reraise(*sys.exc_info())
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 424, in _establish_tls_with_client_and_server
self._establish_tls_with_client()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 433, in _establish_tls_with_client
cert, key, chain_file = self._find_cert()
File "/usr/lib/python2.7/site-packages/libmproxy/protocol/tls.py", line 566, in _find_cert
return self.config.certstore.get_cert(host, list(sans))
File "/usr/lib/python2.7/site-packages/netlib/certutils.py", line 341, in get_cert
sans),
File "/usr/lib/python2.7/site-packages/netlib/certutils.py", line 96, in dummy_cert
ipaddress.ip_address(i.decode("ascii"))
AttributeError: 'NoneType' object has no attribute 'decode'
<IP_ADDRESS>:34144: clientdisconnect

Any other comments?

Mitmproxy Version: 0.16
Operating System: Linux, FC22

Thanks for the report! This should be fixed on master now :smiley:


[go_router]AsyncValue has both isLoading and hasValue to true simultaneously

AsyncValue has both isLoading and hasValue to true simultaneously when there is value.
ref.listen(secureEntryLoginStateNotifierProvider, (previous, next) {
  final loginFailed = ((previous?.isLoading ?? false) &&
      !(next.valueOrNull?.isLoggedIn ?? false));
  if (loginFailed) {
    ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text("Incorrect Credential")));
  }
});

i don't know if for AsyncValue should have both isLoading and hasData true simultaneously.
i am trying to know if the data logging in failed by checking if the pervious state was loading and the next state is not logged in, or am i doing it wrong?
To Reproduce
@riverpod
class SecureEntryLoginStateNotifier extends _$SecureEntryLoginStateNotifier {
  @override
  Future<SecureEntryLoginState> build() async {
    ref.watch(webSocketNotifierStateProvider);
    return const SecureEntryLoginState();
  }

  Future<void> secureEntryLogin(
      {required String username, required String password}) async {
    final webConnectionState = ref.watch(webSocketNotifierStateProvider);
    state = const AsyncLoading();
    if (webConnectionState.hasValue &&
        webConnectionState.value!.isConnectedToWebServer) {
      final details = json.encode({"username": username, "password": password});

      final response = await ref
          .read(webSocketNotifierStateProvider.notifier)
          .sendAndListen("login", details);
      if ("success" == response["confirmation"]) {
        state = const AsyncValue.data(SecureEntryLoginState(isLoggedIn: true));
      } else {
        state = const AsyncValue.data(SecureEntryLoginState(isLoggedIn: false));
      }
    }

  }

  @override
  Widget build(BuildContext context) {
    final secureEntryLoginState =
        ref.watch(secureEntryLoginStateNotifierProvider);
    ref.listen(secureEntryLoginStateNotifierProvider, (previous, next) {
      if (!(next.valueOrNull?.isLoggedIn ?? false)) {
        ScaffoldMessenger.of(context).showSnackBar(
            const SnackBar(content: Text("Incorrect Credential")));
      }
    });
    return Scaffold(

When state change from is loading stae to data, the pervious state has
<Please add a small sample to that can be executed to reproduce the problem. As a general rule, 100 lines is the maximum>
Expected behavior
A clear and concise description of what you expected to happen.
previous.isLoading should be false when hasData is true.

Work About
I decleared a boolean in my notifier to know when the state changes from loading to data.
@riverpod
class SecureEntryLoginStateNotifier extends _$SecureEntryLoginStateNotifier {
  bool loggingInFailed = false;
  @override
  Future<SecureEntryLoginState> build() async {
    ref.watch(webSocketNotifierStateProvider);
    return const SecureEntryLoginState();
  }

  Future<void> secureEntryLogin(
      {required String username, required String password}) async {
    final webConnectionState = ref.watch(webSocketNotifierStateProvider);
    state = const AsyncLoading();
    if (webConnectionState.hasValue &&
        webConnectionState.value!.isConnectedToWebServer) {
      final details = json.encode({"username": username, "password": password});

      final response = await ref
          .read(webSocketNotifierStateProvider.notifier)
          .sendAndListen("login", details);
      if ("success" == response["confirmation"]) {
        loggingInFailed = false;
        state = const AsyncValue.data(SecureEntryLoginState(isLoggedIn: true));
      } else {
        loggingInFailed = true;
        state = const AsyncValue.data(SecureEntryLoginState(isLoggedIn: false));
      }
    }
  }
}

That's normal. Riverpod keeps the latest error/data during loading states after the first one.
This is so that you could show the previous data during a refresh for example.

i would like ask how i could know when the state changes from loading to data

You can check !isLoading


Implement test number 5 of negotiateIncoming

Issue #6 explains 12 different tests.
Close this issue once test number 5 on the list has been implemented.

This one was skipped since we did not end up going for P+.


Breaking Changes...

Upgrading to 2.1 had a lot of breaking changes, and most have been resolved. However, there are two that I'm not sure how to resolve, since the old way has been removed(see code at end)

While I don't seem to have an issue talking to the js client, in the C# client, I'm not sure how to force Pascal Case.

How do I specify Websockets or MessagePack as the transport?

.WithHubProtocol(new JsonHubProtocol(Options.Create(new JsonHubProtocolOptions()
{
PayloadSerializerSettings = new JsonSerializerSettings()
{
// Configure as you'd like here
}
})))
.WithTransport(TransportType.WebSockets)

For MessagePack, you use the .AddMessagePackProtocol() extension method on HubConnectionBuilder. This requires the Microsoft.AspNetCore.SignalR.Protocols.MessagePack package.
For specifying a specific set of transports, you configure that in the options => {} delegate provided to .WithUrl()

BTW, in the JS client, you guys made a change to withCredentials, setting it to true, is there a way to set that to false in the client, or is there a solution on the server?
Also, you what do I do to get Pascal case in the C# client?

Ok, ignore the credentials, I found out that adding ".AllowCredentials()" on the server solves that problem, so I just need to know how to get Pascal Case in the C# client.

For Pascal Case JSON you set the Contract Resolver as such:
.AddJsonProtocol(options => {
    options.PayloadSerializerSettings.ContractResolver = new DefaultContractResolver();
})

Note, you should not use .WithHubProtocol in the C# client, there is a specific overload for JSON (.AddJsonProtocol) that does a lot more of the work for you. We're actively working on improving docs this week, so we'll make sure this gets covered (https://github.com/aspnet/Docs/issues/6599 is tracking this work)

AddJsonProtocol appears to not be a member of IHubConnectionBuilder

you need to import the Microsoft.Extensions.DependencyInjection namespace. Visual Studio (and VSCode) should suggest it as a quick fix when you type it in. I'll add a note to the docs to point that out.

Yes, Visual Studio does give me the suggestion, and everything is working properly... Thanks!

Awesome!


Add "Galeri" to list of apps 🎉

I'm the sole developer of this app, huzzah!

Thanks for submitting this app!
To make it easier for our team to review and verify the quality of app submissions, we've moved all the app metadata to a new repository. See github.com/electron/electron-apps#adding-your-app for info on how to open a new pull request there. Sorry for the inconvenience, and thanks again for taking the time to submit your app. For more info on the motivation behind this change, see this pull request: https://github.com/electron/electron.atom.io/pull/616

I created a followup PR at https://github.com/electron/electron-apps/pull/14


albyhub: init at 1.12.0

WIP: This builds the frontend artifacts and so far one out of three precompiled external go packages. A lot of this is new territory for me, so please call out if there's a better way to handle something. Especially regarding the input derivations that I'm building for the precompiled external package imports.
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Here's my discovery notes on ldk-node-go, which is "Experimental Go bindings for LDK-node"
repository at a glance:
$ tree
.
├── go.mod
├── ldk_node
│   ├── aarch64-unknown-linux-gnu
│   │   └── libldk_node.so
│   ├── arm-unknown-linux-gnueabihf
│   │   └── libldk_node.so
│   ├── cgo.go
│   ├── ldk_node.c
│   ├── ldk_node.go
│   ├── ldk_node.h
│   ├── universal-macos
│   │   └── libldk_node.dylib
│   ├── x86_64-pc-windows-gnu
│   │   └── ldk_node.dll
│   ├── x86_64-pc-windows-msvc
│   │   └── ldk_node.dll
│   └── x86_64-unknown-linux-gnu
│       └── libldk_node.so
└── README.md

8 directories, 12 files

The repository structure includes pre-compiled shared libraries (.so, .dll, .dylib) for different architectures and operating systems.
The cgo.go file sets up the necessary CGo directives to link against these pre-compiled libraries based on the target platform.
The ldk_node.c and ldk_node.h files provide the C interface to the Rust library.
The ldk_node.go file contains the Go code that wraps the C interface, making it usable from Go.
In github.com/getAlby/hub the ldk_node package is imported as follows
lnclient/ldk/ldk.go:
head -n37 /home/blee/src/hub/lnclient/ldk/ldk.go
package ldk

import (
        "context"
        "crypto/sha256"
        "database/sql"
        "errors"
        "fmt"
        "math"
        "os"
        "path/filepath"
        "slices"
        "sort"
        "strconv"
        "strings"
        "time"

        "github.com/getAlby/ldk-node-go/ldk_node"
        "github.com/tyler-smith/go-bip32"

        // "github.com/getAlby/hub/ldk_node"

        "encoding/hex"
        "encoding/json"

        decodepay "github.com/nbd-wtf/ln-decodepay"
        "github.com/sirupsen/logrus"

        "github.com/getAlby/hub/config"
        "github.com/getAlby/hub/events"
        "github.com/getAlby/hub/lnclient"
        "github.com/getAlby/hub/logger"
        "github.com/getAlby/hub/lsp"
        "github.com/getAlby/hub/service/keys"
        "github.com/getAlby/hub/utils"
)

Then in github.com/getAlby/hub there's a Dockerfile that essentially runs go build cmd/http/main.go and then runs build/docker/copy_dylibs.sh:
#!/usr/bin/env bash
if [[ "$ARCH" == "amd64" ]]; then
    cp "$(go list -m -f "{{.Dir}}" github.com/breez/breez-sdk-go)"/breez_sdk/lib/linux-amd64/libbreez_sdk_bindings.so ./
    cp "$(go list -m -f "{{.Dir}}" github.com/getAlby/glalby-go)"/glalby/x86_64-unknown-linux-gnu/libglalby_bindings.so ./
    cp "$(go list -m -f "{{.Dir}}" github.com/getAlby/ldk-node-go)"/ldk_node/x86_64-unknown-linux-gnu/libldk_node.so ./
elif [[ "$ARCH" == "arm64" ]]; then
    cp "$(go list -m -f "{{.Dir}}" github.com/breez/breez-sdk-go)"/breez_sdk/lib/linux-aarch64/libbreez_sdk_bindings.so ./
    cp "$(go list -m -f "{{.Dir}}" github.com/getAlby/glalby-go)"/glalby/aarch64-unknown-linux-gnu/libglalby_bindings.so ./
    cp "$(go list -m -f "{{.Dir}}" github.com/getAlby/ldk-node-go)"/ldk_node/aarch64-unknown-linux-gnu/libldk_node.so ./
else
    echo "Invalid ARCH value"
    exit 1
fi

It appears that the repository "github.com/getAlby/ldk-node-go" is providing Go bindings for a Rust library called LDK (Lightning Development Kit).
Thus, albyhub/ldk-node-go/default.nix is used as a buildinput for albyhub/package.nix

Here are my discovery notes on github.com/breez/breez-sdk-go
repository at a glance:
.
├── breez_sdk
│   ├── breez_sdk.go
│   ├── cgo.go
│   └── lib
...
│       ├── linux-aarch64
│       │   ├── dummy.go
│       │   └── libbreez_sdk_bindings.so
│       ├── linux-amd64
│       │   ├── dummy.go
│       │   └── libbreez_sdk_bindings.so
...
├── go.mod
├── LICENSE
└── README.md

12 directories, 28 files

The repository structure includes pre-compiled shared libraries (.so, .dll, .dylib) for different architectures and operating systems.
The cgo.go file sets up the necessary CGo directives to link against these pre-compiled libraries based on the target platform.
The breez_sdk.go file contains the Go code that wraps the C interface, making it usable from Go.
In github.com/getAlby/hub the breez_sdk package is imported as follows
lnclient/breez/breez.go:
//go:build !skip_breez

package breez

import (
	"context"
	"encoding/hex"
	"errors"
	"log"
	"os"
	"path/filepath"
	"strings"
	"time"

	"github.com/breez/breez-sdk-go/breez_sdk"
	decodepay "github.com/nbd-wtf/ln-decodepay"
	"github.com/sirupsen/logrus"

	"github.com/getAlby/hub/lnclient"
	"github.com/getAlby/hub/logger"
)
...

Here's my discovery notes on github.com/getAlby/glalby-go which provides Go bindings for Greenlight.
repository at a glance:
.
├── glalby
│   ├── aarch64-unknown-linux-gnu
│   │   └── libglalby_bindings.so
│   ├── arm-unknown-linux-gnueabihf
│   │   └── libglalby_bindings.so
│   ├── cgo.go
│   ├── glalby.c
│   ├── glalby.go
│   ├── glalby.h
│   ├── universal-macos
│   │   └── libglalby_bindings.dylib
│   ├── x86_64-pc-windows-gnu
│   │   └── glalby_bindings.dll
│   ├── x86_64-pc-windows-msvc
│   │   └── glalby_bindings.dll
│   └── x86_64-unknown-linux-gnu
│       └── libglalby_bindings.so
├── go.mod
└── README.md

8 directories, 12 files

The repository structure includes pre-compiled shared libraries (.so, .dll, .dylib) for different architectures and operating systems.
The cgo.go file sets up the necessary CGo directives to link against these pre-compiled libraries based on the target platform.
The glalby.c and glalby.h files provide the C interface to the Rust library.
The glalby.go file contains the Go code that wraps the C interface, making it usable from Go.
In github.com/getAlby/hub the glalby-go (greenlight alby) package is imported as follows
lnclient/greenlight/greenlight.go:
package greenlight

import (
	"context"
	"errors"
	"log"
	"math/rand"
	"os"
	"path/filepath"
	"sort"
	"strconv"
	"strings"
	"time"

	//"github.com/getAlby/hub/glalby" // for local development only

	"github.com/getAlby/glalby-go/glalby"
	decodepay "github.com/nbd-wtf/ln-decodepay"
	"github.com/sirupsen/logrus"

	"github.com/getAlby/hub/config"
	"github.com/getAlby/hub/lnclient"
	"github.com/getAlby/hub/logger"
)

...

If I've fixed the shared library loading then this error seems to suggest that I have mismatched library versions:
blee@litten ~/s/n/p/b/a/albyhub (albyhub|✚1)> ./result/bin/http --version
./result/bin/http: symbol lookup error: ./result/bin/http: undefined symbol: breez_sdk_d6e4_BlockingBreezServices_lsp_info

breez_sdk.go has bindings generated by something called "uniffi"
blee@litten ~> grep lsp_info ~/src/breez-sdk-go/breez_sdk/breez_sdk.go
RustBuffer breez_sdk_a35c_BlockingBreezServices_fetch_lsp_info(
RustBuffer breez_sdk_a35c_BlockingBreezServices_lsp_info(
                return C.breez_sdk_a35c_BlockingBreezServices_fetch_lsp_info(
                return C.breez_sdk_a35c_BlockingBreezServices_lsp_info(

The notable difference here being d6e4 vs a35c.
Here's how we can find the commit (or version) that has d6e4:
cd ~/src/breez-sdk-go
git log -S 'breez_sdk_d6e4_BlockingBreezServices_lsp_info' -- breez_sdk/breez_sdk.go
commit 8dbaaa24c13f37129d9900af89ca169ea21c54c4 (tag: v0.6.0-rc1)
commit cfb3d4b732f9ea4f0ade8510554ace412301f3a3 (tag: v0.5.2)

Actually, the smarter way to do this is probably to just look at go.mod
grep breez-sdk-go ~/src/hub/go.sum
github.com/breez/breez-sdk-go v0.5.2 h1:frqX14cKTM2egWP7C53u3SzBkYQrgx9P7si/Ig9Droo=
github.com/breez/breez-sdk-go v0.5.2/go.mod h1:EalYMEeQVwRzr6UXnF4QpLlpuWNwQQN9xwtDKNIutBo=

Which tells me I need to be using breez-sdk-go v0.5.2. I'll probably need to do this for all 3 shared libraries and for all updates moving forward so that we're shipping the same library versions as upstream.


[UBS] Set order status from "CONFIRMED" to "ON_THE_ROUTE" automatically on the day of order fulfillment

Link to issue: https://github.com/ita-social-projects/GreenCity/issues/5034
Actual result
The order status from "Підтверджено" to "На маршруті" is not changed and is not set automatically at 00:00 on the day of order fulfillment
Expected result
The order status from "Підтверджено" to "На маршруті" is changed and is set automatically at 00:00 on the day of order fulfillment

The bug is still can be reproduced
https://user-images.githubusercontent.com/110603507/224540023-27f69e91-64c8-4fef-831d-591c16039b74.mp4

Everything seems to be working as expected


Mex Compilation Doesn't Support Varying of Mechanisms

Makes 1 mex file for all sims.  That means the vary notation for switching out mechanisms won't work.  Temporary fix is to have all mechanisms at once, and vary conductance to 0 to switch in and out.  The covary mechanism helps with this, but is clunky.

Need to have dynasim check for varied mechs, and do a loop through the combinations of different mechs, and have mex compilation make separate m files.

This is what happens now. A new MEX file will be generated for every simulation of a model with mechanisms that have not been run before. It is not possible for a single MEX file to be used for models with different equations; therefore, the "temporary fix" suggested is the only approach that results in a single MEX file.

fyi was added to the wiki q&a


Improved instructions

These changes look great! I don't want to pull in your changes to the Azure Static Web Apps action file, though. Will wait until we chat, but might be easiest for me to just copy/paste these changes in directly.

Merged via #5 instead.