Improving the standard edition installation

One of the things that I dislike about the Symfony Standard Edition is the installation process. Please, take a look at this comparison between the current installer and an example of how we could improve it:
Current installer:

Proposed installer:

Why is this important?
Regardless of the type of user (new or advanced), the installation process should be fast, easy to understand and "frictionless" (no unnecesary questions, no involved steps, etc.)
Which are the bad things about the current installation?

It's slow (I don't know if we should blame Composer, GitHub, Symfony or the Internet, but it's slow).
It outputs a huge amount of useless information (again, this may be caused by Composer).
At the end of the installation, it forces you to configure a lot of parameters. If you are a new user, this is weird; if you are an experienced user, you'll probably do this later.

How could we improve the installation process?

Should we create a custom Symfony installer? (e.g. curl -sS https://symfony.com/installer | php)
Could we configure Composer to use a custom installer? (I don't know if Composer can be customized so much)
Other options?

Useless peace of code.
Why everyone needs "personal" installer? It's like every distro for linux should have own installer? or use builtin like apt-get, dnf? I think composer for php is that one - builtin, and you offer own installer? And recommended way of installation is using SUDO???
My opinion means nothing, but I hope it'll make maintainers to rethink this approach.

The goal of this installer is to simplify and fasten the Symfony installation, because installing with composer + installing dependencies is kind of longer than downloading a simple zip file. Plus, it adds many informations about versions, which one are installable and which one are not, to avoid safety issues with your installed Symfony app.
You can still install Symfony with Composer if you think the installer is useless.

@Imunhatep this installer is not a useless piece of code. In fact, it's better and more complete than Composer in several ways:

It's orders of magnitude faster.
It's smarter (you can't say to Composer "please, install me the latest long-term support version")
It's safer (the installer generates a random and safe secret value for you)
It's more correct (just compare the contents of the composer.json file after installing Symfony with Composer and with the Installer and you'll see who does the right thing).

And don't forget the best feature of the installer: it's completely optional :) so you can always use Composer!

@javiereguiluz how can it be more correct? just curious

This is the composer.json of an application installed with the Symfony Installer:
{
    "name": "javier/my_project",
    "license": "proprietary",
    "type": "project",
    "autoload": {  },
    "require": { },
    "require-dev": { },
    "scripts": { },
    "config": { },
    "extra": { }
}

And this is the composer.json of the same application installed with Composer:
{
    "name": "symfony/framework-standard-edition",
    "license": "MIT",
    "type": "project",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": { },
    "require": { },
    "require-dev": { },
    "scripts": { },
    "config": { },
    "extra": {
        ... ,
        "branch-alias": {
            "dev-master": "2.7-dev"
        }
    }
}

but you are comparing wrong things, you assume one will not remove those things and change to be adapted to the custom project. Thanks for your response though.

@cordoval I don't think I'm comparing wrong things. I created the my_project application with the installer and everything is ready to use. Then I created the same my_project application with Composer and the composer.json is full of wrong information that I must "clean" by hand.

full of is an exaggeration, is just a few things and you should do it anyways. In my book, and I always do it and recommend it, carefully crafting a composer.json is a good thing to have as a developer's responsibility from day 1. Automating is fine only for some but it does not mean all automatic things are dead final. But anyway i was just trying to understand why you said that. Thanks.

and this is because composer create-project is not a tool dedicated at bootstrapping new projects based on a skeleton. It can be used to perform the first step of this bootstrapping (and the symfony-installer optimizes this first step by doing most of the heavy work on the symfony servers at the time of releasing a new version of the skeleton instead of doing it on the client computer when using the skeleton) but it does not perform other tasks to initialize the projects (because it is out of its scope):

changing the project name to something else than the skeleton name
removing the skeleton description
removing the skeleton branch alias
...

Creating a composer.json carefully is indeed a good thing, I agree with you @cordoval. the issue is using Composer as a bootstrapping tool, while it is not what Composer is.

I'm not against installers, but against yet another tool that does nothing that I couldn't do before.
This installer probably will help newcomers, that want to try DemoBundle. For real projects, developer will have to manually edit application and dependencies configuration anyway, right after installation.
And it's gets more useless if developer/company uses proxy to cache packagist.
@javiereguiluz
I understand that I can use composer, for now. But in the manual, symfony installer is the only described way of getting symfony. And that fact allows symfony crew, do anything with installation over composer(remove,break) or even go farther and introduce own package manager?!

When one is doing trainings on Symfony with many examples and hacks, a "symfony demo" or "symfony new feature_I_want_to_teach"  is VERY useful, trust me :)

Let's make some things very clear:

It's optional, why care if Symfony maintainers sacrifice some more free time to maintain a new tool, the Symfony installer (which doesn't take much time anyway, as it's feature-complete)?
Installing Symfony using Composer (without the tool) is still part of the installation chapter of the documentation: http://symfony.com/doc/current/book/installation.html#creating-symfony-applications-without-the-installer
Blog articles also belong to a project's documentation. As installing the SE using Composer has been the official way for years, it is used in many blog articles. Symfony can't effort it to break all these articles. Symfony has become big because they care about what happend in the past (see LTS, BC promise, the very long support of Symfony 1, etc.)
The Symfony installer just downloads a file and does some cleanups. Comparing it with a custom package manager seems strange. It also seems quite strange to create a custom package manager, as it wouldn't differ a lot from Composer.
Installing Symfony using Composer, then tweaking composer.json & friends or installing Symfony using the installer and then tweaking composer.json & friends. Do you see a difference? I don't, except that the second option is quicker and you need to tweak less...

the installer has one big drawback, it lead to the remove of the zip file from the download section on symfony.com.
often i downloaded the zip file (with vendors) if i am in a hurry and knew, that i will have no internet connection and want to work on something with symfony. fitted perfectly on a usb stick. now it's gone

@c33s : Gone ?

@ogizanagi gone from http://symfony.com/download
where to get to this link (with vendors)? without shell tricks, just a simple zip file to download.
zip is like an offline/redistributeable installer, i think such a thing should be on the main download page and not hidden somewhere.

@c33s your demand is legit and makes sense to me, I think a small table in the downloads page can be useful if it lists all the latest versions of the current Symfony branches (2.3, 2.6 and 2.7) , simply by listing the files, I think it could be good :)


refactor AnomaliesResponses to avoid duplicate code

Description
clean up duplicate code with regard to AnomaliesResponses

Heads up:  The is quite a bit of auto-prettifying in the PR.
Please focus on:

app/pods/components/anomaly-summary/component.js
app/pods/services/api/anomalies/service.js  (lines: 55 - 65)
app/utils/anomaly.js  (lines: 25 - 44)

This PR primarily replaces the use of anomalyResponseObjNew by

creating reportedAnomalyResponseObj  ('NONE' & 'FALSE_NEGATIVE')
combining it with anomalyResponseObj when appropriate

Heads up:  The is quite a bit of auto-prettifying in the PR.
Please focus on:

app/pods/components/anomaly-summary/component.js
app/pods/services/api/anomalies/service.js  (lines: 55 - 65)
app/utils/anomaly.js  (lines: 25 - 44)

This PR primarily replaces the use of anomalyResponseObjNew by

creating reportedAnomalyResponseObj  ('NONE' & 'FALSE_NEGATIVE')
combining it with anomalyResponseObj when appropriate


fix(#275): do not overwrite colorscheme highlights

Context
Highlight groups set by colorschemes are overwritten by nvim-dap-ui plugin in the require("dapui.config").highlights.lua:setup() method, instead of just setting the fallback default highlight groups.
More information can be found in #275 and #178.

Changes

Modified the method to set the defaults for highlight groups instead of overwriting previously set highlights.
Cleaned up the setup() method logic by moving the error checking (pcall) into the helper function.
Added a helper function to use the newer nvim_get_hl API function if NeoVim's version is atleast 0.9.

Hey @rcarriga,
Can you please review these changes and provide any suggestions?
Cheers ~

LGTM, thanks for the PR!

@dasupradyumna Thank you! Just confirmed that the fix works! Thanks for fixing the issue I care a lot!


Improve model parametrization

Several improvements here:

Model config makes use of composition feature of Hydra reducing duplication between example experimental configs.
Support for device_map=auto feature of accelerate by removing all .to(device) calls to the model.
Remove some obsolete model parameters like use_auth_token.
Remove hard-coded limits on total sequence length, and put it in configs as a model option.

Completes following Notion tasks:

https://www.notion.so/max-length-b5692b413f554b76b7c77863c69e5d0b?pvs=4
https://www.notion.so/device_map-auto-1f1a6c9411b54bac83328793cc8b2ad7?pvs=4

I suggest removing the max_length parameter everywhere since we override it with max_new_tokens. Also, I suggest removing min_length in greedy_tokens.py or changing it to min_new_tokens, since it also overrides with a value equal to the input length.


Transition Period Details Not Shown

I don't see transition timeline listed here.  Would be great to communicate timeline to customers, as well as when we'll enforce and if they can assign to specific users now.

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

ID: 4e5d831b-6683-e22f-f86e-1bb7475d067b
Version Independent ID: 4e5d831b-6683-e22f-f86e-1bb7475d067b
Content: Types of Power Automate licenses - Power Platform
Content Source: power-platform/admin/power-automate-licensing/types.md
Service: power-platform
Sub-service: admin
GitHub Login: @PriyaKodukula
Microsoft Alias: prkoduku

Thanks for your comment, @MontanaIrish. This issue has been assigned to the doc author for review.


No 0.15.2 artifact on PyPI

As the subject suggests, PyPI still lists the latest version as 0.15.1

closing as outdated


Gamepad HID Format

Allowing the Firmware to generate generic gamepad packets that expand based on number of modules connected

We went with a static approach per column, meaning there was plenty of space within the available 64-byte limit.
This wastes a tiny bit of space and bandwidth, but nothing close to making a dent overall.


Make "hosts" a configurable variable

tiny-tiny-rss playbook (and to come symfony one) uses a hard setted host variable.
That means only one server can be setted for the playbook. This should become configurable, so several servers can be defined in the playbook inventory.

Already doable by defining one playbook per domain.


API v7 compatibility

now supporting more than one version at a time.

Ok @czechboy0, I've tested this code an it looks like it works fine for Xcode 7.1 β 3, so I was able to work with XcodeServerSDK without any issues 👍

Result of Integration 1
Duration: 1 minute and 19 seconds
Result: Perfect build! All 70 tests passed. :+1:
Test Coverage: 55%.

Cool, thanks for the confirmation, @cojoj!


how to save the DB

I'm unable to call save function for making my DB persistent. getting an error in io.Writer

Can you provide example of your code when you try to Save the DB?
What kind of writer do you create and what kind or error occur?

Solved. There was an issue with the data type.


Documentation minor typo in configuration

In the documentation here:
https://neo4j.com/docs/labs/neo4j-streams/current/docker/#_source_module
There is a bit of config that looks like this:
- ./neo4j/plugins:/plugins:/plugins
Which should be this:
- ./neo4j/plugins:/plugins

Not sure if I should open a new issue since these could all be fixed at the same time and they all fall under the umbrella of "documentation."

The neo4j image in the docker-compose.yml is image: neo4j:3.4. This did not work for me. When running CALL streams.publish('neo4j', 'hello world'); I got this error message:

Failed to invoke procedure 'streams.publish': Caused by: kotlin.UninitializedPropertyAccessException: lateinit property eventRouterConfiguration has not been initialized

My fix was to change the image to image: neo4j:3.5.

The documentation states that by running the command that generates random data, the consumer will show output. This was not the case. I had to add the following environment variables to the docker-compose.yml:

NEO4J_streams_source_topic_nodes_neo4j: Person{*}
NEO4J_streams_source_topic_relationships_neo4j: KNOWS{*}

Hi @topher235,
i've already done those fixes. They will be available soon in the updated documentation version.
Anyway, thanks a lot for pointing that out.

closed 27cddd4


Implement Looper Node (ISO: better name)

The Looper Node will be part of the Agent Kit and it will be a high-level node: does a lot of work, looks simple from the outside (kind of like all workers in the Agent Kit).
The Looper Node will enable designing agent graphs that have repetition (loops) in them, without having to use embedded graphs (that's what Repeater is for).
The Looper Node will consist of two parts:

The planner, which will take a task as input and construct the plan for executing the loop. It will effectively be a structured worker that takes in a task description and outputs a plan: a configuration for the executor
The executor, which will execute the plan according to the configuration. This configuration is the API between the planner and the executor. The output of the executor is the final product of the Looper Node.

For example:

Task: "Write 20 chapters of a book, following the outline, chapter by chapter. Append each chapter at the end."
Configuration: "counter = 20, append_context = true"

The Looper Node will have two inputs and two outputs:

input 1: "context" -- the existing work context (usually wired in)
input 2: "task" -- the task on which to base the plan
output 1: "loop" -- while the plan is not done, the updated work context. This output will typically be wired to the body of task (over which the looper will iterate).
output 2: "done" -- when the plan execution completes, the final work context. This output will typically be wired to the remainder of the graph

Another sample task: "Continue looping until there's JSON output in the worker response. Return JSON output as final result."
Sounds like there are two things to define

Exit condition (N times, detect value in output)
Output (the whole context, only last item, or only part of last item)

The output might not be necessary for now, could be handled by a separate node.
Exit condition seems to have the usual repertorier of a loop

"for" loop -- iterate N times
"map" loop - iterate over a list
"until" loop - iterate until a condition is met

Seems like maybe they are also combinable. "Iterate N times or until the condition is met". Hmmm

Moving original specs here:
The Looper Node will consist of two parts:

The planner, which will take a task as input and construct the plan for executing the loop. It will effectively be a structured worker that takes in a task description and outputs a plan: a configuration for the executor
The executor, which will execute the plan according to the configuration. This configuration is the API between the planner and the executor. The output of the executor is the final product of the Looper Node.

For example:

Task: "Write 20 chapters of a book, following the outline, chapter by chapter. Append each chapter at the end."
Configuration: "counter = 20, append_context = true"

The Looper Node will have two inputs and two outputs:

input 1: "context" -- the existing work context (usually wired in)
input 2: "task" -- the task on which to base the plan
output 1: "loop" -- while the plan is not done, the updated work context. This output will typically be wired to the body of task (over which the looper will iterate).
output 2: "done" -- when the plan execution completes, the final work context. This output will typically be wired to the remainder of the graph

:shipit:  Declaring victory.


[$75] Migrate withFullTransactionOrNotFound from withOnyx to useOnyx

Coming from https://expensify.slack.com/archives/C01GTK53T8Q/p1725973460005309?thread_ts=1725905735.105989&cid=C01GTK53T8Q
Migrate src/pages/iou/request/step/withFullTransactionOrNotFound.tsx to use useOnyx instead of withOnyx.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021834284905584427771
Upwork Job ID:<PHONE_NUMBER>584427771
Last Price Increase: 2024-09-12
Automatic offers:

mkhutornyi | Reviewer | 103949092

Issue OwnerCurrent Issue Owner: @mkhutornyi

Proposal
Please re-state the problem that we are trying to solve in this issue.
Migrate from withOnyx HOC to useOnyx hook
What is the root cause of that problem?
withOnyx HOC is deprecated
What changes do you think we should make in order to solve the problem?
Whatever props are coming from withOnyx HOC in withFullTransactionOrNotFound should be replaced with useOnyx hook
What alternative solutions did you explore? (Optional)

Awaiting review by @mkhutornyi

Paid


Adding code coverage to circle CI and modify the build badge to show the coverage

https://circleci.com/docs/2.0/code-coverage/#javascript

As a first step to add the badges to README, I would have to generate them from circle CI


Create Executable File For Simple Users

Create an Executable file of this app to easily run this without importing sln  in visual studio , what if the user don't have visual studio, it required to  download vs software and eat alot of time installing that software before to use this app.

can be found on the releases page


tests should still run if one has a syntax error

Personal opinion: Better to exit early than too late otherwise the user would need to rerun the test suite.

Let's wait for user reports on this issue.


Migrate to Jekyll

[ ] Follow this tutorial
[ ] Use al-fiolio

I'm currently following the tutorial but I'm facing some issues. After downloading (updating) ruby and downloading bundler, the command bundle install doesn't run succesfully due to dependency errors.
It seems to be a common issue see [1]. I guess the primary issue is that the pre-installed version of Ruby on macOS shouldn't be used.

I don't like the entire process so far trying to get Jekyll working. I'll move to hugo instead.


USB CTYPE power supply value for Rog Z13

Hello, I'm currently waiting to place an order for JLCPCB and I'd like to ask you because I have a question.
It has been changed from v0.5.1 to 100W -> 65W based on the latest release,
Is Turbo Mode supported on the Rog Flow series?
If not, should I proceed with the change in the hardware?
Or is it a software-controlled part?

if you're building the lite version that change doesn't apply because the lite version doesn't have any active usb component, it just passes through the usb port. If you're building the full board, you can still configure the TI PD to 100W (20V 5A) and it will work. However, the reason why I lowered it to 65W is because the XG Station Pro power supply is 330W so if you allocate 100W to the charger, you only have 230W left for the GPU meaning you can't use some of the higher end cards. On the Ally, 65W is all that's needed for turbo mode and therefore I lowered it to that.


Incorrect SDR (inconsistent with mir_eval package) while running on GPU

Hi,
I noticed that the bss_eval_sources function from torch_mir_eval package outputs incorrect SDR for certain inputs ONLY while using GPU. It doesn't match with the mir_eval package's SDR output for the same inputs. The torch_mir_eval SDR output matches mir_eval SDR output when I run it on CPU instead of GPU. Also, torch_mir_eval SDR output varies depending on the GPU.
Steps to reproduce the issue:

Download the attached zip file and extract its .npy files.
inputs.zip

Run the following code snippets.

import numpy as np
import torch
import mir_eval
from torch_mir_eval import bss_eval_sources
src = torch.from_numpy(np.load('gt.npy',allow_pickle=True)).cuda(0)
est = torch.from_numpy(np.load('est.npy',allow_pickle=True)).cuda(0)
sdr,sir,sar,perm = bss_eval_sources(src,est,compute_permutation=True)
print('SDR obtained using torch_mir_eval: '+str(sdr))

Output: SDR obtained using torch_mir_eval: tensor([inf, 0.])
NOTE: You might get a different output depending on your GPU.
src_npy = np.load('gt.npy',allow_pickle=True)
est_npy = np.load('est.npy',allow_pickle=True)
(sdr, sir, sar, perm) = mir_eval.separation.bss_eval_sources(src_npy, est_npy, compute_permutation=True)
print('SDR obtained using mir_eval: '+str(sdr))

Output: SDR obtained using mir_eval: [-1.89931866  3.0518311 ]
Thanks!

Hi,
Indeed it seems there are differences between GPU and CPU version of the library. The CPU version matches that of original mir_eval implementation.
As both CPU and GPU versions use the same undelying code, it seems to be a pytorch issue which cannot be solved from this side.

From version 0.4 onwards it seems to be ok in this example (pytorch released a new linalg package) but cpu results are wrong. The other way around to what we observed for previous versions of pytorch.
SDR obtained using torch_mir_eval cpu: tensor([-1.8993,  0.8896])
SDR obtained using torch_mir_eval gpu: tensor([-1.8993,  3.0512])
SDR obtained using mir_eval: [-1.89931866  3.0518311 ]


Need to add the feathers-authentication-management docs back

They need to either go to docs or in the main readme of the repo. Eventually should be a guide and API docs, but for now a good stop gap would be to shove the old docs somewhere.

They are at https://github.com/feathersjs/feathers-authentication-management/blob/master/test/addVerification.test.js


UnitTest failures on main

Running on main I'm seeing test failures.
git log
commit 61fc8785ab8adb4cec5f1135d278a9e8895f327c (HEAD, upstream/main, upstream/HEAD)
Author: Sebastian Tiedtke<EMAIL_ADDRESS>Date:   Thu May 23 16:41:17 2024 -0400

    Is python3 more likely than python? (#586)

    `python` is an alias for `python3` on my BMP which makes the test fail.

Here are the test failures
 logger.go:146: 2024-05-23T23:09:03.531Z	INFO	stream canceled after the process finished; ignoring	{"id": "01HYKVE2NV87J6ZQTMY69E6BYT"}
    --- FAIL: TestRunnerServiceServerExecute_WithInput/SimulateCtrlC (1.52s)
        service_execute_test.go:643:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:643
            	Error:      	"rpc error: code = Unknown desc = exit status 1" does not contain "exit status 130"
            	Test:       	TestRunnerServiceServerExecute_WithInput/SimulateCtrlC
        service_execute_test.go:644:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:644
            	Error:      	Not equal:
            	            	expected: 130
            	            	actual  : 1
            	Test:       	TestRunnerServiceServerExecute_WithInput/SimulateCtrlC

    --- FAIL: TestRunnerServiceServerExecute_WithInput/ContinuousInput (0.04s)
        service_execute_test.go:600:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:600
            	Error:      	Not equal:
            	            	expected: "a\r\nb\r\nc\r\nd\r\nA\r\nB\r\nC\r\nD\r\n"
            	            	actual  : "a\r\nb\r\nA\r\nB\r\nc\r\nC\r\nd\r\nD\r\n"

            	            	Diff:
            	            	--- Expected
            	            	+++ Actual
            	            	@@ -2,7 +2,7 @@
            	            	 b
            	            	-c
            	            	-d
            	            	 A
            	            	 B
            	            	+c
            	            	 C
            	            	+d
            	            	 D
            	Test:       	TestRunnerServiceServerExecute_WithInput/ContinuousInput

2024-05-23T23:09:03.740Z	DEBUG	runner/command.go:404	finished copying from pty to stdout	{"count": 32}
--- FAIL: Test_command (0.00s)
    --- FAIL: Test_command/JavaScript (0.03s)
        command_test.go:107:
            	Error Trace:	/Users/jlewi/git_runme/internal/runner/command_test.go:107
            	Error:      	Not equal:
            	            	expected: ""
            	            	actual  : "(node:24760) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.\n(Use `node --trace-warnings ...` to show where the warning was created)\n"

            	            	Diff:
            	            	--- Expected
            	            	+++ Actual
            	            	@@ -1 +1,3 @@
            	            	+(node:24760) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
            	            	+(Use `node --trace-warnings ...` to show where the warning was created)

            	Test:       	Test_command/JavaScript
    --- FAIL: Test_command/JavaScriptEnv (0.03s)
        command_test.go:135:
            	Error Trace:	/Users/jlewi/git_runme/internal/runner/command_test.go:135
            	Error:      	Not equal:
            	            	expected: ""
            	            	actual  : "(node:24765) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.\n(Use `node --trace-warnings ...` to show where the warning was created)\n"

            	            	Diff:
            	            	--- Expected
            	            	+++ Actual
            	            	@@ -1 +1,3 @@
            	            	+(node:24765) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time.
            	            	+(Use `node --trace-warnings ...` to show where the warning was created)

            	Test:       	Test_command/JavaScriptEnv
FAIL
FAIL	github.com/stateful/runme/v3/internal/runner	4.624s
ok  	github.com/stateful/runme/v3/internal/runner/client	0.255s
--- FAIL: TestRunnerServiceServerExecute_WithInput (1.61s)

Tests appear to have passed on main at this commit #586 .
Are others seeing test failures when running locally or is it just me?

It looks like a bunch of tests including some of the ones the are failing aren't running in GHA.
There are two test steps in CI.
The first is test on docker
https://github.com/stateful/runme/blob/61fc8785ab8adb4cec5f1135d278a9e8895f327c/.github/workflows/ci.yml#L60
This ends up running tests with tag test_with_docker
TZ=UTC go test -ldflags="-X 'github.com/stateful/runme/v3/internal/version.BuildVersion=3.3.1-3-g61fc878-61fc878'" -run=".*" -tags="test_with_docker" -timeout=90s -covermode=atomic -coverprofile=cover.out -coverpkg=./... "./..."

So only a subset of tests get run.  TestRunnerServiceServerExecute_WithInput/SimulateCtrlC for example is not included.
There is a CI step to run tests on windows
https://github.com/stateful/runme/blob/61fc8785ab8adb4cec5f1135d278a9e8895f327c/.github/workflows/ci.yml#L67
This doesn't include any tags to restrict the tests. However, a bunch of tests are configured not to get built on windows. e.g
https://github.com/stateful/runme/blob/61fc8785ab8adb4cec5f1135d278a9e8895f327c/internal/runnerv2service/service_execute_test.go#L1
So it looks like we may have tests running locally that don't run on CI.

😮 this is actually a bug in how the vscode terminal connects back to the kernel server running inside of vscode. The env vars seem to be persistent when reloaded/revived. I can repro the issue. Attempting a fix here: https://github.com/stateful/vscode-runme/pull/1379
 logger.go:146: 2024-05-23T23:09:03.531Z	INFO	stream canceled after the process finished; ignoring	{"id": "01HYKVE2NV87J6ZQTMY69E6BYT"}
    --- FAIL: TestRunnerServiceServerExecute_WithInput/SimulateCtrlC (1.52s)
        service_execute_test.go:643:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:643
            	Error:      	"rpc error: code = Unknown desc = exit status 1" does not contain "exit status 130"
            	Test:       	TestRunnerServiceServerExecute_WithInput/SimulateCtrlC
        service_execute_test.go:644:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:644
            	Error:      	Not equal:
            	            	expected: 130
            	            	actual  : 1
            	Test:       	TestRunnerServiceServerExecute_WithInput/SimulateCtrlC

Thanks for reporting!

TestRunnerServiceServerExecute_WithInput/SimulateCtrlC -- it's flaky. One possible solution is to use a loop to send signals and validate responses. Sometimes input characters are sent too fast.
TestRunnerServiceServerExecute_WithInput/ContinuousInput -- this is quite interesting. That output is completely valid and it's race condition.
Test_command/JavaScript and Test_command/JavaScriptEnv are failing due to different node.js version. We should run these only in the CI as locally it does not make sense. It kinda worked so far because all contributors have had the same node.js version. We can hide it with a build tag similarly to tests that expect Docker.

😮 this is actually a bug in how the vscode terminal connects back to the kernel server running inside of vscode. The env vars seem to be persistent when reloaded/revived. I can repro the issue. Attempting a fix here: stateful/vscode-runme#1379
 logger.go:146: 2024-05-23T23:09:03.531Z	INFO	stream canceled after the process finished; ignoring	{"id": "01HYKVE2NV87J6ZQTMY69E6BYT"}
    --- FAIL: TestRunnerServiceServerExecute_WithInput/SimulateCtrlC (1.52s)
        service_execute_test.go:643:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:643
            	Error:      	"rpc error: code = Unknown desc = exit status 1" does not contain "exit status 130"
            	Test:       	TestRunnerServiceServerExecute_WithInput/SimulateCtrlC
        service_execute_test.go:644:
            	Error Trace:	/Users/jlewi/git_runme/internal/runnerv2service/service_execute_test.go:644
            	Error:      	Not equal:
            	            	expected: 130
            	            	actual  : 1
            	Test:       	TestRunnerServiceServerExecute_WithInput/SimulateCtrlC

Almost fixed it. Still not quite done yet until https://github.com/stateful/runme/pull/607 is merged/release.

Test_command/JavaScript and Test_command/JavaScriptEnv are failing due to different node.js version. We should run these only in the CI as locally it does not make sense. It kinda worked so far because all contributors have had the same node.js version. We can hide it with a build tag similarly to tests that expect Docker:

These should just migrate to https://github.com/stateful/runme/issues/605.

While we still have occasional flakes, a lot of work's been done to produce stable test runs, especially locally.


S3 requests after the hyper s3 timeout connection duration fail over large table operations

Environment
Delta-rs version: python v0.16.0
Binding: Python
Environment:

Cloud provider: AWS

Bug
What happened:
On three of our large Delta tables (out of 500, most of the others are a lot smaller) I've repeatedly been seeing errors related to an S3 timeout. I get two kinds of errors; one indicates an error reading data from a parquet file, the other is just a much more generic error. Here they are:
Failed to parse parquet: Parquet error: AsyncChunkReader::get_bytes error: Generic S3 error: Error after 10 retries in<PHONE_NUMBER>13s, max_retries:10, retry_timeout:180s, source:error sending request for url (https://s3.us-east-1.amazonaws.com/...redacted...some-data-file.parquet): operation timed out

AND

ERROR - Error deleting events from s3a://path-to-delta-table: Failed to parse parquet: Parquet error: AsyncChunkReader::get_bytes error: Generic S3 error: request or response body error: operation timed out

This can happen in various contexts, but the prominent example in my case is needing to scan the entire Delta table for records matching a value and deleting those matches. I've logged out right before this delete op runs, and the time delta between that log and the error is usually around 5 minutes. This time delta is relevant.
The second one in particular comes up a lot. This is on a table that gets around 250,000 rows added every hour and is partitioned by date 2024-03-18 and hour 15 as example.
My initial thought was that this was due to a failure to download a larger file such as a checkpoint; but those are "only" 668 MB and it is certainly not unheard of, moving files using various AWS SDK's will gladly handle larger files.
Our current theory is that instead this timeout indicate that the hyper client makes a request, then the library does some in-mem operations (such as scanning a large delta table) that takes a long time, and then when delta-rs is ready to reach out to S3 again, it exceeds some kind of keep-alive timeout and fails. This is why that time delta of 5 minutes I mentioned earlier is important.
This seems related to this comment: https://github.com/delta-io/delta-rs/blob/785667e5d65e3b45cf27e0a74cf297479f42d307/crates/aws/src/storage.rs#L401-L406
And finally I think this sort of timeout is expected from the hyper client, per this (admittedly old) ticket but it explains this exact situation in another context: https://github.com/hyperium/hyper/issues/763
What you expected to happen:
Even on long running operations, such as a scan over the whole table for deletion, the operation would eventually succeed barring no other issues.
How to reproduce it:
IF I AM CORRECT: perform a long running Delta operation, such as a delete on a table with millions of rows and have it try to make a final reach out to S3
More details:
Note this is just a theory. I wanted to get this issue out there to see what others think, I'm going to dig in and see if I can figure out whether it's a issue with the library or something else.

@liamphmurphy I'm happy I wasn't the only one facing this. Was questioning our infra setup

@liamphmurphy I'm happy I wasn't the only one facing this. Was questioning our infra setup

Haha I'm also glad to know I'm not completely crazy!
This may be relevant: https://github.com/awslabs/aws-sdk-rust/issues/1079#issuecomment-1997990355
If this fix is related, I've noticed the hyper version delta-rs uses is quite old so it'll be a big version increase.

@ion-elgreco Tested with 0.15.3 and yep I get that second more generic error still.
And ahh okay understood, guess that explains why changing that env var wasn't doing anything haha. I'll bring that down locally and see if that fixes it

@liamphmurphy we actually see it happen in 1.5minute already:
The above exception was caused by the following exception:
_internal.DeltaError: Generic DeltaTable error: External error: External error: Arrow error: External error: Parquet error: ParquetObjectReader::get_byte_ranges error: Generic S3 error: request or response body error: operation timed out

I did some debugging and found where this error occurs (at least for me)
It happens here: https://github.com/delta-io/delta-rs/blob/dadf2645712c0301d7fe1f055dee92c3b5393fc4/crates/core/src/kernel/snapshot/log_segment.rs#L316
The checkpoint_stream.next() call hangs for some time, and then eventually returns an error;
Err(Parquet { source: General("ParquetObjectReader::get_byte_ranges error: Generic S3 error: request or response body error: operation timed out") })

And for some additional logs in case it's helpful (the checkpoint files print line is my own), here's the last snippet of RUST_LOG=debug lines leading to the error.
checkpoint files: [ObjectMeta { location: Path { raw: "_delta_log/00000000000000108548.checkpoint.parquet" }, last_modified: 2024-03-19T13:01:23Z, size: 953533417, e_tag: Some("\"tag\""), version: None }]
[2024-03-19T14:23:36Z DEBUG hyper::client::pool] reuse idle connection for ("https", s3.us-east-1.amazonaws.com)
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::io] flushed 1575 bytes
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::io] parsed 12 headers
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::conn] incoming body is content-length (8 bytes)
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-03-19T14:23:36Z DEBUG hyper::client::pool] pooling idle connection for ("https", s3.us-east-1.amazonaws.com)
[2024-03-19T14:23:36Z DEBUG hyper::client::pool] reuse idle connection for ("https", s3.us-east-1.amazonaws.com)
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::io] flushed 1575 bytes
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::io] parsed 12 headers
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::conn] incoming body is content-length (86293 bytes)
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-03-19T14:23:36Z DEBUG hyper::client::pool] pooling idle connection for ("https", s3.us-east-1.amazonaws.com)
[2024-03-19T14:23:36Z DEBUG hyper::client::pool] reuse idle connection for ("https", s3.us-east-1.amazonaws.com)
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::io] flushed 1567 bytes
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::io] parsed 12 headers
[2024-03-19T14:23:36Z DEBUG hyper::proto::h1::conn] incoming body is content-length (953409770 bytes)
[2024-03-19T14:23:58Z DEBUG hyper::client::client] client connection error: connection closed before message completed

@ion-elgreco Yeah appears to be. I presume the reason why a stream is used here was to accommodate large checkpoints like this and to not have to load it all in memory, but then that hyper client connection closes before it can finish. 🤔

@ion-elgreco we seing a similar issue using Azure. When we run the following code it fails with _internal.DeltaError: Failed to parse parquet: Parquet error: Z-order failed while scanning data: ArrowError(ExternalError(General("ParquetObjectReader::get_byte_ranges error: Generic MicrosoftAzure error: request or response body error: operation timed out")), None)
import os
os.environ["RUST_LOG"]="debug"

from deltalake import DeltaTable

blob_path = "az://<redacted path>"
storage_options = {"AZURE_STORAGE_ACCOUNT_NAME": "<redacted sa>", "AZURE_CONTAINER_NAME":'<redacted container>', 'use_azure_cli': 'true'}

dt = DeltaTable(blob_path, storage_options=storage_options)
dt.optimize.z_order(["StatusDateTime"])

The table consists of 12 parquet of roughly 400mb each.
You can see the full error log here:
https://gist.github.com/thomasfrederikhoeck/8db799b3fe4fbc2414626a97da9249a9

@ion-elgreco I just ran it with "timeout": "120s". It ran for much longer (15mins +) but failed with following error. I noticed that after a few minutes the network throughput dropped to zero indicating that nothing was happening.
DeltaError: Failed to parse parquet: Parquet error: Z-order failed while scanning data: ArrowError(ExternalError(General("ParquetObjectReader::get_byte_ranges error: Generic MicrosoftAzure error: Error after 0 retries in 86.1024429s, max_retries:10, retry_timeout:180s, source:error sending request for url (https://<redacted sa>.blob.core.windows.net/<redacted path>/DWCreatedDate=2024-02-04%2001:17:58.000000/Year=2019/part-00001-560c8d94-ed4e-4047-b268-ec11ab58100e-c000.snappy.parquet): connection error: An existing connection was forcibly closed by the remote host. (os error 10054)")), None)

@liamphmurphy @thomasfrederikhoeck it seems we are using an ancient version of hyper.. I wil check if I can bump it

@liamphmurphy @thomasfrederikhoeck can you try this branch? https://github.com/delta-io/delta-rs/pull/2378
Likely not the issue but worthwhile to try

@ion-elgreco just tried #2378 . I still get error with the following logs:

[2024-04-03T20:40:03Z DEBUG hyper::proto::h1::conn] incoming body is content-length (948749 bytes)
[2024-04-03T20:40:03Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:03Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:03Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:03Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:03Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:03Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:03Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:03Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:03Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:03Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:04Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:04Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:04Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:04Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:05Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:05Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:06Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:06Z DEBUG hyper::proto::h1::io] flushed 10958 bytes
[2024-04-03T20:40:07Z DEBUG hyper::proto::h1::io] parsed 21 headers
[2024-04-03T20:40:07Z DEBUG hyper::proto::h1::conn] incoming body is content-length (883496 bytes)
[2024-04-03T20:40:08Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:08Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:09Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:09Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:10Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:11Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:12Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:13Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:14Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:15Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:18Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:19Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:19Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:19Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:21Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:22Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:22Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:23Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:24Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:26Z DEBUG hyper::client::pool] reuse idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:27Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:28Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:29Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:30Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:34Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:34Z DEBUG hyper::client::pool] pooling idle connection for ("https", <redacted sa>.blob.core.windows.net)
[2024-04-03T20:40:34Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:34Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:35Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:35Z DEBUG hyper::proto::h1::conn] incoming body completed
[2024-04-03T20:40:36Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:38Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:40Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:40Z DEBUG rustls::common_state] Sending warning alert CloseNotify
[2024-04-03T20:40:52Z DEBUG reqwest::connect] starting new connection: https://<redacted sa>.blob.core.windows.net/
[2024-04-03T20:40:52Z INFO  object_store::client::retry] Encountered transport error backing off for 0.1 seconds, retry 1 of 10: error sending request for url (https://<redacted sa>.blob.core.windows.net/<redacted path>/DWCreatedDate=2024-02-04%2001:17:58.000000/Year=2013/part-00001-de222443-0674-41b8-bdb4-53050a65fa47-c000.snappy.parquet): error trying to connect: dns error: task 1748 was cancelled
Traceback (most recent call last):
  File "c:\projects\ion-elgreco\delta-rs\test.py", line 14, in <module>
    dt.optimize.z_order(["StatusDateTime"])
  File "C:\projects\ion-elgreco\delta-rs\python\deltalake\table.py", line 2022, in z_order
    metrics = self.table._table.z_order_optimize(
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_internal.DeltaError: Failed to parse parquet: Parquet error: Z-order failed while scanning data: ArrowError(ExternalError(General("ParquetObjectReader::get_byte_ranges error: Generic MicrosoftAzure error: request or response body error: operation timed out")), None)

@thomasfrederikhoeck @liamphmurphy can you guys please try out this PR: https://github.com/delta-io/delta-rs/pull/2392

@ion-elgreco it did not solve it. :-/

@ion-elgreco it did not solve it. :-/ I see the following 5 times:
[2024-04-07T19:26:24Z INFO  object_store::client::retry] Encountered transport error backing off for 0.1 seconds, retry 1 of 10: error sending request for url (https://<redacted sa>.blob.core.windows.net/<redacted path>/DWCreatedDate=2024-02-04%2001:17:58.000000/Year=2013/part-00002-de222443-0674-41b8-bdb4-53050a65fa47-c000.snappy.parquet): operation timed out

How long is your timeout set to?

@ion-elgreco  That is without timeout explicitly set. If I set it to timeout 120s it is the same just it takes longer time. I notice a pattern where CPU and RAM are used almost fully until I start seeing [2024-04-08T07:10:44Z DEBUG rustls::common_state] Sending warning alert CloseNotify  which then results in ram starting to being released and CPU load lowering. This happens roughly 5 min after the script started. After I see this log there is no network activity. Do you have an idea of where we can add more debug logging to try and understand why and where this happens? :-)

@thomasfrederikhoeck I am not really sure what the issue could, because your previous errors showed closed by remote host, so that sounds more like a server-side kill of the connection

@ion-elgreco I can maybe hire a consultant to look at this if you would have the time to look at a PR given I can't really contribute myself.

@thomasfrederikhoeck for sure, I am happy to free up time to review an PR :)

@ion-elgreco I have someone working on it now but given that object_store is changing around the asyncwrite do you think it make sense to continue? Won't it maybe be better to wait for https://github.com/delta-io/delta-rs/issues/2436 since it looks like a new relases of the arrow crate might not be to far away: https://github.com/apache/arrow-rs/issues/5688
For reference:
https://github.com/apache/arrow-rs/blob/cd3331989d65f6d56830f9ffa758b4c96d10f4be/object_store/CHANGELOG.md

@ion-elgreco I have someone working on it now but given that object_store is changing around the asyncwrite do you think it make sense to continue? Won't it maybe be better to wait for https://github.com/delta-io/delta-rs/issues/2436 since it looks like a new relases of the arrow crate might not be to far away: https://github.com/apache/arrow-rs/issues/5688
For reference:
https://github.com/apache/arrow-rs/blob/cd3331989d65f6d56830f9ffa758b4c96d10f4be/object_store/CHANGELOG.md

Yes it's better to first upgrade the object store to using the upload trait and see how much of an impact that is. Perhaps that person can help with refactoring to those APIs

@thomasfrederikhoeck can you try #2581, which bumps the object_store dep? I refactored the object store wrapper on the python side to use an internal buffer with the Upload trait that occasionally flushes, it may solve this issue.

@abhiaagarwal Nice! I will test today or tomorrow:-)

@thomasfrederikhoeck it's merged, try main :)

@abhiaagarwal it's actually already released 😉

Hmm, @liamphmurphy can you check if this has been solved on the AWS side? The error you're getting @thomasfrederikhoeck is the exact same one that was reported above, the timeouts seem to be solved.
Digging a bit deeper, the error is orginating from here, where it's performing a HTTP range request to get the parquet metadata without downloading the whole file (DuckDB does something similar). I wonder if the error still lies with object_store's handling of HTTP range requests?

@abhiaagarwal you didn't update the Rust writer IIRC?

@ion-elgreco yep, but the failure has to do with a read. Perhaps there's a path where it reads the parquet metadata before it performs the delete operation?

Hmm, @liamphmurphy can you check if this has been solved on the AWS side? The error you're getting @thomasfrederikhoeck is the exact same one that was reported above, the timeouts seem to be solved.
Digging a bit deeper, the error is orginating from here, where it's performing a HTTP range request to get the parquet metadata without downloading the whole file (DuckDB does something similar). I wonder if the error still lies with object_store's handling of HTTP range requests?

@abhiaagarwal the new error I'm getting now is not the one reported above? Previously, I was getting the timouts as reported above but your PR a have fixed this (I tried few times and didn't see it a single time). So I belive #2592 is new :-)

@ion-elgreco yep, but the failure has to do with a read. Perhaps there's a path where it reads the parquet metadata before it performs the delete operation?

It might be related to reading the checkpoint and we also often scan the parquet files

@thomasfrederikhoeck yeah, I'm just curious as to see whether the same error is observed on the AWS side — the error here seems to be "the internal parquet reader can't decode the metadata returned by the http range request" (where it previously would time out even trying to even execute the range request), which could point to an implementation flaw in the upstream arrow dependency or maybe the object store implementation of azure.


Arbitrary value class not compiled when passed to Gatsby component through a prop

What version of @tailwindcss/jit are you using?
v0.1.17
What version of Node.js are you using?
v15.12.0
What build tool (or framework if it abstracts the build tool) are you using?
gatsby-cli v3.1.0
What browser are you using?
Firefox, Chrome
What operating system are you using?
Fedora Linux 33
Reproduction repository
https://github.com/rbottomley/jit-issue
An arbitrary value class does not get compiled by Tailwind JIT when the class contains values that are passed into a Gatsby component via props.
Example, index.js contains:
<Widget w="420px"/>
and widget.js component contains:
import React from 'react'

export const Widget = (props) => (
  <div className={`bg-[#0b0] w-[${props.w}] my-6 p-6`}>
      Tailwind JIT example inside of component. {props.w} wide

)

The HTML output is correct:

Tailwind JIT example inside of component. 420px wide

The arbitrary value class bg-[#0b0] works but w-[420px] does not.

Having this issue as well @adamwathan

I think this has been answered before,
see https://github.com/tailwindlabs/tailwindcss-jit/issues/138#issuecomment-804248599

Oh, it sure has. Thanks for the info. Closing this.


Spelling Mistake

Theres a typo on Blob Block Count, it says bock count.

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

ID: 2896ae0e-a559-64c7-1782-14ef1c83f509
Version Independent ID: fdc01b78-9222-6231-f85e-68defe4eafa9
Content: Understand outputs from Azure Stream Analytics
Content Source: articles/stream-analytics/stream-analytics-define-outputs.md
Service: stream-analytics
GitHub Login: @mamccrea
Microsoft Alias: mamccrea

@fusionet24 Thanks for pointing out the issue, I've addressed this issue in PR https://github.com/MicrosoftDocs/azure-docs-pr/pull/68730 .
The changes should be live EOD or tomorrow. We will now close this issue. In future, if you see any minor bug fixes in the doc, feel free to click on the edit button and submit a PR to update. we love to take community contributions.


extend existing snippets is not working

How can I use existing vscode snippets and add custom ones ?
I have made the setup to use custom snippets with require("luasnip/loaders/from_vscode").lazy_load({ paths = { './custom-snippets' } })
but then the snippets from friendly-snippets don't show anymore, just the custom ones. Should I add both ? like:
require("luasnip/loaders/from_vscode").lazy_load()
require("luasnip/loaders/from_vscode").lazy_load({ paths = './custom-snippets' })

Yep, adding both should work :+1:

Thanks!


Can't bring up edit menu twice

Highlight a message, tap Edit, choose Share, choose Message, cancel sending, tap on any message, tap Edit.
Expected: edit menu appears as before
Actual: nothing happens
Actually, I think it might just be that the tap target for the edit button is really small and I miss it a lot of the time.

Cannot be reproduced.
BTW edit button has been changed (an icon is now displayed beside the timestamp).


530022 Not Documented

The Failure Reason is 'Other' and I do not have any additional error information.
The client is a mobile device and custom application and the CA policy fails due to requiring an approved client app.
Other times when not meeting the approved client app requirement, we have received 530021.

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

ID: fa732de6-2cab-d780-aa21-dfec80e0a8fe
Version Independent ID: 1a11b9b6-cf4f-3581-0864-0d5046943b6e
Content: Error codes in the Azure Active Directory portal
Content Source: articles/active-directory/reports-monitoring/reference-sign-ins-error-codes.md
Service: active-directory
Sub-service: report-monitor
GitHub Login: @MarkusVi
Microsoft Alias: markvi

@paulhugill Thanks for your feedback! We will investigate and update as appropriate.

You can use the error code tool to get the information.
#please-close


Doesn't decode key

For example, try parsing 'bl%40h=blah' and it doesn't decode the key.
console.log(require('query-to-obj')('bl%40h=blah', {decode:true}))
// 'bl%40h=blah'
// should be: 'bl@h=blah

I tried altering your decode test by putting an encoded character into the key and it fails.

Released a patch (version 1.0.2) to npm and bower to fix this is issue.
It should now decode the key as well:
https://runkit.com/kristoferk/5a876d5f21466b00130a78ca


GETCONNECTIONS does not produce a valid URL

There should be a preceding '/' before the url definition in the following line:
https://github.com/SymphonyPlatformSolutions/symphony-api-client-java/blob/2906816f3d6a5649d9a67fb2664186726904099d/src/main/java/clients/symphony/api/constants/PodConstants.java#L26
The other url paths start with this on this page. The current result produces an invalid URL.

The preceding URL has now been included within the PodConstants.java. Will close this issue.


Add cross-targeting support to ObjectWriter

This PR is for the following item from issue #2606

[ ]  Add cross-targeting support to ObjectWriter https://github.com/dotnet/llilc/tree/master/lib/ObjWriter (add a new argument to Initialize method to specify target platform)

It allows typically to generate ELF output from Windows directly
There is a TODO in this PR related to the ARM/ARM64 platforms/abi. It would require for example to add Tizen as a platform to be able to specify properly the gnueabi
cc: @jkotas  @alpencolt

It is going likely to require to regenerate objwriter NuGet package, but I'm not sure how to proceed for this


Fix Generate Random Whole Numbers with JavaScript

Pre-Submission Checklist

[x] Your pull request targets the staging branch of FreeCodeCamp.
[x] Branch starts with either fix/, feature/, or translate/ (e.g. fix/signin-issue)
[x] You have only one commit (if not, squash them into one commit).
[x] All new and existing tests pass the command npm run test-challenges. Use git commit --amend to amend any fixes.

Type of Change

[x] Small bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds new functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Add new translation (feature adding new translations)

Checklist:

[x] Tested changes locally.
[x] Closes currently open issue (replace XXXX with an issue no): Closes #8565

Description
Updated tests regex
Earlier test regex was looking for 'Math.random * 10' with parentheses like '(Math.random * 10)' which was causing the tests to not pass when 'Math.random * 10' was used without parentheses e.g. - aliasing it with a variable e.g - 'var random = Math.random * 10;'
As a fix, Removed the condition of presence of parentheses around 'Math.random * 10' .

:sparkles: :sparkles: LGTM. :sparkles: :sparkles:
Thanks @nishant-tomer !
ProTip:
Lets keep the PR titles, commit messages and branch names brief and concise.
Commit messages typically not more than 50 chars.
Branch names not more than four-five words.
Its gets tedious to pull down the changes for testing.
You can have the commit description as descriptive as you may wish though.
Here is a good read : http://chris.beams.io/posts/git-commit

:) :). Thank you for the link and will surely incorporate all the suggestions in future commits.


Unforeseen Error

we have encountered the following error installing IPT
It seems you have discovered an unforeseen error:
gbrds.gbif-uat.org
If you think this shouldn't have happened, would you mind helping us to improve the IPT and file a small bug report for this exception?
Thanks a million, the IPT development team.
The install can't proceed beyond this point.
Regards,
Zack.

This is only part of an error (perhaps the IPT didn't show all of the error), but a typical cause is when a firewall or proxy blocks the IPT from accessing gbrds.gbif-uat.org.

Please let us know if there's still an issue; hopefully configuring the firewall (or similar) resolved the problem.


Revert "HIVE-28417: Bump Log4j2 to 2.24.1 to facilitate compilation of GraalVM Native Image"

Reverts apache/hive#5375
Try to resolve HIVE-28611

https://github.com/apache/hive/pull/5530 is trying to fix the skipped tests issue by upgrading Maven SureFire Plugin. Let's disscuss if we can merge https://github.com/apache/hive/pull/5530 to fix the issue.

@zhangbutao, I've reverted to unblock everyone.

@zhangbutao, I've reverted to unblock everyone.  original upgrade PR is supposed to have that change.

No problem we can revert it first. we can continue to test HIVE-28417 after HIVE-28519 is merged.


translations setup

figure out how we want to handle translations.
transifex would be one way. android studio the other.
see previous discussion @ https://github.com/criticalmaps/criticalmaps-android/pull/178

closed by #181


WIP: CLID-9,CLID-24: Support incremental mirroring using archives by date

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
1080  mv ~/clid-9/working-dir/.history/.history-2024-02-07T09:55:57Z ~/clid-9/working-dir/.history/.history-2024-01-07T09:55:57Z
1081  ls -la ~/clid-9/working-dir/.history/
1082  ./bin/oc-mirror --v2 -c clid-9.yaml file:///home/skhoury/clid-9/
1083  tar tvf /home/skhoury/clid-9/mirror_000001.tar
1084  tar tvf /home/skhoury/clid-9/mirror_000001.tar | grep docker/registry/v2/blobs | wc -l
0
1085  rm /home/skhoury/clid-9/mirror_000001.tar
1086  ./bin/oc-mirror --v2 -c clid-9.yaml file:///home/skhoury/clid-9/ --since 2024-01-01
tar tvf /home/skhoury/clid-9/mirror_000001.tar | grep docker/registry/v2/blobs | wc -l
112
Expected Outcome
Please describe the outcome expected from the tests

/jira refresh

@sherine-k - I know this is not part of this PR, I forgot to ask in the previous one to ensure golangci-lint passes.
Currently its failing in 2 places
pkg/archive/permissive_adder.go:258:27          unused       func `(*permissiveAdder).getOversizedFiles` is unused

if you could add // nolint above the function i.e
// nolint
func (o *permissiveAdder) getOversizedFiles() map[string]int64 {

and secondly
pkg/clusterresources/clusterresources.go:189:2  ineffassign  ineffectual assignment to csSuffix

maybe do something like
var csSuffix string

@sherine-k - Verified working locally as expected

/lgtm


Vertical Header Labels not showing up when using Stylesheets from this package

Normally my table should look like this:

But with the stylesheet enabled it looks like this:

If I comment out the line that sets those header labels, it works, but I can't use my labels.

For reference, this is what I use to set those labels : self.table_tableview.setVerticalHeaderLabels(tabledata[1:, 0]), table_tableview is a QTableWidget, and I use the dates from this file: https://gist.githubusercontent.com/Benibla124/7afd02650845c5e6addf4924cfbf8e02/raw/fbf5ff94d9b036a9a3adcd9d0a657ffc4474ec00/Data.txt

I'm having this issue as well and after messing around with the source stylesheet, I found that removing these lines for the QHeaderView fixes it:

HOWEVER, this disables theming for the tiny sorting arrow thing, even for the horizontal header, as (barely) seen here:

Here's the source code for the example above for you to recreate:
import sys

from PySide6.QtCore import *
from PySide6.QtGui import *
from PySide6.QtWidgets import *
import qdarktheme

class Example(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        model = QStandardItemModel()
        model.setHorizontalHeaderLabels(("ID", "NAME", "AGE"))
        model.setVerticalHeaderLabels(("ID", "NAME", "AGE"))

        table = QTableView()
        table.setSortingEnabled(True)
        table.setModel(model)

        layout = QVBoxLayout()
        layout.addWidget(table)
        self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    app.setStyleSheet(qdarktheme.load_stylesheet())
    widget = Example()
    widget.show()
    exit(app.exec())

This fix by #189.


No samples

On unstable branch using Zig 0.13.0-dev.46+3648d7df1
see zig build -l
Update:
@kamidev writes:
"Note that I had to remove the usingnamespace struct wrapping samples to make them run at all."

Fixed by 7205be0f4f724cba548299c78f975fb57af18264


integrate bot with palserver

make users put src code in a folder in PalServer/
change palserver to write log to a log file in the new folder
custom command to start both palserver and the bot (problem: require node process manager? require palserver as service? #28 )

https://www.spigotmc.org/resources/discordutils-discord-bot-for-your-minecraft-server.97433/


mysql

Type: Feature Request
i tried but find very diffculties to query mysql in vscode
VS Code version: Code 1.81.1 (6c3e3dba23e8fadc360aed75ce363ba185c49794, 2023-08-09T22:22:42.175Z)
OS version: Windows_NT x64 10.0.22000
Modes:

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


Redis storage

Hi there.
Is there a plan to add or maybe some already known fork that adds storing the counter cache in Redis?
We have a relation of tag <-> tag_follower with relatively small (100k rows) number of tags and millions of followers that are very rapidly changing, and updating the followers' cache count in the DB created a lot of deadlocks. We decided to offload this counter cache to Redis with sorted set per table:field, but it seems that we'd need to do it manually as opposed to using counter_culture.

Not planned and no fork I know of. Your use case makes sense, though.
Honestly, the easiest thing for you to do if you need this for only one table is probably to add some manual callbacks and manage counts that way.
That being said, if you did come up with a fork that makes counter storage pluggable and that adds a Redis storage option I’d certainly review that.


[Lint] Add Include What You Use (IWYU) linter

What
Add IWYU as a linter that can be run as part of the build process (similar to clang-tidy and cpplint), and hence add to Github CI.
Why
In C++, a best practice for code readability and portability is to ensure that sources #include headers they directly depend on.
Often during C++ development you find that #includeing a header is not necessary because it is already #includeed transitively via another header.
However, relying on this is bad for a few reasons, in particular

If the transitively-provided header is part of our project, then moving code around as part of a refactor becomes more difficult, since you could see a sudden loss of expected symbol declarations/definitions and have to hunt down the required missing header.
If the transitively-provided header is provided via a standard library header, then attempting to compile on a different platform (e.g. Linux vs. Windows) may fail due to differences in the implementation detail of internal standard library header #includes.
Ensuring necessary #includes are kept close to where they're needed means when we inevitably delete code, we are more likely to also remove any unnecessary headers, rather than leaving unused headers in the codebase, potentially bloating the binary and slowing compile times.

CLion's own built-in include checker currently reveals
BatchElementError.hpp
Unused "#include <functional>"
Unused "#include <stdexcept>"
Context.hpp
Unused "#include <array>"
Unused "#include <cstddef>"
exceptionMessages.hpp
Unused "#include <optional>"
Unused "#include <openassetio/typedefs.hpp>"
exceptions.hpp
Unused "#include <openassetio/typedefs.hpp>"
LoggerInterface.cpp
Unused "#include <iomanip>"
Manager.hpp
Unused "#include <openassetio/errors/exceptions.hpp>"
ManagerFactory.cpp
Unused "#include "openassetio/InfoDictionary.hpp""
TraitsDataTest.cpp
Unused "#include <openassetio/trait/collection.hpp>"
typedefs.hpp
Unused "#include <utility>"

The latest versions of Clang-Tidy now incorporate IWYU to some degree via its misc-include-cleaner check. It's rather opinionated and not very configurable at time of writing, but works out of the box with our current linter setup.
We don't currently make use of misc-include-cleaner for these reasons (and because we need to update the version of Clang-Tidy used in CI).
We can re-task this issue to make use of misc-include-cleaner instead of IWYU.


Wine series3

As mentioned in #68397, wine4 on macOS is busted. This adds a series3 source for wine3 back in; it also adds the macOS system.

Don't merge master. Instead, rebase your changes on top of master.

wine4 built with nix doesn't properly work on macOS.

Is there an issue somewhere describing the problems? Here on our tracker and upstream?

wine4 built with nix doesn't properly work on macOS.

Is there an issue somewhere describing the problems? Here on our tracker and upstream?

fdd6937 is really just a missing dependency that nix doesn't provide.
6a0af92 contains some commentary about the result of the linked binary.
even though I was able to build wine4 on macOS Mojave with homebrew; it had the same runtime issues I've experienced with the wine4 built produced by nixpkgs. Those runtime issues mostly concern the execution of the remote-iserv.exe utility I use to cross compile haskell code to windows. The runtime crashes do not happen with wine3. I was not able to nail the exact issue down that causes the runtime crashes of wine. Hence with only a vague "doesn't work", no issues were filed. This is also why I just want to have "series3" available as an additional set of sources; for when stable/unstable just don't work. Sadly we can't override the wine sources through an overlay; that would have been my first choice.

Of note: I'd really like to see this back ported to at least

19.03 and
19.09
to make cross compiling of windows haskell applications viable on at least those two releases.

in my opinion it is known that wine doesn't always work and can break certain applications from version to version. Unless we get more reports that things don't work, how about just keeping version 3 outside of Nixpkgs?

in my opinion it is known that wine doesn't always work and can break certain applications from version to version. Unless we get more reports that things don't work, how about just keeping version 3 outside of Nixpkgs?

@FRidh sorry, I'm confused. What do you mean by keeping it out of nixpkgs? wine used to be series 3 for long time, but was updated to wine 4 somewhere in 19.03 iirc; which magically started breaking infrastructure built on top of nixpkgs.
We can already choose different "versions" of wine, by setting the wine.release option to stable or unstable; all this does is add series3 in addition. It doesn't even change the defaults.

What do you mean by keeping it out of nixpkgs?

https://github.com/nix-community/NUR is one good option for this

We can already choose different "versions" of wine

Still, we keep with the announced versions from https://www.winehq.org/
I'm all for pinning an older version, if it fixes a problem, especially if it doesn't require any separate configuration. A demonstration / documentation of the problem would be really helpful, though, ideally as an automated test.

@bendlas well, the way the current wine package is structured with all it's nested callPackage calls, it's rather hard to replace just the sources with something else without having to replace the whole package.
If we sources.nix was exposed in a way that could be overridden with an option that situation would look different.
I'll try to run the builds with stable again and see if I can get the error message; but this will take quite a few hours of recompiling packages.

@bendlas here's the error that wine keeps reporting with wine4 on macOS:
preloader: Warning: failed to reserve range<PHONE_NUMBER>010000-0000000000110000
preloader: Warning: failed to reserve range<PHONE_NUMBER>110000-0000000068000000
preloader: Warning: failed to reserve range 00007fff40000000-00007fff41ff0000
wine: Invalid address.

same derivation with wine3 does not produce this error.

If we sources.nix was exposed in a way that could be overridden with an option that situation would look different.

wine.overrideDerivation should already allow source overrides. Still, for a pinned wine3, a c&p'd derivation is ok, to guard against config changes.

I'll try to run the builds with stable again and see if I can get the error message; but this will take quite a few hours of recompiling packages.

Yeah, wine is quite heavy. I don't have a beefy mac (or any for that matter), unfortunately. Maybe somebody in IRC does?

here's the error that wine keeps reporting with wine4 on macOS:

Is there an upstream ticket for that?

@bendlas so how are we going to move forward from here? Yes, I could c&p it all into my own expression. I'd rather not do this though. Especially as wine4 is broken on darwin.
Is your stance that this is not going to go into nixpkgs? If so we can close this ticket; however having it open doesn't help me to make a decision either way. I'd really like to get off of custom nixpkgs forks at work.

wine.overrideDerivation should already allow source overrides.

overrideAttrs is preferred over overrideDerivation.

@bendlas so how are we going to move forward from here?

Basically, without a Mac, I can't verify the problem, nor the fix, so I might be the wrong person to help get this in.
I'd need to make sure all the necessary work gets done, without being able to do it myself:

collecting at least a second account of the problem
creating an upstream ticket
creating a test script (this could replace a second account)
integrate into darwin pkgs wine = wine3 / wine4;, meta.platforms

Is your stance that this is not going to go into nixpkgs?

My stance is

I'm all for pinning an older version, if it fixes a problem

I will add that we ship nixpkgs to all users, so the bar should be accordingly high.
Maybe adding a checkPhase could help demonstrate the problem during build. What I'm aiming for is, being able to recognize when the pin will be no longer necessary.
I think there was feedback about meta.platforms on the previous ticket. That might allow the darwin builder to check this PR.

I'd really like to get off of custom nixpkgs forks at work.

I can recommend overlays. The can replace many fork use cases.

Haven't anything against adding series3 on its owns. But could we have simplified way, to inject any arbitrary wine version to build?  Or maybe maintain all released wine versions as NUR? (I remember situation, when some apps/games require specific wine version)?
(It also can help us maintain unstable/staging automatically, actually we can update them automatically on staging tag appear in their repo)
@angerman btw, why  stable 4.0 branch not solve your problems, if I understand their versioning policy, 4.0.x is a stabilization of 3.x, where 4.x (w/o zero) is a new features.

withdraw my note about "4.0.x", because patchset about 3.0.x, and not about 3.x.

Well, after some thinking, and upcoming 5.0 release, I decide to approve this approach. I would add series4 myself, when 5.0 branch become new stable. (I myself have at least one application, which not work in upcoming 5.0).
Also I would like to simplify injection of arbitrary wine release to build process, and make a NUR with all available wine releases. (just a note for future roadmap)

@bendlas @7c6f434c what's the final verdict on this?


Lexical RT double click bug in Firefox

Link to reproduction

Describe the Bug
The lexical RT editor has a small issue 🐛  in Firefox 🔥🦊  when selecting a formatted word
This if selection includes the start of the formatted phrase.
Selection could be done by double-click or click and drag select.
✔  Works as expected: First I can select a word with double-click.

✔ Works as expected: Once I've selected a text altering format (example: subscript), it gets applied correctly

✔  Works as expected: If I then remove the word highlighting, the toolbar disappears.

❌ Not expected: Once I re-select the formatted word with double-click, I can not disable the subscript format as its not toggled in the toolbar.

✔ Works as expected: Any click and drag selection with the cursor that does not involve the start of the word works correct.

❌ Not expected: Once I select the whole word with a click and drag, its the same as double-click, the option is not toggled.
Expectation
If I select a formatted text section, I would expect the toggle of the format to be enabled. So that I'm able to disable the toggling.
Browser:
🔥🦊 119.0 (64-bit)
on 🍏 12.2.1 (21D62)
To Reproduce
Please check Description above.
Payload Version
"payload": "^2.0.15",
Adapters and Plugins
"@payloadcms/bundler-webpack": "^1.0.5",
"@payloadcms/db-mongodb": "^1.0.6",
"@payloadcms/plugin-cloud-storage": "^1.1.1",
"@payloadcms/plugin-sentry": "^0.0.4",
"@payloadcms/richtext-lexical": "^0.1.15",

Hey, thank you for reporting this! It seems that this is actually an issue in the lexical core - not in the payload lexical plugin.
I have opened an issue in the lexical repository here: https://github.com/facebook/lexical/issues/5234
Let's wait for the lexical team to fix this

Since it's a Firefox issue, rather than an issue with lexical, I'm going to close it here. I think it's best to open an issue in Firefox, like John mentioned in the lexical issue. Dirtily patching this for just Firefox is not worth the effort and extra complexity it would introduce.
I'm also not sure how dirty patching it would work. I could remove the first, incorrectly selected node for Firefox - but that would then cause incorrect behavior when you actually do select 2 nodes. If the Firefox API incorrectly reports the selected DOM nodes, I don't think there is a way to differentiate between those 2 scenarios.

Noted, thx for finding out this much.


Make help screens look like GNU

@gpaterno it's just a matter of taste, pick the option you like most!


Fixed compatibility issue on new rxjs version

Issue #195
Problem
After updated rxjs to the latest version (run npm update) it throw compile error on all http repositories. Latest version of Rxjs and typescript only support strong typed parameters.
Fixes

Update the swagger codegen typescript-node template with correct resolve & reject codes.
Update Http repos with strong typed parameters matching the generated swagger codes.
Added errorHandling to parse useful error details. (generated swagger code returns the full http response).
Tested on current & latest npm packages (after npm update)

Pull Request Test Coverage Report for Build 569

16 of 200 (8.0%)  changed or added relevant lines in 15 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.2%) to 61.018%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/infrastructure/Http.ts
1
2
50.0%

src/infrastructure/api/networkRoutesApi.ts
0
2
0.0%

src/infrastructure/NetworkHttp.ts
4
8
50.0%

src/infrastructure/api/chainRoutesApi.ts
0
4
0.0%

src/infrastructure/api/diagnosticRoutesApi.ts
0
4
0.0%

src/infrastructure/api/nodeRoutesApi.ts
0
4
0.0%

src/infrastructure/api/mosaicRoutesApi.ts
0
6
0.0%

src/infrastructure/api/namespaceRoutesApi.ts
0
8
0.0%

src/infrastructure/api/blockRoutesApi.ts
0
12
0.0%

src/infrastructure/api/transactionRoutesApi.ts
0
14
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/infrastructure/NamespaceHttp.ts
2
16.07%

src/infrastructure/TransactionHttp.ts
4
28.4%

Totals

Change from base Build 568:
0.2%

Covered Lines:
5958

Relevant Lines:
8472

💛  - Coveralls


AWS C++ SDK: After creation of S3Client object and creating the bucket, subsequent call adds bucketname to the endpoint

I amable to connect to the endpoint server and create new bucket but subsequest calls fails with "unable to connect to endpoint"
Looking at the logs i see that bucket name is getting prefixed for the host name causing the issue.
How to fix this?
What platform/OS are you using?
Windows 2K12R2
Which version of the SDK?
Initiate AWS SDK for C++ with Version:1.7.142
What compiler are you using? what version?
installed aws C++ sdk through vcpkg
What are your CMake arguments?
vcpkg install aws-sdk-cpp[core,s3,ec2]:x86-windows
Can you provide a TRACE level log? (sanitize any sensitive information)
aws_sdk_2019-11-06-18.log

[DEBUG] 2019-11-06 18:16:28.003 WinHttpConnectionPoolMgr [5704] Returning connection handle 00BFBE38
[DEBUG] 2019-11-06 18:16:28.003 WinHttpSyncHttpClient [5704] Acquired connection 00BFBE38
[DEBUG] 2019-11-06 18:16:28.003 WinHttpSyncHttpClient [5704] AllocateWindowsHttpRequest returned handle 00BFFA10
[DEBUG] 2019-11-06 18:16:28.003 WinHttpSyncHttpClient [5704] with headers:
[DEBUG] 2019-11-06 18:16:28.003 WinHttpSyncHttpClient [5704] authorization: AWS4-HMAC-SHA256 Credential=BKIKJAA5BMMU2RHO6IBB/20191106/us-east-1/s3/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-api-version;x-amz-content-sha256;x-amz-date, Signature=52d2b872e4ad89769581ae0c5587e11e10a2ca8a6e5c2a413330b8e530ac15eb
content-length: 0
content-type: text/plain
host: qash2-sql<IP_ADDRESS>.104:9000
user-agent: aws-sdk-cpp/1.7.142 Windows/6.3.9600.17031 x86 MSVC/1916
x-amz-api-version: 2006-03-01
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20191106T181628Z
[WARN] 2019-11-06 18:16:28.004 WinHttpSyncHttpClient [5704] Send request failed: The server name or address could not be resolved
[DEBUG] 2019-11-06 18:16:28.004 WinHttpSyncHttpClient [5704] Closing http request handle 00BFFA10
[DEBUG] 2019-11-06 18:16:28.004 WinHttpSyncHttpClient [5704] Releasing connection handle 00BFBE38
[DEBUG] 2019-11-06 18:16:28.004 WinHttpConnectionPoolMgr [5704] Releasing connection to endpoint qash2-sql<IP_ADDRESS>.104:9000
[DEBUG] 2019-11-06 18:16:28.004 AWSClient [5704] Request returned error. Attempting to generate appropriate error codes from response
[ERROR] 2019-11-06 18:16:28.004 AWSClient [5704] HTTP response code: -1
Exception name:
Error message: Unable to connect to endpoint

Hi @kirannittur,
can you provide sample code that would reproduce this issue?

Below are the three functions to connect, create bucket and initiate multipart upload
In the header file m_client and m_config is declared
ClientConfiguration m_config;
shared_ptr m_client;
bool S3controller::Connect()
{
// Create a client
m_config.region = Aws::Region::US_EAST_1;
m_config.scheme = Scheme::HTTP;
m_config.connectTimeoutMs = 300000;
m_config.requestTimeoutMs = 300000;
m_config.readRateLimiter = m_limiter;
m_config.writeRateLimiter = m_limiter;
m_config.endpointOverride = m_minioServer;
m_config.executor = Aws::MakeShared<Aws::Utils::Threading::PooledThreadExecutor>(ALLOCATION_TAG, 4);

m_client = Aws::MakeShared<S3Client>(ALLOCATION_TAG,
	AWSCredentials(m_accessKey, m_secretKey), m_config,
	AWSAuthV4Signer::PayloadSigningPolicy::Never /*signPayloads*/, true /*useVirtualAddressing*/);

return true;

}
bool S3controller::CreateBucket(Aws::String &bucketName)
{
CreateBucketRequest createBucketRequest;
createBucketRequest.SetBucket(bucketName.c_str());
createBucketRequest.SetACL(BucketCannedACL::private_);
CreateBucketOutcome createBucketOutcome = m_client->CreateBucket(createBucketRequest);
if (!createBucketOutcome.IsSuccess())
{
cout << "Create bucket failed for bucket name " << bucketName.c_str() << " Error : " << createBucketOutcome.GetError().GetMessage() << endl;
return false;
}
const CreateBucketResult& createBucketResult = createBucketOutcome.GetResult();
if (createBucketResult.GetLocation().empty())
{
cout << "Create bucket failed for bucket name " << bucketName.c_str() <<  " location was empty" << endl;
return false;
}
return true;

}
bool S3controller::InitiateMultipartUpload(Aws::String &bucketName, Aws::String &objectName)
{
CreateMultipartUploadRequest createMultipartUploadRequest;
createMultipartUploadRequest.SetBucket(bucketName);
createMultipartUploadRequest.SetKey(objectName);
createMultipartUploadRequest.SetContentType("text/plain");
cout << "Creating multipart upload for bucket " << bucketName.c_str() << " and object name " << objectName.c_str() << endl;
m_createMultipartUploadOutcome = m_client->CreateMultipartUpload(
	createMultipartUploadRequest);

cout << "returned from Creating multipart upload for bucket " << bucketName.c_str() << " and object name " << objectName.c_str() << endl;
bool retCode = m_createMultipartUploadOutcome.IsSuccess();
if (!retCode)
{
	cout << "Failed to initiate multipart upload for bucket name " << bucketName.c_str() << " Error : " << m_createMultipartUploadOutcome.GetError().GetMessage() << endl;
	return false;
}

cout << "Successfully created multipart upload for bucket " << bucketName.c_str() << " and object name " << objectName.c_str() << endl;
return true;

}

Any call from S3Client object after creating bucket fails with "Unable to connect to endpoint"

Is this a bug? this seems to be straight forward implemented as per the SDK example. Am i missing something here?

I'm sorry @kirannittur , It'll take some time for me to get to why this is failing for you, but on first glance I don't think it's a bug with the sdk since the integration tests are passing and those include these kind of simple operations... It could be a naming issue or a problem specific to windows though so not necessarily 'not a bug'.
In the mean time you could also take a look at the tests in: aws-cpp-sdk-s3-integration-tests/BucketAndObjectOperationTests.cpp as "examples" on how to do these operations, since we know these pass, maybe you can find something you're missing from there.
I'll get back to you as soon as I make progress on this.

@KaibaLopez Thank you. I in fact implemented exactly the way described in the example you pointed. That link is what i used for reference.

useVirtualAddressing, please set it off, if you are using your own server and endpoint.

Thank you very much that resolved the issue.

it would be good to have this documented

Thanks for all the help


Add a way to tell Hub and downstream users that a result is being corrected/updated/cancelled.

As a receiver of SimpleReport result data, such as a county/state PHD,  I want to know when a test had to be corrected or updated in some way so that I can correct it as well
Describe the solution you'd like and the specific acceptance criteria to be completed
Create a new Test_result_status column to send to the Hub in each report, per details below.
Additional context
There's already a standard for this, so we should use it.  hl70123.    The new field should be called Test_result_status.
The values are single letters.  The main values that y'all will care about are:

[ ] C   Corrected, final
[ ] F   Final results
[ ] X   No results available; Order canceled

Do not fear about the "Final" - like everything in life, it really means "Only Final if nobody ever sends a Corrected code later".    There are like 10 other codes that represent various degrees of waffling and wishy-washiness, eg, Not yet verified.  I'll add these to our definitions on the hub side, but I don't think you'll need them.
[ ] Add a column to the export "Corrected_result_ID" to contain the test_event.id of the original submitted result

Blocked on the ability to do corrections

App level corrections: https://github.com/CDCgov/prime-simplereport/issues/473

App level corrections: https://github.com/CDCgov/prime-simplereport/issues/473

blocked on https://github.com/CDCgov/prime-simplereport/issues/489

blocked on https://github.com/CDCgov/prime-simplereport/issues/489


card example promotes DOM order with accessibility issues

The first element in a widget should always be it's title. If you want to make the image on top I see a simple solution.
Use CSS-order to modify the visual appearance (card is already a flex element):

Card title

Some quick example text to build on the card title and make up the bulk of the card's content.

The required CSS:
.card-img-top {
  order: -1
}

.card-img-top + .card-body {
  padding-top: 0;
}

Use aria-labelledby="#title-Id" on the .card

aria-labelledby will end in the title read twice.

Aria-label perhaps may end up with the title being read twice. Aria-labelledby will not.
Below an example from moz docs
`
Wild fires spread across the San Diego Hills
   Strong winds expand fires ignited by high temperatures ...
`
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute#Examples

@patrickhlauke your call

Aria-label perhaps may end up with the title being read twice. Aria-labelledby will not.

You are right, but you suggestion does not bring usable results in screen readers (testes with Jaws and NVDA on Chrome):

Wild fires spread across the San Diego Hills

   Strong winds expand fires ignited by high temperatures ...

Both screen readers actually know that the region is labelled "Wild fires ...", but Jaws reads the alt-attribut and the h2 element when entering the region. NVDA reads only the alt-attribute (also when using keyboard commands to navigate to the region, only in the elements browser the h2 is presented as title). Sidenote: depending on the verbosity settings of the screen reader a region (defined by explict or implicit role) may or may be not announced.
Arial-labelledby works well for form fields, but for regions it seems the current versions of popular screen readers have a preference to use the first child element as title. Too bad, but such oddities are only too common.
With proper HTML and CSS it's easy enough to move the image to the top or to the left. Just make sure that the header is the first element (it's ok when it is contained in one ore more DIVs).
BTW, I don't understand the reference to MDN. What have you been trying to prove? The article says nothing about how often a label will be read.
PS: There is another error in the docs. You are using a h6 for the subtitle. Don't do that! A Hx introduces a new level.

I believe you are right, Jaws apparently completely ignores aria-label and aria-labelledby on all static content except td and th and div with certain roles.
MDN link was just to show recommended use cases not how often it will be read.

@hvsh Ad) MDN, I see. I use MDN often myself. And the examples look good, they should also sound good when spoken :)
It's sad that the specs and the implementations show a wide gap. It makes it much harder for a well-meaning dev to do actual good.

In principle I agree with the thread starter here. Logically, the image comes "under" the hierarchy of the heading. A situation where this is irrelevant is if the image is purely decorative / has empty alt="". Otherwise yes, from a purist's point of view, it should come after the heading.

I assume this would end up being a breaking change...are we still ok to add something for this to v5? @XhmikosR

Probably but we really need to try not to.
As for this issue itself, I don't find the suggestion right. I would pass
on this personally.
On Sun, Dec 27, 2020, 17:06 Patrick H. Lauke<EMAIL_ADDRESS>wrote:

I assume this would end up being a breaking change...are we still ok to
add something for this to v5? @XhmikosR https://github.com/XhmikosR
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/twbs/bootstrap/issues/32555#issuecomment-751478070,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACVLNIV57LIJQZ4TWTM5HDSW5EPHANCNFSM4VDC5RYQ
.

Maybe you could just add an additional example to the docs, but don't change the actual CSS of v5. Just to raise awareness.
Another solution is to create a variant class for .card-img-top that implementgs my suggestion.
@XhmikosR You wrote do not find the suggestion right. Do you feel the CSS reordering will create troubles and confusion? What's wrong with it? How can I improve it?

@mdo @MartijnCuppens @ffoodd et al, thoughts on this?

@mdo @MartijnCuppens @ffoodd et al, thoughts on this?

Giving some guidance in the docs seems doable, but I don't know about making breaking changes for this (if that's what's being asked) after having it for a few years without major issues.

Giving some guidance in the docs seems doable, but I don't know about making breaking changes for this (if that's what's being asked) after having it for a few years without major issues.

My ticket is concerned about the docs, not the code.
IMHO the important guidance is that the heading is either first in DOM or the card has an accessible name.
To make the accessible name working the tag needs to have at least a role of "group".

My ticket is concerned about the docs, not the code.
IMHO the important guidance is that the heading is either first in DOM or the card has an accessible name.
To make the accessible name working the tag needs to have at least a role of "group".

is the CSS change/addition a breaking change? I've not tested it, but that's the crux around the breaking change. If the current structure still works with the proposed CSS change, then I'd be in favour of it.

is the CSS change/addition a breaking change? I've not tested it, but that's the crux around the breaking change. If the current structure still works with the proposed CSS change, then I'd be in favour of it.

No, you need to change the HTML and the CSS for my proposal.
The suggestion using accessible names doesn't change the order of elements, but adds the burden of maintaining an id.

No, you need to change the HTML and the CSS for my proposal.
The suggestion using accessible names doesn't change the order of elements, but adds the burden of maintaining an id.

No, you need to change the HTML and the CSS for my proposal.

If the new CSS doesn't work with the old/current markup, then yes it'll count as a breaking change, and we missed the window of opportunity for those at this stage of v5. we can revisit this for v6.

No, you need to change the HTML and the CSS for my proposal.

If the new CSS doesn't work with the old/current markup, then yes it'll count as a breaking change, and we missed the window of opportunity for those at this stage of v5. we can revisit this for v6.

My two cents: the suggested fix could be implemented using utilities, using .order-first on .card-img-top and .pt-0 on .card-body.
We're only missing .order-first in v4, but it could be added (adding utilities would not be a BC, obviously).
Given that, we might update our docs examples to use those utilities in v4 (or at least document a new example) — and either do the same in v5 or make it our new card pattern. We're still in time to add some BCs I guess?

My two cents: the suggested fix could be implemented using utilities, using .order-first on .card-img-top and .pt-0 on .card-body.
We're only missing .order-first in v4, but it could be added (adding utilities would not be a BC, obviously).
Given that, we might update our docs examples to use those utilities in v4 (or at least document a new example) — and either do the same in v5 or make it our new card pattern. We're still in time to add some BCs I guess?

Cross referencing with #30266 so we can close that out. We can revisit some of this for v6.