oneview_ansible modules should support names instead of Uris

Scenario/Intent
Use names to specify attributes instead of Uris
Environment Details
Module Version: current master - v5.1.1
Ansible Version: 2.64
OneView Appliance Version: 4.10.03-0364293
OneView Client API Version: 600
**Python Version:**2.7.10
**python-hpOneView SDK Version:**current master - v4.7.0
Platform: Ubutu 18
Steps to Reproduce
Just like oneview_server_profile which provides support of names in addition to Uri, oneview_asnible library should provide support using names instead of Uris, especially in the following modules:

oneview_networkset for nativeNetwork
oneview_logicalinterconnect_group for networks
oneview_enclosure_group for logical interconnect group
-oneview_logical_enclosure for enclosure group

Supporting names instead of Uris will make ansible playbooks much more portable
Here is a use case:
Customer has multiple Oneview instance to manage. They want to replicate configuration from One OV instance to other instances through automation. They then query the master OV instance to collect information and generate playbooks to run against the other instances to apply the same configuration.
when playbooks support only URI, values are hardcoded ans specific to a given OV instance. As a result, playbooks cannot be run against new instances, defeating the purpose of OV automation.

@DungKHoang,
Thanks for letting us know about the issue you are facing. We have added support for both name and Uris in oneview_ansible modules. Please check this and let us know if the issue still exists.
https://github.com/HewlettPackard/oneview-ansible/blob/master/examples/oneview_network_set.yml


able to use vllm without ray

I think it's already supported if we don't configure ray cluster in arcadia-config and have a NUM_GPUS > 1.

similar requirement in vllm project: https://github.com/vllm-project/vllm/issues/208

Thanks @bobsongplus !

Actually, vllm is depending on Ray for distributed inference, but we can use vllm without Ray cluster, that's to run vllm on GPU(s) on the single node. So we support to run vllm with embedded Ray cluster(no manual configuration required)


Items for next rerun here!

fix nick's dumb prism -> prisim spelling mistake

divorce variable naming from m7


Ability to provide HTTP verb for affectedEndpoints

A single /test endpoint may be available in more than one HTTP verb (amongst GET, POST, PUT, DELETE, PATCH most of the time). And the check may be related to only a subset of those verbs.
As of now there is no way to provide the HTTP verb(s)

I have mixed feeling about it. We'll have to discuss how/if it can be implemented in the next version.
Thank you

There are actually two ways to do this:

Use the verb as part or all of the measurementName per section 4 of the specification.

Provide the verb as one of the fields in the checks objects as described by section 4.10 of the specification.

I think the cleanest way would be:
to extend this
"affectedEndpoints" : [
          "/users/{userId}",
          "/customers/{customerId}/status",
          "/shopping/{anything}"
        ],

to this
"affectedEndpoints" : [
          {"/users/{userId}": ["GET", "PUT"]},
          "/customers/{customerId}/status",
          {"/shopping/{anything}": ["PATCH", "POST"}
        ],

where if the element of "afectedEndpoints is a string rather than an object a "GET" is assumed. So "/customers/{customerId}/status" as an element in the array becomes equivalent to {"/customers/{customerId}/status" : ["GET"]
This would make the enhancement backwards-compatible but parsing will be significantly more awkward than if we insisted every element to always be an object. It will probably make parsing very painful for strictly-typed languages. JSON RFC states that it is legal: "There is no requirement that the values in an array be of the same type." but that doesn't mean it is nice to do such things.
I know parsing mixed array will be no problem in JS/Node or Python. I know it will be super annoying but doable in Go. Would love to hear from people who use Java and .Net regularly. I assume it will at the bery least be error-prone.
If we assume that most people will not care for the level of detail of HTTP verbs then for the sake of backwards compatibility having mixed elements makes sense, but parsing implications make me worry about it a lot.

That is indeed horrible for languages that are automatically marshaled/unmarshaled to types ... in Go you'd have to unmarshaled them to json.RawMessage and then attempt to unmarshal each element to the object and then fall-back to the string (or vice-versa).  In Java (and I believe .NET), you'd have to do basically the same thing (though the mechanism is different).  I think it's important that this specification be friendly to strictly typed languages so that there is broad adoption.
As an aside, in Go section 4.10 is already a pain-in-the-neck.  These are called "additional properties" in the jsonschema.org guidelines but, while Go can easily handle optional keys, it's not so easy to handle arbitrarily added keys.  Sometimes it's simplest to go back to map[string]json.RawMessage and unmarshal some fields further.

Some thoughts:
The Web Linking RFC (8288) goes into some details that might be useful here (with some JSON-specific detail in JSON Serialization for Web Linking).
The basic link structure, in JSON, would look like this:
[
  {
    "href": "/user/{userId}"
  }
]

usually in a context like this:
{
  "links": [{"href": "/user/{userId}"}]
}

And that detail can be added to include things like title and rel.  It's rel that has the detail about HTTP method.
e.g.
  "affectedEndpoints": [
    {
      "href": "/user/{userId}",
      "rel": "item"
    }
  ]

would be a standard way to like to something that would be accessed with GET by the semantics of "item" relation.
Additionally...
  "affectedEndpoints": [
    {
      "href": "/user/{userId}",
      "rel": "create-item"
    }
  ]

This would be a standard way to link to something that would be accessed with POST  by the semantics of "create-item" relation.
Alternatively, 8288 does detail some serialization-specific attributes that may be used to convey the attributes of the target.  e.g.
  "affectedEndpoints": [
    {
      "href": "/user/{userId}",
      "type": "POST"
    }
  ]

Here type is used to convey that this is a type of POST.
The later seems to be a convention in RESTful circles [restful-hateoas].
In either case, each method (verb) would be a separate entry:
  "affectedEndpoints": [
    {
      "href": "/user/{userId}",
      "type": "POST"
    },
    {
      "href": "/user/{userId}",
      "type": "GET"
    },
    {
        "href": "/shopping/{anything}",
        "type": "PATCH"
    },
    {
        "href": "/shopping/{anything}",
        "type": "POST"
    },
  ]

Collection+JSON - Document Format is also interesting with regards to supporting query strings in the web link.


[ DO NOT MERGE] Tests/add xcf test

This PR is related to  #286 . Created only to force automated tests and verification.
PR Goal

Implemented solution

Checkpoints

[ ] If relevant, manual tests have been done to ensure the stability of the whole application and that the involved feature works
[ ] Automated tests covering the feature or the fix, have been written, deemed irrelevant (give the reason), or an issue has been created to implement the test (give the link)
[ ] The PR or the original issue contains a short summary of the implemented solution.

fixed here: https://github.com/algoo/preview-generator/pull/291


Remove checks for future queries

In anticipation of https://github.com/square/metrics/pull/233, removes the restriction that relative fetches (from -1d to now) must be in the past. So you can now write from now to +3d

lgtm


AutoCast variable inside tf.function does not cast correctly when saving a model

Click to expand!
Issue Type
Bug
Source
source
Tensorflow Version
2.9.3
Custom Code
Yes
OS Platform and Distribution
Windows 10
Mobile device
No response
Python version
3.9
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
Error when calling model.save()

You can work around the error by commenting out `tf.function` over `call()`.

Standalone code to reproduce the issue
import tensorflow as tf
import keras
import keras.layers

class CosineSimilarityLayer(keras.layers.Layer):
    def __init__(
        self, num_classes: int, name: str = None
    ):
        super().__init__(name=name)
        self.num_classes = num_classes
        self._weights = None

    def build(self, input_shape):
        self._weights = self.add_weight(
            name="W",
            shape=(
                input_shape[-1],
                self.num_classes,
            ),
            initializer="glorot_normal",
            trainable=True,
            dtype=self.dtype
        )
        super().build(input_shape)

    def compute_output_shape(self):
        return None, self.num_classes

    # If you comment out tf.function here, it works.
    @tf.function
    def call(self, inputs: tf.Tensor):
        embedding = inputs
        # normalize feature
        embedding_normalized = tf.nn.l2_normalize(embedding, axis=1)
        # get centroids
        weights_normalized = tf.nn.l2_normalize(self._weights, axis=1, )

        logits = embedding_normalized @ weights_normalized

        return logits

    def get_config(self):
        config = super().get_config().copy()
        config.update(
            {
                "num_classes": self.num_classes,
            }
        )
        return config

def main():
    tf.keras.mixed_precision.set_global_policy("mixed_float16")

    layer = CosineSimilarityLayer(num_classes=100)

    input = tf.zeros(shape=(10, 100), dtype=tf.float16)

    model = keras.models.Sequential([
        layer
    ])

    model(input)

    model.save("autocast_issue")

if __name__ == "__main__":
    main()

Relevant log output
File "*\autocast_issue.py", line 37, in call  *
        logits = embedding_normalized @ weights_normalized

    TypeError: Input 'b' of 'MatMul' Op has type float32 that does not match type float16 of argument 'a'.

Hi @JustASquid !
I could replicate this issue in 2.9, 2.10 and  2.11.
@SuryanarayanaY !
Attached gist in 2.9, 2.10 and 2.11 for reference.
Thank you!

Hi @JustASquid ,
There is a limitation for this Policy as below as per documentation.

Currently, only tensors in the first argument to the layer's call method are casted (although this will likely be changed in a future minor release)

Since you passed first argument input as float16 and second argument weights_normalized as float32 the policy converted only first argument and second argument remains as it is and hence causing the Type Error. Hence I changed the second argument also suitable to argument mentioned in Policy (float16) and there is no Error. I even tried changing first argument from float16 to float32 and the Policy is able to convert it into float16 and code executed without any error.Please refer to attached gist-nightly-2.12V.
I hope this clarifies your query.Thank you!

@SuryanarayanaY I don't quite understand. The layer call function only has one argument. So the limitation specified in the documentation should not apply here.

@JustASquid ,
Yes the Policy applies to only First Argument to the layer call which converts first argument to float16 but the the variable weights_normalized is of float32 which is default dtype of TF and hence raising the TypeError: Input 'b' of 'MatMul' Op has type float32 that does not match type float16 of argument 'a'  in the operation embedding_normalized @ weights_normalized.
The error is not raised by the Policy.The Policy converted first argument dtype as intended.But the operation embedding_normalized @ weights_normalized not supports different dtypes for multiplication.Both the arguments should be of same type. Please also refer the [tensordot](embedding_normalized @ weights_normalized) API of Tensorflow regarding the same.
Hence you need to keep same dtypes for dot product which is the reason for the error but not Policy tf.keras.mixed_precision.set_global_policy.
Thankyou!

@SuryanarayanaY I think there is some confusion here. Under the mixed precision policy, the weights variable is created as type AutoCastVariable, which should automatically cast to float16 when it is multiplied with the float16 input tensor. See the implementation of the Dense layer for example, it relies on this in the same way when it multiplies the kernel.

@JustASquid ,
Thanks for pointing that. I dig more about Policy and Yes you are correct here.The weights variable should be autocasted to Policy dtype and it seems that it also happening during model.call(). I did inserted some print statements for debugging. I observed that when call() method wrapped with @tf.function during model.save() in last call during model.save() somehow returning float32 result for self.dtype which might be causing the problem. Whereas without @tf.function wrapper all calls returning float16 as result for self.dtype.Please refer to attached gist.
There seems some serialization problem here with tf.function as wrapper. We need to have a look here and I request you also try to locate the source of problem if possible.
Thank you!

@reedwm
Reed, looks like there is a bit of an issue with tf.functions and AutocastVariable. When a function is traced under Keras (I'm guessing enable_auto_cast_variables is used somehwere), the variable is correctly converted to the expected dtype. But when a function is traced under core TF, there is no context, so the regular float32 value is used.
Is there a bug for this already?

enable_auto_cast_variables is called in Layer.__call__ so that AutoCastVariables are casted inside Layer.call.
When the error occurs during the model.save() call, I see the function being re-traced here in the stack trace. It is being re-traced outside Layer.__call__ so the enable_auto_cast_variables scope is not in effect, causing the error. @k-w-w, do you know why it's being re-traced outside Layer.__call__? I'm not very familiar the tf.function part of the TF codebase.
Unfortunately we cannot always resolve AutocastVariables to the compute side inside tf.functions, because only layers have a compute type, not variables. It's intentional that variables are only casted when used inside Layer.call.

@reedwm It's being retraced because the function is labelled "tf.function". When the SavedModel code sees a tf.function, it will re-trace it in a blank context (for example, in case it was traced inside a distribution strategy. We don't want to save the distributed function). I'm not entirely sure what part of the cache key is changing in this case.

@JustASquid,
I tried to execute the mentioned code on tensorflow v2.17 which contains Keras3.0 by default, and observed the code was executed without any issue/error. Kindly find the gist of it here. Thank you!


fix(metadata): V2 GET /deviceservice/all returns inconsistent response when specifying labels or not

PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

If your build fails due to your commit message not passing the build checks, please review the guidelines here: https://github.com/edgexfoundry/edgex-examples/blob/master/.github/CONTRIBUTING.md.
What is the current behavior?

Issue Number:
#2803
What is the new behavior?
Based on the original implementation of GET /deviceservice/all, when client
specify an out-of-range offset, query with labels will return out of range
errors(http status=416), but query without labels will return empty
array(http status=200).
This commit make query without labels to also return out of range errors
(http status=416) under such case.
Moreover, Swagger spec indicates that the maximum for limit query string
is 50 records, which is too arbitrary and not flexible enough for clients
to decide their own limit. Ideally, the maximum shall refer to MaxResultCount
as defined in the metadata configuration. For the minimum of limit, we shall
consider to have -1, meaning no limit and return all records. Our Swagger
spec is also revised to reflect such changes.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

New Imports
Are there any new imports or modules? If so, what are they used for and why?
No
Specific Instructions
Are there any specific instructions or things that should be known prior to reviewing?
Other information

Codecov Report

Merging #2805 into master will increase coverage by 0.59%.
The diff coverage is 51.44%.

@@            Coverage Diff             @@
##           master    #2805      +/-   ##
==========================================
+ Coverage   38.81%   39.40%   +0.59%
==========================================
  Files         145      166      +21
  Lines       12722    13016     +294
==========================================
+ Hits         4938     5129     +191
- Misses       7510     7577      +67
- Partials      274      310      +36

Impacted Files
Coverage Δ

internal/core/command/init.go
0.00% <0.00%> (ø)

internal/core/command/main.go
0.00% <0.00%> (ø)

internal/core/data/init.go
0.00% <0.00%> (ø)

internal/core/data/main.go
0.00% <0.00%> (ø)

internal/core/data/router.go
3.48% <ø> (-0.01%)
:arrow_down:

internal/core/metadata/init.go
0.00% <0.00%> (ø)

internal/core/metadata/main.go
0.00% <0.00%> (ø)

internal/core/metadata/operators/device/notify.go
83.33% <0.00%> (-12.67%)
:arrow_down:

internal/pkg/v2/infrastructure/redis/client.go
0.00% <0.00%> (ø)

internal/pkg/v2/infrastructure/redis/device.go
0.00% <0.00%> (ø)

... and 199 more

Continue to review full report at Codecov.

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


Show INFO logs when not in -vdebug

Hi, I'm setting up mirador and I'd like to monitor if the service is up and working as expected. The problem is that if I run mirador watch it doesn't send anything to stdout.
vdebug though is too verbose.
Would it be possible to send the INFO logs by default?

It is a good idea indeed, I could definitely add INFO logs from the CLI, and let the debug ones to the lib.

I added 2 basic logs on stdout: when the watch starts and when it get interrupted by CTRL+C.
I also added more INFO logs, so running your watch command with RUST_LOG=info should be less verbose than debug logs.
This is not perfect, it should be improved by https://github.com/pimalaya/imap-client/issues/7.
Pre-built binary will be available at https://github.com/pimalaya/mirador/actions/runs/11954898333.


Show the EDNS Client Subnet (ECS) option

Hi @dmachard ,
first of all, thank you for this tool, it's really powerful.
I am interested in seeing the EDNS Client Subnet (ECS) option of the queries I log. Can you add it this info to the loggers? Alternatively, can you add support to see the full "query_message" (so I can see the ECS inside the message) or the DNS query options?
Thanks,
Carlo

This feature will be implemented in the next release

awesome, thank you!

A new beta release is available.
The CSUBNET can be added in text format with the directive "edns-csubnet"
2021-12-27T14:15:22.811687512Z dnsdist1 CLIENT_QUERY NOERROR <IP_ADDRESS> 42293 INET UDP 61b google.com A 0.000000 <IP_ADDRESS>/10
2021-12-27T14:15:22.832947566Z dnsdist1 CLIENT_RESPONSE NOERROR <IP_ADDRESS> 42293 INET UDP 145b google.com A 0.021260 <IP_ADDRESS>/10

It's also available in the JSON format:

  "edns": {
    "udp-size": 512,
    "rcode": 0,
    "version": 0,
    "dnssec-ok": 0,
    "options": [
      {
        "code": 8,
        "name": "CSUBNET",
        "data": "<IP_ADDRESS>/10"
      }
    ]
  },

Any feedback will be appreciated regarding this feature.

So far so good. Soon I will be able to do more extensive tests.

The release 0.14.0 is available :) I am interested to know If you can share your use case and what you plan to do with it


Move utils/ to spvtools::utils namespace

Currently the utils/ folder uses both spvutils:: and spvtools::utils.
This CL changes the namespace to consistently be spvtools::utils to match
the rest of the codebase.

The conflict is fairly trivial.
The Travis failure is a timeout on the Android build.  Seems spurious.

Rebased, resolved merge conflict, and pushed into master as 76e0bde19


Refactor the plugin to use the lexical variable mixin from App Inventor

[ ] Remove the mixin defined methods from each block.
[ ] Add the methods required by the mixin to each block.
[ ] Mix the mixin into each block.  Test the result.
[ ] For each block.foo(...) method defined in the mixin create a new foo(block, ...) function.
[ ] Change the code that calls a block.foo(...) method defined in the mixin to call the new foo(block, ...) function instead.  Test the result.
[ ] Remove the mixin

Note that once this is done, we can then do following to App Inventor (similar to the above):

[ ] Remove the mixin defined methods from each block.
[ ] Add the methods required by the mixin to each block.
[ ] Remove the mixin


Load BACPAC Error

I am trying to restore BACPAC file from BC Online to BC On-Premise and local SQL Server.
I've used this script as a starting point for my script:
https://freddysblog.com/2021/03/02/restoring-your-online-business-central-database-locally/
I've managed to run my script to the point where the BC On-Premise container is created and is successfully connected to the multi-tenant CRONUS database on the local SQL Server.
Where it fails is in the next step: loading the BACPAC file.
I realize this is not an issue with bccontainerhelper and more likely related to the DAC framework, but maybe you know the solution to this one?
I've simplified my script to focus on the error:
#-[ VARIABLES ]-----------------------
$saasEnvironmentName = "Academy"
$containerName = 'saas23'
$dbServer = '<IP_ADDRESS>'
$dbInstance = ''
$dbSaName = 'sa'
$dbSaPassword = ConvertTo-SecureString 'XXXX' -AsPlainText -Force
#-[ PREREQUISITES ]-----------------------
$dacdll = Get-Item "C:\Program Files\Microsoft SQL Server\160\DAC\bin\Microsoft.SqlServer.Dac.dll"
if (-not($dacdll)) {
throw "DAC Framework is not installed"
}
Add-Type -path $dacdll.FullName
Import-Module Az
Import-Module -Name bccontainerhelper
#-[ AUTHENTICATE ]-----------------------
#-[ Get BC Online Metadata ]-----------------------
#-[ Get BC Artifact URL ]-----------------------
#-[ Backup and Download BACPAC ]-----------------------
#-[ Get BC License ]-----------------------
#-[ Remove Multi-Tenant BC Container ]-----------------------
#-[ Create Multi-Tenant BC Container ]-----------------------
$dbCredential = New-Object pscredential `
-ArgumentList $dbSaName, $dbSaPassword
$databaseParams = @{
"databaseServer" = $dbServer
"databaseInstance" = $dbInstance
"databasePrefix" = "$($containerName)-"
"databaseName" = "CRONUS"
"databaseCredential" = $dbCredential
"multitenant" = $true
}
#-[ Restore BACPAC file ]-----------------------
$bacpacFilepath = 'C!!_TEMP\temp.bacpac'
$tenantId = $saasEnvironmentName
$dbName = "$($databaseParams.databasePrefix)$tenantId"
$conn = @(
"Data Source=localhost"
"Initial Catalog=master"
"Connection Timeout=0"
"User Id=$($dbCredential.UserName)"
"Password=$($dbCredential.Password|Get-PlainText)"
) -join ";"
Write-Host ('')
Write-Host "Restoring BACPAC from $bacpacFilepath to $dbName" -ForegroundColor Yellow
$AppimportBac = New-Object Microsoft.SqlServer.Dac.DacServices $conn
$ApploadBac = [Microsoft.SqlServer.Dac.BacPackage]::Load($bacpacFilepath)
$AppimportBac.ImportBacpac($ApploadBac, $dbName)
The output:
Restoring BACPAC from C!!_TEMP\temp.bacpac to saas23-Academy
Exception calling "Load" with "1" argument(s): "Could not load package from 'C!!_TEMP\temp.bacpac'."
At W:_REPOS\Qixas-Tools\Qixas Scripts_Departments\Academy\Saas2Docker\2-Qixas Version\WIP\temp.ps1:56 char:1

$ApploadBac = [Microsoft.SqlServer.Dac.BacPackage]::Load($bacpacFilep ...

  + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  + FullyQualifiedErrorId : DacServicesException

Exception calling "ImportBacpac" with "2" argument(s): "Value cannot be null.
Parameter name: package"
At W:_REPOS\Qixas-Tools\Qixas Scripts_Departments\Academy\Saas2Docker\2-Qixas Version\WIP\temp.ps1:57 char:1

$AppimportBac.ImportBacpac($ApploadBac, $dbName)

  + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  + FullyQualifiedErrorId : ArgumentNullException

I forgot to mention that the BACPAC file appears to be fine

Typo!
The error is here:
$bacpacFilepath = 'C!!_TEMP\temp.bacpac'
Should be:
$bacpacFilepath = 'C:!!_TEMP\temp.bacpac'
Now I get past the "load" command, but it is now failing at the ImportBacpac line.
Here is the revised output:
Restoring BACPAC from C:!!_TEMP\temp.bacpac to saas23-Academy
Exception calling "ImportBacpac" with "2" argument(s): "Could not import package."
At W:_REPOS\Qixas-Tools\Qixas Scripts_Departments\Academy\Saas2Docker\2-Qixas Version\WIP\temp.ps1:62 char:1

$dacService.ImportBacpac($dacPackage, $dbName)

  + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  + FullyQualifiedErrorId : DacServicesException

Did you try to import the bacpac to the SQL Server manually?
Can you open a prompt inside the container and ping <IP_ADDRESS> ?
Is that database on the docker host or on a different machine on the network?
If this is on the docker host - you could try host.containerhelper.internal instead of the IP number.
I assume that sa is enabled on that sql instance?

Did you try to import the bacpac to the SQL Server manually?

Yes, sort of. I ultimately ran into an "out-of-memory" error but it seemed to be working
Can you open a prompt inside the container and ping <IP_ADDRESS> ?
Yes
Is that database on the docker host or on a different machine on the network?
SQL Server is on the Docker host
If this is on the docker host - you could try host.containerhelper.internal instead of the IP number.
Yep, just changed this in my script
I assume that sa is enabled on that sql instance?
Yes, sa is enabled.

To help home in on my problem, I wrapped my script with a try/catch:
$dacService = New-Object Microsoft.SqlServer.Dac.DacServices $dacConnection
if ($null -eq $dacService)
{
Write-Host "Could not connect to DAC Service" -ForegroundColor Yellow
exit
}
$dacPackage = [Microsoft.SqlServer.Dac.BacPackage]::Load($bacpacFilepath)
try {
$dacService.ImportBacpac($dacPackage, $dbName)
Write-Host ('')
Write-Host "BACPAC restored to $dbName" -ForegroundColor Yellow

}
catch {
Write-Output $_.Exception|Format-List -Force
}
The output revealed another hint:
Exception calling "ImportBacpac" with "2" argument(s): "Could not load file or assembly 'System.Resources.Extensions, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified."
Digging around the internet for this error, I found another script example where there was an explicit load of the DLL:
$dacDll = Get-Item "C:\Program Files\Microsoft SQL Server\160\DAC\bin\Microsoft.SqlServer.Dac.dll"
if (-not($dacDll)) {
throw "DAC Framework is not installed"
}
Add-Type -path $dacDll.FullName
[System.Reflection.Assembly]::LoadFrom($dacDll) | Out-Null
After making these changes and re-running the script .... my BACPAC restored!
At this point, I'm closing this issue.


Celo Wallet Council Call 4

Celo Wallet Council Call 4

Event Details
When: Wednesday, October 27th, 2021, 12 PM EST/9 AM PST, 60 minutes max
Where: Google Hangout Event
Calendar Event: Add to your calendar here
Meeting Notes
Summary
The Celo Celo Wallet Council Call is the "All Hands" call for all Celo Wallet Developers to to come together, discuss ideas that shape our Celo ecosystem, and align on best practices.
Agenda
TBD

Proposed agenda items 👇

Blockchain indexing service

WalletConnect Wallet and Dapp Adoption

Cash in/Cash out

Transaction decoding/signature safety

@eelanagaraj had an interesting idea for a phone verification dapp (separate site that Identity team owns for phone verification). We can learn about pros/cons of such an approach.

Closing Ticket as this call is done.


[Request] Highlight C# object and method names, not just keywords

See https://meta.stackoverflow.com/questions/419260/is-c-syntax-highlighting-broken/419277#419277
It appears that highlight.js does not highlight C# object and method names, but only keywords.
For example, nothing is highlighted here:

https://jsfiddle.net/y6w9oL30/
Conversely, this is something that Google Prettify could do:

https://jsfiddle.net/z4ys7hjd/
It would be great if we could get similar results from highilight.js.   Thanks.

Also, I think this functionality exists for other languages (like JavaScript)?


Update for fvt12

Solve https://github.com/marcstraube/foundryvtt-scenery/issues/19
Set minimum system and fvtt version
Generate source packs for better maintainance
Add some personal scripts and configurations files

Merge and test some old PR:

closes #10: Make it possible to show a label with the count of Scenery variations on the SceneDirectory entrie
Fix #17; support scanning for files that have URI-encoded paths #

Hey @p4535992 ,
thanks for your work. My local branch was already a couple of commits ahead.
The feature "number of variant maps" was not ready yet and I had to do some more work on it.
#18 also did not work in my tests, so this this issue needs to be clarified some more.
I have to review the rest of your changes (the whole build system and scripts) and see how far I can integrate them into my workflow.
FYI: Scenery 1.2.0 with FoundryVTT v12 compatibility just released.

Ty for the hard work!


fix: drop user to main chat screen after onboarding

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/45094
PROPOSAL: https://github.com/Expensify/App/issues/45094#issuecomment-2218119524
Tests

User signs up for New Expensify on mobile app
Intent selection modal is shown
User clicks selection "Get paid back by my employer"
User enters name
Welcome video is shown
Verify that: user is dropped into main chat screen

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

User signs up for New Expensify on mobile app
Intent selection modal is shown
User clicks selection "Get paid back by my employer"
User enters name
Welcome video is shown
Verify that: user is dropped into main chat screen

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
https://github.com/user-attachments/assets/963a206f-baeb-4e7d-bafc-74dbd7187fef

Android: mWeb Chrome
https://github.com/user-attachments/assets/975a21da-f9c5-44f2-a0ea-ee843afb1aac

iOS: Native
https://github.com/user-attachments/assets/c0699f7d-1920-4bd3-9d0d-8c6b1ef5ef2e

iOS: mWeb Safari
https://github.com/user-attachments/assets/6d58a779-20f0-4061-8c55-af99ef6e2a2a

MacOS: Chrome / Safari
https://github.com/user-attachments/assets/db8b16de-b44e-416b-ab8d-3af40a892b31

MacOS: Desktop
https://github.com/user-attachments/assets/8c9e294d-15fa-4a07-9337-5aaa9781f3e0

@filip-solecki could you please review this PR given your context

Btw. I've tested it on newest main and on small screens I wasn't even once redirected to Concierge. I was always staying on Home screen.

https://github.com/user-attachments/assets/3eb55dc2-c473-4b3c-8bfe-cd2af07951b5

I am also not able to reproduce with the latest main.

@Pujan92 @daledah are you not able to reproduce the bug reliably in both cases - ExpensifyDM and the concierge chat?

@mountiny @filip-solecki Now I am able to reproduce the issue again. Basically, it gets navigated to the concierge sometimes and sometimes not. It seems to be reproduced when CompleteGuidedSetup API response(updating hasCompletedGuidedSetupFlow) is received before the OnboardingModalNavigator unmounts. So I think we should continue applying the fix in this PR.
https://github.com/user-attachments/assets/838ab0d7-d983-42e6-b533-f7970942e87e

@adamgrzybowski @WojtekBoman @filip-solecki can you review as well please? Thanks

Is there any reason to remove Report.navigateToConciergeChat();? Home doesn't have to be always the concierge page

Is there any reason to remove Report.navigateToConciergeChat();? Home doesn't have to be always the concierge page

As per the issue, we need to avoid entering into the Concierge chat and stay on the home route for the smaller screens. For that reason, we removed Report.navigateToConciergeChat();.

As per the issue, we need to avoid entering into the Concierge chat and stay on the home route for the smaller screens. For that reason, we removed Report.navigateToConciergeChat();.

And what about the wide layout? Should we redirect to the concierge chat?

No, it is added here for the transitioning issue. But now we use goBack to stay on the same opened chat report https://github.com/Expensify/App/issues/45094#issuecomment-2221604409.

The idea is that on mobile user will stay on the LHN and on wide layout in the report screen they will have the onboarding chat (either Concierge or the system DM)
@daledah @Pujan92 what are the next steps here, do we need to go back to the drawing board with the solution?

@mountiny For a wider screen we can keep the existing behavior of navigating to the Concierge chat due to the use case https://github.com/Expensify/App/pull/45705#issuecomment-2247554578 which isn't solved only with the goBack.
Thougths @filip-solecki @adamgrzybowski ?

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Bump @mountiny for the review!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

FYI I believe this was deployed to prod yesterday, from this checklist - https://github.com/Expensify/App/issues/47219


Improve Publish efficiency by avoid allocations.

Changes:

Abstract out Payload with a minimum fixed buffer of 8 bytes.  Anything larger goes into a Vec<u8>.
Standard conversions of standard types to Payload.
Use Cow<'static, str> for Publish topic to enable using constant strings as topics.

Sorry, since you don't have a rustfmt.toml, it messes up your formatting a bit.

As discussed in #11, I'm going to close this without benchmarks to show they speed things up.


ShardBlockHeader.body_root is generated without the length mix-in

Issue
Just found that some BLS-enabled tests are broken. (The CI is running with --disable-bls flag) Some issues showed up after I enabled BLS.

(Leftover of #1937) Since ShardTransition.shard_data_roots is gerenated with get_block_data_merkle_root, ShardBlockHeader.body_root should also be generated with get_block_data_merkle_root. Therefore, the signing roots of DOMAIN_SHARD_PROPOSAL should be generated with the header includes this shard block body root.
#1975 shows where we should use ShardBlockHeader to generate signing_root
Note that it would make  hash_tree_root(shard_block.message) != hash_tree_root(shard_block_header). If it is correct to do in this way, the question is: should we use hash_tree_root(shard_block.message) or hash_tree_root(shard_block_header) as the shard block root?
Shard block root is used as an identifier in many places. We may want to avoid having such a special case in the protocol. I wonder if there is a better solution to fix this trap. 🤔
/cc @djrtwo @dankrad

I think we need to preserve the invariant that hash_tree_root(signed_shard_block.message) == hash_tree_root(shard_block_header).
Can we do this by having a special SSZ list type that doesn't use mix-in?
Or maybe we should use a Vector here inside the consensus object but send a network version of the block that is type list (for bandwidth savings in the event that blocks aren't full) <-- or just rely on decent compression from snappy
cc: @protolambda

The CI is running with --disable-bls flag

We have a Milagro option now, maybe we should just enable it (and wait a little extra, unless phase1 testing is taking too long?)

Can we do this by having a special SSZ list type that doesn't use mix-in?

We definitely could. I am not sure if we should.

Or maybe we should use a Vector here inside the consensus object but send a network version

I prefer a new ssz type over divergence of the typing between the layers.
I'll go through the spec in more detail and see if there's another option.

Changing it to List will not be a problem other than that some Merkle proofs are going to be 32 bytes larger. No problem for the proof of custody or MPC-friendliness.

closing via #1980


codec(ticdc): avro decode float by using float32

What problem does this PR solve?

Issue Number: close #8490
What is changed and how it works?

parse mysql.TypeFloat by using float32

Check List
Tests

Unit test
Manual test (add detailed scripts or steps below)

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
Fix avro float type precision by using float32 to parse the data correctly

/run-all-tests

Do we need to update any docs?

yes, I will update the doc and link the issue

/merge

/run-dm-integration-test


ListPreference MenuMode question

Hi,
Sorry for this, I'm sure that this is something on my end, but I just realized that none of my ListPreferences are working since migrating to 1.0.0 from 0.8.1. Now I'm on 1.0.2.
listPreference.buildSimpleDialogAdapter(getActivity());
listPreference.setMenuMode(ListPreference.MENU_MODE_SIMPLE_ADAPTIVE);

This works, but I want to stick to the normal Alert Dialog style. If I change the menu mode to dialog or simple dialog then nothing happens when I click on the preference.
This is how I use it in my preferences.xml
<ListPreference xmlns:app="http://schemas.android.com/apk/res-auto"
            android:icon="?attr/icSettingsProfile"
            android:key="settingsId"
            android:title="@string/settings_choose_profile"
            app:asp_iconPaddingEnabled="false" />

And this is the theme:
<style name="AppThemeSettingsDark" parent="AppThemeDark">
        <!-- Used to theme preference list and items. -->
        <item<EMAIL_ADDRESS>        <item<EMAIL_ADDRESS>        <item<EMAIL_ADDRESS>        <item name="asp_preferenceIconTint">?colorAccent</item>
        <item name="asp_preferenceDialogIconTint">?asp_preferenceIconTint</item>
    </style>

 <style name="AppThemeDark.Dialog" parent="Theme.AppCompat.Dialog">
        <item name="colorPrimary">@color/dark_primary</item>
        <item name="colorPrimaryDark">@color/dark_primary_dark</item>
        <item name="colorAccent">@color/dark_primary_accent</item>
        <!--<item name="android:textColorHighlight">@color/secondary_text_default_material_dark</item>-->
    </style>

    <style name="AppThemeDark.Dialog.Alert" parent="Theme.AppCompat.Dialog.Alert">
        <item name="colorPrimary">@color/dark_primary</item>
        <item name="colorPrimaryDark">@color/dark_primary_dark</item>
        <item name="colorAccent">@color/dark_primary_accent</item>
        <!--<item name="android:textColorHighlight">@color/secondary_text_default_material_dark</item>-->
    </style>

Thanks!

Hi, I'm going to need a bit more. Those two lines of code alone and even in this order make no sense. If you could share a sample app that would be great, if not, I'll need at least the whole method where you use this. I'm also going to need you to better describe what is the expected and actual behavior.
Code in question:
listPreference.buildSimpleDialogAdapter(getActivity());
listPreference.setMenuMode(ListPreference.MENU_MODE_SIMPLE_ADAPTIVE);

What's ?attr/icSettingsProfile? I don't see this attribute defined in your theme.
You're not supposed to call buildSimpleDialogAdapter on your own, it's invoked by XpListPreferenceDialogFragment. You're supposed to subclass ListPreference and override it. I'm not sure what is your intention here, I'm going to need more information.

I just want a plain old ListPreference in material style. This was working fine until the buildapater was exposed in the lib (at least I think this might be the reason).
?attr/icSettingsProfile for sure is not a problem, its defined in the parent theme. I have listpreferences without icons and those don't work either.
As described above, I have a preferences.xml with a couple of preferences, including some listpreferences.
In my SettingsFragment I extend XpPreferenceFragment. I declare ListPreference listPreference. In onCreatePreferences2 I call addPreferencesFromResource(R.xml.preferences); and use listPreference = (ListPreference) findPreference("settingsId"); I load the values from a database with listPreference.setEntries() and listPreference.setEntryValues().
And that's it. That is how I used to use ListPreference from your library. But with the latest versions if I click on the listpreference then nothing happens. The dialog does not open. (onpreferenceclick is called, though)
However if I do the following:
listPreference.buildSimpleDialogAdapter(getActivity());
listPreference.setMenuMode(ListPreference.MENU_MODE_SIMPLE_MENU);

Then the simple menu dialog is opened, but unfortunately this is not what I want, I would like to see the normal alert dialog style, which does not work for me.
I hope this is clear, let me know if you need anything else. I'm sure I'm doing something wrong.

I just tested the following code in the sample app and it works as expected. Opens a material themed dialog with a title and radio buttons with no item pre-selected.
preference.xml
<ListPreference
    android:icon="@mipmap/ic_launcher"
    android:key="sync_frequency2"
    android:title="@string/pref_title_sync_frequency"
    app:asp_iconPaddingEnabled="false"/>

SettingsFragment.onCreatePreference2
    ListPreference sync_frequency2 = (ListPreference) findPreference("sync_frequency2");
    sync_frequency2.setEntries(new String [] {"1 hour", "2 hours"});
    sync_frequency2.setEntryValues(new String [] {"60", "120"});

If that doesn't work there must be something else wrong.

Thanks a lot for taking your time testing it, I really appreciate it. Based on this I tried to look elsewhere and it turned out that I made a mistake in onPreferenceDisplayDialog. As it has changed with the newer versions as well I had to migrate from onDisplayPreferenceDialog2 and I made an error there.
Now it works fine.


[Ready to Review] Feature/JSONAPI use source field in errors

Purpose
Changes formatting of a specific error to match new JSONAPI spec example rather than rolling our own solution.  References https://openscience.atlassian.net/browse/OSF-4419.
Examples of how to format errors under JSONAPI format are here: http://jsonapi.org/examples/.  In particular, there are examples of using source to point to which part of the request caused the error.  Before, it seemed like source field was just for query parameters causing the error.
Changes
For error formatting, when there was an issue with a particular field, we were nesting specific fields under meta and the error description under detail.

Instead, using source field, the same error is formatted this way:

A few small notes to be addressed, including making sure that tests won't fail randomly due to field order.
Pass 1 complete. I suggest that pass 2 be covered by someone familiar with the JSONAPI spec, to verify the desired format. Am I right to assume that this is the document describing the ponter field? http://tools.ietf.org/html/rfc6901

Correct.

Pass complete. Minor formatting requests (and a move from str to basestring is recommended), but while those are pending I'll move this along to CR2.

JSON API formatting looks correct to me.

Looks good. Merged into feature/apiv2.


Build Ferdi for freeBSD

Description
Fixes getferdi/sponsors-only#450
Motivation and Context
Screenshots

Checklist:

[x] My pull request is properly named
[x] The changes respect the code style of the project ($ npm run lint)
[x] I tested/previewed my changes locally

How does one run .freebsd files such as https://github.com/getferdi/ferdi/releases/download/v5.6.1-beta.1/ferdi-5.6.1-beta.1.freebsd?
I tried this:
FreeBSD% uname -v
FreeBSD 12.2-RELEASE r366954 GENERIC

FreeBSD% tar xfv ferdi-5.6.0.freebsd

FreeBSD% ./opt/Ferdi/ferdi
zsh: trace trap  ./opt/Ferdi/ferdi

Am I doing it wrong?

I'm so thankful that I'm not the only one who:
A. Got excited to see FreeBSD listed on Ferdi.
B. Has no idea what to do with a .freebsd or .uncompressed file.
Plz send instructions.

Two remarks:

The .freebsd file is just a compressed archive, as you can find out when checking it with file.
The archive contains, among other stuff, a linux binary of ferdi conveniently called ferdi that you are supposed to be running using the linux binary compatibility layer on FreeBSD.

I personally am still stuck at this point though because the binary complains error while loading shared libraries: libffmpeg.so which is surprising because it comes packaged together with precisely libffmpeg.so and ldd ./ferdi does actually show that libffmpeg.so is available.
I'd appreciate any suggestions.


TC196: deploy QSFS

Setting up/exporting the TWIN_ID and MNEMONICS, SSH Key
Setting up the required variables and provisioning the VM
As the result the output for the "metadata" is empty, only showing the ygg IP, but not able to SSH into the VM
The backend IP is only shown shen running "terraform destroy" then it specified which resources will be destroyed listing the backup.
Cannot see any output in the browser either when navigating to the ygg address

After the re-deployment there was an output in the metrics with the ygg address/9100/metrics, but the address is still unavailable on the Web, SSH is not available either with the message that the "Network is unreachable"


Cutting a new release?

Right now the scala-lang badge in README points to 0.10.1-jto which is monkey-patched by @jto.
https://index.scala-lang.org/propensive/magnolia/magnolia/0.10.1-jto?target=_2.12
Is it possible to cut a new release so we can stop using this workaround?

Sorry this is taking so long - I've been really short of time. I'll try to speak to @jto today and see if I can grant him some rights to help publish the release (or prepare everything apart from pressing the final button). We're both in the same place right now, so hopefully an opportunity will arise!

Hi @propensive @jto.
There was no release since a long time, and I'm waiting impatiently to use the new #152 feature in my swaggerify. Is there anything that I could help with? Some blocking issues?

Yes. Unfortunately magnolia appears to be falling behind on multiple fronts, so that depending on it (as I currently do in BORER starts becoming a liability.
@propensive Would you maybe like to declare "maintainer bankruptcy" and hand over stewardship to someone else completely? It'd be a shame, if magnolia simply withered away...

I've needed @RafalSumislawski 's feature in tapir as well (thanks Rafał! I think I need it in fact for the same purpose :) ), so I've published master as "com.softwaremill" %% "magnolia" % "0.11.0-sml", but only for scala 2.12 (http://repo1.maven.org/maven2/com/softwaremill/magnolia_2.12/0.11.0-sml/).
Hope you don't mind!

btw. important note - as TypeName has changed (it now has an additional constructor parameter), e.g. circe-magnolia-derivation no longer works - it would require a re-build & re-publish

My current plan is to, for now, internalize a (patched) copy of Magnolia in BORER, so I can fix a few issues and also cross-build for Scala 2.13.

If anyone needs a separate release of circe-magnolia based on alternative magnolia build - feel free to ping me, I'll make one :)

Released 0.11.0 for 2.12 and 2.13


Wheelroom field order

Sometimes, not clear when exactly, common fields get created lastly while they should be create firstly.
The title field in the example below should be listed first in both occasions.
npm run wr:cm -- --filter pageSection

Applying filter (componentName == pageSection)
Getting locales
Default locale: en-US
? Proceed creating Contentful models for these components:
pageSection? Yes
Creating or updating model pageSection =============
Found existing content type pageSection with version 1.0.0
Updating content type
Adding field variation
Adding field topics
Adding field topicOptions
Adding field text
Adding field navigation
Adding field actions
Adding field title
Setting model version to 1.0.0
Publishing content type
Fetched editor interface
Updating editor interface for field title
Updating editor interface for field variation
Updating editor interface for field topics
Updating editor interface for field text
Updating editor interface for field navigation
Updating editor interface for field actions
Updating editor interface for field topicOptions
Succesfully created model pageSection

Looks like this happens we all npm packages in the repo are sym-linked and not when packages are installed from the repo. Possibly a js-transpilation-compilation issue.
Anyway, a better, more secure way, of handling the field order would be nice to have.


Great work! And sharing our NaturalBench

I am Zhiqiu Lin, a final-year PhD student at Carnegie Mellon University working with Prof. Deva Ramanan. We found your work on NeurIPS'24 fascinating!
I wanted to share NaturalBench (NeurIPS'24 D&B), a collaborative project between CMU and the University of Washington, which might interest you:
NaturalBench (https://linzhiqiu.github.io/papers/naturalbench/) is a vision-centric benchmark that challenges vision-language models with pairs of simple questions about natural imagery. Unlike prior VQA benchmarks (like MME and ScienceQA), which blind language models (e.g., GPT-3.5) can solve, NaturalBench ensures such shortcuts won’t work. We evaluated 53 state-of-the-art models, and even top models like GPT-4o and Qwen2-VL fall 50%-70% short of human accuracy (90%+), revealing significant room for improvement.
We also found that current models show strong answer biases, such as favoring “Yes” over “No” regardless of the input. Correcting these biases can boost performance by 2-3x, even for GPT-4o, making NaturalBench a valuable testbed for future debiasing techniques.
Check out my Twitter post about it here: https://x.com/ZhiqiuLin/status/1848454555341885808.
🚀 Start using NaturalBench: https://github.com/Baiqi-Li/NaturalBench
Best,
Zhiqiu

Hi Zhiqiu,
Thanks for your interest in our work and the sharing on NaturalBench. ❤
We also observe such deficiencies in existing video-audio-language models (https://github.com/DAMO-NLP-SG/CMM), which aligns with findings in NaturalBench. We believe ensuring MLLMs not to follow shortcuts is critical for developing vision-centric models.
Will leave this issue open for now to involve others for discussions. 😊


used newer dockerfile, bumped pipfile to 3.10

Status
Ready/In Progress/In Hold (Reason for hold)
Related Content Pull Request
Related PR: link to the PR at demisto/content
Related Issues
Related: link to the issue
Description
A few sentences describing the overall goals of the pull request's commits.

This is still in progress by @ostolero


[Package Request]: Apple - additional software

Package Requested

[X] I would like someone else to build the manifest.
[X] I would like help so I can submit the manifest.
[X] I have performed a search and couldn't find this package.
[X] I have checked that the installer for this package is not a script file
[ ] I think there is a new version available and I have provided the URL.

Please provide the following information
Publisher: Apple
Publisher Url: apple.com
Package Name: Multiple
Description: Apple provides lots of other software, mostly drivers, for Windows as well as iTunes, and it would be convenient to install them with WinGet
Package Version: N/A
Installer URL: https://support.apple.com/downloads/windows
Current Package Identifier (for new versions):
???

did it!


(Question) All Direct3D versions

Do you plan to support all Direct3D versions?
This project is translating Direct3D 8 to Vulkan:
https://github.com/AlpyneDreams/d8vk

d8vk is in the process of being merged in to dxvk so d3d8 - d3d11 will be supported in the future. d3d8 is close enough to d3d9 that it kinda makes sense project wise to have it included. Below that it starts to make less sense so there isn't any interest in going futher.
d3d12 is handled by vkd3d-proton and below d3d8 by wined3d

That is not to say that people aren't welcome to fork and work on e.g. d3d7 if they would find that interesting, there is just no interest from the devs to have it merged in to here.

What Blisto said.

@Blisto91 sorry for necrobumping but from my understanding there's no point including DirectX/Direct3D < 8 because WineD3D is already mature enough and supports mentioned APIs just good and correctly? Since from my current understanding DXVK is kinda "temporary" "hack" to make games performant and the end goal is for wine to have all it but done accurately. Am I right?

Since from my current understanding DXVK is kinda "temporary" "hack" to make games performant and the end goal is for wine to have all it but done accurately. Am I right?

DXVK is neither a hack nor temporary. We do however not plan to support D3D versions older than D3D8.

@pm4rcin Yes, the WineD3D support for old Direct3D versions is mature but they don't convert the API calls to Vulkan (yet), I don't think it's technically necessary because the games from the epoch of these Direct3D versions are lightweight with recent hardware and Mesa3D has the Zink driver to run OpenGL above the Vulkan drivers.

@pm4rcin Yes, the WineD3D support for old Direct3D versions is mature but they don't convert the API calls to Vulkan (yet), I don't think it's technically necessary because the games from the epoch of these Direct3D versions are lightweight with recent hardware and Mesa3D has the Zink driver to run OpenGL above the Vulkan drivers.

I have read a bit and there seems to be some experimental Vulkan renderer for wine so future looks bright. As for performance of course it won't improve it much (probably).


Support for Sharded Redis Cluster

From what I can see, the redis adapter doesn't support sharded redis cluster setup.
Is there any plans to bring that missing piece on?
Sharded Redis cluster was added to address scaling issues in the existing redis cluster setup where all redis instances receive and emits messages to all peers in full mesh manner.
On the surface, it seems like the adapter will need to call slightly differently called methods: SSUBSCRIBE, SUNSUBSCRIBE and SPUBLISH.

@darrachequesne do you have a plan for it? If so, please share, maybe I can find time ;)

Another question on this topic, from the code it seems that the package utilizes the shard via the namespace. There is any reason why not to do it for rooms as well ?
Thanks!

Support for sharded pub/sub was added in version 8.2.0:
import { Server } from 'socket.io';
import { createClient } from 'redis';
import { createShardedAdapter } from<EMAIL_ADDRESS>
const pubClient = createClient({ host: 'localhost', port: 6379 });
const subClient = pubClient.duplicate();

await Promise.all([
  pubClient.connect(),
  subClient.connect()
]);

const io = new Server({
  adapter: createShardedAdapter(pubClient, subClient)
});

io.listen(3000);

@MatanYemini that's a good remark, we have added a subscriptionMode option to control the behavior of the adapter (which defaults to sharding by namespace and by room).
See: https://github.com/socketio/socket.io-redis-adapter/commit/d3388bf7b5b64ff6d2c25a874f4956273c8e3f58

Support for sharded pub/sub was added in version 8.2.0:
import { Server } from 'socket.io';
import { createClient } from 'redis';
import { createShardedAdapter } from<EMAIL_ADDRESS>
const pubClient = createClient({ host: 'localhost', port: 6379 });
const subClient = pubClient.duplicate();

await Promise.all([
  pubClient.connect(),
  subClient.connect()
]);

const io = new Server({
  adapter: createShardedAdapter(pubClient, subClient)
});

io.listen(3000);

@MatanYemini that's a good remark, we have added a subscriptionMode option to control the behavior of the adapter (which defaults to sharding by namespace and by room).
See: d3388bf

For anyone that is using socketio-redis-adapter and AWS elasticache redis, you'll want to ensure you are using the sharded adapter.
createShardedAdapter(pubClient, subClient);

Redis best practices AWS


[#401] CLI: conf ls | get | set

WIP: conf <ls | get | set>
In Progress

added support for new cli command - conf ls

TODO

[ ] add support for conf get
[ ] add support for conf set

@jesperpedersen PTAL

Yes, this looks correct.
Continue alongs these lines, add the get to configuration.h and transform the configuration into JSON (main and servers). Then do the filtering in cli.c
set will belong there too in the end

So, fork() in main.c with a call to pgmoneta_configuration_get_json() and so on

See _STATUS how to do it

@ashu3103 How is the get work going ?

@ashu3103 How is the get work going ?

I am able to get the main and servers configuration to cli in json only the filtering part is remaining.

No, CONF_GET only has the command - all filtering is done in cli.c

@jesperpedersen , I actually wanted a suggestion from you, After getting JSON configuration in cli we are stepping into process_result function (where read and print happens), so now the filtering should come somewhere in between reading and printing the response, in this case shall I create a new function filter_process_result (which read, filters and prints the response) or it has to be done in some other way?

@ashu3103 Yes, just create a new filter_process_result function that CONF_GET uses. CONF_GET is special anyway, because it will output the single result of the query, or an error.
So, read, transform and then filter is a good way forward

Yes, you do
  "Response": {
    "Configuration": {
      "pgmoneta": {

->
  "Response": {
    "Configuration": {

and
"primary": {

->
"Servers": {
      "primary": {

So, you would write
... conf get Servers.primary.host

to get that field.
Try and start with pgmoneta_json_to_string(struct json* object, int32_t format, char* tag, int indent) with FORMAT_TEXT and indent of 0
@Jubilee101 Other ideas ?

@jesperpedersen PTAL

You are missing some documentation - search for git grep pgmoneta-cli.
You are going in the right direction !

In case it helps, see this initial work for conf get https://github.com/fluca1978/pgagroal/commit/ea07bd4eae1aa81c80da66ce05302501f57f4148

@ashu3103 Actually, thinking some more about it we can just move everything to top-level, like
"Response": {
   "metrics": true,
   ...
   "primary": {
      "host": "localhost",
      ...
   }
}

Should be a simple change

I am a bit confused at this point, if we bring all the keys to the top level and if we query conf get host, the response will already have host: localhost (example) in its top-level. So, what exactly we expect in Response.

Also, can you tell me what is the need of bringing all the configuration to cli and do filtering at cli rather than at management handler of main.

This is the JSON reply from the server, so yes - you can do pgmoneta-cli conf get host and that will give you the value in struct configuration::host - e.g.
pgmoneta.conf
[pgmoneta]
host = mypgmoneta
...

[primary]
host = mypsql
...

pgmoneta-cli conf get host
mypgmoneta

pgmoneta-cli conf get primary.host
mypgsql

So, you just have to remove the Configuration and Servers nodes, and move the data "up"

Because then a client - other than pgmoneta-cli - can display the entire configuration with a single request

This is the JSON reply from the server, so yes - you can do pgmoneta-cli conf get host and that will give you the value in struct configuration::host - e.g.
pgmoneta.conf
[pgmoneta]
host = mypgmoneta
...

[primary]
host = mypsql
...

pgmoneta-cli conf get host
mypgmoneta

pgmoneta-cli conf get primary.host
mypgsql

Okay, but isn't that different from other commands which prints Header, Request, Response etc. (just confirming....)

So, you just have to remove the Configuration and Servers nodes, and move the data "up"

Yeah, that's done :+1:

I think we will keep the output formats for conf, so
pgmoneta-cli -F text conf get encryption
none

pgmoneta-cli -F raw conf get encryption
0

pgmoneta-cli -F json conf get encryption
{"encryption": "none"}

The CLI will only use the Response part for the conf command - Header and Request won't be displayed. So, it will be like my example above

I think we will keep the output formats for conf, so
pgmoneta-cli -F text conf get encryption
none

pgmoneta-cli -F raw conf get encryption
0

pgmoneta-cli -F json conf get encryption
{"encryption": "none"}

Yeah, this is better. Thanks!

Note, #416

@jesperpedersen PTAL

Currently we have
pgmoneta-cli -F text conf get encryption
encryption: none

pgmoneta-cli -F raw conf get encryption
{
  "encryption": 0
}

pgmoneta-cli -F json conf get encryption
{
  "encryption": 0
}

instead of
pgmoneta-cli -F text conf get encryption
none

pgmoneta-cli -F raw conf get encryption
0

pgmoneta-cli -F json conf get encryption
{"encryption": "none"}

For the first 2 we only need the value, not the key - and the last has to be a JSON_COMPACT format

I think for conf ls will use the same infrastructure as conf get.
So, conf ls will output
pgmoneta-cli conf ls
pgmoneta_admins.conf
pgmoneta.conf
pgmoneta_users.conf

But, you can also use
pgmoneta-cli conf get admins_configuration_path
pgmoneta-cli conf get main_configuration_path
pgmoneta-cli conf get users_configuration_path

to get the same output. For conf ls -F text and -F raw will be the same, and -F json will use the JSON_COMPACT format

@jesperpedersen, PTAL

Do a run with Debug with clang
    #1 0x7f12738e28f1 in pgmoneta_append src/libpgmoneta/utils.c:1165:15
    #2 0x7f12738e2c5c in pgmoneta_append_char src/libpgmoneta/utils.c:1186:11
    #3 0x7f127383f54d in get_retention_string src/libpgmoneta/configuration.c:3238:19
    #4 0x7f127383e618 in add_servers_configuration_response src/libpgmoneta/configuration.c:2107:83
    #5 0x7f127383c687 in pgmoneta_conf_get src/libpgmoneta/configuration.c:2144:4
    #6 0x56073b150c04 in accept_mgt_cb src/main.c:1186:10

    #1 0x7f9cda65bb6d in pgmoneta_json_create src/libpgmoneta/json.c:373:21
    #2 0x55e9e3f6783b in get_config_key_result src/cli.c:1688:8
    #3 0x55e9e3f673cb in filter_process_result src/cli.c:1604:8
    #4 0x55e9e3f6557d in conf_get src/cli.c:1543:8
    #5 0x55e9e3f63c9f in main src/cli.c:841:22

conf get looks ok apart from the leaks, but conf ls is stitll the same

conf get looks ok apart from the leaks, but conf ls is stitll the same

Ohh I forgot to make changes for ‘ls’, my bad
On it!

Once you are done with conf get then it is about conf set which is
pgmoneta-cli conf set key value

f.ex.
pgmoneta-cli conf set encryption aes

so that need to be translated before sent to the server to
Request: {
   "Key": "encryption",
  "Value": 0
}

and so on
Please, coordinate with @Jubilee101 in case there are something that can be improved...

Do a run with Debug with clang
    #1 0x7f12738e28f1 in pgmoneta_append src/libpgmoneta/utils.c:1165:15
    #2 0x7f12738e2c5c in pgmoneta_append_char src/libpgmoneta/utils.c:1186:11
    #3 0x7f127383f54d in get_retention_string src/libpgmoneta/configuration.c:3238:19
    #4 0x7f127383e618 in add_servers_configuration_response src/libpgmoneta/configuration.c:2107:83
    #5 0x7f127383c687 in pgmoneta_conf_get src/libpgmoneta/configuration.c:2144:4
    #6 0x56073b150c04 in accept_mgt_cb src/main.c:1186:10

    #1 0x7f9cda65bb6d in pgmoneta_json_create src/libpgmoneta/json.c:373:21
    #2 0x55e9e3f6783b in get_config_key_result src/cli.c:1688:8
    #3 0x55e9e3f673cb in filter_process_result src/cli.c:1604:8
    #4 0x55e9e3f6557d in conf_get src/cli.c:1543:8
    #5 0x55e9e3f63c9f in main src/cli.c:841:22

Fixed, PTAL

pgmoneta-cli -c pgmoneta.conf -F text conf ls
admin_configuration_path: ''
main_configuration_path: pgmoneta.conf
users_configuration_path: pgmoneta_users.conf

pgmoneta-cli -c pgmoneta.conf -F raw conf ls
{"admin_configuration_path":"","main_configuration_path":"pgmoneta.conf","users_configuration_path":"pgmoneta_users.conf"}

pgmoneta-cli -c pgmoneta.conf -F raw conf ls
{"admin_configuration_path":"","main_configuration_path":"pgmoneta.conf","users_configuration_path":"pgmoneta_users.conf"}

-F text and -F raw should only be the value -- they should both be the same

pgmoneta-cli -c pgmoneta.conf -F text conf ls
admin_configuration_path: ''
main_configuration_path: pgmoneta.conf
users_configuration_path: pgmoneta_users.conf

pgmoneta-cli -c pgmoneta.conf -F raw conf ls
{"admin_configuration_path":"","main_configuration_path":"pgmoneta.conf","users_configuration_path":"pgmoneta_users.conf"}

pgmoneta-cli -c pgmoneta.conf -F raw conf ls
{"admin_configuration_path":"","main_configuration_path":"pgmoneta.conf","users_configuration_path":"pgmoneta_users.conf"}

-F text and -F raw should only be the value -- they should both be the same, so

pgmoneta.conf
pgmoneta_users.conf

But that way how one's gonna figure out which file is for which configuration path?

For conf get both -F text and -F json doesn't translate.

Strange, the current logic is translating fields for me.

-F raw conf get is ok

Can you send me the output at your end

Strange, the current logic is translating fields for me.

Check the Header - the Compression and Encryption fields

This must be at the pgmoneta side and not the cli side because we are not using translations at server's side only client side responses are translated

The conf get XYZ is ok with translation -- its the conf get command w/o the XYZ

The conf get XYZ is ok with translation -- its the conf get command w/o the XYZ

Ohh, okay I'll fix that

@jesperpedersen, PTAL

It is weird,
-F text conf get
  Compression: none
  Encryption: none

-F raw
    "Compression": 2,
    "Encryption": 0,

-F json
    "Compression": "gzip",
    "Encryption": "none",

Where is 2 and gzip coming from ? I didn't specify a -C option...

@jesperpedersen Check now, actually I swapped compression and out_format while calling pgmoneta_management_request_conf_get and pgmoneta_management_request_conf_ls, my bad

@ashu3103 Yes, this looks good !
So, next is set which always key and value as arguments. Those get put into ConfigKey and ConfigValue in the Request part.
We could just output the input as the result - extracted from Response so
-F raw conf set entryption 0
0

-F text conf set entryption none
none

-F json conf set entryption none
{"encryption": "none"}

@jesperpedersen PTAL

pgmoneta-cli -c pgmoneta.conf -F json conf set unknown aes-256

need to return an error response

@jesperpedersen PTAL
Also are there any docs which provide a descriptive idea about the error code to the client, if not can we add that too in this or another PR or we can add the description of the error code in the outcome field of the response itself.
Thoughts?

pgmoneta-cli conf get unknown

doesn't work

Also are there any docs which provide a descriptive idea about the error code to the client, if not can we add that too in this or another PR or we can add the description of the error code in the Outcome field of the response itself.

We need a chapter in the manuals about it, but it is separate from this pull request I think

pgmoneta-cli conf get unknown

doesn't work.
-F text and -F raw should give Error, -F json should give {"Outcome": false}

This can be only possible if we generate the error messages in cli.c because from main we will always get a response with whole json configuration and since we are filtering in cli we have to create error response explicitly.

I passed in unknown as the key, so that shouldn't resolve to anything

I passed in unknown as the key, so that shouldn't resolve to anything

Yeah, so it will not be displaying anything except
pgmoneta-cli: No connection to pgmoneta on /tmp/
which is displayed because exit_code is 1.

Yes, but if you can't resolve unknown then the user still need a valid response

Yes, but if you can't resolve unknown then the user still need a valid response

Understood, will be sticking with this format of output.
-F text and -F raw should give Error, -F json should give {"Outcome": false}

You can keep the exit code of 1 as well

It says
Error
pgmoneta-cli: No connection to pgmoneta on /tmp/

we don't need the last line -- only if there is no connection to pgmoneta

It will appear as long as we have exit_code = 1 because of this section of code
   pgmoneta_disconnect(socket);

   if (configuration_path != NULL)
   {
      if (matched && exit_code != 0)
      {
         warnx("No connection to pgmoneta on %s", config->unix_socket_dir);
      }
   }

Better move that warnx to another part of the code

Log the warn when you know what it is... in this case we have a connection to pgmoneta - but the error was client side

If it isn't clear - just remove the code for now

If it isn't clear - just remove the code for now

Okay so I'll comment it for now.

If it isn't clear - just remove the code for now

Done

./pgmoneta-cli -c pgmoneta.conf -F XYZ conf set unknown aes

is still wrong

./pgmoneta-cli -c pgmoneta.conf -F XYZ conf set unknown aes

is still wrong

I am getting:
Header:
  ClientVersion: 0.15.0
  Command: conf set
  Compression: none
  Encryption: none
  Output: text
  Timestamp:<PHONE_NUMBER>4310
Outcome:
  Error: 2204
  Status: false
Request:
  ConfigKey: unknown
  ConfigValue: aes
Response:
  ServerVersion: 0.15.0

For conf set where the errors are coming from main, I am displaying the error in Outcome

./pgmoneta-cli -c pgmoneta.conf -F text conf set unknown aes

should give
Error

./pgmoneta-cli -c pgmoneta.conf -F raw conf set unknown aes

should give
Error

./pgmoneta-cli -c pgmoneta.conf -F json conf set unknown aes

should give
{"Outcome": false}

./pgmoneta-cli -c pgmoneta.conf -F text conf set unknown aes

should give
Error

./pgmoneta-cli -c pgmoneta.conf -F raw conf set unknown aes

should give
Error

./pgmoneta-cli -c pgmoneta.conf -F json conf set unknown aes

should give
{"Outcome": false}

okay

Rebased, and merged.
Thanks for your contribution !


Identifiers validation failed for dataset Biodiversidad de moluscos opistobranquios (Mollusca: Opisthobranchiata), del Pacífico mexicano: Isla Cedros-Vizcaíno

Identifier validation failed for the dataset Biodiversidad de moluscos opistobranquios (Mollusca: Opisthobranchiata), del Pacífico mexicano: Isla Cedros-Vizcaíno:

Crawler attempt: 267
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 1920
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 67%, total records count 1919, absent records count 1280
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3073335/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Biodiversidad de moluscos opistobranquios (Mollusca: Opisthobranchiata), del Pacífico mexicano: Isla Cedros-Vizcaíno : https://doi.org/10.15468/izplas.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset Biodiversidad de moluscos opistobranquios (Mollusca: Opisthobranchiata), del Pacífico mexicano: Isla Cedros-Vizcaíno:

Crawler attempt: 270
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 1920
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 1919, absent records count 1919
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3094225/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Biodiversidad de moluscos opistobranquios (Mollusca: Opisthobranchiata), del Pacífico mexicano: Isla Cedros-Vizcaíno : https://doi.org/10.15468/izplas.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.


Fix premature (and incomplete) HTML-escaping of links

This fixes three bugs:

links were being premature HTML-escaped (when being parsed into AST) ( #394 )
image directive was double-escaping target links, and
image directive wasn't escaping src links at all.

Same idea as the fix in #393 - move the HTML-escaping out of the parse and into the rendering.
Tests updated to catch all three bugs.
You can merge this and #393 in any order (no merge conflicts either way).

Thanks for this PR. I locally checked out the branch to check its effect in my sphinx-build usecase. This indeed fixes the issue, so that is much appreciated!

And additionally, https://github.com/lepture/mistune/pull/393 fixes another issue I encountered only recently. Thanks for these very helpful contributions!


About training

Hello, I follow your run_unsup_example.sh to train SimCSE.
I got the following errors in SentEval. Can you give me a guide how to fix it?

i found the same problem, have you already solved it?

It seems that the python version might be too new for the code calling inspect. Maybe try Python < 3.9?

I had the same issue, even with Python 3.8. Changing inspect.getargspec to inspect.getfullargspec should solve the issue.


Disable traffic replay to Integration

...during data replication.
We are trying to reduce unnecessary Sentry errors, and one of those
ways is to disable traffic replay whilst the data sync is happening.
We manage traffic replay with our puppet class govuk_gor, setting
the Puppet data_sync_in_progress fact to true ensures that Puppet
does not try to run it until the data sync has completed.
Trello card: https://trello.com/c/tfBZywz4/1188-disable-the-traffic-replay-to-integration-and-staging-during-data-replication

I'm slightly surprised to see something that looks like support for this in govuk-puppet already... do you know why the existing configuration doesn't seem to be working?


Troubleshooting  DiskPressure

I'm curious about troubleshooting disk pressure, let's suppose if an alarm is triggered for high disk utilization on a worker node and logs are getting rotated and kubelet is up and running, in this situation do we have to delete anything manually or the node heals itself?
any suggestions, please

The kubelet will proactively evict greedy pods to prevent starvation; and in general you shouldn't need to intervene or modify the default thresholds to keep your cluster healthy. However, the cause of disk pressure is almost always related to your specific workload, and you may need to tune your cluster accordingly. You can read more in the Kubernetes documentation.


Fix broken build on Go 1.23

github.com/grafana/pyroscope-go/godeltaprof dependency prevents coroot from building with Go 1.23. This is solved by bumping the version to more recent one. ( https://github.com/grafana/pyroscope-go/issues/117 )
fixes #356

Added changes from go mod tidy to the commit.

@errnoh, thank you!


EOBS surface_downwelling_shortwave_flux_in_air

Closed in favor of: https://github.com/pangeo-forge/staged-recipes/pull/169


Candies getting repeated on leaderboard

Description
On the leaderboard, If you get a candy twice, your name is repeated twice on the leaderboard. So, instead of

shouldn't it be

?
Steps to Reproduce

Get two candies in #seasonalbot-commands and then do .candy
Expected Behaviour

I expected to get two candies and not appear on the leaderboard twice
Actual Behaviour

I appeared on the leaderboard twice
Known Impacted Platforms

[X] Web
[ ] Desktop
[ ] Android App
[ ] iOS App

Possible Solutions

None
Would you like to implement a fix?
Note: For high-priority or critical bugs, fixes may be implemented by staff.

[ ] I'd like to implement the bug fix
[X] Anyone can implement the bug fix

I have played around with this a bit and would like to work on it, can I get assigned?


Notify user when vlc isn't installed and open a download dialog

https://github.com/caprica/vlcj/tree/vlcj-4.x

Not required anymore due to removal


URL for parameters in monitoring tab

When you click on the parameters in the monitoring tab, some of the links refreshes the screen instead of going to the station page.

Updated the code and database -- now, in sync with backup database.


Text control for Guid

Feature Type
[ ] Clarity Port
[X] Enhancement
Description
Would it possible to introduce a Text control for Guid field types? While I don't believe there is an out of box Guid control within Microsoft.AspNetCore.Components.Forms, but perhaps leveraging InputBase<Guid?> and some sort of text input mask, this could be possible?
I've done some experimenting to no avail, I'm far from a control developer. While I understand our view model could translate Guid to string and vice-versa, I'm curious if we'd be able to keep the domain model in its pure form.
Cheers!

Here's a sample control that is functional but far from complete. I was going to try and overlay Blazority styling on it, but that looks like it might be a bit more involved than I thought.
Note that the overridden InputBase methods "FormatValueAsString(T)" and "TryParseValueFromString(String, T, String)" don't actually seem to do anything - placing breakpoint or throwing exceptions within them do not result in anything... it seems some other mechanism is handling the conversion contrary to documentation. I've submitted a bug about this here https://github.com/dotnet/aspnetcore/issues/41072 but nonetheless it is functional with the Guid field on the model, just we don't have much control over how the control is parsing the value to string (i.e. if we wanted braces to be shown).
Hoping that provided this, you might be able to whip something together more quickly than I can with the limited access to source / symbols.
@using System.Diagnostics.CodeAnalysis
@using Blazority
@using Blazority.Internal
@using System.Linq.Expressions
@using Microsoft.AspNetCore.Components.Forms
@inherits InputBase<Guid>
@implements IFormControl<Guid>

    @if (!string.IsNullOrWhiteSpace(Label))
    {
        @Label
    }
    <input class="form-control @CssClass @ControlCol" id="@Id" @bind="@CurrentValue" />

        @*<ValidationMessage For="@ValidationFor" />*@

@code {

    public TextGuid()
    {
        int next = new Random().Next(9999, 99999);
        Id = $"input-{next}";
    }

    [Parameter] public string? Id { get; set; }
    [Parameter] public string? Label { get; set; }
    [Parameter] public string? HelpText { get; set; }
    [Parameter] public string LabelCol { get; set; } = "clr-col-12 clr-col-md-2";
    [Parameter] public string ControlCol { get; set; } = "clr-col-12 clr-col-md-10";
    [Parameter] public bool Disabled { get; set; }
    [Parameter] public Expression<Func<Guid>> ValidationFor { get; set; } = default!;

    public bool Invalid
    {
        get
        {
            if (!Disabled && base.EditContext != null)
            {
                return base.EditContext.GetValidationMessages(base.FieldIdentifier)?.Any() ?? false;
            }

            return false;
        }
    }

    protected override string FormatValueAsString(Guid value)
    {
        return value.ToString("B");
    }

    protected override bool TryParseValueFromString(string? value, out Guid result, out string validationErrorMessage)
    {
        Guid innerResult;

        if (Guid.TryParse(value, out innerResult))
        {
            result = innerResult;
            validationErrorMessage = string.Empty;
            return true;
        }
        else
        {
            result = default!;
            validationErrorMessage = "Unable to parse GUID from string input.";
            return false;
        }
    }
}

Some thoughts - maybe if you modified Blazority.TextControlBase to be generic and inherit from InputBase.
public class TextControlBase : InputBase
Existing implementations would need to update their inheritance from ": TextControllerBase" to ": TextControllerBase", however this would broaden the opportunity for implementing this base class. The Blazority.TextBase class would likely need to become generic as well, with the Blazority.Text class inheriting a TextBase.
With all of this in place, then creating a TextGuid control as follows wouldn't be too difficult.
public class TextGuid : TextBase


Fix how we handle public inputs in Tube circuit

We currently just add some (correct amount of) public inputs as new variables to the builder when constructing the Tube circuit. However, we need to set witnesses (from the folding proof) to be public inputs instead.

@Rumata888 can you add more details here? I recall you thinking this was tricky, potentially relevant internal thread:  https://aztecprotocol.slack.com/archives/C01CGB1KUN4/p1719509364209889

There are two problems right now:

Recursive verifiers take a vector of field elements as inputs, construct the transcript from them and only after that recursively verify the proof. The current architecture doesn't allow checking the correctness of those field elements (that the transcript in the decider corresponds to the Translator transcript, for example). We don't have access to those elements in circuit field form, so we can't set that as public input
The concept of the public input of the circuit and the context of results of the folding  proof differ. It is ambiguous right now in the protocol what we want the Tube to present as public inputs. If the public inputs are just the public inputs of the last folding proof then it can become a problem, because technically two folding proofs can have the same public inputs and if we export just those it might not be possible to correctly pick the original ClientIVC proof that produced those. So technically what we need to export is probably at least the folding proof transcript. Maybe we need to show everything that we are recursively verifying as public inputs.

Aside from the security caveats above, this is a basic description of what needs to be done to pipe the right public inputs into the base rollup:
The base rollup circuit needs to perform some checks on the public inputs of the tail private kernel. With the Honk integration / introduction of the Tube circuit, the public inputs connection was broken. What needs to happen is roughly the following:

a ClientIvc Proof contains a FoldProof which contains the explicit public inputs of the final circuit in the IVC (kernel tail or whatever)
These public inputs are extracted in the ProtoGalaxyRecursiveVerifier  (part of the ClientIvc recursive verifier, aka the tube) where they become private witnesses by default
These witnesses must be explicitly converted to public inputs in that circuit (e.g. builder->set_public_input(pub_input.get_witness_index()) )
This will result in those public inputs being explicitly added to the Tube circuit proof which gets sent to the base rollup circuit
The base rollup circuit extracts the public inputs from the proof and uses them for Azteky checks as needed

@ledwards2225 this will be closed by an upcoming PR of @sirasistant right? Or will that PR only pave the way for a final PR to fix this issue?

This is unrelated to any ongoing work - I think you're thinking of the linking of the public inputs between noir witnesses and the witnesses in the recursive verifiers which is indeed completed by Alvaros recent merge but incidentally was never needed in the first place since the databus replaced the pub inputs.