if there is an error saving the credential to TOB, the Aries agent doesn't return the error to the issuer

I.e.:

issuer sends a credential
TOB agent receives the credential and saves it in the wallet (the protocol is automated at each step), and sends the "success" messages back to the issuer's agent
TOB agent calls the TOB web hooks
If there is a TOB error at this point, the issuer doesn't get notified

In Aries RFC 36 there are acks and problem reports after a credential is issued. We would need to delay that until the credential has been processed by the controller (TOB) and allow it to send back problem details. The issuer should be receiving the problem report and moving the credential exchange to an error state, which would trigger a webhook for its controller.

@ianco can you share more about what kind of error occurs in tob? Presumably, the credential itself is valid, but it doesn't satisfy something in the issuer registration?

In this specific case I just forced the error (threw an exception on receipt of the credential).
In the past we've had different errors on trying to save the credential - data issues, environment issues, database deadlocks etc.

Gotcha - I will need to add a new state transition to notify the issuer that the holder has stored the credential so that both agents end with their states as "stored". This will be a final transition that TOB can trigger via the admin API.
In the case of a failure, we will need a way for TOB to notify its agent that there was a problem which will trigger a problem-report.
@andrewwhitehead I don't think we have an admin endpoint yet for triggering a problem report. Do you know if there are any examples elsewhere yet of a controller triggering a problem report?

Added new issues for this work here for reference: https://github.com/hyperledger/aries-cloudagent-python/issues/96 https://github.com/hyperledger/aries-cloudagent-python/issues/95

@nrempel No there aren't any examples of that. There's different problem reports at the moment depending on the protocol, including the one used in the new credential protocol. I think it would need a new admin route per module to set the result of the operation and trigger an ack or problem-report. The agent would probably also need a flag to tell it to wait for the processor to complete, as in many cases the result doesn't depend on what the controller is doing.

@ianco if a credential processing fails, would it be ideal if the indy credential was never stored in the wallet?
If that is the case, perhaps we could add an additional transition after a credential is received but before it is stored. The agent would pause and the agent would instruct it to continue. Does that sound ideal?

Yes ideally the credential registry would return an error status (to the web hook) and then the agent wouldn't store the credential.

I explored using a response to a webhook to trigger a problem report to the sender but the problem with this is that webhooks need to retry in case of failure.
What I've done is added a new admin endpoint for a controller to trigger a problem report back to the other agent. I also made it so that problem-reports propagate to the agent's controller to notify the backend.
https://github.com/hyperledger/aries-cloudagent-python/pull/98
I also added a new state transition so that the holder agent can pause before storing a credential and pass the data to the controller. This way, the org book can do the processing before the agent stores the credential in its wallet.
https://github.com/hyperledger/aries-cloudagent-python/pull/97
So the approach will be:

Listen for credential_received state in webhook instead of stored

Adjust credential registry callback parser to look in raw_credential instead of credential:

raw_credential:
{
  "schema_id": "4QxzWk3ajdnEA37NdNU5Kt:2:string:1.1",
  "cred_def_id": "4QxzWk3ajdnEA37NdNU5Kt:3:CL:19:default",
  "rev_reg_id": null,
  "values": {
    "string": {
      "raw": "1",
      "encoded": "1"
    }
  }
}

credential:
{
  "referent": "05c7be59-0a4b-48f5-9680-55b7e7e61b5d",
  "attrs": {
    "string": "1"
  },
  "schema_id": "4QxzWk3ajdnEA37NdNU5Kt:2:string:1.1",
  "cred_def_id": "4QxzWk3ajdnEA37NdNU5Kt:3:CL:19:default",
  "rev_reg_id": null,
  "cred_rev_id": null
}

Once processing completes, call new admin endpoint to instruct the agent to store the credential: /credential_exchange/{id}/store

4: If the processing fails, call /credential_exchange/{id}/problem_report to send a problem report back to the issuing agent.

In the issuing agent controller, listen for the problem-report webhook to receive problem notifications

Use the thread_id in the webhook to correlate the problem with the credential_exchange that failed

Isn't this done and can be closed @nrempel?

Yes, moved to done.


Instantiation of Hooks class after Config class.

When Hooks class get loaded, within its constructor it loads the Config class. https://github.com/bcit-ci/CodeIgniter/blob/6cab78970f212a30ea923835510ffd1fb77a6ad0/system/core/Hooks.php#L90
I think, there is no reason within the file CodeIgniter.php Hooks to be presented as loaded before the Config class, because it is not the actual order of loading.
Also, after the change, the injected through $assign_to_config options would become accessible by 'pre_system' hooks.

This is a BC break and it makes the "pre_system" hook, be NOT pre-system.


Update Terraform cloudposse/ecs-codepipeline/aws to v0.33.0

Breaking changes
This release introduces a breaking change that affects projects using the github_webhooks_token variable.
Since Terraform 1.2.0, modules to be used with the for_each, count, and depends_on arguments must not contain their own provider configurations. The github_webhooks_token variable was being used to instantiate a github provider, which must now be instantiated and provided separately.
If your project is affected by this change, the following steps will allow you to upgrade to this version:

Add the GitHub provider to your project:
terraform {
  required_providers {
    github = {
      source  = "integrations/github"
      version = ">= 4.2.0"
    }
  }
}

Instantiate the provider (feel free to use any other supported Authentication mechanism):
provider "github" {
  owner = var.repo_owner
  token = "{your_github_token}"
}

Stop providing the github_webhooks_token variable to this module.

what

Removed variables no longer available in the cloudposse/ecs-codepipeline/aws module.
Supersedes #202
Fixes #227

why

Version 0.32.0 upgrades the cloudposse/repository-webhooks/github module, which removed the hardcoded github provider, so some variables have been removed in favor of instantiating the provider separately.

references

Upstream issue: https://github.com/cloudposse/terraform-github-repository-webhooks/issues/37
Upstream pull request: https://github.com/cloudposse/terraform-github-repository-webhooks/pull/40

@Gowiem @korenyoni - is it possible to get this reviewed or landed? Would be helpful to have this in main

Pulling in @joe-niland since he's an expert on this module. Joe, figured you may have an opinion here.

/test all

@adamantike @getglad -- This looks like a solid contribution, thanks! I'm checking with the rest of the maintainer team on if this should be a major version rev or not. I believe it should, but semver is followed differently everywhere and it's we've just started rev'ing past v0.x.y, so it's good to check. Will follow up when we can move this forward 👍

Pulling in @joe-niland since he's an expert on this module. Joe, figured you may have an opinion here.

Thanks for the ping @Gowiem.
I don't use this module that much anymore, but I did test this branch and it was fine after I made the adjustments below.
Since this introduces  a breaking change, I think we need to include information about how to change a consuming module in the PR description (example). As far as I can see, it's just:

unsetting the github_webhooks_token variable
adding a github provider block
updating the github provider source and version

@joe-niland good call on the breaking changes info and including that in the PR description. @adamantike do you mind providing that info into your description and then we'll get this merged and cut a release? Here is a great PR example of what that should look like: https://github.com/cloudposse/terraform-aws-s3-bucket/pull/158

Looking forward to get this in which would fix the below.
│ Error: Incompatible provider version
│
│ Provider registry.terraform.io/hashicorp/github v3.0.0 does not have a
│ package available for your current platform, darwin_arm64.

@max-lobur @Gowiem @joe-niland friendly re-bump on this.
It sounds like this was down to documentation on the PR description, but now seeing some failures around a pinning to https://github.com/cloudposse/terraform-null-label.git?ref=tags/0.19.2 in a subnet module.
Any ideas on how we can get it unblocked and merged?

Sorry for not tackling this before. I have rebased my changes, and updated the PR description to include the information about the breaking change and how to upgrade to the new minor version!

/terratest

@adamantike sorry to continue to drag this out, but we've got some lint issues and terraform failures due to the moved block somewhere in the chain. The moved block means we need to update the required terraform version in either the module itself or in the examples directories. Mind checking into those and we'll see if we can get this PR green and shipped?

It's probably the same issue I needed to fix in the complete example, because of very old versions of dynamic-subnets and vpc modules being used. Let me try to fix those ASAP.

/terratest

@adamantike can you bump this line to v1.3+? https://github.com/cloudposse/terraform-aws-ecs-web-app/blob/main/examples/complete/versions.tf#L2

Just updated required_version in the examples to use at least 1.1.0, as that's the minimum required version in the dynamic-subnets module (reference)

/terratest

The fun never ends:
│ Error: Unsupported block type
│
│   on .terraform/modules/ecs_web_app.ecs_codepipeline.codebuild/main.tf line 414, in resource "aws_codebuild_project" "default":
│  414:     dynamic "auth" {
│
│ Blocks of type "auth" are not expected here.

Mind looking into that @adamantike?

That error will require more coordination with other modules. The issue is that cloudposse/terraform-aws-codebuild uses source.auth dynamic blocks (reference), which were removed from the AWS provider version 5 (notes from the upgrade guide).
I'm not familiar with how well maintained that module is, but consider that it has an open issue and two open PRs (1, 2) from 2022, regarding better support for AWS provider version 4.
A temporary fix would be to limit the AWS provider in this module, to: version = ">= 3.34, < 5.0". That will unfortunately affect users that don't even use CodePipeline. Is there any better option to apply in the meantime?

I have created https://github.com/cloudposse/terraform-aws-codebuild/pull/123, in case we want to go with the upstream fix. It will require releasing a new version for cloudposse/codebuild/aws and cloudposse/ecs-codepipeline/aws, to then refresh this PR.

@adamantike I think going with the option of limiting to > 5.0. AWS Provider is legit in this circumstance. At least until we get your other PR upstream in and then we can circle back around to this module, if that is of interest.
Want to make that update within versions.tf and we'll see how the tests do?

/terratest

@adamantike sorry to do it, mind running make init && make readme + commit that?

/terratest

/terratest

@adamantike haha this is hitting every bump in the road, I'm sorry. This is why large child modules like this aren't the best... but they do have their place so here we are.
Anyway, try bumping the ALB module to the latest tag (1.7.0): https://github.com/cloudposse/terraform-aws-ecs-web-app/blob/main/examples/complete/main.tf#L29C1-L30

Yeah, it seems these examples haven't been tested by the CI in a while. But we will figure it out!
The PR is already using the latest version for the ALB module, so I will need to investigate if this is related to the S3 ACL defaults being changed by AWS last month.

After debugging the current issue, I have found that we need to avoid the example from trying to create ACLs for the ALB's access logs bucket.
There are two options here, from simpler to more complex:

Change the example to set access_logs_enabled = false when instantiating the ALB module.
Send s3_object_ownership = "BucketOwnerEnforced to the underlying cloudposse/s3-bucket/aws module, which disables the ACL creation (reference). This requires:
a. Exposing that variable in cloudposse/lb-s3-bucket/aws and release a new version. I have already created a PR for this: https://github.com/cloudposse/terraform-aws-lb-s3-bucket/pull/67
b. Expose the same variable, and bump the cloudposse/lb-s3-bucket/aws module, in cloudposse-aws-alb.
c. Bump cloudposse-aws-alb in this module's examples, and set s3_object_ownership = "BucketOwnerEnforced.

/terratest

@adamantike hi, can you update this pr so that all tests pass? otherwise this PR  will be closed due to staleness. thanks!

/terratest

@hans-d this is a quite important PR as its the only blocker for M1 compatibility of this module. I’m taking it over to see if I can get tests passing

/terratest

/terratest


Now width & height can be changed

This should really be merged :3

Thanks for the PR, I'll test this within the next 2-3 weeks and merge/update the npm.

I'm currently very busy and I'll have to delay my review a bit. Not sure for how long, probably about a week of delay.

I am putting this on hold indefinitely, I thought I would have the time to test it on my environment and update repo and npm but I don't, sorry.

No worries! Anyone who needs it can pick up the HsvPicker.svelte from my repo here.


Realtime Condition/Action Update

When i tried to update the excel file actions column, i must restart the engine to get the result updated.
this is because the rootMap won't be created each time, if it's already create so the engine will not create it again and update the data , so this instruction should be deleted to update the rootMap after each checking time
if (rootMap[rootMapId] == null || rootMap[rootMapId] === 'undefined')

Ah, yes. This is a known issue. We have solved it this way: we pass in a different rootMapId which will force it to create the tree.
(Also the id you pass as argument to execute_decision_table() api, is just a kind of name for the decision table; it can be any string).


Duplicated log category in Azure policy "Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace"

Describe the bug
Duplicated log category in Azure policy definition "Deploy Diagnostic Settings for VPN Gateway to Log Analytics workspace"
"category": "RouteDiagnosticLog" is duplicated.
Diagnostic setting for VPN gateway will not deployed by this DINE policy, The remediation task will fail.
Screenshots

Thanks for raising @jeromeecho, would you be interested in submitting a PR to remove this duplication in the file (https://github.com/Azure/Enterprise-Scale/blob/main/src/resources/Microsoft.Authorization/policyDefinitions/Deploy-Diagnostics-VNetGW.json)?
Guidance on contributing can be found here: https://aka.ms/alz/contributing
Let us know either way so we can ensure this is resolved 👍

Still active

duplicated entry removed - https://github.com/Azure/Enterprise-Scale/pull/1214


Remove rc1

Is your feature request related to a problem? Please provide an existing Issue # , or describe.
https://github.com/opensearch-project/performance-analyzer/issues/210
Describe the solution you are proposing
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

If or when the SNAPSHOT artifacts for 2.0 is ready, we need to update this:
https://github.com/opensearch-project/performance-analyzer-rca/blob/main/docker/Dockerfile#L32
For this PR, we need to update the following files as well
https://github.com/opensearch-project/performance-analyzer-rca/blob/189f66d7c28101c34fde112abe8e8668cacc70cf/src/main/resources/plugin-descriptor.properties#L30
https://github.com/opensearch-project/performance-analyzer-rca/blob/6ae2bf526d4df27f8232d001bf282136df48a681/INSTALL.md#L76

If or when the SNAPSHOT artifacts for 2.0 is ready, we need to update this: https://github.com/opensearch-project/performance-analyzer-rca/blob/main/docker/Dockerfile#L32
For this PR, we need to update the following files as well
https://github.com/opensearch-project/performance-analyzer-rca/blob/189f66d7c28101c34fde112abe8e8668cacc70cf/src/main/resources/plugin-descriptor.properties#L30
https://github.com/opensearch-project/performance-analyzer-rca/blob/6ae2bf526d4df27f8232d001bf282136df48a681/INSTALL.md#L76

Thanks for pointing it out. Added.

Codecov Report

Merging #183 (c18d871) into main (6ae2bf5) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main     #183      +/-   ##
============================================
- Coverage     71.37%   71.37%   -0.01%
+ Complexity     2938     2937       -1
============================================
  Files           376      376
  Lines         18769    18769
  Branches       1445     1445
============================================
- Hits          13397    13396       -1
- Misses         4781     4782       +1
  Partials        591      591

Impacted Files
Coverage Δ

...nsearch/performanceanalyzer/rca/RcaController.java
79.29% <0.00%> (-1.77%)
:arrow_down:

...performanceanalyzer/collectors/StatsCollector.java
93.33% <0.00%> (+0.74%)
:arrow_up:

.../org/opensearch/performanceanalyzer/core/Util.java
70.83% <0.00%> (+8.33%)
: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 6ae2bf5...c18d871. Read the comment docs.


#367 Initial re-work of CSV file support.

@rntz Please test.

did some basic testing, seemed to work, I should probably try testing on a clean install though

A clean install seems a bit overkill- simply deleting the settings folder while talon isn't running would probably suffice


Copy in all cases

What does this PR change?
Address last case for the github clone problem.

Tested to work.


closes #9 overload strategy execute

This adds an overload of IStrategy.Execute that accepts string parameters, rather than Hint and Line The overload has a default implementations so existing inheritors do not break. This wouldn't have been too big a deal anyway considering we only have one actual implementation, and then several types that extend the implementation.
This redoes the work that was originally in #15 That PR got nuked because I had fouled the history of main and decided to get the magic time machine out...

This re-merges code that should have been part of #15 but got rolled back when I had made a mess of the revision history, and went with the nuclear option of reset --hard and push --force to re-write history.


promote to prod

Description

#524

How should this be tested?
Please provide instructions so we can test. Please also list any relevant details for your test configuration.

latestFXPrice for every FX pool tokens

[ ] Avalanche
[ ] Polygon

dev -> master

[x] I have checked that all beta deployments have synced
[x] I have checked that the earliest block in the polygon pruned deployment is 49556211, Nov-05-2023 02:23:24

[x] The earliest block is more than 24 hours old

[x] I have checked that core metrics are the same in the beta and production deployments

Hmm if I check https://thegraph.com/hosted-service/subgraph/balancer-labs/balancer-avalanche-v2 and https://thegraph.com/hosted-service/subgraph/balancer-labs/balancer-polygon-v2, it says last updated date was still 22 days ago. It doesn't look like it has finished syncing yet, and I don't see the changes that #524 should have fixed.
Can we check if the pending version is still syncing at your end @mendesfabio?

@schystz those are not the links of beta subgraphs - I'm sorry I just realized the links for tests were wrong. Please verify below:

latestFXPrice for every FX pool tokens

[ ] Avalanche
[ ] Polygon

Hi @mendesfabio , this looks good to me aside from the VCHF on avalanche. I realized we supplied an incorrect aggregator address of 0xA418573AB5226711c8564Eeb449c3618ABFaf677 instead of 0x3d22b2c729a952402d898d1041f5e4828ff3695c. Can we pls merge this and I'll fix that on a separate PR (#527)?

sure! @markusbkoch can you approve and merge this one?


Resolution and save grid?

Hi!
This is not an issue but a question:
I'm working with very low-res spectra. I was checking the code, and I saw that I could request the PHOENIXGrid with an X resolution using the instrumental_resolution parameter:
grid = PHOENIXGrid(teff_range=(3500, 3600), logg_range=(4.5, 5.0), Z_range=(-0.5, 0.0), wl_lo=wl_lo, wl_hi=wl_hi, instrumental_resolution=100)
This, of course, takes longer to be completed. Can I save the grid so I can call it in another notebook? How do I do that?
Thanks!

This is a great question and definitely something that we're considering as a feature, the serialization of PHOENIXGrid objects.
While this behavior isn't in gollum natively yet, off the top of my head I can suggest pickling the PHOENIXGrid object using the pickle library or the %store magic in Jupyter notebooks (which also pickles). I cannot guarantee that this works, but at the current time this is the only way I can think of to do what you suggest.
Hopefully in the near future we can push out a PHOENIXGrid that supports the user's ability to save grid variants to disk.


[Remove] Joda from Serialization

In Legacy 7.0 joda time was removed in favor of java time to support nanoseconds properly. This PR removes joda from the serialization including ignoring the joda flag sent over the wire for DocValueFormat.
relates #9349
depends on #9355

Opened #9355 as a prereq to this PR.

@nknize LGMT but could we now drop api "joda-time:joda-time:${versions.joda}" from server deps?

LGMT but could we now drop api "joda-time:joda-time:${versions.joda}" from server deps?

@reta Not yet. DateObjectValuesSource and DateObject still need to be switched to java time. I've got a follow up PR to take care of that. I'm just trying to keep these PRs from getting super large unless they have to.


What is breakpoint graph?

@aganezov and still - what is it?

Breakpoint is a data structure often used in the area of comparative genomics and genome rearrangement analysis. You can learn more about the area, the data structure, and research that is being done using it in the following publications:

Transforming men into mice (polynomial algorithm for genomic distance problem) (pdf)
Transforming cabbage into turnip: polynomial algorithm for sorting signed permutations by reversals (pdf)
Genome Rearrangements in Mammalian Evolution: Lessons From Human and Mouse Genomes
Whole genome duplications, multi-break rearrangements, and genome halving problem (pdf)
Scaffold assembly based on genome rearrangement analysis (pdf)
Multi-break rearrangements and chromosomal evolution
etc

You can also used google scholar to see more broadly where this data structure is utilized.


chore(main): release 1.14.0

:robot: I have created a release beep boop
1.14.0 (2023-09-18)
Features

scraper: update scheduler interval (9ea6814)

Bug Fixes

scraper: slagthuset (577474a)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/devoteam-se/devolunch/releases/tag/v1.14.0 :sunflower:


PAM: Proper tests with libpamtest

https://cwrap.org/pam_wrapper.html
Relates to #17
How
Mimic regular services and their PAM stacks by replacing pam_unix with pam_matrix and running tests with libpamtest. This needs to be done in a temporary container, because we modify files such as /etc/pam.d/common-auth and affect whole authentication of the system.
Test cases
Services (at least the following):

login
sshd
su
lightdm
cron

Service
Modifications
Group
Account
Password
Expected result

login
With pam_unix & pam_securetty disabled
auth
root
✗
Denied by pam_unix

login
pam_unix replaced with pam_matrix
auth
root
✓
Denied by pam_securetty

login
With pam_matrix & pam_securetty disabled
auth
root
✓
Allowed

First tests:


Also store layers before Final Layer

13/10 needs Implementation

From my limited testing, only input/output layers are accessible. Closing for the time being


MultipleChoiceField

When render the form MultipleChoiceField dont select initial values, the MultipleChoiceField has optgroups

Yep,  this is MaterializeCSS issue
https://github.com/Dogfalo/materialize/issues/2913
Fixed in Django-material-pro build.


Error after upgrading HA

I've updated HA to the latest version, 2021.6.3, now, mqtt can't load due to the following message:
2021-07-24 11:48:32 ERROR (MainThread) [homeassistant.components.homeassistant] The system cannot restart because the configuration is not valid: Invalid config for [cover.mqtt]: 'position_template' must be set together with 'position_topic'.. Got OrderedDict([('platform', 'mqtt'), ('name', 'garage'), ('command_topic', 'garage/cover/set'), ('state_topic', 'garage/cover/state'), ('qos', 0), ('retain', False), ('payload_open', 'OPEN'), ('payload_close', 'CLOSE'), ('payload_stop', 'STOP'), ('position_open', 100), ('position_closed', 0), ('position_template', '{% if value == "open" %}100{% elif value == "closed" %}0{% else %}10{% endif %}')]). (See ?, line ?).
Any tips?
TIA

I've fixed adding the following:
position_topic: "garage/cover/position"

I did some changes on exactly this topic back in april.
My system is running without issues. Have you checked the lastest version of the configuration.yaml?

Hi @stephan192, yes, I did, and I have had to add position_topic or it didn't work.

You're talking about the cover (lines 42-55 in my example), right?
In my example i have both position_topic and position_template set.

Yes, you're right, probably I took the example from the HA forum. I see in your example both are there and it's working fine.
Closing this issue.


Passing dereferenced data from PageServerData not updating content.

Describe the bug
I have a left side navigation bar with two links for 'Active' and 'Verified' users that has the href set as below.
Active --> /user?s=active
Verified --> /user?s=verified
The page get served from corresponding +page.server.ts (where user fetched from DB) and +page.svelte.
But I'm seeing a strange problem. The page content (user.id for eg) shows first time when I clicked on either of Active or Verified. But the content remains same if I click the other one, it doesn't get refreshed with correct content.
Reproduction
Below code works:
<script lang="ts">
	import type { PageServerData } from './$types';
	export let data: PageServerData; //data from DB changes based on filter 'active' or 'verified'
</script>

{#each data.users as user, i}
	{user.uid}
{/each}

Below code throws that strange problem. The only difference is in the #each loop I used users (which I assigned from data.users) instead of data.users
<script lang="ts">
	import type { PageServerData } from './$types';
	export let data: PageServerData;
        const users = data.users;
</script>

{#each users as user, i}
	{user.uid}
{/each}

Logs
No response
System Info
System:
    OS: Linux 5.19 Ubuntu 22.04.2 LTS 22.04.2 LTS (Jammy Jellyfish)
    CPU: (8) x64 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
    Memory: 2.68 GB / 15.41 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node
    npm: 9.6.7 - ~/.nvm/versions/node/v18.12.1/bin/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 114.0.5735.106
    Firefox: 113.0.2
  npmPackages:
    @sveltejs/adapter-node: ^1.2.4 => 1.2.4
    @sveltejs/kit: ^1.20.2 => 1.20.2
    svelte: ^3.59.1 => 3.59.1
    vite: ^4.3.9 => 4.3.9

Severity
serious, but I can work around it
Additional Information
No response

I believe it's because you are doing const users = ... which isn't reactive, but data.users is in this case

Yes, if you want to use a separate variable you need to make the users assignment reactive - see the docs.
$: users = data.users;


Flaky test: DisposingConnectionsClosesBothSidesOfThePipe

https://ci3.dot.net/job/aspnet_SignalR/job/release_2.2/job/windows-Configuration_Release_prtest/466/consoleFull

Down with Jenkins.


Can't use with_fallbacks with AzureChatOpenAI: Can't instantiate abstract class BaseLanguageModel with abstract methods agenerate_prompt...

System Info
I see the following when using AzureChatOpenAI with with_fallbacks. Removing with_fallbacks doesn't cause this issue.
Can't instantiate abstract class BaseLanguageModel with abstract methods agenerate_prompt, apredict, apredict_messages, generate_prompt, invoke, predict, predict_messages (type=type_error)
Pydantic v1
Lanchain 0.0.295
Who can help?
@hwchase17
@agola11
@ey
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
This doesn't work:
    primary_chat_model = AzureChatOpenAI()
    chat_model = primary_chat_model.with_fallbacks([fallback_chat_model])
    text_splitter = RecursiveCharacterTextSplitter(
        chunk_size=chunk_size,
        chunk_overlap=chunk_overlap,
        length_function=primary_chat_model.get_num_tokens,
    )

Expected behavior
Should work as this, but with fallback support
    primary_chat_model = AzureChatOpenAI()
    chat_model = primary_chat_model                        #.with_fallbacks([fallback_chat_model])
    text_splitter = RecursiveCharacterTextSplitter(
        chunk_size=chunk_size,
        chunk_overlap=chunk_overlap,
        length_function=primary_chat_model.get_num_tokens,
    )

Trace:
File "~/Dev/exm/modal-reports/reports.py", line 209, in analyze_document_summarize_llm_chain
    chain = load_summarize_chain(
  File "~/opt/miniconda3/lib/python3.9/site-packages/langchain/chains/summarize/__init__.py", line 156, in load_summarize_chain
    return loader_mapping[chain_type](llm, verbose=verbose, **kwargs)
  File "~/opt/miniconda3/lib/python3.9/site-packages/langchain/chains/summarize/__init__.py", line 56, in _load_map_reduce_chain
    map_chain = LLMChain(
  File "~/opt/miniconda3/lib/python3.9/site-packages/langchain/load/serializable.py", line 75, in __init__
    super().__init__(**kwargs)
  File "~/opt/miniconda3/lib/python3.9/site-packages/pydantic/v1/main.py", line 341, in __init__
    raise validation_error
pydantic.v1.error_wrappers.ValidationError: 1 validation error for LLMChain
llm
  Can't instantiate abstract class BaseLanguageModel with abstract methods agenerate_prompt, apredict, apredict_messages, generate_prompt, invoke, predict, predict_messages (type=type_error)


Unable to execute queueable job multiple times due to FinalizerContext limitation

I have a scenario where I need to process many records using queueable jobs with a limit on the queueable chunk size.
For example, if there are 800 account records and the queueable chunk size limit is set to 100, the processing should span across 8 queueable jobs. However, the current implementation is stopped after the 2nd job, which is not the desired behavior.

Upon investigating this issue, I noticed that the execute(System.FinalizerContext fc) method runs only once, causing it to fail to process the subsequent batches of records. After attaching the finalizer, this.hasFinalizerBeenAttached is marked as true, preventing the attachment of the finalizer for the next jobs.
To overcome this limitation, I set this.hasFinalizerBeenAttached to false before enqueuing the job. This ensures that the finalizer context is attached before each execution of the queueable job and allows for the next requeue if needed.
Please share your thoughts on whether this solution is effective or not.

that looks good to me - pushed up the change for that!


feat(python): add get_flag method

In this PR, I have added support for the get_flag API. I have also fixed several issues that violated PEP8 and added new rules for Ruff.
We use this API to get a specific flag, because it is expensive to request all flags when there are many of them. In our case, we sometimes need to get a single specific flag and don't want to get a list and sift through them all.
If there are actually no plans to implement this feature in the SDK, please let me know so I will remove these changes from the PR and keep the code style edits. If you do not think this is necessary, please let me know, and I will close this PR.

I'm very sorry, but it has just occurred to me that this PR have broken backward compatibility with version 1.2.0 due to renaming params. I replaced camelCase with snake_case for parameters in Flag, ListParameters and PaginatedResponse models. The use of camelCase for Python is not recommended (pep8), so I have replaced it throughout the code. I needed to add BREAKING_CHANGES.md, but I had forgotten about it.
Also I have added some new rules for ruff so that in the future, the linter will not pass with incorrect parameter names.
I'm really sorry for any trouble this might have caused.

All good, no problem @KozyarValeriy !


How does the direct_imports facility work?

Summary
I see in 0.2.45 there is a direct_imports Map that is used to populate the WebAssembly imports object when the Module is instantiated (I noticed it was added for the "web" deployment target in https://github.com/rustwasm/wasm-bindgen/pull/1503).
I cannot find any example of how to use this feature, but I need to be able to add a custom import (I currently compile using the "web" deployment target and then manually edit the init function after every build to add an extra module to the imports object). How can I add a custom import using this facility?
Additional Details
What I'm actually trying to do is to use wasm-bindgen to build a javascript interface for a WASI C library. I have been successful at doing this by linking the C library into my wasm-bindgen project as an FFI, but the resulting *_bg.wasm target ends up with a dependency on symbols in the wasi_unstable namespace. In the browser, I provide these by manually adding 'wasi_unstable': WASIPolyfill to the imports object created in the init function, but I would like to be able to configure wasm-bindgen so that it does this for me.
I also have not been able to figure out how to get the "bundler" deployment to work with this at all, but I would be hopeful that a proper solution in which I tell wasm-bindgen what extra imports are needed might make the (webpack-based) "bundler" deployment work as well.
Any advice or pointers to docs I may have missed would be appreciated!

Thanks for the question! This isn't actually a user-facing feature it's something that's internally tracked and detected. It's since been replaced by a different mechanism of tracking this, and it's basically just an internal optimization for binding imports to the wasm module.
For WASI I'd probably recommend not using the wasm-bindgen toolchain for now. It's probably best to stick with the raw native wasi toolchain (e.g. the wasm32-wasi target). While it's possible to work with wasm-bindgen it'll probably require a lot of manual intervention and it definitely won't be an out-of-the-box experience like wasm-bindgen largely is today without wasi.

The reason I want to use wasm-bindgen for the client bindings is because I want to provide javascript with an interface that returns promises (backed by wasm-bindgen-futures) and I didn't think there was an equivalent functionality using the wasm32-wasi arch target.
After patching the generate wasm-bindgen js bindings to import the WASIPolyfill as wasi_unstable, everything does seem to work so far. To be clear, I am building using the wasm32-unknown-unknown arch target for these bindings, it's just that I link in an FFI library that has WASI modules compiled in.
Would there be scope to add a generic (not WASI-specific) mechanism for wasm-bindgen to provide additional imports to the WASM instantiation? I'm happy to try to help implement it, but I'm not sure where it best fits (and also I noticed that this part of the code seems to be in flux because of changes related to WebIDL support?).

I think that'd definitely be in scope yeah! We don't have a great story for that today but I think it'd be cool to be able to have a wasm file which imports from modules that wasm-bindgen doesn't know about but it's still configured in the generated bindings one way or another.


Last delivery unsuccessful. Invalid server response

General information

SDK/Library version: 3.3.0
Environment: Sandbox
Language, language version, and OS: Java 1.8.0

Issue description
Click on “Check URL”
Last delivery unsuccessful. Invalid server response
Use https protocol

👋 @Mycheers please contact Support with more information on what you're trying to integrate when you get this response, they can assist in troubleshooting.

@Mycheers Did you fixed it?


Fix initial project setup

cleared out unused code from bootstrap.sh
added npm_install to Makefile in line with other projects
added npm_install to run_all directive in Makefile
made run_app use the virtualenv python
used DM_ENVIRONMENT to infer a GULP_ENVIRONMENT in order to build development assets on development environments and production assets in all other environments

👍 Looks good when the tests are green.


updated copyright info in header

Description of proposed changes
updates the copyright info in the header to match the license file
Checklist
_Put an x in the boxes that apply. _

[x] Lint and unit tests pass locally with my changes
[x] I have added tests that prove my changes work (if applicable)
[x] I have added or updated necessary documentation (if appropriate)

Additional comments
No

hooray for grep


Add vim-signify support and add different colours for types of spelling highlights

This adds support for vim-signify by defining dedicated highlight groups for the signify sign columns which normally just link to DiffAdd/DiffChange/DiffDelete. The groups keep the same foreground colours but remove the diff background to make it look more minimal.

It also changes the spelling highlight groups from marking everything in orange to use different colours for mistakes, capitalization errors, local spellings, and rare words.

Amazing theme, by the way. :)

Hi, thanks for the pull request! Thanks for those changes, they all seem like improvements to me. One request, though: could you please change the colour of local spelling mistakes from green (which to me signifies ‘success’) to something else? Maybe pink would work well?

Agreed, that does make sense (plus green stands out a lot more than pink). I changed it to the standard pink colour #a18daf and 139 for cterm respectively.


Database fails to start in time for loaddata during docker build

When running server/build.sh the database fails to start in time to load the data from Django, causing the build to fail.
Step 20/23 : RUN sudo service postgresql start &&     sleep 5 &&     python manage.py loaddata fixtures/test_fixture.yaml
 ---> Running in b7c087cf2fba
 * Starting PostgreSQL 9.3 database server
   ...done.
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/loaddata.py", line 59, in handle
    with transaction.atomic(using=self.using):
  File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py", line 150, in __enter__
    if not connection.get_autocommit():
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 286, in get_autocommit
    self.ensure_connection()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 130, in ensure_connection
    self.connect()
  File "/usr/local/lib/python2.7/dist-packages/django/db/utils.py", line 98, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 130, in ensure_connection
    self.connect()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/base/base.py", line 119, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 176, in get_new_connection
    connection = Database.connect(**conn_params)
  File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
    connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: FATAL:  the database system is starting up
FATAL:  the database system is starting up

The command '/bin/sh -c sudo service postgresql start &&     sleep 5 &&     python manage.py loaddata fixtures/test_fixture.yaml' returned a non-zero code: 1

The new health check still doesn't work. Just because postgresqul accepts a socket connection doesn't mean its ready. I created #279 to fix this.


Logger in BEF is not working after initial Bazel builds start

This started as a logback issue, but now it is something different. I think what is happening is once we start invoking Bazel commands, and hook stdout and stderr for that, our logging to outer Eclipse no longer works.
====
We revamped the logging for the feature. But on my machine, file logging is not working correctly. I tried a bunch of different things, but in the end I found a clue that suggests a load ordering problem.
I have added this check to our Eclipse logging facade:
bazel-eclipse/plugin-core/src/main/java/com/salesforce/bazel/eclipse/EclipseLoggerFacade.java#L153
And it indicates the logback is indeed in the classpath, but for some reason my log factory was initialized too early or in a different plugin such that logback was not found:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
com.salesforce.bazel.eclipse.core: EclipseLoggerFacade could not configure file (INFO, DEBUG) logging. LoggerFactory is of type [class org.slf4j.helpers.NOPLoggerFactory] but needed [ch.qos.logback.classic.LoggerContext] to configure the file log. The class ch.qos.logback.classic.LoggerContext is NOW available in the classpath, which means there was a startup loading issue. The class wasn't there when logging was initialized. See bazel-eclipse/docs/dev/logging.md for more details.

I suspect these issues happen when M2Eclipse is also installed. I see this at startup in my Eclipse that is affected when BEF is not installed:
org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized.  Will retry after the state location is initialized.
org.eclipse.m2e.logback.configuration: Logback config file: /Users/plaird/eclipse-workspace-2018-09b/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.<IP_ADDRESS>80912-1601.xml
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://517.fwk1850777594:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://517.fwk1850777594:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
org.eclipse.m2e.logback.configuration: Initializing logback
I am ripping out all external logging libs from BEF for the short term until we have time to investigate.

This was resolved by doing what we can to log to the Eclipse platform logger, but we now have a /tmp/bef.log (on Unix) which is a log file fully under our control. We send all log lines there in addition to the platform logger.


Deprecate "lock_table" attribute from use in the remote S3 backend configuration

The "lock_table" attribute of the remote S3 backend configuration has been deprecated in Terraform before release 0.13 where it has been retired. The current name of the attribute is "dynamodb_table".
Terragrunt currently supports both of the attributes, but should the "lock_table" one be used, then it would be passed as-is either when generating a remote S3 backend block when templating Terraform or as a command-line argument. Using older attribute would not be a problem with Terraform before release 0.13, where the old attribute is still present albeit deprecated, but for anyone who uses the latest release, this would now become a problem as Terraform would terminate with an error.
This change deprecates the use of the "lock_table" in Terragrunt for remote S3 backend configuration and adds facilities to notify the user about the attribute being deprecated. Additionally, the use of "lock_table" will be normalised so that the "dynamodb_table" will be used instead in the resulting remote S3 backend block or as a command-line argument.

Hi @yorinasub17,
I was able to successfully test this with latest releases of Terraform 0.12 and 0.13, and in both cases it works fine when Terragrunt is being used with existing states or after an initial terragrunt init has been run (provided that the terragrunt.hcl had a proper remote S3 bucket configuration in place). In other words, for existing users and new users there will be no issue as long as the same release of Terraform is being used.
I also tested this change using either "lock_table" or "dynamodb_table" interchangeably with an existing state, and it does work as intended.
Where it does fall short is when user upgrades their Terraform from release 0.12 to 0.13 (where the "lock_table" has been already retired and will not be included in the state as a attribute with NULL value), as then running either vanilla Terraform or Terragrunt would result in Terraform complaining about an unsupported (old?) property being present in the state file, as per:

This would be true following the upgrade regardless whether Terragrunt was used or not. This is quite unfortunate and not the best user experience - which is why I am wondering, whether there would be a way to facilitate this "migration" on behalf of the user? Terragrunt can read and parse the Terraform state file without issues (see terraform_state_file.go), but it leaves - and rightfully so, as this can become a maintenance burden very quickly - state management wholly to Terraform itself.
What do you think could be done to handle this? Should we try to manage this in the existing state from Terragrunt?

I looked into few options like e.g., prompting the user about old attribute being present while a new release of Terraform has been detected (a version constraint check of >= 0.13.0), detecting that existing backend has old property present, etc., but perhaps keeping it simple stupid and allowing it to fail so that the user would run terraform init -reconfigure at their convenience - especially since it would upgrade their local and remote state making it incompatible with release 0.12 (as there are new fields added that older version of Terraform does not understand).
@yorinasub17, let me know if you think this is acceptable, or if you think we rather ought to do something better here. :^)

Nevermind I was able to commit the suggestions myself so I can go ahead and merge this in. Thanks again for your contribution and very detailed report!

Hi @yorinasub17,

Code LGTM! Apologies for the delay in reviewing this as I had been neck deep in other areas.
[...]

No problem! I can imagine you are very busy maintaining all the tools, etc. :) Thank you so much!
[...]

let me know if you think this is acceptable

I think what you have is reasonable. I agree that automatically resolving this would be a maintenance burden, especially if it was a one time thing for one version.
Deferring to the user to self resolve seems reasonable to do here.

Hopefully users upgrading to Terraform 0.13 or newer from their 0.12 state will have to do it only once.
Thank you again for help! You rock!


#9 Updating dependencies and devops things.

Codecov Report

Merging #10 (13489e7) into main (711f4f1) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines          450       450
  Branches        72        72
=========================================
  Hits           450       450

Flag
Coverage Δ

metadata
100.00% <100.00%> (ø)

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

Impacted Files
Coverage Δ

metadata/src/provider.ts
100.00% <100.00%> (ø)


How to use with docker-compose?

@clems4ever I want to use this awesome tools with docker-compose and mix this with parse platform.
Now I'm using https://github.com/bitnami/bitnami-docker-parse-dashboard  for up and running mongodb + parse-platform + parse-dashboard
I also search a lot for a 2FA solution for parse here and here.
Can you guide me how to add Authelia and openLDAP as a new part to below docker-compose:
version: '2'
services:
  mongodb:
    image: 'bitnami/mongodb:latest'
    ports:
      - '8080:27017'
    volumes:
      - './mongodb_data:/bitnami'
  parse:
    image: 'bitnami/parse:latest'
    ports:
      - '1337:1337'
    volumes:
      - './parse_data:/bitnami'
    depends_on:
      - mongodb
  parse-dashboard:
    image: 'bitnami/parse-dashboard:latest'
    labels:
      kompose.service.type: nodeport
    ports:
      - '80:4040'
    volumes:
      - './parse_dashboard_data:/bitnami'
    depends_on:
      - parse
volumes:
  mongodb_data:
    driver: local
  parse_data:
    driver: local
  parse_dashboard_data:
    driver: local

Hello @mnlbox , I would recommend checking how Authelia is deployed for integration testing. You can have a look at ./scripts/example-commit/dc-example.sh.

@clems4ever I see /example/compose/ldap and it seems we can merge this with my docker-compose (first post of this issue) but I don't undrestand your note about ./scripts/example-commit/dc-example.sh :thinking:
Can you explain more about this?

@mnlbox , I meant the script shows you which docker-compose is used to have a complete working environment. You can have a look at the different docker-compose files and choose the ones relevant for your case. In a minimal configuration you would not need all of them but this is a good start.
Please note I'm also refactoring Authelia in the open PR to make it use an environment made of less components in a minimal setup (LDAP, Authelia a frontend proxy and a backend that could be merged with the frontend). I will even remove LDAP at some point.
Regarding parse, I don't really know the techno but what you need in your case is to indeed use the LDAP docker-compose and check the configuration of nginx/portal (which I should rename frontend btw). Normally, I think I made it so that mongo and redis are optional components with the latest version of Authelia. In the other case you can simply check and integrate the docker-compose of redis as well.

@mnlbox , did it solve your issue? Please reopen the ticket if it did not and you need more help.

@clems4ever no I need working example with docker-compose. For users that new to docker it's better to have an working example.


Change Menu::new() function name

Hello,
use your repo for many projects. For my PHP obfuscator and linter it would be better if the static functions of the Menu class were not called "new()". Can you please rename them for future versions?
Problem in acacha/admin-lte-template-laravel/config/menu.php

The menu class used in  acacha/admin-lte-template-laravel/config/menu.php is a class from patie\Menu\Laravel\Menu and so we can't change the class methode name.

Okay, then I'll have to ask Sparti.


Let ElasticSearchDataContext read changes

This adds the ability for ElasticSearchDataContext to read  tables on
updates, to assure that an outside change is registered. To
keep the ability to specify own mappings, any static mappings will
be left alone.
Fixes METAMODEL-197

+1 from me :)


Add support for Imperator scripts (including evaluation internally)

Is your feature request related to a problem? Please describe.
Cardano developers may have a hard time debugging their script, as they need to understand the whole Haskell/Pluto stack.
Describe the solution you'd like
Imperator/pyscc provides a compiler from a subset of Python into UPLC, in other words a programming language for Smart Contracts on Cardano, that IS python.
When adding an Imperator script as a script input to a transaction in pycardano, this means that we could offer to evaluate the script during transaction building and signing. This includes being able to step through the Script as it is being evaluated with a normal python debugger.
What we need for this?

A flag to signify an added script input is actually an imperator script (and the corresponding source file)
A hook inside the transaction builder that calls the imperator script with the correct parameters (i.e. ScriptContext etc)
Optimally: Imperator/pycardano using the same definition for PlutusData

Describe alternatives you've considered
None
Additional context
I am developing Imperator/pyscc and can provide the parts of support that are needed on that end. Currently, I am looking into integrating the pycardano definitions of PlutusData and looking for a place where I could add the evaluation hook.

Thank you @nielstron, what an excellent idea! This will definitely be the killer feature. 🚀
Regarding the points you made, here are my thoughts:

A flag to signify an added script input is actually an imperator script (and the corresponding source file)
The plutus script is currently stored and passed around as bytes. If I understand correctly, the purpose of passing imperator source file is to make debugging easier?
A hook inside the transaction builder that calls the imperator script with the correct parameters (i.e. ScriptContext etc)
We can also consider adding the hook in chain context, which already exposes an evaluation interface, evaluate_tx. Currently, the underlying implementation calls script evaluation through Ogmios or Blockfrost. We can add a new parameter, e.g. imperator=True, to this function or the constructor of chain context, which will enforce the evaluation to run through a local imperator. With this approach, it will also be easy to construct the script context inside evaluate _tx, because chain context is capable of providing full information for any utxo and protocol parameters.
Optimally: Imperator/pycardano using the same definition for PlutusData
Agree 100%.

Thank you again for integrating Imperator with PyCardano! I am more than happy to help with design or implementation. Also, amazing works on Imperator. It is definitely a treasure to Cardano Developer ecosystem.

eopsin is one of the Imperator languages that is now ready to be integrated. It naturally uses PlutusData definitions from pycardano to define internal datatypes.
https://github.com/ImperatorLang/eopsin


PLAT-141628: RadioItem - icons in circle are bigger

Enact-DCO-1.0-Signed-off-by: Adrian Cocoara<EMAIL_ADDRESS>Checklist

[x] I have read and understand the contribution guide
[x] A CHANGELOG entry is included
[ ] At least one test case is included for this feature or bug fix
[x] Documentation was added or is not needed
[x] Documentation was verified or is not changed
[x] UI test was passed or is not needed
[x] Screenshot test was verified or is not needed
[ ] This is an API breaking change

Issue Resolved / Feature Added
Some icons (eg. earphone, uninstall etc.), are bigger than the container for radio button
Resolution
All icons except circle (which is the default one), have size="smallest"
Additional Considerations
Links
PLAT-141628
Comments

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.2 out of 4 committers have signed the CLA.:white_check_mark: daniel-stoian-lgp:white_check_mark: adrian-cocoara-lgp:x: MikyungKim:x: stanca-pop-lgpYou have signed the CLA already but the status is still pending? Let us recheck it.


allow achd:hasUrl for acdh:Place

currently all ARCHE-Classes (Person, Collection, Resource, ...) except Place are allowed to have the property acdh:hasUrl
IMHO this should be changed

The idea behind achd:hasUrl is to be able to include a link to a webpage for persons, projects or another (external) webpage representing a collection (e.g. a collections project page). We do have plenty of use cases for that. URLs attached via acdh:hasUrl might one day become invalid, which is why we are aiming to register the ones we get with the internet archive.
In ARCHE we use instances of Place for geolocating a collection/resource etc. The information behind a place (coordinates and names) is usually stored in some authority file which we link via acdh:hasIdentifier
So I do think the status quo is fine.
Please elaborate why acdh:hasUrl should be allowed for Place as well.

in our static digital-editions set up places (as persons, institutions or resources like the HTML representation of letters, diary entries ...) do have their own website with information about the entity/resource as well as pointers to their related objects. due to the static set up, I'd consider those URLs very stable; so I'd like to use hasUrl to point from ARCHE-Resources their web-app detail views.
the added value for ARCHE-Users would be;

they can get from ARCHE to the web-page the ARCHE resource is derived from
users could spot very easily in which projects/web-resources a given entity, a given place is mentioned as well like e.g. PMB does this very nicely (https://pmb.acdh.oeaw.ac.at/apis/entities/entity/place/685/detail)

so the question would be; should I point from an acdh:Person to e.g. https://schnitzler-briefe.acdh.oeaw.ac.at/pmb2132.html and if so, than why not also from an acdh:Place to e.g. https://schnitzler-briefe.acdh.oeaw.ac.at/pmb685.html

@bellerophons-pegasus it's almost a month since Peter's reply. Could you please state your opinion?

Apologies.
Hmmm, in the given example acdh:hasUrl is not used for the person in ARCHE (checked production and curation).
As far as I recall we do allow using PMB IDs as an authority source for Actors, so I do think that PMB is fine to be used for places as well.
Would that solve what you are trying to achieve?

No, because I'd like to point via hasUrl to a website an not so some ID

Okay, thanks.
I gave it some thought and I can't see any harm done with allowing acdh:hasUrl for acdh:Place.
@sstuhec and @uczeitschner do you have any objections?
If not, please proceed. I think the description of acdh:hasUrl will also have to be updated.


Schema should have intellisense for examples

The schema doesn't have autocomplete/intellisense when working with an Examples node in the json file.
Sample:
  "Examples": [
                {
                    "Command": "Get-VssProvider",
                    "Description": "Get a list of VSS Providers",
                    "OriginalCommand": "vssadmin list providers"
                }
            ]

Taken from @sdwheeler's blog post at https://devblogs.microsoft.com/powershell-community/a-closer-look-at-the-crescendo-configuration/

On closer inspection, this seems to be a casing issue. If I type C, Command populates, however c does bupkiss.

VScode Version info:
Version: 1.66.2
Commit: dfd34e8260c270da74b5c2d86d61aee4b6d56977
Date: 2022-04-11T07:49:20.994Z (3 wks ago)
Electron: 17.2.0
Chromium: 98.0.4758.109
Node.js: 16.13.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin x64 21.1.0

False alarm. It was my VSCode being.....mean to me. All is right. Closing this out.


JSON Schema - reference another schema using the $ref keyword

Type of issue

Feature request

The issue refers to the:

nitro app (@nitro/app)
example nitro projects

Description
Enable referencing of other json schemas with the $ref keyword
Infos:
https://json-schema.org/understanding-json-schema/structuring.html

By updating a project, you should update all json schemas to "$schema": "http://json-schema.org/draft-07/schema#",
If you want to link other schemas you have to add an "$id"s to your reused schema
eg. "$id": "/atom/button",
and use with "$ref": "/atom/button"


libpages/libfs: avoid panic in logging

Somehow Lookup returns an empty node and nil error here, even though the thing exists. It only happens when the log obfuscator is enabled. I couldn't reproduce it using simple FS, so I added a libpages test to cover it. It has to run with KEYBASE_TEST_OBFUSCATE_LOGS set though.
This fixes the panic, but it'd be nice to have a real fix. @strib any ideas?

Haven't looked at the code yet, but usually that happens when you lookup a symlink, which doesn't have a Node associated with it.  Is that possible in your case?

Haven't looked at the code yet, but usually that happens when you lookup a symlink, which doesn't have a Node associated with it. Is that possible in your case?

Yes, that's exactly the case. Sorry I forgot to mention in the description. But why is simplefs fine in this case?

It's hard to know without knowing what simplefs calls you're talking about, vs. what libfs you're talking about that libpages makes.  Anything that looks up components in a path one-by-one probably follows the symlinks correctly, but something that passes in a whole path to a libfs call might be in trouble?  Just a guess without looking at the code yet.

It's hard to know without knowing what simplefs calls you're talking about, vs. what libfs you're talking about that libpages makes. Anything that looks up components in a path one-by-one probably follows the symlinks correctly, but something that passes in a whole path to a libfs call might be in trouble? Just a guess without looking at the code yet.

Ah, that makes sense. I think SimpleFS uses a FS rooted at the final elem's parent dir while kbp uses the full path rooted at the site root (because the way http.FileSystem works.) I guess I'm OK with the existing "fix" in this PR then. Thanks for the tips!
While looking at this, I realized we are using libfs.NewFS instead of k.newFS in a few places. So I pushed another commit to fix those too.


Fix printing Strings when allTextMode is ON for MapR-DB JSON tables.

LGTM  (also tested this change -- worked as expected).

DRILL-4954

+1


Add log and warning about inserting empty values in trie.

as a first step into fixing https://github.com/paritytech/substrate/issues/5986
I updated doc and log so that it is clear that inserting an empty value is not supported. Test should fails with the debug_assert and in-production chain must log error when set an empty value in trie or child trie.

Why not also add the proposed change for decl_storage directly? I think if we have this, we will have covered 98% of all failures.

You mean the const_assert(size_of($value_type) != 0) kind ?
Because some type have no size but encode to some values for instance the following type is of size 0:
#[derive(Encode)]
enum StorageVersion {
#[codec(index = "3")]
    _3
}

though maybe I can try to make a const_assert that value_type must not be ()

I thought more about the following:
decl_storage! {
      Test: Vec<u8>,
      Test2: Option<u32>,
      Test3: Option<()>,
}

Will generate:
#[test]
fn test_Test_encode_is_not_empty() {
     assert!(!Test::get().encode().is_empty());
}

The Option<*> types are ignored for the tests, because we can not expect that the type inside the Option has a default value. But, we could generate a compile error for the Option<()> case directly.
I think that is the best we can do.

done: tests generation for storage without option. And compile error for () and Option<()> value types.

ok not sure this PR is wanted anymore, I can still finish it until we fix the support of empty values.

Yeah, not sure either.

Given the conversation in Substrate, I don't think that this is still needed.


getVertices(String,String[],Object[]) returns results from other classes

This started as a question in stackoverflow, but it looks like there's a bug...
Basic issue:

Create ClassA (extends V) -> Create properties String A, String B, String C -> Create unique composite index on (A,B,C)

Create ClassB (extends V) -> Create property String J -> Create index on J (not sure if this property/index matters)

Add a record to ClassA ("foo","bar","ed)

orientGraph.getVertices("ClassB", new String[] {"A","B","C"}, new String[] {"foo","bar","ed"})

Expected result is no records returned since we did the search on ClassB. The actual outcome is that we retrieve the record created in step 3 which is from ClassA.
Please see this post (especially the comments) for more information: http://stackoverflow.com/questions/29474506/orientdb-getvertices-not-working-with-java-generated-class-index

I believe this happens with getVertices(String label, String key, Object value) too.

I"m using OrientDB 2.1
I found the same error while trying to do
graph.getVertices("User.display_name", "test100")

to get only vertices of type User that have display_name property set to test100
I also have Registration objects that have property display_name set to test100
I got a vertex of type Registration, instead of User,
I have currently fixed this by using
graph.getVertices('User', new String[]{"display_name"}, new Object[]{"test100"})

Is there a bug or am I doing something wrong?


opengraph YouTube previews stopped working

running MMR in the official docker container, latest tag with hash 8ee564fad1c3. this container runs for two domains behind Traefik reverse proxy.
YouTube link previews were previously working, and have mysteriously stopped (preview generates, but no image is displayed). switching to oEmbed previews makes them work again, but breaks other previews.
here are two log samples from MMR during link processing. these are randomly chosen youtube videos.

mmr-youtube-preview-log1.log
mmr-youtube-preview-log2.log

those videos definitely include opengraph still images for thumbnailing, as can be seen in the meta headers associated with the video links, listed respectively below:

<meta property="og:image" content="https://i.ytimg.com/vi/iC1rvXPt_rE/maxresdefault.jpg">
<meta property="og:image" content="https://i.ytimg.com/vi/Dx5qFachd3A/maxresdefault_live.jpg">

a separate but related issue, the request appears to fail entirely when using the shortened youtu.be links generated by the youtube "share" feature of the site. log included below.

mmr-youtu.be-preview-log1.log

meanwhile, both youtube.com and youtu.be links work properly with oEmbed enabled:

mmr-youtube-oembed-preview-log1.log
mmr-youtube-oembed-preview-log2.log

let me know if there's anything else i can supply to help debug this issue.

This looks to be fixed in my testing of :latest today.


SW-2583 / SW-2574 Show planting site data for sites that don't have zones/plots

code was only processing zones/plots driven info
using a separate query now for totals and by species
also show map on mobile for planting sites with plots even if there are no plants
also show the plot selector for empty state in species chart

@constanzauanini i also added fix for SW-2574

also show map on mobile for planting sites with plots even if there are no plants
also show the plot selector for empty state in species chart

Looks good! Tested mobile on vercel

Thank you 🙏


opt range inference convert isnull to EmptyValue

What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
for sql
a > 10 and a < 20 or a > 30 and a < 40 or  a > 60 and a < 50

AddMinMax should opt it as:
(a < 20 or a > 30 or a is null and null) and a > 10 and a < 40

But it fail, because the SimplifyRange will opt it as
a > 10 and a < 20 or a > 30 and a < 40 or  a is null and null

since the 3rd is a is null and null,  it couldn't get a's range and suppose a's range is [-00, +00], then the whole expression,  it will get a's range is [-00, +00], to fix this problem,  RangeInference need to convert a is null and null to EmptyValue instead of UnknownValue.
Release note
None
Check List (For Author)

Test

[ ] Regression test
[x] Unit Test
[ ] Manual test (add detailed scripts or steps below)
[ ] No need to test or manual test. Explain why:

[ ] This is a refactor/code format and no logic has been changed.
[ ] Previous test can cover this change.
[ ] No code files have been changed.
[ ] Other reason

Behavior changed:

[ ] No.
[ ] Yes.

Does this need documentation?

[ ] No.
[ ] Yes.

Check List (For Reviewer who merge this PR)

[ ] Confirm the release note
[ ] Confirm test cases
[ ] Confirm document
[ ] Add branch pick label

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall


Add support for mutated traces

Background
As an example, consider the tests that check that delegation certificates cannot be replayed (which amounts to checking that in any valid trace there are no duplicated certificates).
Currently these tests are passing, however we cannot be sure whether it is because the operational rules for delegation forbid this, or because the generators do not allow the generation of duplicated certificates.
We do not want to generate invalid signals when composing signal generators, lest we might get very inefficient generators (where the probability of generating a valid signal decreases as we compose more signal generators). This led us to duplicate the logic of our different operational-semantics rules in the generators and in the STS rules. As a consequence, generators might be hiding errors in our operational rules (as explained above with the example of the delegation certificates).
An example of "error" hiding in the operational rules can be seen by removing the check that (e_d, vk_s) ∉ sds from the implementation of the SDELEG rule:

If we do this then in principle we could generate duplicated delegation certificates in a trace. However, since the generators are generated invalid signals according to the rule above, the tests will pass with this incorrect implementation of the SDELEG rule.
Ideally, in the case above, we would like to see an failure in the property tests after manually injecting this error.
Proposed Solution
We could extend the HasTrace type-class with two functions: mutate
mutate :: Signal s -> Gen (Signal s)

which given a signal generates a mutated version of it, and traceWithMutations
traceWithMutations
  :: Int
  -- ^ Length of the generated trace.
  -> Gen (Trace s)

which generates a valid trace, but mutating the generated (valid) signals with a certain probability (which might be a parameter of this function as well) so that the STS rules are fed with invalid signals as well.
Then, for example, we could replace the current version of the property that checks that delegation certificates are not replayed:
dcertsAreNotReplayed :: Property
dcertsAreNotReplayed = withTests 300 $ property $
  forAll (trace @DBLOCK 1000) >>= dcertsAreNotReplayedInTrace

by this version that uses traceWithMutations
dcertsAreNotReplayed :: Property
dcertsAreNotReplayed = withTests 300 $ property $
  forAll (traceWithMutations @DBLOCK 1500) >>= dcertsAreNotReplayedInTrace

Note that for instance in the snippet above we increased the maximum trace size since invalid signals reduce the average size of the trace.
When we do not want to generate invalid signals (for instance when composing generators), we can use the sigGen and trace functions, as we do now.
Next steps

[ ] Discuss this with: @nc6 @ruhatch @JaredCorduan @mhuesch @mgudemann  and others who might be interested

See also

Issue #568.

An example of "error" hiding in the operational rules can be seen by removing the check that (e_d, vk_s) ∉ sds from the implementation of the SDELEG rule:

Should that read (e_d, vk_s) ∉ eks?

In order to support Traces with mutations, wouldn't we have to change https://github.com/input-output-hk/cardano-ledger-specs/blob/2addd4e68b010a1a77c05d24a2540e5947904052/byron/semantics/executable-spec/src/Control/State/Transition/Trace.hs#L50-L61
so that it contained the resultant PredicateFailures when an STS rule encountered them? I imagine that we would stop the trace once it encountered PredicateFailures, so perhaps the type would look like
      , _traceTrans :: ![(Either [PredicateFailure s] (State s), Signal s)]

It would be good to talk over how this might fit with the changes I'm making for goblins.

An example of "error" hiding in the operational rules can be seen by removing the check that (e_d, vk_s) ∉ sds from the implementation of the SDELEG rule:

Should that read (e_d, vk_s) ∉ eks?

Yes, good catch!

In order to support Traces with mutations, wouldn't we have to change
https://github.com/input-output-hk/cardano-ledger-specs/blob/2addd4e68b010a1a77c05d24a2540e5947904052/byron/semantics/executable-spec/src/Control/State/Transition/Trace.hs#L50-L61
so that it contained the resultant PredicateFailures when an STS rule encountered them? I imagine that we would stop the trace once it encountered PredicateFailures, so perhaps the type would look like
      , _traceTrans :: ![(Either [PredicateFailure s] (State s), Signal s)]

Not in this case. If the trace generator sees a failure, then it continues trying to generate a signal. So in this issue we're talking about valid traces.
However, for invalid trace generation we will have to add another Trace variant, that contain predicate failures as you mentioned.

It would be good to talk over how this might fit with the changes I'm making for goblins.

:+1:

       , _traceTrans :: ![(Either [PredicateFailure s] (State s), Signal s)]

Also I'm thinking we might want to have this type be:
  , _traceTrans :: ![((State s, [PredicateFailure s]), Signal s)]

since even if we have a predicate failure the rules return a state.

Code jamming with @nc6 and @mhuesch
testsuite
class STS s => HasTrace s where
  initEnvGen :: Gen (Environment s)

  sigGen :: (Maybe (PredicateFailure sts)) -> Environment s -> State s -> Gen (Signal s)
  sigGen = sigGenWithFailure Nothing

	sigGenWithFailure :: (Maybe (PredicateFailure sts)) -> Environment s -> State s -> Gen (Signal s)

  trace
    :: Int
    -- ^ Maximum length of the generated traces. The actual length will be between 0 and this
    -- maximum.
    -> Gen (Trace s)
  trace n p = traceWithProfile (Maximum n) validProfile (sigGen @s)

  traceWithProfile
    :: TraceLength
    -- ^ Maximum length of the generated traces. The actual length will be between 0 and this
    -- maximum.
    -> Gen (Trace s)
  traceWithProfile n p = traceSigGen n p (sigGen @s)

  traceOfLength
    :: Int
    -- ^ Desired length of the generated trace. If the signal generator can generate invalid signals
    -- then the resulting trace might not have the given length.
    -> Gen (Trace s)
  traceOfLength n p = traceSigGen (Desired n) (sigGen @s)

data TraceLength = Maximum Int | Desired Int

data TraceProfile sts = TraceProfile
	Int -- ^ Proportion of 'valid' cases to generate
  [ ( PredicateFailure sts -- Failure condition
    , Int -- Proportion of cases in which to generate this failure
    )
  ]

type PFMap = M.Map (PredicateFailure sts) (NE.List (GoblinData g)) -- maybe `Genome g`, not `GoblinData g`

{-
Steps:
1. learn by training goblins, get Genomes/GoblinData
2. package them ^ into `PFMap`
3. modify `signGenWithFailure` to use `PFMap`

-}

validProfile :: TraceProfile sts
validProfile = TraceProfile 1 []

-- Usage Example???

dcertsAreNotReplayed :: Property
dcertsAreNotReplayed = property $
  forAll (trace @DBLOCK 1000) >>= dcertsAreNotReplayedInTrace

dcertsAreNotReplayed :: Property
dcertsAreNotReplayed = property $
  forAll (traceWithProfile @DBLOCK profile 1500) >>= dcertsAreNotReplayedInTrace
  where
    profile = ???

fooBar :: Trace sts -> TraceProfile sts -> Trace sts

data GoblinData g = GoblinData
  { -- | Remaining genes, controlling how a goblin operates
    _genes       :: !(Genome g)
    -- | A goblin's bag of tricks contains items of many differnt types. When
    -- tinkering, a goblin (depending on its genome) might look in its bag of
    -- tricks to see whether it has anything of the appropriate type to replace
    -- what it's currently tinkering with (or, depending on the type, do
    -- something different - for example, utilise a monoid instance to add
    -- things together).
  , _bagOfTricks :: !(TypeRepMap [])
  }

type Genome g = [g]

-- `Genome Bool` is main instance used


[BUG] undefined: deque.New

https://github.com/gammazero/deque  is update to 1.0,  new version undefined: deque.New

Oh, it seems that deque deleted the New method for some reason and did not release v2. How annoying...

pull request: https://github.com/gammazero/deque/pull/33

I have published a new release that should fix this bug.


Update version in docs to 1.10.2

Since we have a little ways to go until 1.11 (including RCs).

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@09bf77b). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #9588   +/-   ##
=========================================
  Coverage          ?   42.15%
=========================================
  Files             ?      577
  Lines             ?    75982
  Branches          ?        0
=========================================
  Hits              ?    32030
  Misses            ?    39976
  Partials          ?     3976

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 09bf77b...d0bb6ed. Read the comment docs.


Code Manual

Is there a code manual for the eICU database, i.e. something that let's me know what the numeric codes you use in your data mean when they represent something else?  For instance, when pulling up the apachePredVar table there is a row titled admitsource which can be numbered 1-8 but I am unsure what each of these different numbers represent.  There are other similar rows such as amilocation, discharge location, etc.  Is there a code manual that defines what these numbers represent? Thanks.

We don't have one at the moment but if you highlight which columns have codes you are interested in we can ask the right people and add it to the documentation.

Thanks for your reply.  Here are some of the columns I have questions on:

In the ApachePredVar Table: the columns admitsource, dischargelocation, and amilocation
In the Hospital Table: the column teachingstatus
I also have a question regarding how identification numbers are used.  I understand how they are used for the column patientUnitStayid but in other columns it isn't as clear.  For instance, for the column “diagnosisid” is one ID number given for a specific diagnosis so that if you were looking for patients with “x” diagnosis you could search the database for that specific diagnosisid?

The table "id" columns are just used to ensure uniqueness of rows. They have no meaning. You'll find diagnosisid is unique to every row. I'll get back to you on the others.

You can generate the mapping for  admitsource values by linking the apachepredvar table to the patient table:
select distinct a.admitsource, p.unitadmitsource
from `physionet-data.eicu_crd_demo.apachepredvar` a
left join `physionet-data.eicu_crd_demo.patient` p
on a.patientunitstayid = p.patientunitstayid
order by admitsource;

Row    admitsource    unitadmitsource
1    -1
2    1    Operating Room
3    2    Recovery Room
4    4    Floor
5    4    Step-Down Unit (SDU)
6    4    ICU to SDU
7    5    Other ICU
8    6    Other Hospital
9    7    Direct Admit
10    8    Emergency Department

I also have the same question on what are the numbers contained in "admitsource" under ApachePredVar represents. These are so important that can change the model completely.
Thanks in advance.


Can't buy other amounts diferent then the total EUR available

By following the rules described we tried to make the bot buy ETH with 50% of EUR amount but it went wrong.
With the rule:
{
"side": "buy",
"type": "limit",
"price": "{inside_bid}",
"product_id": "ETH-EUR",
"size": "{max_balance}*0.5"
}
the bot didnt allow to buy, giving the error attached in the log and went with FALLBACK and bought.
We then tried to use "funds" instead of "size", as we understood from github and GDAX notes
{
"side": "buy",
"type": "limit",
"price": "{inside_bid}",
"product_id": "ETH-EUR",
"funds": "{max_balance}*0.5"
}
and when we start the bot again we get the error also in the log and the bot crashes.
The question is, how can we buy ETH or BTC with only 50% of the available EUR ?
bot.log

rules_birdpersonborg.zip

sorry. fechei por engano.

Hi,
The scenario described should be achieved with the following configuration:
  {
        'handles': ['BirdpersonBorg'],
        'condition': '"ETHUSD" in {tweet} and "long" in {tweet}.lower()',
        'retries': 2,
        'retry_ttl_s': 200,
        'tweet_ttl_s': 400,
        'market_fallback': True,
        'orders': [
            {
                'side': 'buy',
                'type': 'limit',
                'price': '{inside_bid}',
                'product_id': 'ETH-EUR',
                'size': '{max_balance}*0.5'
            }
        ]
    },
  {
        'handles': ['BirdpersonBorg'],
        'condition': '"BTCEUR" in {tweet} and "long" in {tweet}.lower()',
        'retries': 2,
        'retry_ttl_s': 200,
        'tweet_ttl_s': 400,
        'market_fallback': True,
        'orders': [
            {
                'side': 'buy',
                'type': 'limit',
                'price': '{inside_bid}',
                'product_id': 'BTC-EUR',
                'size': '{max_balance}*0.5'
            }
        ]
    },

However, we assume you are trying to use 50% of the EUR balance so that half of the funds go buy ETH and the other half to BTC. If that is the case, it will not work as intended.
Consider the following scenario:
The initial EUR balance is 100 EUR.

The bot receives a signal to buy ETH;
The bot buys 50 EUR worth of ETH;

EUR balance is now 50.

The bot receives a signal to buy BTC;
The bot buys 25 EUR worth of BTC. --> You may have expected it to buy 50 EUR, but since we  multiplied the remaining balance for 0.5, that bot will never be able to use it fully.

We suggest a different approach. The code below will evenly split the EUR balance among purchases.
  {
        'handles': ['BirdpersonBorg'],
        'condition': '"ETHUSD" in {tweet} and "long" in {tweet}.lower()',
        'retries': 2,
        'retry_ttl_s': 200,
        'tweet_ttl_s': 400,
        'market_fallback': True,
        'orders': [
            {
                'side': 'buy',
                'type': 'limit',
                'price': '{inside_bid}',
                'product_id': 'ETH-EUR',
                'size': '{split_balance}'
            }
        ]
    },
  {
        'handles': ['BirdpersonBorg'],
        'condition': '"BTCEUR" in {tweet} and "long" in {tweet}.lower()',
        'retries': 2,
        'retry_ttl_s': 200,
        'tweet_ttl_s': 400,
        'market_fallback': True,
        'orders': [
            {
                'side': 'buy',
                'type': 'limit',
                'price': '{inside_bid}',
                'product_id': 'BTC-EUR',
                'size': '{split_balance}'
            }
        ]
    },

Hello,
Thank you for the information. The first part its so obvious that I dont know how i didnt see it.
Regarding the option "split_balance", do you have a link to the documentation where it has more information about it? Cant find it in the GDAX API documentation.
Thank you.

The {split_balance} option was something we developed internally to cater for scenarios like the one you requested :) It does not exist in the GDAX API. When the bot is trying to buy, it will evenly split the balance among all pairs with a short position. Please note that it may still have some bugs.
An example scenario may be helpful.
The initial balance is 100 EUR, 0 BTC, and 0 ETH. I.e., we are short on both BTC and ETH.
The bot is following two pairs: ETH-EUR and BTC-EUR.

The bot receives an order to go long on ETH-EUR;
The bot calculates how much EUR balance it should use:

Total balance = 100 EUR;
Pairs that are currently short:  ETH-EUR and BTC-EUR = 2;
EUR balance to purchase ETH: 100 EUR / 2 = 50 EUR;

The bot purchases 50 EUR worth of ETH;

Current balance: 50 EUR, 0 BTC, x ETH

The bot receives an order to go long on BTC-EUR;

Total balance = 50 EUR;
Pairs that are currently short:  BTC-EUR = 1;
EUR balance to purchase ETH: 50 EUR / 1 = 50 EUR;

The bot purchases 50 EUR worth of BTC.

Current balance: 0 EUR, y BTC, x ETH.


Create easy-to-automate flow for updating the web interface with new data

Given that seeing our data visualized in the webui
And this is done by loading the data into the web's backend, to be consumed by the frontend
When we have a new set of processed data
Then there is an easy-to-automate flow to download the data into our web backend
And populate its api to be consumed by the frontend.

Document steps / update script:
Create apisnoop.json and publish to GCS_PREFIX

[ ] GCS_PREFIX=gs://apisnoop/$(git branch)/
[ ] ./apisnoop.sh --update-cache
[ ] ./apisnoop.sh --process-cache
[ ] ./apisnoop.sh --upload-apiusage

Start backend to pull from GCS_PREFIX

[ ] GCS_PREFIX=gs://apisnoop/$(git branch)/
[ ] ./apisnoop.sh --download-apiusage
[ ] ./npm start

I've refactored the front-end and backend to handle our new data flow, and the new information available to the web interface.  This is the core part of the work in https://github.com/cncf/apisnoop/pull/101 .  There's work to be done on styling it and improving the UX, but the core flow works for bringing in new data and having it populate our front and back end.

Let's wrap up the styling, add the documentation to close this out.

Let's simplify the link to the prow/spyglass but just list the job_bucket/number:
ci-kubernetes-e2e-gci-gce/34681

I had a chance to pair with the Globant devs and found it difficult to find the source apisnoop data.
We should add a link back to the unrendered, but processed APISnoop data.

Updated sunburst header in https://github.com/cncf/apisnoop/pull/109/commits/4d984ae81517f901eac4cd2a9673a4be4e859263, but unsure if the link in there is the  one you are referring to for the processed apisnoop data, @hh .

Release link now correct, as part of 91782b25408d796f365078699f3ceda9527f6020 in https://github.com/cncf/apisnoop/pull/109


install the whole cosmos

Hi:
can I install the whole cosmos with the code in github, do you have some  Installation document?
thank you.

hey @rock1103
you should checkout https://github.com/cosmos/gaia
@nylira can we change this repo name to cosmos.github.io / cosmos website instead of cosmos?

Nope this repo is only for documentation, check out the cosmos/cosmos-sdk

we should consider calling this repo ‘/cosmos-docs’


Make NOTIFICATION_MOVED_IN_PARENT opt-in.

Makes it faster to remove non-2D nodes from the scene tree when they have lots of siblings.
This partly solves https://github.com/godotengine/godot/issues/61929 for non-2D nodes, with a very simple change. This is not exclusive to possible improvements mentionned in https://github.com/godotengine/godot/issues/61929#issuecomment-1354351264 (although so far they are for Godot 3).
Only 2D nodes use this notification so I thought it made sense if that notification wasn't always sent to them in the first place. It was causing stalls in my 3D game.

This is the bitflags approach I was referring to in https://github.com/godotengine/godot/pull/65581#issue-1368085497 . (Except using a single bool because only supporting one notification type).
To quote from my post there:

Another idea is for nodes to register their interest in a notification type (via a set of bitflags), and check this prior to sending the more heavyweight notification.

Although it's an improvement on the before case, there are a couple of problems:

It is compat breaking, as users have to register an interest (if they e.g. create new nodes in a module that want to respond to particular notifications etc)
It doesn't prevent the notification being sent multiple times to nodes that are interested.

That said, registering for interest is a worthy option that can be used in addition to other approaches e.g. #65581 and #62444.


add ":not" to negate css prop selector

this change based on this issue.
P.S: I've never done any pull request to any project before. This is my first time, please tell me if I did something wrong or I miss anything important.

@Arch-Mage great work on your first PR, we really appreciate it! This is going to be affected by https://github.com/airbnb/enzyme/pull/458, which totally reimplements how we parse selectors, so I'm not sure if we want to merge this if it's not going to be compatible.

Personally I like the idea of merging this first, and then making sure #458 still passes the new tests after a rebase :-)

That's fine with me :) @Arch-Mage can we add some more tests to verify that this works with other selectors like classes and ids?

I think it's better to wait for #458 first. Because, when I wrote this, i only think about negating attribute. So it won't work on :not(#foo) or :not(.bar). It's kind a little hacking I think which obviously will break. I will see then if I can do adding :not selector

@aweary is this still needed in v3?

@ljharb it's still needed, but this PR is now totally outdated. I'll be sending a PR for this today 😃  @arch-mage thanks for your work on this, sorry we didn't get it merged!


Systemd on flasher images seems to have a dependency on docker

[    6.512183] systemd[1]: docker.service: Cannot add dependency job, ignoring: Unit docker.service failed to load: No such file or directory.

This is because of the dnsmasq.service which has a dependency on docker.service.
This dependency is there so that we are sure that on non-flasher images docker is started before dnsmasq so docker0 interface is created at the time dnsmasq is started in case we want dnsmasq to bind to that interface (not used at the moment.)
The fact that docker.service is not present in the flasher images has no impact because dnsmasq has a Wants on this service and not a Requires so it is not fatal

Understand now the roots of it. Even so, we should avoid this kind of warnings. Can we have a drop in for the flasher?

@floion Do we want dnsmasq to bind to docker0 interface? Do we have a usecase for this?

@petrosagg had at some point. At this very moment, none that I am aware of. Petros, any thoughts on this for the future?

@petrosagg Any feedback on this?

We want dnsmasq to bind on docker0 so that when we run containers without host networking they can reach the local resolver.
This happens because by default dnsmasq binds on the localhost interface of the host network namespace which has the subnet <IP_ADDRESS>/8. A docker container without host networking get's a brand new network namespace with its own dedicated localhost interface with the same subnet, so packets can't be routed to the correct process.


Consider removing overhead of NodeUtil#ensureNoDuplicateEdges()

For my particular tree I have run some performance measurements indicating that around 15% of the time constructing a tree is spent in NodeUtil#ensureNoDuplicateEdges(). I think that is a rather steep price to be paying.
AFAICT it shouldn't be possible to violate this constraint in the first place (the ConcurrentRadixTree implementation looks correct). So if this is to help people implementing their own implementation, maybe there could be some debug flag to guard this? Alternatives would be: Speed it up (e.g. for edge cases like size() <= 2) or move it into the node constructor, where once the children are sorted it would only be a matter of looping over all children and finding any two adjacent identical ones. Should be cheaper.
Thoughts?

Yes, this is a good point.
This is an example of defensive programming to ensure the algorithms didn't violate the constraints! But indeed I think the algorithms are well proven now, and they don't violate the constraints. So it makes sense to allow this checking to be relaxed.
It would be quite easy to add a constructor to the node factories which would allow this checking to be disabled. So I'll accept this suggestion, and try to add it for the next release! Thanks!

Excellent!

@npgall I took the liberty of adding the constructor as you suggested and made the relevant check conditional in the createNode() method, as of e383145. Do you think that I should add some extra test?
I would be happy to contribute this as a PR if that's ok with you.

@VHarisop Yes that looks good.
Could you add a unit test(s), to test the new constructor, and to exercise the new branch? We just need to maintain 100% test coverage for the change.
Also one minor point - could you add brackets {} in the if statement - just for consistency with code style?
If you create a PR from with these changes, I'd be happy to merge it. Thanks!

Cool, I'll look into writing the tests.