Use real implementation of a mocked function

Hi,
I faced the problem that from one side I want to mock standard library function, in this case it is memset ( the module under test is using it); on the other side I want to use the memset real implementation in my unit test code.
I am trying to mock memset from embedded standard library for our ARM target and I want to use memset implementation for host PC (gcc) in my test code.
Is it possible?
I am using:
Ceedling => 1.0.0-a1e6b24
       CMock => 2.5.4
       Unity => 2.6.0
       CException => 1.3.4

Thanks in advance!

I see two possible (slightly different) interpretations in your question and I'm not sure which you're asking, so I'll answer both.
ANSWER 1:
If you're talking about building a single unit test module which uses both the real memset AND a mocked memset from within the first test, it's not possible. The linker can only link against one copy of memset, so there isn't a way to differentiate the two.
There IS a common workaround, though. For the memset that your ARM target is using, if you're able to tweak the source code, people often create a thin header file wrapper for some of their standard libraries. For example, the header file might be called system.h and it might include something like this:
#ifdef TEST
void MEMSET(void* ptr, int x, size_t n);
#else
#include "stdlib.h"
#define MEMSET memset
#endif

Instead of including stdlib.h and using memset in most of your code, you can instead include system.h and use MEMSET. When compiling for release, it's going to work exactly the same as usual. It'll include stdlib automatically for you and use the standard library memset. During tests, it will instead use the function definition above, which is mockable... so you can include mock_system.h and then use MEMSET_Expect etc.
Often, this resolves the problem competely in that places that call memset during a test will still be calling the real one, and others are now calling the mockable MEMSET. If you're still in a situation where part of your code wants a "real" MEMSET and part wants a mock, you can use CMock's stubbing features to direct the calls to either test code or memset.
Make sense?
ANSWER 2:
It might be that you were just asking if some tests can mock memset while others use the real memset... In that case, this all gets simpler. You can divide those tests into different test files. In the test file which wants to use the real memset, include stdlib.h. In the other, include mock_stdlib.h. Each test file is compiled separately, so it's not a problem.
I hope one of these is helpful. If I'm off the mark or have missed a detail, just say the word!  :)

Thanks you for the detailed explanation, the ANSWER 1 is my scenario.
I understand the solution, the only problem I have with it is that it requires quite a bit of overhead and source code modification. I was thinking that maybe the original function is available through some other symbol (like in --wrap in gcc), but I see that cmock does not work at the linker level.
Probably, the preprocessor is the only solution then. I am just thinking if I can leave the code untouched and only replace the header files, just an idea:
In application code:
#ifdef TEST
#include "test_string.h"
#else
#include "string.h"
#endif

In the test_string.h:
#ifndef TEST_USE_ORIGINALS
#define memset test_memset
#endif

void * test_memset(void *s, int c, size_t n);

And finally in the test file:
...
#define TEST_USE_ORIGINALS
#include "mock_test_stdlib.h"
...

Something like that will also work. In any case, it's work-arounds. :)


Add release pipeline

Release to npmjs and possibly to also spring artifactory npm repo.

First release is going to be manual and then we start playing with a release from a pipeline.


Amazingly simple video explanation

Thank you, Microsoft!
Super easy fix and the explainer video was fantastic. I am very impressed. Thank you!

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

ID: b5d2d805-50e5-3494-6388-2497d973a080
Version Independent ID: 63166523-8137-7d97-045f-811f884bb991
Content: Error AADSTS50011 - The reply URL specified in the request does not match the reply URLs configured for the application. - Active Directory
Content Source: support/azure/active-directory/error-code-AADSTS50011-reply-url-mismatch.md
Service: active-directory
Sub-service: app-mgmt
GitHub Login: @genlin
Microsoft Alias: genli

@agwtahoe Thanks for your feedback. I am very glad that you like our works.


This repository needs CI

Early experiments in https://github.com/dfinity/ic-hs/pull/2, but without a nix cache not sustainable. And ideally a smarter runner (hydra, hercules ci) would be used.

Now with nix cache. It builds most of the stuff, but running ic-ref-test aborts in unclear ways. Out of memory maybe?


Use ConcurrentHashMap in place of HashMap for NewAccumulator.originals

What changes were proposed in this pull request?
This PR proposes to use ConcurrentHashMap in place of HashMap for NewAccumulator.originals
This should result in better performance.
How was this patch tested?
Existing unit test suite
@cloud-fan

Test build #57325 has started for PR 12776 at commit f8eb88e.

Test build #57325 has finished for PR 12776 at commit f8eb88e.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57325/
Test PASSed.

Test build #57334 has started for PR 12776 at commit 3754218.

Test build #57338 has started for PR 12776 at commit 2103175.

Test build #57338 has finished for PR 12776 at commit 2103175.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57338/
Test FAILed.

LGTM, can you create a JIRA for it?

Test build #57339 has started for PR 12776 at commit 90a1432.

Test build #57339 has finished for PR 12776 at commit 90a1432.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57339/
Test FAILed.

Test build #57340 has started for PR 12776 at commit cffbc13.

Test build #57342 has started for PR 12776 at commit c6d2a15.

Test build #57334 has finished for PR 12776 at commit 3754218.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57334/
Test PASSed.

Test build #57344 has started for PR 12776 at commit ff8ed2c.

Test build #57340 has finished for PR 12776 at commit cffbc13.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57340/
Test FAILed.

Test failure was not related to the patch:
[info] - analyze MetastoreRelations *** FAILED *** (483 milliseconds)
[info]   3426 did not equal 11624 (StatisticsSuite.scala:83)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   at org.scalatest.Assertions$class.newAssertionFailedException(Assertions.scala:500)
[info]   at org.scalatest.FunSuite.newAssertionFailedException(FunSuite.scala:1555)

Test build #57342 has finished for PR 12776 at commit c6d2a15.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57342/
Test PASSed.

Test build #57344 has finished for PR 12776 at commit ff8ed2c.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57344/
Test FAILed.

Jenkins, test this please.

Test build #57347 has started for PR 12776 at commit ff8ed2c.

Test build #57347 has finished for PR 12776 at commit ff8ed2c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/57347/
Test PASSed.

Thanks, merging to master!


run EspressoTestForFlavor2 says No Tests were found

Process finished with exit code 1
Class not found: "com.example.android.testing.blueprint.ui.espresso.EspressoTestForFlavor2"Empty test suite.

Couple of weeks reported this bug. https://code.google.com/p/android/issues/detail?id=202686

Is this still an issue in Android Studio 2.2? Also please make sure you do run your tests as instrumentation tests and not as jvm tests. Android Studio sometimes gets confused about the type of test to run and accidentally show the context menu for local jvm tests.

It works for me.

From command line, connectedFlavor2DebugAndroidTest works.
From Android Studio, you need to specify the variant you want to use in the Build Variants window.

I just updated all the versions, so try again in any case.


Clean architecture newER

Fixed Structure.
Fixed Naming.
Introduced new classes/files we need to have.
Got stuck in implementing some of those ideas; need to work together.
If seen appropriate, let's merge this and work on it.

.save() should not be used within use cases. We need to be able to reach data processed by Use Case outside and only then we should save data.

Nice that the error no longer appears.
With regards to the new bump in the road, I will work on the front end side of that error within the coming days.
For future reference, I recommend keeping commit messages shorter and rather commenting on the pull request about what you changed so that the commits remain straightforward.
Great job on this progress!

Comments after Thurs 17 Nov TLI session: we do not necessarily need input/output boundary as the endpoints in the controllers are literally the input/output boundaries. So it is perfectly fine for the Controller to call the Use Case Interactor directly instead of an input/output data boundary as long as the Use Case Interactor does not know about the existence of a Controller.
We should add comments to the entities schema file - technically, because we are so reliant on MongoDB and the mongoose schema wrapper, this isn't clean. However, because this is a MERN app, it is focused on MongoDB. Ideally, we would create an abstract class or something for an entity and implement the class in Mongo in a data persistence layer, possibly not even using Mongoose schema. However, this is too much work and it's not feasible given the scope of our project (need to alter every file in the backend).

Need to implement testing for use cases.


allow constructor customization of complex enum variants

This is an (experimental) idea I had to support customization of the macro generated constructors for complex enum variants.
This allow placing the the #[pyo3(signature = ...)] attribute on complex enum variants and applies it to the generated constructor.
This way all the normal functionality of signature customization can also be applied for these generated constructors.
What I'm not completely sure about is whether we should reuse the signature name here, or whether we should have have some kind of alias like #[pyo3(constructor = ...)]. On one hand people are already familiar with how signature works, but using it on an enum variant (or anything that's not a function for that matter) is not so intuitive.
Closes #4109

I like this idea! I'll try to review the full code tomorrow, though I have some initial thoughts about how this extends:

it would be awesome to support something like this for #[pyclass] to automatically generate the #[new] in that case too. Is signature the right name in that case? I feel like constructor, new, or even init might be stronger choices when it's adding a function to the class?
re signature vs constructor, the only conflict I can think of is that we might want to allow users to do something like constructor = "some_func" in cases where the auto-generated constructor isn't enough. Or maybe we should have #[new(My variant)] in #[pymethods] for that case, if that's technically viable?

it would be awesome to support something like this for #[pyclass] to automatically generate the #[new] in that case too. Is signature the right name in that case?

Yeah, that came up in https://github.com/PyO3/pyo3/issues/4109#issuecomment-2082181122 too. I think that extension is a good argument to go with a more descriptive keyword for that context.

re signature vs constructor, the only conflict I can think of is that we might want to allow users to do something like constructor = "some_func"

Hmm, interesting idea. It might be pretty tricky to guarantee that the correct variant is constructed if we open this for users.

re signature vs constructor, the only conflict I can think of is that we might want to allow users to do something like constructor = "some_func"

Hmm, interesting idea. It might be pretty tricky to guarantee that the correct variant is constructed if we open this for users.

Ah, very true, I guess we probably cannot, which is a good reason not to add that. And they can always add their own #[staticmethod] or #[classmethod] which constructs the variants anyway.

I've added to the complex enum section of the guide and put the attribute in the pyclass options table. Is there any other place where we want to mention this?

@davidhewitt, @Icxolu thank you for implementing this!


website

Current dependencies on/for this PR:

main

PR #30   👈

This stack of pull requests is managed by Graphite.


docs: modifying volumes guide to remove ambiguity. Signed-off-by: And…

…re Granovsky<EMAIL_ADDRESS>Adjusted as per comment.
Rebase and squash by moxigirl
Carry and Close #17453
Signed-off-by: Andre Granovsky<EMAIL_ADDRESS>

@thaJeztah if you want to LGTM and merge this...

Thanks @moxiegirl and @tonov!
LGTM


WIP: Update API to json2csv version 4

Work in progress for issue opencollective/opencollective#1777

That's a start! Just for next time, no need to create a PR in this state, there is no difference with https://github.com/opencollective/opencollective-api/pull/1713

Closing for lack of activity and a new open PR fixing it. https://github.com/opencollective/opencollective-api/pull/1783


Dockerize the app for easy development.

At them moment, we have some configuration hardcoded in the app, which is not so good practise IMO.
If we can dockerize the application we can have the benefits of:

Having an image that have all the dependencies of the app baked in and ready to be deployed in a container running inside docker.
Use docker-compose to run docker-compose up on dev machine which spins up the app in a container and mongodb and other dependent component without any effort. The app receives the configuration of mongodb (host, port etc) via env vars which be also be setup in docker-compose.
On production, we can deploy the app in an image using one of the 100 options available (Heroku docker deplyments, AWS ECS service, Kubernetes on any cloud etc)

Let me know your thoughts on these.

Good issue!
I was just looking into docker images and how dockerising bots makes it more efficient(something to do with uptime I think).
Would be great if you help out.
I have currently labeled this under v1.1 as in v1.0, I plan on finishing commands and then move to cogs in 1.1, where we can also pick up docker-containers. You could help with this in the meantime tho
👍 :

@all-contributors add @anubhavcodes for ideas


Upgrade outreach servers for new apps

These changes are deployed successfully on workshop, outreach and ome-training-4 servers.
cc @manics @jburel

 [WARNING]: - idr.idr-jupyter was NOT installed successfully: - sorry,
655idr.ansible-role-idr-jupyter was not found on https://galaxy.ansible.com.
656
657ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
658An error occurred during the test sequence action: 'dependency'. Cleaning up.

idr-jupyter will need to become idr_jupyter.

Do we have --depends-on any more or do we have to merge #238 first?


Don't warn about actions that require scripting support in Catalog.parseDestDictionary

Now that we have scripting support, warning about e.g. JavaScript actions doesn't seem necessary anymore. Especially considering that scripting-related actions are/will not be parsed by the Catalog.parseDestDictionary method anyway, since it's intended for handling "simple" actions.

/botio unittest

Good idea!


No op gvt restore

When I tried to add a dependency with my gvt, I got a huge delta.
So I decided to run gvt restore on master to see what I got. This is it.

We talked about this in the London office. Here are the highlights:

not necessary for getting #2061 in
in the past, people (esp. @tomwilkie) have manually:

deleted unnecessary files after vendoring (e.g. the fuzzing corpus of go-fuzz)
explicitly vendored in our transitive dependencies and deleted the vendor / Godeps directories from our vendored dependencies

gvt itself has probably changed what it decides to pull in, and how


Initial features

This is v1 of the YT Shrinker. Just getting the original script and readme up.

Looks good?

Yea, looks good Ben.

Thanks, Ben!


Added new icon: filetype-zip.svg

This change: (check at least one)

[x] Adds a new feature
[ ] Fixes a bug
[ ] Improves maintainability
[ ] Improves documentation
[ ] Is a release activity

Is this a breaking change? (check one)

[ ] Yes
[x] No

Is the: (complete all)

[x] Title of this pull request clear, concise, and indicative of the issue number it addresses, if any?
[x] Test suite(s) passing?
[ ] Code coverage maximal?
[ ] Changeset added?

What does this change address?
Added one new file that contains the SVG for the new ZIP filetype, to be used in the "Images to ZIP" export option in the workspace SPA.
Additional context
Associated with PLATO-2415, adding the "Images to ZIP" option to the dropdown menu.

We may also need to update the icons.json file and update the changelog like what we did here: https://github.com/ithaka/pharos/pull/339/files


Implement analyze skipping index statement

Description
Add ANALYZE SKIPPING INDEX statement. This returns recommendation for skipping index based on following rules.

All top-level columns are selected
PARTITION algorithm is recommended for partition columns
MIN_MAX algorithm is recommended for numerical data types columns
VALUE_SET algorithm is recommended for boolean data type columns
BLOOM_FILTER algorithm is recommended for all other supported columns
Unsupported data type columns are skipped.

Issues Resolved
https://github.com/opensearch-project/opensearch-spark/issues/221
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

If we also want to merge implementation in this PR, could you update user manual like this? https://github.com/opensearch-project/opensearch-spark/blob/main/docs/index.md#all-indexes. Or if no time, we can just merge grammar in this PR.

Thanks! Updated user manual.


PhpdocToCommentFixer - allow multiple (

allow:
<?php

/** @var User $bar3 */
($bar3 = tmp())->doSomething();

rebased and squashed

👍

Thank you @SpacePossum.


feat(backend): rename "payment pointer" tables & columns to use "wallet address"

Changes proposed in this pull request

Rename all tables & columns that refer to 'payment pointers' to refer to 'wallet addresses' instead.

Context

Fixes #1934.
Checklist

[x] Related issues linked using fixes #number
[ ] Tests added/updated
[ ] Documentation added
[ ] Make sure that all checks pass
[ ] Postman collection updated

The backend service isn't going to build in this branch (yet), but the migration should run successfully.


serie type of columnrange

has anyone been successful of using columnrange type for series?  I get this error.
The requested series type does not exist
This error happens when you are setting chart.type or series.type to a series type that isn't defined in Highcharts. A typical reason may be that your are missing the extension file where the series type is defined, for example in order to run an arearange series you need to load the highcharts-more.js file.

No updates for last 2 years. There is an official Angular wrapper of Highcharts.


Python 3 support

#catalyst/curate/poloniex.py:
Change
print url

to
print(url)

Thank you for your submission.


Theme changes have no effect on iOS 13 with dark mode enabled

Hi!
While testing my application (which makes use of your project), I found out that if dark mode is enabled on the iOS device, the theme setting is completely ignored and defaults to dark mode (white status bar icons).
In order to fix this, I made the following modifications to statusbar_ios.mm:
// Includes and @interface

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

// Other functions, etc

static UIStatusBarStyle statusBarStyle(StatusBar::Theme theme)
{
    if (theme == StatusBar::Dark)
        return UIStatusBarStyleLightContent;

    else if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"13.0"))
        return UIStatusBarStyleDarkContent;

    else
        return UIStatusBarStyleDefault;
}

However, while my solution works for my test-scenario, I really doubt that my fix is the most elegant or appropriate (I never really worked with iOS/Xcode/Objective-C before). By the way, the SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO definition was copy-pasted from StackOverflow.
Greetings!

Thanks for the report. Feel free to create a PR with the proposed solution. Unfortunately, I don't have access to a development platform anymore that would allow me to experiment with this. :(

https://github.com/jpnurmi/statusbar/pull/9


Docker agent for linux/arm/v7

Hey folks,
Possibly related to https://github.com/buildkite/agent/issues/475 ?
I wanted to try the docker agent out on my Raspberry Pi4, I got a complete docker setup with a small swarm cluster and was hoping to add the buildkite agent as well.
Unfortunately looks like the docker image is only built for linux/amd64 so that generates a warning. More importantly however is that the container doesn't even start 😢
$ docker run --rm buildkite/agent:3 --help
Unable to find image 'buildkite/agent:3' locally
3: Pulling from buildkite/agent
Digest: sha256:798cafc06f5af9c866d1b9d43256dd8758da5f4345ee82c6dbc71b8d3ec33142
Status: Downloaded newer image for buildkite/agent:3
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm/v7) and no specific platform was requested
standard_init_linux.go:219: exec user process caused: exec format error

I thin that the warning might prevent me to deploy the container in a docker swarm cluster, but I was expecting it to run in standalone..
Thoughts?

Hi @lcardito! I'm afraid we don't ship a docker image for that architecture. We'd like to, but don't have solid plans or a timeline.
Until then, we do ship an arm binary so you can run the agent via manual installation. Or I think the debian/ubuntu instructions will also work on raspian, we also build debian packages and maintain an apt repo for arm, arm64 and armhf:
https://buildkite.com/docs/agent/v3

Greetings @sj26 ! Got it, thanks! The Ubuntu instructions worked like a charm so going with that setup for now. Thank you! 💥

I cobbled this together into a Dockerfile (below) and built it on a Raspberry Pi 4 Model B Rev 1.1. You can pull the image from inzania/buildkite-agent-arm. It's based upon armhf, and tbh I wouldn't know the correct tagging architecture to use here so I'm not going to bother (this meets my needs). I got the BuildKite prompt to show (with a missing token error) via sudo docker run --rm inzania/buildkite-agent-arm:latest.

Next I'll set up a Kubernetes deployment file to add to my home fleet so that the RPi agent joins the cluster via a token mounted onto the container.
I'm not claiming to maintain this or anything. Just hoping to provide steps for BuildKite to integrate this into their own CI.
buildkite-agent-armhf.Dockerfile
FROM debian:stable

RUN apt-get update -y && apt-get install -y wget

ENV FN="buildkite-agent-linux-armhf-3.30.0.tar.gz"
RUN wget "https://github.com/buildkite/agent/releases/download/v3.30.0/$FN"
RUN tar -xf $FN

RUN mkdir ~/.buildkite-agent ~/.buildkite-agent/bin ~/.buildkite-agent/builds
RUN cp buildkite-agent ~/.buildkite-agent/bin
RUN cp bootstrap.sh ~/.buildkite-agent/bootstrap.sh

ENTRYPOINT ["/buildkite-agent", "start"]

10 minutes later...
The image worked as a drop-in on a k8s fleet with an arm node already in the cluster.

Here's the base yaml for a k8s resource which targets the processor type:
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: buildkite-agent-arm
  labels:
    app: agent-arm
    release: buildkite
spec:
  replicas: 1
  selector:
    matchLabels:
      app: agent-arm
  template:
    metadata:
      labels:
        app: agent-arm
        release: buildkite
    spec:
      hostname: condo
      serviceAccount: buildkite-agent
      containers:
        - name: agent-arm
          image: "inzania/buildkite-agent-arm:latest"
          imagePullPolicy: IfNotPresent
          env:
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: BUILDKITE_AGENT_TOKEN
              valueFrom:
                secretKeyRef:
                  name: buildkite-agent
                  key: agent-token
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: "beta.kubernetes.io/arch"
                  operator: In
                  values: ["arm"]

Any update on arm support for the agent docker image? We're interested in starting to build on on arm nodes now that it's supported by GKE, but that would require arm64 images of the buildkite agent.

@glindstedt agent images are now amd64 and arm64: https://explore.ggcr.dev/?image=buildkite%2Fagent%3Alatest


Use Buffer.from instead of constructor

@thlorenz can you release a new version?

(or add med on npm)

Went out as 0.2.0.
What's your npm user, I'll add you and @mafintosh

OK found you and added you as well.


integrate install with static port unable to find includes

Install ports with triplet x64-windows-static and x86-windows-static.
Then run integrate install.
Open up a VCProg and try to include the port I installed and unable to find file.
Check project properties and see the VcpkgRoot is "C:\vcpkg\installed\x64-windows".
Where is should be "C:\vcpkg\installed\x64-windows-static"
Am i missing something on the integrate install?

We, by default, reference the x64-windows and x86-windows triplets. This is primarily because the Visual Studio project defaults are to use the dynamic CRT (/MD). In contrast, the *-windows-static triplets use the static CRT (/MT), which you'll need to change in your project settings if you'd like to use those triplets.
However, switching the CRT alone won't change the referenced triplets, due to the particular way that the CRT reference is implemented inside MSBuild. You'll need to set the MSBuild property VcpkgTriplet to specify exactly which triplet you'd like to use binaries from. For more information on this, take a look at the blog post [1]. In specific, you will probably want to do the following (if you only care about building x64):
<PropertyGroup Label="Globals">
    ....
    <VcpkgTriplet>x64-windows-static</VcpkgTriplet>
    <VcpkgEnabled>true</VcpkgEnabled>
</PropertyGroup>

You can try it out first in a developer prompt by adding /p:VcpkgTriplet=x64-windows-static to the msbuild line:
C:\>msbuild /p:VcpkgTriplet=x64-windows-static /p:Platform=x64 MyAwesomeApp.sln

Sorry for the confusion!
[1] https://blogs.msdn.microsoft.com/vcblog/2016/11/01/vcpkg-updates-static-linking-is-now-available/

Hello,
I also stuck with integrating static libraries. I think, it would be nice to add this explanation to the documentation.


Set backend URL independently of host and port

The backend URL string is currently inferred from port and host and set dynamically at startup. This breaks server deployments in docker containers because the frontend uses a different url than what's exposed to the backend via Docker because of reverse proxies.
Chrome gives the following error<your langflow deployment domain> was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://<IP_ADDRESS>:8080/all'. This request has been blocked; the content must be served over HTTPS.

This is an error we encountered this weekend and we managed to fix it for a certain use case. We'll probably release a version today that tries to remedy that.
This might fix the issue of deploying LangFlow as it is right now.

It is released. Try upgrading LangFlow.
Langflow cli now has host and port options. If it doesn't work as intended write back and we'll work on it right away.
This is what allowed us to deploy LangFlow in HuggingFace Spaces so it should be working.

@ogabrielluiz tried two variations on fly.io and neither works:
FROM python:3.11-slim-buster
RUN pip install langflow
# CMD [ "langflow", "--host", "<IP_ADDRESS>", "--port", "8080" ] # this one gives the "<your langflow deployment domain> was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://<IP_ADDRESS>:8080/all'. This request has been blocked; the content must be served over HTTPS" error
CMD [ "langflow", "--host", "<langflow-deployment-name>.fly.dev", "--port", "8080" ] # this one gives [521] [ERROR] Invalid address: ('<langflow-deployment-name>.fly.dev', 8080)

I'm not familiar with fly.io but the setup seems close to HuggingFace Spaces.
The HTTPS error is something I've encountered in Spaces but ever since we made the fronted not send requests to the backend url it stopped happening.


Upgrade GroovyCompileOptions

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

@bot-gradle test QF

I've triggered the following builds for you. Click here to see all build failures.

Quick Feedback (Trigger) (Check)

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

@bot-gradle test QFL please.

I've triggered the following builds for you. Click here to see all build failures.

Quick Feedback - Linux Only (Trigger) (Check)

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

Pull Request Feedback (Trigger) (Check)

@bot-gradle test this


Why debugging says ‘stoi’ is not a member of ‘std’?

This is my c_cpp_properties.json:
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64",
            "compileCommands": "${workspaceFolder}/build/compile_commands.json"
        }
    ],
    "version": 4
}

However, it shows in the rapidcsv.h says that:
‘stoi’ is not a member of ‘std’ .. about 78 errors;
#include <codecvt>
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;

don't work. Thanks.

Can you compile a simple C++ program using std::stoi() (without including rapidcsv.h), like for example this?
#include <iostream>
#include <string>

int main()
{
    std::string test = "45";
    int myint = std::stoi(test);
    std::cout << myint << '\n';
}

If not, there's probably some basic error in your project setup or compiler selection. Unfortunately I'm not familiar with the json file content you shared, so I cannot comment much on that. But do double-check that you are indeed using a C++ compiler, and that your source file has a C++ file extension (cpp for example).

@d99kris Unfortunately, I can't compile the code.

Hi @lk1983823 - Ok. If you cannot build a simple C++ program using C++11 features like std::stoi() I suspect the problem you have is not related to rapidcsv code. Here's a link with potential causes of the error 'stoi' is not a member of 'std': https://stackoverflow.com/questions/38034197/compile-error-stoi-is-not-a-member-of-std
If you share some more details about your setup, I could possibly see if I can provide some help. Useful information would be OS name & version, compiler name & version, any project- or make-files, all source files. Note: If you are using a Unix-based system (macOS, Linux, cygwin, etc) it should be possible to build the provided example with (I've attached the file as well, just rename removing the .txt extension):
mv test.cpp.txt test.cpp
c++ test.cpp

test.cpp.txt

@d99kris  Thanks, I have compiled the code successfully. I added "-std=c++11" to the args in tasks.json.

Ok, that's good to hear. I will close this issue then. Feel free to re-open it if you encounter build errors again.


sketchy/rudimentary decoder for CrAU updates

this PR sketches out a reader for the CrAU update format. there is an outer binary "wrapper" and then an inner protobuf. the documentation is wrong in several places (update_metadata.proto states that the manifest is bzip2 compressed, and it... just isn't), so approach any docs with heavy skepticism and don't be surprised if you have to dive into the update_engine c++.
the relevant file is update-format-crau/src/bin/test.rs. this loads an update delta file and prints out the signature blobs. there can be several of them – i don't know exactly what is being signed.
next steps are extracting the flow in test.rs and turning it into more of a library interface.
ref https://github.com/flatcar/Flatcar/issues/1025

Hmm, where is the input file update_metadata.proto?
I see only its generated file update-format-crau/src/generated/update_metadata.rs.

Ah, found it.

I've added generating the dev-key- signed sysext payloads here: https://github.com/flatcar/scripts/pull/919
You can download a test file from https://bincache.flatcar-linux.net/images/amd64/9999.9.9+kai-sign-test-oem-sysext/flatcar_test_update-oem-azure.gz

@pothos Thanks for the test data.
I have tested it, and it seems to work.
Added a README to describe how to test.


Add "Ausaf Ahmed" to Logging and Metrics Reviewers

I am going to start actively contributing to logging and metrics, and am interested in becoming an approver down the road.

@acrmp @mkocher @ameowlia please take a look & approve when you get a chance 🙏


ModelBinderConfig does not exist in the new world

The type's name seems like a misnomer but it essentially provides a way for the user to specify custom error strings during model binding (type conversion failed error messages) and validation (required field error messages).
| 175 | 10333 | Reported By: Pranav K |

We have an updated design for this, and the remaining work is tracked in bugs with more information:
https://github.com/aspnet/Mvc/issues/3215
https://github.com/aspnet/Mvc/issues/2969


Add secondary content template

Add those part of secondary content

Skills block example
Experience block template
Experiences example
Additional info example

Content added!


docs: Weird rendition of Apache license reference on the docs start page

At https://www.zephyrproject.org/doc/index.html , text "Apache 2.0 license" is rendered in a weird way for me: word "Apache" is normal font, while "2.0 license" is bold. It's rendered in the same way both in Firefox and Chromium.
The HTML markup of that looks "normal":
Apache 2.0 license

So, apparently some weird issue with CSS.

How odd.  Looks to be an issue with the :download: directive CSS style that puts the "download symbol" before the link (and that CSS code that does this is a mess). I'll just change this reference use a nice link to the LICENSE in the GitHub repo instead.  This also would fix an annoyance that the downloaded file has Linux line endings so if you're on a Windows system and open the file with notepad (for example), the line wrapping is all off.


Support Swift 5.10

This PR adds support for Swift 5.10: https://www.swift.org/blog/swift-5.10-released/

Hi @marcprux this going to be very helpful, there is any thing I can do to help this getting merged?

Thanks for creating the PR! I'm also waiting for 5.10 to be available.

Hi @marcprux this going to be very helpful, there is any thing I can do to help this getting merged?

@fwal might be able to comment on the expected timeframe or any further review that is needed.


Possible to support preview?

Is it possible to support preview inside zed, like the extension did in vscode?

+1

Sadly, currently no, as the extension really has almost no access to the buffer. I'll leave this open until support is added to zed that would allow for such functionality


RFC: Improving CoCo Logging

Anyone who has tried to debug or develop CoCo has probably realized that our error logging is not great. Today the best you can do is comb through the containerd log, but this only offers high-level info, even if debugging is turned on. I think we face two fundamental issues with logging

We don't want to expose sensitive info to the host.
We have a lot of different components.

One idea to resolve both issues is to create an internal error log. Essentially, we could set aside a location inside the guest where every component can save log messages. Since this is in the guest we don't have to worry about printing sensitive information to the log. We also don't need to figure out how to thread the messages through all our components, because each could just print whatever they want to the log.
Since encrypted memory is expensive, this would need to be an optional feature. Perhaps we could add a Kata config param for CoCo debugging that would trigger the agent to set an environment variable.
One drawback is that this log would not be useful for debugging any issues that cause the guest to crash or be cleaned up by the shim. We could potentially adjust the cleanup behavior if the debug flag is set. I am also a bit unsure how this would fit with existing kata logging functionality.
Any thoughts about this proposal or any other ideas about how we could improve logging?

One drawback is that this log would not be useful for debugging any issues that cause the guest to crash or be cleaned up by the shim.

... or issues that caused the system to fail before the kata-agent (in the guest) started running: QEMU issues, OVMF issues, kernel boot issues, early initrd issues. But actually those that I mentioned are not sensitive, so can be seen in the host logs (but it's a pain to understand what's going on; maybe we need some filtering/cleaning of the journalctl output).

Kata has a log parser tool that we might think about extending for CoCo. Hypothetically it should be pretty easy to find errors that cause the guest to not boot, but there is a lot of random stuff to filter out.

I think this is a very helpful proposal.

One drawback is that this log would not be useful for debugging any issues that cause the guest to crash or be cleaned up by the shim. We could potentially adjust the cleanup behavior if the debug flag is set. I am also a bit unsure how this would fit with existing kata logging functionality.

I have a concern that if some reasons cause the agent to crash, the logs of some components inside the guest will not be found.


OPENSSL_cpuid_setup running multiple times

Removed the default bug label since its more of a question:
I noticed OPENSSL_cpuid_setup (which i thought to be a constructor running once) running multiple times. Looking into this, i found it to be due to calling OPENSSL_cpuid_setup directly, see below backtrace.
So i wonder why its called directly because at that time, constructor should already have run. Of course it usually doesnt hurt since constructor have the "if(init) return; init=1"-check but theres still a small window for race.
Breakpoint 1, OPENSSL_cpuid_setup () at crypto/s390xcap.c:79
79          if (OPENSSL_s390xcap_P.stfle[0])
(gdb) bt
#0  OPENSSL_cpuid_setup () at crypto/s390xcap.c:79
#1  0x000003fffdafa9f6 in _init () at crypto/s390xcpuid.S:388
#2  0x000003fffdf9024e in call_init.part () from /lib/ld64.so.1
#3  0x000003fffdf903a2 in _dl_init () from /lib/ld64.so.1
#4  0x000003fffdf8120c in _dl_start_user () from /lib/ld64.so.1
PC not saved
(gdb) c
Continuing.

Breakpoint 1, OPENSSL_cpuid_setup () at crypto/s390xcap.c:79
79          if (OPENSSL_s390xcap_P.stfle[0])
(gdb) bt
#0  OPENSSL_cpuid_setup () at crypto/s390xcap.c:79
#1  0x000003fffdc498ca in ossl_init_base () at crypto/init.c:57
#2  0x000003fffdc4985e in ossl_init_base_ossl_ () at crypto/init.c:45
#3  0x000003fffd90ff28 in __pthread_once_slow () from /lib64/libpthread.so.0
#4  0x000003fffdc5a0f6 in CRYPTO_THREAD_run_once (once=0x3fffde4efe0 <base>, init=0x3fffdc49848 <ossl_init_base_ossl_>) at crypto/threads_pthread.c:113
#5  0x000003fffdc4a2f2 in OPENSSL_init_crypto (opts=134248012, settings=0x0) at crypto/init.c:510
#6  0x000003fffdeb8fa2 in OPENSSL_init_ssl (opts=134248012, settings=0x0) at ssl/ssl_init.c:191
#7  0x000000000104356c in apps_startup () at apps/openssl.c:58
#8  0x00000000010437ea in main (argc=4, argv=0x3fffffff328) at apps/openssl.c:271
(gdb) c
Continuing.

Breakpoint 1, OPENSSL_cpuid_setup () at crypto/s390xcap.c:79
79          if (OPENSSL_s390xcap_P.stfle[0])
(gdb) bt
#0  OPENSSL_cpuid_setup () at crypto/s390xcap.c:79
#1  0x000003fffdbf1c8e in ENGINE_load_builtin_engines () at crypto/engine/eng_all.c:16
#2  0x000003fffdb89fec in openssl_config_int (settings=0x0) at crypto/conf/conf_sap.c:65
#3  0x000003fffdc49e38 in ossl_init_config () at crypto/init.c:274
#4  0x000003fffdc49dfe in ossl_init_config_ossl_ () at crypto/init.c:272
#5  0x000003fffd90ff28 in __pthread_once_slow () from /lib64/libpthread.so.0
#6  0x000003fffdc5a0f6 in CRYPTO_THREAD_run_once (once=0x3fffde4f028 <config>, init=0x3fffdc49de8 <ossl_init_config_ossl_>) at crypto/threads_pthread.c:113
#7  0x000003fffdc4a72a in OPENSSL_init_crypto (opts=134248012, settings=0x0) at crypto/init.c:591
#8  0x000003fffdeb8fa2 in OPENSSL_init_ssl (opts=134248012, settings=0x0) at ssl/ssl_init.c:191
#9  0x000000000104356c in apps_startup () at apps/openssl.c:58
#10 0x00000000010437ea in main (argc=4, argv=0x3fffffff328) at apps/openssl.c:271

You should probably look into RUN_ONCE

Oh, but it's already using it ...

So ENGINE_load_builtin_engines() calls OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_ALL_BUILTIN, NULL), which initialized the base again.

i understand whats happening but not why its necessary to try to initialize again (and again) after constructor (first backtrace) already did the initialization.

I don't understand why it runs twice. It should not be called twice. From what I understand, you're saying that that this is run twice anyway:
if (!RUN_ONCE(&base, ossl_init_base))

I guess I wasn't looking good, ENGINE_load_builtin_engines() also calls OPENSSL_cpuid_setup(), and I don't see why.

My guess it's there for historic reasons, and that call can just be removed.

Okay, i ll do a PR removing all calls to OPENSSL_cpuid_setup and see if somebody objects.

Looking into this, i checked all 3 calls:

First is constructor called from the platform specific crypto/*cpuid.S/.pl or crypto/*cap.c files, so it runs 1 time
Second is from ossl_init_base which is protected by RUN_ONCE, so it runs one time
Third is from ENGINE_load_builtin_engines, runs evertime the function is called

Third one can possibly be removed (historic reasons) but that would still leave it running two times. Id like to understand why it runs as a constructor (which should always run first and only once) and additionally runs a second time in ossl_init_base.

I guess the reason it runs from constructor is to make sure it has run. There are probably cases that you can call libcrypto functions before it was called from ossl_init_base, because we don't need to initialize anything yet. Maybe we should make sure it's called with OPENSSL_INIT_BASE_ONLY before trying to check the capability?

Can we rely on the assembler calling it?

Can we rely on the assembler calling it?

Thats what i think. But im mostly working on s390 asm so im not 100% sure its true for all supported platforms.
I hesitate to remove it from ossl_init_base because i assume somebody put it there for a reason but i cant see it..
Im just thinking about the case when libcrypto is called from an application's (or other librarie's) constructor.. is it possible this constructor could run before libcrypto constructor? I dont think so.

I assume that non-elf platforms might not support it. I wonder if it for instance works on Windows.

Yes thats probably the reason.
I hesitate to remove it from ossl_init_base (since platforms w/o constructors might depend on it) and also to remove it from ENGINE_load_builtin_engines because it has that comment about some engines need it.
So I ll just leave this issue open for a while to see if there are more opinions on this and if not i will probably just close this.

ENGINE_load_builtin_engines calls OPENSSL_init_crypto(), so
ossl_init_base should get called.

I hesitate to remove it from ossl_init_base (since platforms w/o constructors might depend on it) and also to remove it from ENGINE_load_builtin_engines because it has that comment saying some engines need it.

I am convinced that the ENGINE_load_builtin_engines instance is a left over from before we implemented OPENSSL_init_crypto. It should be safe to remove it.

Removed the default bug label since its more of a question

FWIW:  you can still create a regular issue if it matches neither category. The link is hidden in the fine print.

okay thanks a lot, i missed that.

GitHub did this on purpose, I guess. When I discovered the 'hidden link', I googled for a while to find out whether one can make this third option more prominent with a green [Get started] button, but I did not find a way to do it.

https://github.com/openssl/openssl/commit/29ce3458d8474870805dd1439cf857d19519bfb1
removed the call from ENGINE_load_builtin_engines.
The other two calls (constructor and ossl_init_base) are left unchanged for the reasons discussed.

29ce345 removed the call from ENGINE_load_builtin_engines.

Uhh.
Note: One day I must open issue to remove ENGINE_load_builtin_engines from public headers.


Fix broken IsVTXDisabled detection on AMD CPU

VMX is in FeatureNames, but SVM is in ExtraFeatureNames
This meant that detection always failed for SVM (AMD)
Thanks to user @hilbertxia
Description
The new library approach to cpuid introduced in 5a8ce1ae43de21b0b875189293267164f37acf5e was broken on AMD CPU (SVM).
Unfortunately it also disabled all tests that were in the previous file-based version 850e2646a6979e9c484297ce1828684800d66406
Related issue(s)
Closes #4669

Please sign your commits following these rules:
https://github.com/moby/moby/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "svm" git@github.com:afbjorklund/machine.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Amending updates the existing PR. You DO NOT need to open a new one.

Thanks for sending this PR in. I'm excited to see this new bug get fixed for our users.

Is there any additional work required before this PR gets merged?

Did you actually look at the change ?
It is in the Intel file, not in Linux/Darwin

Changes are in virtualbox_linux.go and virtualbox_darwin.go -> these are for linux and darwin respectively (unless I am missing something here).
Changes can be merged since partly it does fix.
The windows+AMD combination remains open.
(I have restricted access to windows+AMD laptop. Will check further when I can lay my hands on it).

This fixes the initial check but there seems to be an additional check that fails
unning pre-create checks...
Creating machine...
(default) Copying /home/atomi/.docker/machine/cache/boot2docker.iso to /home/atomi/.docker/machine/machines/default/boot2docker.iso...
(default) Creating VirtualBox VM...
(default) Creating SSH key...
(default) Starting the VM...
(default) Check network to re-create if needed...
Error creating machine: Error in driver during machine creation: This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory

Thanks!

I believe this closes #4709 as well.


Fix getGeneralApiProblem return type

Please verify the following:

[x] yarn test jest tests pass with new tests, if relevant

Describe your PR

:tada: This PR is included in version 8.6.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Image link update

Issue #25

Changed to WIP.
Fixing the variable names to shorten the special_icons list

Removed from WIP.

variable names now match in-game item names - which are also now the standard used by the wiki.

Thanks @NixonK for this pull request :tada:
I hope this can be merged soon, then I can normally use the planner again :smile:

Very nice patch, thanks a lot!

I changed Char.lowercase_ascii to Char.lowercase. lowercase_ascii is better because lowercase is deprecated, but on the other hand, lowercase_ascii is only available in OCaml 4.03.


Adding the presentation slides

Hello @manniche,
Thank you for your very interesting talk. Would it be possible to add the presentation slides on the repo, so ze can follow along with the tutorial?
Thank you very much :)

Hi @kzgrzendek
Thanks for the suggestion, I'm on mobile right now but will definitely upload the slides once in vicinity of my laptop 👍

Wow! It took me some time to get in vicinity of my laptop. But here I am, And here the presentation is. Thanks


Fixed small typos

Fixed "z.B." to "z. B." in several occurrences according to DIN 5008

Hi and thanks!
This will be fixed in a separate commit in a minute because of conflicts. Therefore, we will close this PR.
Thanks and best regards,
Oliver


Make it clear when a file is ignored

Codecov Report

Merging #379 (ad9ca5b) into main (1e93033) will increase coverage by 0.01%.
The diff coverage is 97.36%.

@@            Coverage Diff             @@
##             main     #379      +/-   ##
==========================================
+ Coverage   94.52%   94.54%   +0.01%
==========================================
  Files          73       73
  Lines        6334     6356      +22
==========================================
+ Hits         5987     6009      +22
  Misses        267      267
  Partials       80       80

Impacted Files
Coverage Δ

internal/parser/read.go
95.23% <90.90%> (+0.03%)
:arrow_up:

cmd/pint/scan.go
96.38% <100.00%> (+0.28%)
:arrow_up:

internal/discovery/discovery.go
96.73% <100.00%> (+0.35%)
:arrow_up:

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


Openapi 3.0.0 update

Problem
Openapi 3.0.0 update to include new changes to the X API
Solution
There were two small issues with the generate script that were fixed.
Result
The SDK will be updated to reflect the current X API.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


#702 Add a dataType filter to FiberCacheManager.status method

What changes were proposed in this pull request?
Avoid problem of #702, make sure all dataType in map func are OapDataFile
How was this patch tested?
mvn test pass, no ClassCastException message

Basically it is reporting the total number of fibers (row group number * column number) and which fiber is cached. Can we get the same information(row group number and column number) for parquet?

@carsonwang I think we can get row group number and column number informations for parquet , but I need to understand this part of the code first.

#712 fix by #715 , close this pr.


Absinthe unsubscribe request and reply

Sends an "unsubscribe" Phoenix Channel message to Absinthe in _send_stop_message, and parses the reply to an unsubscribe request as a "complete" answer type in _parse_answer. The unsubscribe request's query_id and its corresponding "listener" query_id are saved in a dictionary attribute.
Tested on Python 3.8.10 with a live Absinthe 1.6 development server.

This was done upstream in PR #228


FIx for CARBON-15518

Same fix is committed with https://github.com/wso2/carbon-kernel/pull/1052, hence closing this PR.


Use chip menu instead of button menu in PageTree Status Column

The implementation is based on the example story in #2375.

PR Checklist

[x] Link to the respective task if one exists: COM-821
[x] Provide screenshots/screencasts if the change contains visual changes

Screencasts

https://github.com/user-attachments/assets/d2c45c78-263e-497c-91cd-c7ffddad1a6c

@jomunker what's the status here?

@jomunker what's the status here?

Didn't get to it. I will take a look today

We could add a changeset for this visual-only change


How to render Text from data?

Hello, I'm trying to figure how to print text from data, this is how I'm trying to do it:
<Collection data={nodes}>
  <Text datum={p => p.datum.id}
        dx={p => p.index * 25 + 12.5}
        textAnchor="middle"/>
</Collection>

I saw in the docs I need to send the text as children, but how to get it from the datum?

you're right I believe this isnt possible currently. Ill work something out in the next release. we can either have an extra prop on the Text component which overrides the children prop if defined or we can have optional Function as Child Component. Eg:
<Text>{(props) => props.datum.id}</Text>

Which do you think is better?

or we can move away from having children at all and just use a specific custom prop for the text value, eg: value

or all of the above :)

I like the value prop approach, most of the texts are just a print operation. The one on children sounds interesting, but at same I'm not sure how you would handle that, is it easy to parse functions inside of children?

yeah I guess its more simple having a value prop

@wilkerlucio the library has been completely rewritten (and renamed) and has a much simpler API now as a result of switching to a render props approach. It would be great to get feedback on it if you have any. The new docs can be found here: http://numberpicture.com/build


Logout patch

Added the route handler to for users/logout router. The session token is cleared in the database and the user is redirected to homepage. I've also edited the settings view to set the logout route to users/logout instead of /logout

Thank you for your contributions.
Will look into this post 4-5 days. Hope that is okay 😓

Yes sure


Revive-stacked-cards

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[x] Bugfix
[x] Feature
[x] Refactoring

Needs Design check

@exezbcz please review

Needs QA check

@kodadot/qa-guild please review

Context

[x] Closes #7462
[x] Closes #5385 (on AssestHub)
[x] Closes #7497 (@exezbcz  see discussion below)
[ ] Requires deployment <snek/rubick/worker>

Did your issue had any of the "$" label on it?

[x] My DOT address: Payout

Screenshot 📸

[x] My fix has changed UI

More
@exezbcz
regarding #7497 :
the price shown is the actual lowest price of a stack - which is different from the collection floor price
that means the the price shown is the price user will pay for it
it also responds to filters  - meaning cout and price will change according to filter chosen
a UX issue (bug or feature i don't know) is that if ANY of the nfts under a stack has price = 0 (i.e. not listed for sell) => there is no buy now button until "buy now" filter is activated (or lowest price > 0 is set)
please DM me if any questions
Copilot Summary

🤖 Generated by Copilot at f6f1b8d
This pull request adds support for token entities on the Asset Hub, which are NFTs with token ids that can be listed and bought as a group. It refactors several components, composables, and queries to handle both tokens and NFTs, and to display the correct price and metadata information for each type. It also introduces new types, props, and fields to represent the token entities and their associated NFTs.

🤖 Generated by Copilot at f6f1b8d

Sing, O Muse, of the mighty deeds of the ItemsGrid component,
How it displayed both tokens and NFTs with skill and judgment,
Using the useFetchSearch function and the ItemsItemsGridImageTokenEntity subcomponent,
And the useNftActions composable to handle the logic of buying and listing.

somehow related #7599

loading super fast now ✔
listing or adding to cart works fine ✔
working properly on mobile ✔
working fine on both ahk + ahp
liked that inside the collections don't show stacked no more

Related to this pr?

I can't see other items nor scroll down. Related to this pr?

here for me they load till page 23(end)

the price shown is the actual lowest price of a stack - which is different from the collection floor price
that means the the price shown is the price user will pay for it

how is that possible? Is that because of royalties or? I thought floor price is the lowest price. Ah maybe when there are more items that are not stacked right?

The small cards view has a different card height for stacked than the normal one:

@exezbcz
Take this collection for example
https://canary.kodadot.xyz/ahk/collection/6
It has the corn waifu nfts which are a single stack
And then there are other nfts in the collection
If one of these other nfts have price lower then corn waifu then you have a case where collection floor price is outside of the stack
Therefore displaying this lower price on the stack is irrelevant information
The collection floor price becomes recent again in the listing modal

The small cards view has a different card height for stacked than the normal one:

fixed

@yangwao @vikiival
is there still interest in implementing this feature on
ksm/rmrk?
bsx?

@daiagi got it sir.
I think less confusing would be a change to "lowest price"

@exezbcz
'lowest price' done

@exezbcz
from #7652

the current button is not displayed in the center of the card

fixed in this PR

is there still interest in implementing this feature on

ksm/rmrk?

No

bsx?

No

Meanwhile, can you @daiagi resolve conflicts?
@prury, how it stands?

Meanwhile, can you @daiagi resolve conflicts?
@prury, how it stands?

took a little while before images were loading properly, but now it seems ok

And it seems branch needs an update?

And it seems branch needs an update?

yup, this still needs solving

And it seems branch needs an update?

hmmm , tought I solved it already
will fix

These gaps have been fixed in some PR no?

@daiagi I released the squid

hmmm , tought I solved it already
will fix

@daiagi  you can do it in another PR as want to squeeze this one into the upcoming release

pay 50 usd

😍 Perfect, I’ve sent the payout
💵 $50 @ 3.77 USD/DOT ~ 13.263 $DOT
🧗 1cAsKZYNRb8dkSCpn4eVkEn6ycNZTGoDo5dGDgB8J1UUWK8
🔗 0xd1d58b8281feda4d369e8bbe6f0b37c1d64ff942ac3b14118e6d7ed8d380b854
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Move images from personal accounts to  https://quay.io/organization/orchestrator

We'd like to avoid the use of personal accounts for this solution.
Hence, the Greeting workflow that refers to an image from a personal account should be updated.

Will be fixed by https://github.com/parodos-dev/orchestrator-helm-chart/pull/25


A Fatal Error occurs when adding a "data" dictionary to Session Summary model creation

Describe the bug
A Fatal Error is occuring when "data" is given as part of the request parameters when creating a model. This is specifically seen when using Session Summary to filter out a list of some defined amount of sessions by a keyword; I am using 'apps' in this scenario.
To Reproduce
Steps to reproduce the behavior:

Open a Python 3.7 shell
Import GAMEBENCH_CONFIG and ModelCreator
Set username, password, and company_id GAMEBENCH_CONFIG variables
Instantiate the ModelCreator
Use the ModelCreator to request a Session Summary, for the last 15 sessions of a specific App, with the parameter of an empty session id and data with a dict value, representing what to search for:

"session_id": "",
"params": "pageSize=15&sort=timePushed%3Adesc",
"data": {"apps": ["<some app name>"]}

Observe the fatal error

Expected behavior
The lastest 15 Session Summaries for the app matching that given name is returned.
Desktop (please complete the following information):

macOS 10.4.4
Python 3.7.2

Additional context
This does not occur when attempting this with a cURL command. Note: The cURL command sometimes returns the last 15 sessions regardless of the name, doesn't work with Company ID (param), and sometimes won't retrieve anything. A fatal error does not occur in these instances with cURL.
See the cURL commands for the GameBench API https://docs.gamebench.net/api/documentation

The fix for this issue was related to the fix for https://github.com/bigfishgames/gamebenchapi-pyclient/issues/56.  That is now merged into Master and this issue resolved.


Dynamically nameable metrics

Feature Request
I would like a way for metrics to be nameable at runtime.
Motivation
It is possible that you create some sort of component that wraps an inner function call with a timer, or counts how many invocations of this call are currently ongoing. With the current API, I don't believe you can pass in a metric name which is either compile-time constant or runtime dynamic, which means it is very hard to create generic components like this without writing macros.
Proposal
The tracing span macro can support constant expressions as field names, but I don't believe the event macros can. If there is a way for the event macros to support constant expressions, this would make the above motivation possible with compile time names which is probably good enough. It is possible the event macros can do this and I am just unaware, but I couldn't get it to work.
With that said, I am open to suggestions, as I am not sure how this can actually be done. I assume the most reasonable way might be a reserved field name for the metric name and metric value. However, I am not sure how this would interact with the existing interface.
Below is something like what I just described, but if there is any better way I'd prefer that. I just don't know how much flexibility or control we have here as we are using the tracing macros.
info!(metric.name = format!("histogram.{my_string}"), metric.value = 5)

I'm open to reviewing a PR in this direction but won't be able to do much else to assist your efforts in this.

See tracing docs, search on page for "constant". There's no good heading to generate a better link for you.
You can use constant expressions for field names, so does that solve the issue for you?

@mladedav I did some more digging. This is what I ran into initially when I first tested this:
#[test]
fn it_works() {
    const METRIC_HANDLE: &str = "counter.test";
    info!({ METRIC_HANDLE} = 1);
}

error: format argument must be a string literal
  --> src/lib.rs:13:15
   |
13 |         info!({ METRIC_HANDLE } = 1);
   |               ^^^^^^^^^^^^^^^^^^^^
   |
help: you might be missing a string literal to format with
   |
13 |         info!("{}", { METRIC_HANDLE } = 1);
   |               +++++

I think I should've been more thorough when checking the docs. I assumed that all syntax for the event macro would be valid on the shorthands, but this is not the case. Sorry - I am new to the Rust ecosystem! The following does work:
#[test]
fn it_works() {
  const METRIC_HANDLE: &str = "counter.test";
  event!(Level::INFO, { METRIC_HANDLE } = 1);
}

I will leave this issue open for now incase a runtime evaluated solution wants to be discussed, but I think this is actually sufficient for most use cases. Thanks :)

The shorthands should work the same as the event! macro, of course except you don't specify the level.
I think you just bumped into the constant name as the first field bug I mentioned, i.e. I think that this would work:
#[test]
fn it_works() {
    const METRIC_HANDLE: &str = "counter.test";
    info!(foo = 1, { METRIC_HANDLE} = 1);
}

@mladedav does this then only work if you want at least 1 attribute on your metric?

From what I remember, just the first thing cannot be a field with const name. I think it was because fields can be optionally enclosed in curly brackets for historical reasons. If you use event!, the first token is the level so that works. If you use normal field and only then const expressions, that's also fine, but reversing the order would break it. I think (but am very unsure) that if you use additional curly brackets as in info!({{ NAME } = "foo"}) then that might also work.
It's just a bug which I think was fixed but not yet released.


Spanish translation

This PR contains the Spanish translations of each of the existing .mdx files in the REPO for the MADARA project documentation. The translation for the README.md file is also included.

Hey @llabori-venehsoftw what is missing from this PR to get it merged? Did you follow this documentation at https://nextra.site/docs/guide/i18n?

Hey @llabori-venehsoftw what is missing from this PR to get it merged? Did you follow this documentation at

Hey dpinones unfortunately I was without a machine for a few days ..... and now I'm almost with a borrowed machine to which I can not be installing practically nothing. So I'm looking for the mechanism to be able to finish the PR. For the documentation I have no problem, I already know what is wrong and what does not make it merge.

Hey @llabori-venehsoftw what is missing from this PR to get it merged? Did you follow this documentation at

Hey dpinones unfortunately I was without a machine for a few days ..... and now I'm almost with a borrowed machine to which I can not be installing practically nothing. So I'm looking for the mechanism to be able to finish the PR. For the documentation I have no problem, I already know what is wrong and what does not make it merge.

Great @llabori-venehsoftw! If you need help, let me know  🙂

Is this still going on? I would like to give a couple of suggestions that might make things clearer if there's a chance to work upon this.

Is this still going on? I would like to give a couple of suggestions that might make things clearer if there's a chance to work upon this.

Very good morning/afternoon/evening dear Jose;
I had lost track of you in the many things I am currently working on, but I would like to thank you for your help in obtaining the final result.


LWM2M IOTAgent - Orion Subscription help

Whenever I start the lightweight device connected to another system (it is wakaama implementation based) by executing ./client.sh device registers with IOTAgent successfully and sends observation (seen from server logs).
But I am doubting if the agent actually registers itself with Orion. Orion subscription check returns empty list.
$ curl -X GET http://localhost:1026/v2/subscriptions
[]

I expect the agent should forward/submit subscription request to Orion immediately it receives device registration(am I right?).
Not sure if I MUST do PROVISIONING here as well, despite that device can register with iotagent automatically on start.

I do not have any experience with Orion.
As LwM2M is now fairly common, maybe the Orion community would be of better help.
Regards,


Remote Sampling is not working as expected

I'm using the latest operator, with the following configuration
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: production
  agent:
    options:
      log-level: debug
  collector:
    options:
      log-level: debug
  sampling:
    options:
      service_strategies:
        - service: jaeger-example
          type: probabilistic
          param: 0.1
          operation_strategies:
            - operation: /getTime
              type: probabilistic
              param: 0.2
            - operation: /drivers
              type: probabilistic
              param: 0.4
      default_strategy:
        type: probabilistic
        param: 0.2
      operation_strategies:
        - operation: /health-check
          type: probabilistic
          param: 0.0
        - operation: /metrics
          type: probabilistic
          param: 0.0
        - operation: /healthz
          type: probabilistic
          param: 0.0
  storage:
    type: elasticsearch

I create a tracer using the following code in my jaeger-example
        cfg, err := config.FromEnv()
	if err != nil {
		logger.Bg().Fatal(err.Error())
	}
	cfg.ServiceName = serviceName
	cfg.Sampler.Type = "remote"
	jaegerLogger := jaegerLoggerAdapter{logger.Bg()}
	tracer, _, err := cfg.NewTracer(
		config.Logger(jaegerLogger),
		config.Metrics(metricsFactory),
		config.Observer(rpcmetrics.NewObserver(metricsFactory, rpcmetrics.DefaultNameNormalizer)),
		config.ZipkinSharedRPCSpan(true),
	)
	if err != nil {
		logger.Bg().Fatal("cannot initialize Jaeger Tracer", zap.Error(err))
	}
	return tracer

jaeger-example sampling output in simple-prod-collector
bash-5.0# curl localhost:14268/api/sampling?service=jaeger-example | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   404  100   404    0     0    98k      0 --:--:-- --:--:-- --:--:--   98k
{
  "strategyType": "PROBABILISTIC",
  "probabilisticSampling": {
    "samplingRate": 0.1
  },
  "operationSampling": {
    "defaultSamplingProbability": 0.1,
    "defaultLowerBoundTracesPerSecond": 0,
    "perOperationStrategies": [
      {
        "operation": "/getTime",
        "probabilisticSampling": {
          "samplingRate": 0.2
        }
      },
      {
        "operation": "/drivers",
        "probabilisticSampling": {
          "samplingRate": 0.4
        }
      }
    ]
  }
}

default sampling output:
bash-5.0# curl localhost:14268/api/sampling?service=jaege | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    77  100    77    0     0  25666      0 --:--:-- --:--:-- --:--:-- 25666
{
  "strategyType": "PROBABILISTIC",
  "probabilisticSampling": {
    "samplingRate": 0.2
  }
}

and the related metrics
# HELP jaeger_example_jaeger_tracer_sampler_queries_total Number of times the Sampler succeeded to retrieve sampling strategy
# TYPE jaeger_example_jaeger_tracer_sampler_queries_total counter
jaeger_example_jaeger_tracer_sampler_queries_total{result="err"} 0
jaeger_example_jaeger_tracer_sampler_queries_total{result="ok"} 6
# HELP jaeger_example_jaeger_tracer_sampler_updates_total Number of times the Sampler succeeded to retrieve and update sampling strategy
# TYPE jaeger_example_jaeger_tracer_sampler_updates_total counter
jaeger_example_jaeger_tracer_sampler_updates_total{result="err"} 0
jaeger_example_jaeger_tracer_sampler_updates_total{result="ok"} 6

However i still see traces on /healthz operation.

and the /drivers using the default probabilistic not the one defined in perOperationStrategies

@Catorpilor As your diagnosis has shown, there is no problem in the operator or jaeger backend, as the jaeger collector is returning the expected sampling configuration (based on your curl commands). Therefore this issue should have been raised in the client repo.
However, I don't believe this is an issue anyway - your sampling config is associated with operations that are specifying the http.url value - however this is not the operation being reported in the span data from your instrumentation. The operation name is displayed in the top level of your two images - i.e. "GET".
Unfortunately most REST library instrumentation uses the http.method as the default operation value, as the http.url could be too high cardinality (even though it would be more useful).
I'm going to close - but feel free to reopen in the appropriate jaeger client repo if you think there is still an issue.

Wow, that make sense, I'm using github.com/opentracing-contrib/go-stdlib/nethttp as a HTTP middleware.
Thanks for pointing that out @objectiser


Add PCA

Hello,when I run the 'python main_scripts/evaluation.py  --pca_outdim 4096 --resume model_path  --img_shape 384 384 --trunc_te 8 --freeze_te 1 --arch cct384 --aggregation seqvlad --dataset_path /path/msls_reformat --seq_length 5', the error happened:
loading database...: 100%|███████████████████████████████████████| 500/500 [00:00<00:00, 902.17it/s]
loading queries...: 100%|███████████████████████████████████████| 368/368 [00:00<00:00, 1335.90it/s]
Finding positives and negatives...: 100%|█████████████████████| 8060/8060 [00:06<00:00, 1268.22it/s]
2023-03-23 15:00:51   Test set: < BaseDataset, ' #database: 13584; #queries: 7964 >
Loading database to compute PCA...: 100%|████████████████████| 15637/15637 [00:27<00:00, 577.81it/s]
2023-03-23 15:01:20   PCA dataset: < PCADataset, ' #database: 733048 >
Database sequence descriptors for PCA:   0%|                               | 0/2048 [00:00<?, ?it/s]
2023-03-23 15:01:20
Traceback (most recent call last):
File "main_scripts/evaluation.py", line 90, in
evaluation()
File "main_scripts/evaluation.py", line 77, in evaluation
pca = compute_pca(args, model, transform, full_features_dim)
File "main_scripts/evaluation.py", line 35, in compute_pca
for i, sequences in enumerate(tqdm(dl, ncols=100, desc="Database sequence descriptors for PCA: ")):
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/tqdm/std.py", line 1195, in iter
for obj in iterable:
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 517, in next
data = self._next_data()
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 557, in _next_data
data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in
data = [self.dataset[idx] for idx in possibly_batched_index]
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/torch/utils/data/dataset.py", line 330, in getitem
return self.dataset[self.indices[idx]]
File "/home/user/yjq/vg-transformers/tvg/datasets/dataset.py", line 385, in getitem
img = torch.stack([self.base_transform(Image.open(path)) for path in self.db_paths[index].split(',')])
File "/home/user/yjq/vg-transformers/tvg/datasets/dataset.py", line 385, in
img = torch.stack([self.base_transform(Image.open(path)) for path in self.db_paths[index].split(',')])
File "/home/user/.conda/envs/vgtransformers/lib/python3.7/site-packages/PIL/Image.py", line 2953, in open
fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'database/NB6QNsyGLNwJXxDwno9Zug/@0415291.14@5001459.84@NB6QNsyGLNwJXxDwno9Zug@263@M_yw5YYeNXpcZQrUJQLiFg@ottawa<EMAIL_ADDRESS>This error report is very strange.Do you know why this is?
I'm sorry to bother you so often. And I want to konw how to train only one city  in MSLS and test another city. Thank you very much!

Hello, this error is my fault, I made a re factoring on the datasets to make them work with relative paths but forgot to apply it to the PCA dataset. I made a commit and it is fixed now.
To train on one city you can simply pass the arg --city; and it will load that city only.
The problem at the moment is that this works only with the train dataset, whereas the val and test are fixed.
If you want to select a single city that is from val or test splits, you can simply add cities=city in the val or test dataset declaration.
Whereas if you want to validate or test on a city that is in the train split normally, you have to make a bit of a dirty modification : in the val or test dataset declaration you have to pass split='train' and cities=city.
As soon as I have time I will figure out a cleaner way to allow selecting any city in any split

Thank you so much for your prompt response and great work!
I was particularly interested in the other results in Table II of the paper, such as:
SeqNet [2]    ResNet-50    4096
SeqNet [2]    CCT224         4096
Can you please provide the corresponding model or code?
I'm sorry to bother you again.

Hello,
in the  SeqNet papers the authors do the following:

compute descriptors of the single images using pre-trained NetVLAD+PCA descriptors
train a single Conv1D layer (the seqnet layer) that operates on top of the sequences of pre-computed descriptors

Moreover their pre-trained NetVLAD descriptors are obtained with a VGG-16 backbone. In our paper we wanted to provide comparisons with different backbones since we use more modern ones in our method.
Therefore, in order to provide these ablations, I have had to:

train a Resnet-50 or CCT-224 with NetVLAD on single images, compute PCA and save the descriptors
modify the SeqNet repo to use the descriptors that I precomputed at the step above

The whole process was very cumbersome and I do not have a clean code to share; there were also some other problems because we could not train on the whole dataset or it would not converge, and indeed the authors use in their code only a small subset of msls
concluding sadly I cannot help you in reproducing those results but given the hassle and the poor results obtained in the end I suggest you avoid trying

Thank you very much for the reminder!


Auth header

Addresses https://github.com/sheerun/graphqlviz/issues/16
usage:
node cli.js -a mytoken https://mywebsite.com/graphql

example of error:
➜  graphqlviz git:(auth-header) node cli.js -a incorrectToken -v https://mywebsite.com/graphql
Request for schema failed w/ 406 (Not Acceptable)

  GraphQL Server CLI visualizer

  Options:
    -g --graphql    use graphql schema language as input
    -t --theme      path to theme overrides
    --print-theme   print default theme to stdout
    -v --verbose    print introspection result
    -a --auth       set Authorization header for graphql server

  Usage:
    $ graphqlviz [url]
        Renders dot schema from [url] endpoint

  Examples:
    $ graphqlviz https://localhost:3000 | dot -Tpng -o graph.png
    $ graphqlviz https://www.mypublicautheddomain.com/graphql -a "Bearer xxxxx" | dot -Tpng -o graph.png
    $ graphqlviz https://swapi.apis.guru | dot -Tpng | open -f -a Preview
    $ graphqlviz path/to/schema.json | dot -Tpng | open -f -a Preview
    $ graphqlviz path/to/schema.graphql -g | dot -Tpng | open -f -a Preview
    $ graphqlviz --print-theme > theme.json
    $ graphqlviz https://localhost:3000 -t theme.json | dot -Tpng | open -f -a Preview
    $ graphqlviz schema.json --theme.header.invert=true | dot -Tpng > schema.png

Also added a note to README because I did not initally know what dot was, and I suspect I may not be alone.

i believe the one travis error (not failure with the X, but error with the !) needs a restart because the npm installs stalled somehow https://travis-ci.org/sheerun/graphqlviz/jobs/397320185

@sheerun what do you think?

Yes, sure. Thank you

Published as 2.1.0


Request to update com.google.guava » guava2

Describe the bug
Please update the google.guava » guava2	20.0 to 31.1-jre
the current version has two vulnerabilities
Thanks

Hi @DenisVoloshin - we have addressed this request as part of the PR here - PR 31761 and should be released next week - See CHANGELOG.


On select performance (with multiple partitions)

We've been investigating Druid select query performance for some cases where we need to pull a large (hundreds of thousands) number of items from a pretty coarse data (more details can be found at https://groups.google.com/forum/#!topic/druid-user/o_Ex2ygmjAs).
We are ingesting data into DAY segments with 50 partitions each and we can't really reduce the number of partitions much. This will be important :-).
In some tests, we've noticed that filtered queries are significantly faster than unfiltered ones, even though they were constructed to both return exactly the same data.
This felt very odd, so we've decided to go down and do some profiling on Druid's historical server. We've used two different profilers, both yielding very similar results.
The profiles led, unsurprisingly, to the select code and the first suspicious thing was that the lookupName method at https://github.com/druid-io/druid/blob/druid-<IP_ADDRESS>/processing/src/main/java/io/druid/query/select/SelectQueryEngine.java#L135 was called... exactly 50 times the threshold set for the query.
Further profiling and debugging has proven that Druid is indeed retrieving threshold items from each of the 50 partitions, then merging them together and throwing away the rest. And "the rest" in our case was 98% of the retrieved data.
As I understand, it was done this way, because there seem to be no constraints as to how data in partitions within segment relate to each other. Theoretically, one could, e.g. put a whole day of some metrics into one partition, then put each hour of the rest into separate partitions, all within one DAY segment. Or maybe set partition numbers out of order. Might not make sense, but seems possible, so I guess it should "work as expected".
I guess that different partitions might also reside on different historical instances?
In our case, we've been able to do a quick hack that works for some tests and that moved the query times down from >2 minutes to sub-second, so we see a lot to be gained here.
With all that, I gotta say that I do not have enough expretise in Druid (and on top, I've not programmed Java for years) to think of a good, generic solution to this. That's why I'm writing it down here, hoping for you to be able to point us into right direction.
Tests and profiles were first done on 0.9.1-rc4. I have re-run the tests later on <IP_ADDRESS> and no significant changes were observed, so I assume that the conditions above have not changed.
Let me know if I can provide any further information. Thanks in advance for any ideas on how to improve the situation.

@KenjiTakahashi, thanks for posting your experience.
From my perspective the problems you pointed out mostly come from the fan out to the processing pool on historicals. Most Druid queries work this way because it works well for aggregations that can be parallelized and then merge. Select doesn't really work well with the parallelize-then-merge strategy due to the ordering restriction. It really begs for something more like "continuous merge". Maybe it would be better for select to run single threaded.

It's exactly what we want to do with #3292 but not in-progress currently.

@navis Care to elaborate a bit? I might be missing something, but looking at the description, I'm not sure how this is relevant. Thanks!
@gianm But even if we run it in single thread, we still don't know from which partitions to get what items, right? E.g. we might get threshold items from partition 1, but then it turns out some of the items we want (are in order) are in partition 3 and some in 7 and we don't know that beforehand. Or do we?

@KenjiTakahashi #3292 retrieves row count for each segments targeted by a select query, something like
"result" : {
   "segmentCounts" : {
     "array_2016-04-09T09:00:00.000+09:00_2016-04-10T09:00:00.000+09:00_2016-05-10T02:31:21.509Z" : 3,
     "array_2016-01-18T00:00:00.000+09:00_2016-01-19T00:00:00.000+09:00_2016-07-05T10:50:43.457+09:00" : 1,
     "array_2016-01-04T00:00:00.000+09:00_2016-01-05T00:00:00.000+09:00_2016-07-05T10:50:43.381+09:00" : 1,
     "array_2016-03-09T09:00:00.000+09:00_2016-03-10T09:00:00.000+09:00_2016-03-24T06:08:49.668Z" : 3,
     "array_2016-01-11T00:00:00.000+09:00_2016-01-12T00:00:00.000+09:00_2016-07-05T10:50:43.436+09:00" : 1
   },
   "totalCount" : 9

So if we should acquire 3 rows, we can set just the first segment id, not using whole interval. Currently it's not accepting paging spec but we can support that with some more works, I believe. This process even can be automated in druid broker, that we are testing on select query with union datasource.

@KenjiTakahashi Honestly I'm thinking more about the case where you don't care about ordering or necessarily want a threshold – when you're trying to pull out some (or even all) data matching a filter in whatever order you get it. In that case you can read from partitions one at a time, just going to the next one when you exhaust an earlier one.
If you do care about the ordering, probably what makes sense there is reading the time columns from all applicable partitions first – to figure out which rows you're going to include – and then once you've picked the rows, read all the other columns.

@navis I see. Would that work per partition (i.e. within segment) as well? Theoretically, it could, as select code does not seem to differentiate between segments and partitions at all.
@gianm Oh, OK. If we don't care about ordering then it would indeed work. Maybe in specific cases it would be possible to store data in a way that comes out as "pre-sorted", given that we know in what order partitions will be read. Or, if the data is partitioned on dimension, maybe use the method @navis proposed to "cut" threshold/num_of_partitions items from each partition and merge client-side.
I'm afraid that reading time from everything would still take significant amount of time. It would be some improvement, but we're looking for as much as possible here :-).


operator overloading

You could use operator overloading to mimic the use(+= /-=) of normal events.
Also this would allow you to create an instance only on demand, reducing the cost of unused events, as the + operator can return a new instance if used on a null.

Hi @mhn65536,
Do you mean something like this?
private readonly WeakEventSource<MyEventArgs> _myEventSource;
public event EventHandler<MyEventArgs> MyEvent
{
    add { _myEventSource += value; }
    remove { _myEventSource -= value; }
}

I like the idea!

Also this would allow you to create an instance only on demand, reducing the cost of unused events, as the + operator can return a new instance if used on a null.

That's an interesting point, and could easily be implemented, but it raises a few issues:

It encourages a usage pattern where the WeakEventSource object can be null. This means you have to check whether it's null before raising the event. This is easily done with _myEventSource?.Raise(...), but if you're stuck on an older version of C#, you have to do this instead:
var source = _myEventSource; // take a copy to avoid race conditions
if (source != null)
    source.Raise(...);

Which is easy to get wrong for junior developers. (actually the same problem exists for normal events).

What should happen when you remove the last handler with -=? Should it return null?

What happens if two threads try to add a handler at the same time? If the WeakEventSource instance is already created, the case is already handled internally. But if not, both threads will create an instance of WeakEventSource, and the last one who writes it to the field "wins"; the other subscription is lost. To avoid that, you would need a lock around the _myEventSource += value, which makes the new syntax much less compelling...

So, maybe I'll implement the +=/-= syntax, but the WeakEventSource will still have to be initialized beforehand.
About the cost of unused events, I might be able to improve things... I'll look into it.

So, maybe I'll implement the +=/-= syntax, but the WeakEventSource will still have to be initialized beforehand.

The more I think about it, the less I'm convinced it's a good idea... Objects that support this syntax typically allow null values, but for the reason I mentioned, it's not possible in this case. So it would be counter-intuitive to support this syntax and not allow the WeakEventSource to initially be null.
Still, thanks for the suggestion, it was an interesting idea!
I'll wait a bit before closing the issue in case you have counter-arguments :wink:

About the cost of unused events, I might be able to improve things... I'll look into it.

I split this into a separate issue: https://github.com/thomaslevesque/WeakEvent/issues/31

I declared the EventSource as a struct. Since you usually do not pass the Source around it shouldn't be a problem. At least in my case i can garuantee that i don't abuse my own code. That resolves the issue with having to create an instance first.
When the Dictionary or List in the Source is null, you lock the type whilst creating it. It's a bottleneck, but an unproblematic one.
When the Dictionary or List exists, you lock that to make things threadsafe.
The only downside of that approach is, that when you pass an unitialized source, you'd to do it by ref.

* It encourages a usage pattern where the `WeakEventSource` object can be null. This means you have to check whether it's null before raising the event.

It is the normal behavoir with events...

  var source = _myEventSource; // take a copy to avoid race conditions
  if (source != null)
      source.Raise(...);
  ```

You could declare it an extension method, to encapsulate this. As fr as i know, those can be safely called on nulls.

* What should happen when you remove the last handler with `-=`? Should it return null?

Possibly, but you could leave it initialized for sake of simplicity.

I declared the EventSource as a struct. Since you usually do not pass the Source around it shouldn't be a problem. At least in my case i can garuantee that i don't abuse my own code. That resolves the issue with having to create an instance first.

Yes, I thought about that. Unfortunately, it wouldn't work when using the Subscribe/Unsubscribe methods on a read-only WeakEventSource field (which is currently the typical way to use it), because the compiler would make a defensive copy of the struct before calling the method, so the original struct would not be modified and would still have a null handler collection. I'm afraid that's too much of a breaking change to take. The fix would be easy (just remove the readonly modifier), but the problem could go undetected for a while, since it would still compile fine.
Unless I remove the Subscribe/Unsubscribe methods, to make the breaking change obvious. But that would be annoying for current users...

When the Dictionary or List in the Source is null, you lock the type whilst creating it. It's a bottleneck, but an unproblematic one.

In fact, I already implemented that yesterday. No need for locking. https://github.com/thomaslevesque/WeakEvent/commit/0f374ef0badebd83fe46421b05082a8c97c6afa4

When the Dictionary or List exists, you lock that to make things threadsafe.

That was already in place.

The only downside of that approach is, that when you pass an unitialized source, you'd to do it by ref.

What do you mean?

I agree, it would break the current usage and therefore is not feasible.

What do you mean?

I meant if you pass a struct by value and create the inner List, it will not be reflrected on the original...

I meant if you pass a struct by value and create the inner List, it will not be reflrected on the original...

Yes, but you can't pass by reference to an operator...
Anyway, it seemed like a great idea, and I would have loved to implement it, but it has too many issues... Thanks anyway for the suggestion!


Customize web ui of scope

What you expected to happen?
Hello, weave team.
Now I'm trying to customize web ui of scope for better usage. It's not regarding re-branding thing.

I'd like to remove version info of right bottom,
because if there increases namespaces, the version info ui hide some of namespaces.
Please refer number 1 of following pic.

What happened?

How to reproduce it?

Anything else we need to know?

My project is on AWS. k8s, helm controls my configuration.
Also, stable helm chart is used for deploying scope.
Versions:

$ scope version 1.10.1
$ docker version 18.09.2
$ uname -a 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ kubectl version
Client Version: v1.13.0
Server Version: v1.11.8-eks-7c34c0

This is already fixed in scope version 1.10.2.

Hi @shindanim, As pointed by @qiell, this has been fixed in the previous release i.e. 1.10.2. Hence, I am closing this issue.

Thanks for the information Weave team
, but don't you have any general guide for modifying Web UI?
Because I'd like to size down the font on node-details-header-label of  tag.

I think @fbarl  can help you with UI modifications.


Add compact variant for pane grid controls

Right now, when the pane grid controls would overlap with the title content, we hide the title content altogether. That's good for avoiding visual issues, but can be confusing for a user when the title content is also interactable and disappears when they try to select it. This PR adds an alternative compact variant to the pane grid controls, which allows overlap.

https://github.com/user-attachments/assets/02e631b2-9916-4a59-91ff-63e6297999b7

Not sure what the Mac failure is about. There's no specific error message that I can see:


Ruby implementation of rcloadenv

This is a full Ruby implementation of rcloadenv, ready for release as a rubygem. It is provided for easy integration with Ruby applications, in particular to support "secrets" configured for Ruby applications deployed to GCP.
Notes:

The implementation passes the provided cross-language integration test.
The Ruby-based binary understands the same command line switches as the nodejs binary.
The code includes a vendored API client for the runtimeconfig API version v1beta1. This is because this API is not currently included in the canonical google-api-client gem. The code looks for a canonical client before using the vendored client.

I do not have permissions to assign reviewers. Tagging @tswast and @remi

Awesome, thanks! I'm no Ruby expert, so @remi or @frankyn please review.

I followed-up with @dazuma offline and he will be updating the PR with a README that includes deploying to flex.
Usability Review:
Objective: Use the Ruby rcloadenv to deploy an Ruby on Rails app to App Engine flexible environment:

After adding the gem source to the Ruby on Rails project and then adding a line to the Gemfile gem 'rcloudenv', path: 'ruby'.
I wasn't able to deploy using rcloadenv my-config -- bundle exec rails s after adding the gem to my Gemfile, because it wasn't found during deployment.
I ended up using bundle exec rcloadenv my-config -- bundle exec rails s and that worked when deploying to flex.
(Daniels follow-up) bundler propagates the environment defined by a Gemfile to subprocesses so I can use bundle exec rcloadenv my-config -- rails s instead. This worked and is clear to me.

@frankyn Updates are in. PTAL. Thanks!

@frankyn Thanks much! @tswast Ready for merge

@tswast Anything else needed for this PR?

Excellent, thanks! Merging now. Sorry I missed your first ping.


Listing Non-supported Elements From Revit to Speckle

IDK if you didn't want to list them in the Docs.
I was trying to copy Scope Boxes from one project to another and was provided a warning from Speckle connector that this was not possible.
Speckle team should determine if they want to list these items out on the Documentation of items not supported. The current list did not contain Scope Boxes and was rather vague.
https://speckle.guide/user/support-tables.html#non-supported-elements

Hey @kraftwerk15 we currently are only listing supported elements or the ones we're working on, anything else should be considered as non supported. The reason is that there are A LOT of types available and it's just a bit easier this way than listing them all...
In the new UI for Revit that we're rolling out soon it'll be more clear, after a conversion, to understand what was skipped because non supported or what instead failed to convert.
Let me know if it makes sense, happy to reopen this or to continue the conversation on our form if you'd like: https://speckle.community/