[Developer Experience] We need to enforce linting / formatting standards

Can someone make a PR to enforce prettier + eslint standards so that all new PRs have the same format?
We might need some sort of lint on commit or lint on deploy flow.
Need some input from the community on best developer experience
https://github.com/shadcn-ui/ui is a good standard to refer to imo

Contentlayer config change detected. Updating type definitions and data...
Warning: Found 17 problems in 43 documents.

 └── 17 documents contain field data which didn't match the structure defined in the document type definition. (Skipping documents)

     • "docs/changelog.mdx" of type "Doc" has the following incompatible fields:
       • published: "false\r"

We also need a better pre-commit hook since our contributors use different operating systems. We need to establish a standard rule to ensure consistency across all OS systems.
This error can be temporarily resolved by changing your Git configuration with the command git config --global core.autocrlf false. Linux and Mac have a different end-of-line system than Windows, so converting to CRLF is causing the error. Setting autocrlf to false will use the end-of-line format as it is in the GitHub repo, which should solve the issue.
However, I recommend re-cloning the entire repo from scratch after changing the settings. Additionally, restart your terminal, code editor, and ideally, your PC or laptop.

Contentlayer config change detected. Updating type definitions and data...
Warning: Found 17 problems in 43 documents.

 └── 17 documents contain field data which didn't match the structure defined in the document type definition. (Skipping documents)

     • "docs/changelog.mdx" of type "Doc" has the following incompatible fields:
       • published: "false\r"

We also need a better pre-commit hook since our contributors use different operating systems. We need to establish a standard rule to ensure consistency across all OS systems.
This error can be temporarily resolved by changing your Git configuration with the command git config --global core.autocrlf input. Linux and Mac have a different end-of-line system than Windows, so converting to CRLF is causing the error. Setting autocrlf to input will use the end-of-line format as it is in the GitHub repo, which should solve the issue.
However, I recommend re-cloning the entire repo from scratch after changing the settings. Additionally, restart your terminal, code editor, and ideally, your PC or laptop.

@dillionverma can you assign it to me

merged!
closing for now


Write examples directly to asciidoc

This commit replaces the AsciiDoc include in generated examples with the C# source code.
Doing so also allows any examples to include callouts, similar to doc generation e.g.
var deleteResponse = client.Delete<Tweet>(1, d => d
    .Index("twitter")
    .Routing("kimchy") // <1> Use a routing parameter
);

will emit
[source,csharp]
----
var deleteResponse = client.Delete<Tweet>(1, d => d
    .Index("twitter")
    .Routing("kimchy") //<1>
);
----
<1>  Use a routing parameter

It might be good to add a notice/comment to the files now that these are generated and should not be edited directly.

It might be good to add a notice/comment to the files now that these are generated and should not be edited directly.

++
@nik9000, If these examples had a multine asciidoc comment in them, would that be an issue for the docs example build process, similar to what we do in the current .NET docs e.g.
////
IMPORTANT NOTE
==============
This file has been generated from <path to file>.
If you wish to submit a PR for any spelling mistakes, typos or grammatical errors for this file,
please modify the original csharp file found at the link and submit the PR with that change. Thanks!
////

@Mpdreamz I've added multiline comments that point back to the original file with line numbers, on GitHub. Would you mind taking another look, please?

Awesome, lgtm :+1:


Add security scan

This adds a workflow that runs a CodeQL action.
I'm curious to see if this results in a lot of false positives.  If it doesn't, we could make it a required check.
Update: I've signed up for the security scanning beta.  It looks like this is a prerequisite for running the codeql action (the action is currently failing with repository not enabled for code scanning).
Fixes #11399.

Hopefully this results in actionable, correct warnings. But respectfully, it won't actually fix #11399.

@mohawk2 - I was intending to address whatever failures were reported by the CI job.  Hard to say how long it will take to get in the CodeQL beta.  If you would like to make a change ahead of that, you could submit a pull request to fix the issue.

Fair enough. Have you tried emailing the CodeQL folks? I've sometimes found such a prompt can open things up.

Hi @tschaub, @mohawk2,
I'm a Support Engineer on the GitHub Advanced Security team.
Thanks for your interest in the GitHub Advanced Security code scanning beta.
I have checked the list and this repository is eligible to try the new GitHub Advanced Security code scanning beta.

Great news. @tschaub, could you retry the CI on this PR?

@MAHDTech do the CodeQL folks have any feedback on the points I raised in the support ticket on the JavaScript url polyfill package? That thing's 5 years old and I don't think it is either insecure, nor likely to be updated, yet it's very widely used.

I don't think it makes sense to add this as a required status check yet, but we could merge it and see if the scans turn up anything.  My assumption is that a passing check means no vulnerabilities were found, but I don't see any real detail from the scan.
I don't have any strong feelings about this, but would be ok merging it and seeing how things go.

FYI @MAHDTech has said he will report back on hearing from CodeQL about the url point.

@mohawk2 - We don't have a runtime dependency on the url package.  Please raise your security concerns with maintainers of that package.

@tschaub Unfortunately you indirectly have a runtime dep on url do via webpack and node-libs-browser in your full-size distribution, which metacpan-web uses, which is how this conversation started - https://github.com/openlayers/openlayers/issues/11399

Please do not use the legacy ol.js build for production.

Are you saying that such code would only be brought in in the ol.js build, and that it's not actually utilised anywhere in your library?

You can see a graph of all of our dependencies (direct and transitive) like this:
mkdir new-project && cd new-project
npm init --yes && npm install ol
npm ls

That currently looks like this:
└─┬<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ ├─┬<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ ├──<EMAIL_ADDRESS>  │ │ └─┬<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   └──<EMAIL_ADDRESS>  │ ├──<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ ├──<EMAIL_ADDRESS>  │ └─┬<EMAIL_ADDRESS>  │   └──<EMAIL_ADDRESS>  └─┬<EMAIL_ADDRESS>    └──<EMAIL_ADDRESS>


Reference with #1420 - Browser compactability

What about the other browsers? As per carbon design document components will work only in
IE11
IE Edge latest
Firefox latest
Chrome latest
Could you please confirm this also?

#carbon-design-system for questions about the Design System
#carbon-components for questions about component styles
#carbon-react for questions about our React components

If these resources don't work out, help us out by filling out a couple of
details below!
-->
Summary
Relevant information

Answered in https://github.com/IBM/carbon-components-react/issues/1420#issuecomment-428595213


Is there any formfield to upload multiple files in custom frontend form

In SS4,
I want to create a custom form in the front end with a field and this field can upload multiple files. But now, I can't see any solution for this purpose.
I used UploadField, but I can't get any data form to submit action.
I also used FileField, but its only support upload 1 file.
Please kindly take a look and let me know any solution for my issue.
Thank you very much,

Hi, thanks for taking the time to post to our issue tracker.
The issue tracker is reserved for reporting bugs and we don't provide support via the issue tracker. There are great community support options where you can get help including our forum, Stack Overflow (remember to tag as silverstripe) and even Slack.
Sorry we can't be of more help and good luck resolving your problem!


forward request to another api endpoint

hey there
i've a somewhat weird use case perhaps. I'm exposing an ipv6 service using a ddns services. Now since GitHub does not allow to enter ipv6 adresses for payload urls I did the following:

on a public cloud vps i've installed webhook using ipv4
added this target as new payload url in my github webhooks config
configured a command which executes a shell script with a curl replicating the github request and forwarding it to my ipv6 service
my service now can handle the webhook

while this is total overkill and a simple nginx reverse proxy config could have already solved my trouble it was nevertheless a fun experience to learn more about this app.
so much for the use cases, now the 2 issues I have.
I'm not sure how to exactly mimic the request delegation with curl. do you have an example or is there perhaps already a built in reverse proxy feature? and secondly how can I make the command fail (non 200) if the curl request results in an error?

I'm not sure how to exactly mimic the request delegation with curl.

Me either.

is there perhaps already a built in reverse proxy feature?

No, and I'm not aware of any plans to add that.

how can I make the command fail (non 200) if the curl request results in an error?

You have to capture the exit code of the curl command and make sure your script exists with an error.  For example, in bash:
curl --foobar
echo $?

I think a simple SSH tunnel would be much more suitable for that use case, and probably a one-liner too. :-)


Fix 0002-proton_LFH.mypatch not being applied

https://github.com/Frogging-Family/wine-tkg-git/issues/889

I just realized this isn't the best way to do this, maybe instead of removing the 0002-proton_LFH.mypatch that prevents wine from compiling, maybe patch wine-tkg-git so it clones an older version of wine that works with 0002-proton_LFH.mypatch

As LFH is essential in keeping the game running smooth for a longer period of time, I would rather wait for the issue to be fixed upstream than to outright remove the patch.
In case someone wants to build recent Wine with LFH support, you may do one of the following:

Set _plain_version to ef25dd2446e9c39b71a6199d8235a3734d1d20b4
Set _staging_version to 49ed7ae4a001a5d84141f65064081cce3c136137
Do 2. if you are building staging, or 1. if you are building mainline.

I'll keep this PR open until the patch gets rebased upstream

This should not need anymore, 0002-proton_LFH.mypatch is rebased on upstream

Finally!

finally
gonna update the aur package


Question: Does Ohm offer optimization for static strings?

Hi! Sorry, I didn't know where else to ask this.
What I'm trying to ask is this, Imagine we have something like this:
C = A | B
A = "(" x* ")"
B = "(" y* ")"

In most parser generators, people name the common static strings (( and ) in this example) so that the parser generator can optimize on the commonality of the ( and ). My question is do I have to do it in the Ohm, or will it internally do this?

The general answer is "no, you don't have to". The memoization mechanism automatically recognizes that the string at a particular position is "(", then any subsequent attempt to match at the same position simply succeeds.

@yoshikiohshima thanks a lot for you help


Upgrade Assistant should move test projects to MsTestV2

Remove the assembly reference for Microsoft.VisualStudio.QUalityTools.UnitTestFramework
Add package reference to MsTest.TestFramework (MsTest V2)
Add package reference to Microsoft.Net.Test.Sdk
Add package reference to MSTest.TestAdapter
Add package reference to coverlet.collector
Set TFM to net5.0 (not netstandard2.0)

For tests that are already using MsTest, right?
Not changing XUnit or NUnit tests to MsTest2, right?

@paulomorgado , correct. This is only for test projects that are already using MsTest. Thanks for helping to clarify.


Service Release page, Validation for text fields in the Offer Card of Service Release Process is not working

Regex for offerCard is different than the error messages shown.
Current Behavior
Validation errors are generated for valid input data
Expected Behavior
Validation errors should not be generated for valid input data
Steps To Reproduce

Log into the system with service manager/CX Admin
Navigate to the Service Release module.
Start creating or editing an Offer Card in Step 1.
Enter all valid special characters and spaces (including two consecutive spaces) in the text field./ Next line (Press Enter Key)
Note that the validation messages for text fields

good finding , do you create the PR ?

@MaximilianHauer There is another open issue and its associated PR

The open PR modifies the regex validation for both short and long descriptions.
Old Regex: Restricted specific characters and enforced certain rules (e.g., no two consecutive spaces or special characters).
New Regex: Allows any characters as long as the string length is between 10 and 120 characters.

If the solution in the open PR is deemed appropriate, merging it will directly resolve the current issue. However, if there is a requirement for specific rules in the regex validation, please share the criteria considered for validating the short and long descriptions to ensure the regex update meets those needs.

ok then lets wait for the pr to be adjusted (small finding their) and then we are good to go

pr is merged @charmi-v  / @saadanzari  i assume we can close this one ?

@MaximilianHauer  The updated regex has a limitation: it allows users to enter a description consisting only of spaces.
It would be better to validate that the description should not consist solely of spaces and update the error message for the user as follows:
Old message: "Valid characters include a-zA-ZÀ-ÿ0-9 !?@&#'"()-=/*.,;:"
New message: "Valid characters include a-zA-ZÀ-ÿ0-9 !?@&#'"()-=/*.,;:. Spaces alone are not allowed."

good point but if someone would like to provide a bad explanation he could just enter "." 10 times or "_" .
If someone wants to provide low quality he will be always able to be.
we could check for at least one letter or digit in the regex but this wouldn't protect us fully.
proposal : /^(?=.*[a-zA-Z0-9])(?! *$).{10,1999}$/
Explanation:

Are between 10 and 1999 characters long.
Do not consist solely of whitespace characters.
Contain at least one letter or digit.


Update conmon-rs to v0.6.3

What type of PR is this?
/kind dependency-change
What this PR does / why we need it:
Update conmon-rs to the latest release.
Which issue(s) this PR fixes:

None
Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

@cri-o/cri-o-maintainers PTAL

/lgtm


OpSampledImage extra validation check does not properly handle shadow samplers.

Noticed this when upgrading to Vulkan SDK 1.3.290 from 1.3.280 that Vulkan-ValidationLayers, that includes SPIRV-Tools with https://github.com/KhronosGroup/SPIRV-Tools/pull/5695 merged, started warning about:
layout(location = 0) out vec4 out_color;

layout(set = 0, binding = 3) uniform sampler shadow_linear_compare_sampler;
layout(set = 0, binding = 4) uniform texture2D shadow_map_atlas_directional;

void main()
{
    float x = texture(sampler2DShadow(shadow_map_atlas_directional, shadow_linear_compare_sampler), vec3(0.5));
    out_color = vec4(vec3(x), 1.0);
}

Error log message:
Expected Image to have the same type as Result Type Image
  %20 = OpSampledImage %19 %13 %17
. The Vulkan spec states: If pCode is a pointer to SPIR-V code, pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkShaderModuleCreateInfo-pCode-08737)

Passing a sampler to sampler2DShadow() is valid though? Looks like it when reading GLSL 4.60.8 specification section 5.4.5. Texture-Combined Sampler Constructors.
Test for it in glslang: https://github.com/KhronosGroup/glslang/blob/592de6cf78e0fb359fc3e2854c9dc0f3cf6d4820/Test/vulkan.frag#L25
glslang commit that made it valid: https://github.com/KhronosGroup/glslang/commit/7d4c9a07b52e27fa80bf321782f4ac27dd22dad3
glslang commit message links to: https://github.com/KhronosGroup/GLSL/pull/22
Original VVL issue: https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/8413

I think this comes down to the compiler (glslang in this case) not generating correct SPIR-V. Glslang should be declaring the image with a depth operand of either 1 or 2 in this case.

This is a bug in glslang codegen, being tracked in this glslang issue: https://github.com/KhronosGroup/glslang/issues/3653
The GLSL construct is legal, it's just that the SPIR-V being generated by glslang is wrong.

Closing since duplicated with #5781 .


TypeError: Cannot read properties of undefined (reading 'DEV')

Hi there!
I have have this error when i use lazyRoute function from @vinxi/react.
It seems that import.meta.env is undefined for some reason.
vinxi starting dev server
(!) Could not auto-determine entry point from rollupOptions or html files and there are no explicit optimizeDeps.include patterns. Skipping dependency pre-bundling.

  ➜ Local:    http://localhost:3000/
  ➜ Network:  use --host to expose

TypeError: Cannot read properties of undefined (reading 'DEV')
    at file:///Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/@vinxi+react@0.2.2/node_modules/@vinxi/react/lazy-route.js:22:23
    at lazyInitializer (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react@18.2.0/node_modules/react/cjs/react.development.js:1357:20)
    at renderLazyComponent (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6000:19)
    at renderElement (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6095:11)
    at renderNodeDestructiveImpl (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6170:11)
    at renderNodeDestructive (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6142:14)
    at renderNode (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6325:12)
    at renderSuspenseBoundary (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:5657:5)
    at renderElement (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6060:11)
    at renderNodeDestructiveImpl (/Users/dewz/Documents/Sources/React/vinxi-meta/node_modules/.pnpm/react-dom@18.2.0_react@18.2.0/node_modules/react-dom/cjs/react-dom-server.node.development.js:6170:11)

Code snippet
const routes = fileRoutes.map(route => ({
	...route,
	Component: lazyRoute(
		route['$component'],
		clientManifest,
		serverManifest
	),
}))

Packages:
"@vinxi/react": "^0.2.2",
"@vinxi/server-functions": "^0.3.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"vinxi": "^0.3.10"

i have seen this issue at places, i think it has to do with vite not transpiling that package, i think this needs to be fixed at our end. Ill take a look

Hi @nksaraf ,
any update on this ?

fixed by #265


Incorrect "ambiguous between the following methods" error

Omnisharp wrongly reports the below error for an rc2 .NET project.
The call is ambiguous between the following methods or properties: 'Speaker.Speak()' and 'Speaker.Speak()' [net451]

This seems to happen for build type references for shared libs.
Whereas dotnet build compiles fine:
➜  app git:(master) ✗ dotnet build
Project app (.NETFramework,Version=v4.5.1) will be compiled because expected inputs are missing
Compiling app for .NETFramework,Version=v4.5.1

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:05.5483874

Project
This is the exact line that has the error.
Environment
VS Code:
Version 1.0.0
Commit fa6d0f03813dfb9df4589c30121e9fcffa8a8ec8
Date 2016-04-13T14:21:33.326Z
Shell 0.35.6
Renderer 45.0.2454.85
Node 4.1.1

Extension:

.NET CLI:
➜  app git:(master) ✗ dotnet --info
.NET Command Line Tools (1.0.0-preview1-002702)

Product Information:
 Version:     1.0.0-preview1-002702
 Commit Sha:  6cde21225e

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  14.04
 OS Platform: Linux
 RID:         ubuntu.14.04-x64

The same issue was also reported in #559.

@willl nice, will close this then.


Unexpected message issued by crictl when tagging and then removing an image

What happened:
Have an image in my local repository
~$ sudo crictl images
IMAGE                         TAG                 IMAGE ID            SIZE
docker.io/library/alpine      latest              7e01a0d0a1dcd       7.63MB

Tag this image, specifying a version v1.0
~$ sudo podman tag alpine docker.io/library/alpine:v1.0

Display the local images from crictl and see both the original and tagged images
~$ sudo crictl images
IMAGE                         TAG                 IMAGE ID            SIZE
docker.io/library/alpine      latest              7e01a0d0a1dcd       7.63MB
docker.io/library/alpine      v1.0                7e01a0d0a1dcd       7.63MB

Delete the original image from my local respository, and crictl issues a message that it is removing both images
~$ sudo crictl rmi alpine
Deleted: docker.io/library/alpine:latest
Deleted: docker.io/library/alpine:v1.0

A subsequent display shows the tagged image was not removed, as expected.
lei:~$ sudo crictl images
IMAGE                         TAG                 IMAGE ID            SIZE
docker.io/library/alpine      v1.0                7e01a0d0a1dcd       7.63MB

What you expected to happen:
Only issue the message about removed/untagged image
How to reproduce it (as minimally and precisely as possible):
See the first paragraph.
Anything else we need to know?:
Environment:

Container runtime or hardware configuration:
OS (e.g: cat /etc/os-release):

~$ cat /etc/os-release
NAME="Fedora Linux"
VERSION="38 (Workstation Edition)"
ID=fedora
VERSION_ID=38
VERSION_CODENAME=""
PLATFORM_ID="platform:f38"
PRETTY_NAME="Fedora Linux 38 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:38"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=38
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=38
SUPPORT_END=2024-05-14
VARIANT="Workstation Edition"
VARIANT_ID=workstation
lei:~$

Kernel (e.g. uname -a):

~$ uname -a
Linux li-d148f310-ab49-11e1-8d16-26d9f4d03e00.ibm.com 6.2.9-300.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Mar 30 22:32:58 UTC 2023 x86_64 GNU/Linux
lei:~$

Others:

I think this is more of a cri-o bug (assuming you're using cri-o as the CRI impl). Does it happen when you don't do the podman tag between?

If I don't do the podman tag,  the same image alpine (7e01a0d0a1dcd) only has 1 tag (i.e. latest).  When doing crictl rmi alpine, the image will be deleted.
If the same image (i.e. alpine or 7e01a0d0a1dcd) has 2 and more tag (i.e. latest and v1.0 in my test), it only be untagged when doing crictl rmi .  That is : the image will not be deleted until it only has 1 tag.
This is the cri-o behavior.  And it's same for Podman and Docker.
~$ sudo podman images
REPOSITORY                   TAG         IMAGE ID      CREATED       SIZE
docker.io/library/alpine     v1.0        7e01a0d0a1dc  2 months ago  7.63 MB
docker.io/library/alpine     latest      7e01a0d0a1dc  2 months ago  7.63 MB
~$ sudo podman rmi alpine
Untagged: docker.io/library/alpine:latest
~$
~$ sudo podman images
REPOSITORY                   TAG         IMAGE ID      CREATED       SIZE
docker.io/library/alpine     v1.0        7e01a0d0a1dc  2 months ago  7.63 MB
~$
~$ sudo podman rmi alpine:v1.0
Untagged: docker.io/library/alpine:v1.0
Deleted: 7e01a0d0a1dcd9e539f8e9bbd80106d59efbdf97293b3d38f5d7a34501526cdb
~$

~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       latest    8ca4688f4f35   11 days ago   7.34MB
alpine       v1.0      8ca4688f4f35   11 days ago   7.34MB
~$ sudo docker rmi alpine
Untagged: alpine:latest
~$ sudo docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
alpine       v1.0      8ca4688f4f35   11 days ago   7.34MB
~$ sudo docker rmi alpine:v1.0
Untagged: alpine:v1.0
Untagged: alpine@sha256:eece025e432126ce23f223450a0326fbebde39cdf496a85d8c016293fc851978
Deleted: sha256:8ca4688f4f356596b5ae539337c9941abc78eda10021d35cbc52659c74d9b443
Deleted: sha256:cc2447e1835a40530975ab80bb1f872fbab0f2a0faecf2ab16fbbb89b3589438
~$ sudo docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
~$

digging into it a bit, this seems like expected behavior: https://github.com/cri-o/cri-o/blob/main/internal/storage/image.go#L702
basically, even though one image is being "removed" cri-o is not keeping track whether there are other containers using a different image name with the same ID. Instead, it just untags for that image, and assumes the kubelet will request it remove the other image name when that's appropriate
cc @mtrmac

Good timing, see https://github.com/cri-o/cri-o/pull/7375/commits/2fd4073c44b48ee24e4606f5fcb16ef8db81f07a  in https://github.com/cri-o/cri-o/pull/7375 .

AFAICT the output of crictl is entirely a bug in crictl: https://github.com/kubernetes-sigs/cri-tools/blob/f8733ddf69f86dae2d40e9f690785ef4bdb4440e/cmd/crictl/image.go#L453-L455 doesn’t know what was deleted, and even if it were correct about the intended semantics of the RemoveImage operation, that implementation is incorrect because the set of tags could have changed between crictl’s calls of ImageStatus and RemoveImage. This just doesn’t work. If crictl wants to correctly list tag changes, I suppose it needs to call ImageStatus before and after (but that would still not allow differentiating between changes done by this RemoveImage and changes done by some other CRI client). Probably best for crictl delete to just say nothing. (Or, alternatively, extend the CRI to return the information about what the server actually did.)
Unless I have missed something, Kubelet only ever calls RemoveImage with a full image ID (as part of the “remove unused images” control loop), so handling of names is … basically irrelevant.
OTOH https://github.com/cri-o/cri-o/pull/7375/commits/572339120d9b4a6c2822828a2e86afffd2acebd2#diff-73f26dcabd7e433970fc0612ff0068d2d8f7cd61dda790bcd603195197aaad97R709 — it might be better for Kubelet to only request removal of tags (only tags that Kubelet created, even? but that’s not well-defined), and then we would need an atomic c/storage “untag or delete” operation. IMHO this is all mostly theoretical — the principle of the thing is that K8s “owns” the node and any concurrent image/tag updates are an exception that needs to bend to the K8s needs, not the other way around. But I don’t feel strongly about that.

If anyone not working then I can take a look into it


Reintroduce substrate branch-id

Reasoning:
Polkadot references substrate dependencies including branch = "master". Hence, any rust crate that uses substrate AND Polkadot deps must use the branch-id because Cargo can't identify them as the same even if the same substrate revision is referenced.
This is the api-client branch that is currently used with the encointer-client.

yes, wasm-toochail was not installed for the clippy runner.
Anyhow. Please don't merge yet. It currently depends on the encointer fork of the substrate-api-client-test-node just to test if things work.


Can not find utils in context [workaround]

This is great work, and coming in at Just The Right Time (!!) as I struggle with using Material UI with react-hook-forms !
So I'm trying to use your DatePickerElement, and I get the error: Can not find utils in context
Looking thru your stories and files I see that your DatePickerElement seems to depend on being wrapped in your DateDayjsProvider (which you don't export for me to use...)
So I copied your DateDayjsProvider & added it myself
I then got errors about @date-io/dayjs & dayjs -- which I installed
Then I got an error utils.getYearText is not a function
Googling that took me here: https://github.com/mui-org/material-ui-pickers/issues/1442
So I downgraded to<EMAIL_ADDRESS>and now things work!
Thanks for your very timely work -- it's going to help this project to arrive on time !!
// https://material-ui.com/components/switches/
import { Box, Button } from '@material-ui/core'

// https://www.npmjs.com/package/react-hook-form-mui
import { FormContainer, TextFieldElement, DatePickerElement } from 'react-hook-form-mui'

// copied from inside 'react-hook-form-mui'
import DateDayjsProvider from './DateDayjsProvider'

export const FormEventNew = ({ onSubmit, submitName }
  : { onSubmit: (values: any) => void, submitName: string }) => {

  return (
    <DateDayjsProvider>
      <FormContainer
        defaultValues={{ name: '', date: '' }}
        onSuccess={onSubmit}
      >
        <TextFieldElement name="name" label="Event Name" required />

        <DatePickerElement
          label={'Event Date'}
          name={'required-date-picker'}
          required
        />

        <br />

        <Box>
          <Button variant="contained" color="primary" type="submit">
            {submitName}
          </Button>
        </Box>

      </FormContainer>
    </DateDayjsProvider>
  )
}

I don't provide a date provider for the picker myself. The main issue is that v1 was not able to code split correctly.
Just wrap your form with MuiPickersUtilsProviderand you are ready to go. I realized that Dayjs is not as stable as date-fns but its up to you.
Follow this guide to wrap the form with your provider: https://material-ui-pickers.dev/localization/date-fns

thanks !!  you are doing great work !!
If I go back and re-wrap I'll post it here for others to find

I updated the Storybook to showcase both Providers. https://github.com/dohomi/react-hook-form-mui#with-datepicker
Hope this helps thanks for pointing me at it.


Project is missing a license file

The project is missing a license file. The README says the code is released under the MIT license, but the link gives a 404 error.

Thanks for pointing it out.


feat: support asdf plugins through a proto WASM plugin

Fixes #539
/claim #539

@varshith257 Plugins don't belong in this repo, so it should probably be its own repo? I'm not sure how bounties work in that case.

@milesj We can implement it and reference this issue there and if a PR merged there it will automatically considered for claim and another approach is to maybe we can update our readme or docs right in that PR you can tip it .

Moving this work to the new repo as we discussed


ERROR: Currently support for dot-access is limited to single range

I hit this case when parsing some advanced Google SystemVerilog with UHDM + Yosys. Not sure what is the exact repro case. I can look into it more if needed, just thought I would flag it ASAP.
line throwing this error: https://github.com/chipsalliance/yosys-f4pga-plugins/blob/474724189715dd0d4fbb51d2f1cb2fa22f205722/systemverilog-plugin/UhdmAst.cc#L765
FYI: @hzeller @QuantamHD

@grotival we moved the plugin code to separate repository Synlig. I've moved the issue here, so we can keep track on it

@grotival all the legal cases in this issue actually work.
The following code as you requested is illegal (No commercial simulator supports it):
typedef struct packed {logic [3:0][7:0] k;} my_struct_packed_t;

module single_range_dot_access (
    input  my_struct_packed_t x2,
    output my_struct_packed_t y2
);
  assign y2[1][1] = x2[2][3];
endmodule : single_range_dot_access

If you correctly declare x2 and y2, then it works:
typedef logic [3:0][7:0] my_struct_packed2_t;

module single_range_dot_access (
    input  my_struct_packed2_t x2,
    output my_struct_packed2_t y2
);
  assign y2[1][1] = x2[2][3];
endmodule : single_range_dot_access

Closing this case as it is complete given legal Verilog.


[BUG] Import sources does not work

Describe the bug
download options are not added
Steps to Reproduce
1 open hydra normally
2 go to settings
3 go to download sources
4 go to add source
5 insert a link to the download source
6 click validate
7 click import
Expected behavior
adding a download source
Screenshots
No response
Operating System
windows 11 pro
Hydra Version
2.1.3 leviticus
Additional Information
No response
Before opening this Issue

[x] I have searched the issues of this repository and believe that this is not a duplicate.
[X] I am aware that Hydra team does not offer any support or help regarding the downloaded games.

Could you upload your logs? They are located at "%appdata%/hydra"

We'll release a fix probably tomorrow. Meanwhile, if you want to fix it right, you can:

Close Hydra
Delete hydra.db (located at "%appdata%/hydra"
Reopen hydra

@esm4534 just release a new version, could you update and test it?
If the error still happens after updating. Uninstall and reinstall Hydra, it will fix from now


Support for Lotus Notes

Any plans on Adding IDM Domino platform to Software layer in the MARS Model?
Many Organizations still use it.

I would add
sw-class=Productivity
sw-sub-class=IBMDomino
any more suggestions?

It is a 'groupware' but I think productivity is fine as well.

included


Remove test stubs

There are various test stubs passed to several core functions in the form of an additional input parameter named result.
A few examples are:

Function bot._run
Function bot._handle_trade_instructions
Function txhelpers.submit_flashloan_arb_tx
Function txhelpers.validate_and_submit_transaction

This additional input parameter is used for nothing other than testing those functions from the outside.
Subsequently, each one of these functions has been "tweaked" into returning various different intermediate results, in various different formats.
For example, function validate_and_submit_transaction may return:

None
current_gas_price, current_max_priority_gas, block_number, nonce
arb_tx
adjusted_reward, gas_cost_eth
tx_hash

Cases 1 and 5 are used as part of the operational system.
Cases 2, 3 and 4 are used for testing only.
This is an antithesis for proper software design.
If a given function needs to be tested for a specific intermediate result, then the part in that function which calculates that intermediate result should move to a separate function (which ALWAYS return a result in that specific format), and then, that new function can be:

Called from within the original function
Called from an external script for testing purpose

A good indication of this task being completed would be by making sure that all class constants whose names start with XS_, along with the result parameter which allows the caller to pass these constant values as instructions to various functions, have become redundant.
In the scope of these task, two target modules are bot and txhelpers (and all the related tests).

Function txhelpers.validate_and_submit_transaction handled.


Request: article read history

Hi!
I have been using newsboat for a year now, and it never stop to amaze me of how many things it can do.
However, there is something I still it is lacking.. a read history.
I used miniflux in past, which had that feature, and I found it quite useful when the PC crashed or to find recent articles quickly.
I am now using a query for the articles within the last week, which basically the timeframe i consider recent.
The problem though is that this does not provide a cronological read order.
Hope you can implement it sometime in the future! :)

Sounds like a nice feature, let's add it to our pile of things we might implement in the future :)
To get a bit more specific, I think this feature can be divided into three things:

a new column in the rss_item table in cache.db. That column will record the last time the unread column was set to 0 (i.e. item was marked read);
new sort order in ItemList, so articles can be sorted in the order in which they were read (and also the reverse of that, of course);
a new attribute for items, so this info can be used in filters and queries. This one requires a bit more design work: should it be just a count of days since the article was read, or should it be a date? Looks like for @bobicino's purposes it's sufficient to support the count.

Sounds like a nice feature, let's add it to our pile of things we might implement in the future :)
To get a bit more specific, I think this feature can be divided into three things:

a new column in the rss_item table in cache.db. That column will record the last time the unread column was set to 0 (i.e. item was marked read);
new sort order in ItemList, so articles can be sorted in the order in which they were read (and also the reverse of that, of course);
a new attribute for items, so this info can be used in filters and queries. This one requires a bit more design work: should it be just a count of days since the article was read, or should it be a date? Looks like for @bobicino's purposes it's sufficient to support the count.


[FEATURE REQUEST] ...

Is your feature request related to a problem? Please describe.
It's frustrating that currently there's not a clean, easy way to compare month to date expenses with other months for that same period.
For example, to compare spending/income from the 1st - 19th of current month April to the 1st - 19th of last month March.
It would help to gauge where you are in your current month and if spending is a bit steeper, or if you're still within or below prior months. Would be nice for year to date as well, or even quarters.
Describe the solution you'd like
Visibility in a report where you are able to compare a period (month, quarter, year) to another similar period in the past.
Describe alternatives you've considered
only option in YNAB is to select the transactions for a certain period and then do the same for a prior period.
Or export transactions to Excel
Additional context
N/A

Thanks for all the other useful & cool features by the way! 🥳

Hi! How would you image this feature visually? Could you provide some UIs as example/inspiration?

This is something I need to especially at the end of the year, so I built a private chart for me.
I'm considering adding it to the Toolkit for everyone. It looks like this. Yes, it ugly, I'd make it prettier to match YNAB style.
In this page, you can:

Pick each Payeee and/or Category you want to compare.
Select the Period:: Year (default last 4 years), or This-year-to-date.

Then below it shows:

Left: A bar graph of each month, for each year  with the total amount step.
Right: A bar graph of each year total and the number of entries in that category.
The same data but in a table with the total amount and entries (times) for each year and each month.

Would this be useful to you or do you have something else in mind?


dots in usernames verboten

I'm experimenting with LDAP functionality, bolting our standalone Chef server installation (12.2.0, plus some older versions I no longer recall) onto an existing Active Directory domain. The weird restrictions on usernames are getting in my way, specifically the ban on dots, like john.stange. That's a fairly standard corporate convention for usernames. What's the rationale?
Just so we're clear what I'm talking about, asking the REST API to create a user by POSTing the following to /users results in a 400 (Bad Request):
{
 "username": "john.stange",
 "first_name": "John",
 "middle_name": "LDAP",
 "last_name": "Stange",
 "display_name": "John Stange LDAP",
 "email"<EMAIL_ADDRESS> "password": "sometestnonsense"
}

Strip out the dots (set username to johnstange) and it happily complies.

I would need to do some archeology on the origin of that restriction.  However, the chef username and LDAP user names don't need to be exactly the same.  If you use Chef Manage to link an LDAP account to a chef account, it typically replaces invalid characters with '_'.  However, the user is still able to login using their unmodified LDAP username.

I'd like to track that down  - we've had that restriction as far back as I can remember, but I don't know that we ever captured why. I do know that we don't do any parsing of username in a meaningful way within erchef, so [pending researching and checking to make sure that there's nothing on the management console side of things] I'm inclined to remove the restriction

Eeeeenteresting. Any pointers on how to get at that LDAP linking from the API? I'm not seeing it in my skim of https://docs.chef.io/api_chef_server.html, but I'm probably just looking for the wrong verb.
I've got a nickel on "didn't feel like accounting for weird characters in REST paths."

Any pointers on how to get at that LDAP linking from the API?

If you update the user record or create the user record, you can set external_authentication_uid.  The value of external_authentication_uid should map to the value of the login_attribute in your LDAP directory.  By default the login_attribute is sAMAccountName.  That is, if your login_attribute is configured to be 'uid' and user John has a uid of "john.johnson", you can create a chef user called john_johnson with the external_authentication_uid of "john.johnson". That user would be able to log into the management console with the "username" of john.johnson and their LDAP password.
Note, that if you are trying to update an existing user record to add an external_authentication_uid, you have to be the superuser or "pivotal" user.  They key for "pivotal" can be found in /etc/opscode on your chef server.
Given your interested in the API, I feel compelled to point out that LDAP really only affects Management Console logins.  All API requests still happen via the public-private keypairs and don't contact LDAP.

Yeah, we worked that out in the midst of yesterday's fiddling.  The latter's a placeholder exercise at this point, since we currently don't even use the UI.

Related: #676

I ran across this by trying to use mail as the loginAttribute (e.g. the email address).
What happened was:

I logged in the server with<EMAIL_ADDRESS>The chef username was docwhat_us_example_com (that's fine).
However, when using supermarket, I couldn't login via either<EMAIL_ADDRESS>nor docwhat_us_example_com.

I suspect that there is something weird in the way the login for the oc-id endpoint works that caused the mis-matched email, LDAP loginAttribute, and the chef-server username confusion for the poor thing.


IPv6 Support

Closes #3.
Adds IPv6 support to Phoenix BT tracker.
Tested with RFC IP addresses.
Tested with IPv4-only, and mixed IPv4/v6 hosts
Handles seperate v4/v6 ports.
Properly senses inbound connection
Option to disable X-Forwarded-For support (security risk)

There's one thing would like to be tested, but probably this can't be done easilly. (so shouldn't prevent this merge).
If the tracker is setup on a host that prefix ipv4 addresses what will happen with the peers.

IP Formats
ipv4 = <IP_ADDRESS>:1024
ipv4 = <IP_ADDRESS> port = 1024
ipv6 = <IP_ADDRESS>:1024
ipv6 = [2607:f0d0:1002:51::4]:1024
ipv6 = [2607:f0d0:1002:51::4] port = 1024
ipv6 = 2607:f0d0:1002:51::4 port = 1024
ipv6 = [2607:f0d0:1002:0051:0000:0000:0000:0004]:1024
ipv6 = [2607:f0d0:1002:0051:0000:0000:0000:0004] port = 1024
ipv6 = 2607:f0d0:1002:0051:0000:0000:0000:0004 port = 1024
AND support any combination of 4 and 6

@enebe-nb Do you mean the prefixing like :ffff: ?

@lewisgoddard : The trim is done after classifying the ip (probably it never trim anything).
In this workflow a prefixed IPv4 (::fff:<IP_ADDRESS>) is identified as a IPv6 and stored as so, and send to the peers as a IPv6 address. I can't see what the peers will do with that, maybe they don't connect each other at all or maybe they work without any problem.
A prefixed IPv4 'is' a valid IPv6 address, and it not wrong store as so, i just would like this to be tested.

I suppose ideally the ::ffff:<IP_ADDRESS> should be stored as IPv4 and IPv6, unless there's a more verbose IPv6 available. I think peers that are IPv6 capable should handle that fine, it is a valid address.

I still have yet to actually test it, and likely won't do so until tomorrow, but this is looking really good.

As a note on on ":ffff:<IP_ADDRESS>", that isn't really a "valid" IPv6 address as per the RFCs. Its simply a different notation of writing a v6 address (https://en.wikipedia.org/wiki/IPv6_address#Transition_from_IPv4), and while I can't cite it at the moment, I believe that form is deprecated, and unless the v6 host has valid routes for it, (i.e. 6to4 NAT), I don't think it would work. It doesn't work here when I test it.
If there are bittorrent torrents that actually send that form, then we probably need to special case it, turn it back into a v4 address and send it down the v4 codepath, but I think this is such an odd usecase we're better off going belly up and not supporting it.

@lewisgoddard: you're welcome to use my test tracker if it will help.

I suppose it would give me another place to test, but I'll want to try locally too so I can see the database.

I'll set you up with a shell account and an account with the local MySQL
server.
On Tue, Aug 18, 2015 at 2:07 PM, Lewis Goddard<EMAIL_ADDRESS>wrote:

I suppose it would give me another place to test, but I'll want to try
locally too so I can see the database.
—
Reply to this email directly or view it on GitHub
https://github.com/eustasy/phoenix/pull/13#issuecomment-132301601.

@lewisgoddard: check your email, I sent it to the one listed on your website

Thank you for your contribution, don't forget to claim your bounty!

@lewisgoddard: just claimed it, needs approval. If you run into any issues with the v6 code, drop me a message and I'll be glad to look at it again.

Claim confirmed, thanks again!

Oh, I meant to ask, how did you find us?

@lewisgoddard I saw the bounty on bountysource :). I've done a LOT of IPv6 work on previous projects so it seemed an relatively easy and straightforward thing to code and test.


Draft Wireframe a new multi-cloud version of the login page

Describe the issue
The login page is getting older and we have some tickets to add in new functionality, eg linking to the CSS page, countdown timer feature, etc)
Additional context

depends on the choice of the mockup tool
depends on if GCP can support keycloak
we may with to have AWS and GCP options within?

Definition of done

get access to the existing login page (keycloak setup, plus a demo project-set) via a 15 min meeting with Max or Julian
Buddy up with Carles and get a walkthrough of all the pieces and why they are there.
design workshop with the whole team (1 hr incl PO and SM) - factor in technical limitations
draft wireframe a new version of the login site (an entry page plus the site inside)
show the team during the internal demo review

not relevant


Always show .pagingContainer

.pagingContainer (and the button Refresh) are hidden when no result or only one page

I've created an alternate solution, so closing this PR.

If you have only one page in search result, the pagination doesn't show, and .pagingContainer too

Created issue #6 for this bug.


DataProtection Keys folder doesn't sync on Azure Web Sites distribution slots

Cloned from aspnet/Home#1582 by suggest of @GuardRex. @blowdart
I'm running an Asp.Net Core RC2 application on Azure Web Sites, and I noted that every time that I switch staging and production environments, all users log off. So I've tried to test what happened, and I've discovered that on staging and production's "%HOME%\ASP.NET\DataProtection-Keys" folders the keys were different. Reading this page https://docs.asp.net/en/latest/security/data-protection/configuration/default-settings.html they should be synced.
I supposed that keys may be synced by slot, so when I switch slots the keys should keep under original environment. To test this I've created a new Azure web site with two new empty slots, but when I switch environments the "%HOME%\ASP.NET" folder follows its server. This implies that keys of staging are used under production, and keys of production are used under staging. I've discovered the origin of my issue.
Two options here: I didn't understand how DataProtection is synced between distribution slots, and in this case I'm asking you to tell me how I can solve this problem, or this is a bug and the sentence on documentation is wrong. What do you think? Thank you

@blowdart If the answer is that the keys will follow the app as slots are swapped, then would something like this cover it ...

If the system is being hosted in Azure Web Sites, keys are persisted to the "%HOME%\ASP.NET\DataProtection-Keys" folder. This folder is backed by network storage and is synchronized across all machines hosting the application. This folder is created for each slot independently, so swapping an application's slot will move the application's keys with it. Keys are not protected at rest.

Also, it looks like they renamed the service slightly to "Azure Apps," "Azure App Service," or "Azure Web App." I thought "Azure Web Sites" was dropped at some point.
@tmm360 You should be able get some fine-grained control over this situation by using one of the other key ring providers, like Redis, Azure Blob Storage, or Azure Key Vault. Then, you could specify in startup which key store to use based on the status (staging/production) of the app.

@GuardRex Thank you, I've found the solution with the new 1.1 release. Because this I had closed the other issue.

@tmm360 Excellent. :+1: Yeah, let's hold on a sec here to see if @blowdart thinks a statement there about the key ring going along with the slot would be a good add. He'll get back to us soon.

We've ask azure for keys that flow between slots. It's on their backlog with no scheduled implementation time. It is a limitation of azure web apps.
If you're wanting slots use blob storage, redis or implement a sql store suitable for your database schema.

@blowdart ... then you want to leave the doc as it is? If so, @tmm360 can close.

We should call out that keys don't flow over azure slots.
I'm in meetings so I don't know what the doc says right now.

I was a bit confused tho by the OP description of its behavior. I think I'm clear on it now.
The relevant section is #1 at https://github.com/aspnet/Docs/blob/master/aspnetcore/security/data-protection/configuration/default-settings.md#key-management
Helpful language might be something like ...

If the system is hosted in Azure Web Apps, keys are persisted to the "%HOME%\ASP.NET\DataProtection-Keys" folder. This folder is backed by network storage and is synchronized across all machines hosting the application. This folder supplies the key ring to all of the system's slots, so swapping an application's slot will not change the key ring used. If you desire a slot-dependent key ring, use an external key ring provider, such as Azure Blob Storage, Azure Key Vault, a SQL store, or Redis cache. Keys are not protected at rest.

Wrong way around :)

This folder supplies the key ring to all instances of an application in a single deployment slot. Seperate deployment slots such as Staging and Production will not share a keyring. When you swap between deployment slots, for example swapping staging to production, or using A/B testing any system using data protection will not be able to decrypt stored data using the keyring inside the previous slot. This will, for example, lead to users being logged out of an ASP.NET application which uses the standard ASP.NET cookie middleware, as it uses data protection to protect its cookies. If you desire slot-independent key rings, shared between multiple slots, use an external key ring provider, such as Azure Blob Storage, Azure Key Vault, a SQL store, or Redis cache.

Does that cover it @tmm360 ?

Yes, it does! Thank you.

Ah ... that's what I originally had in my first response. I guess I did understand the OP after all. :smile:

Yes, you did ;) Maybe my question was not very well exposed...

This is the joy of reading issues in email :) @GuardRex do you want to submit the doc update? We're still suffering from the effects of moving buildings

@tmm360 Nah ... it's me. I'm a goofy green dinosaur! lol
@blowdart Yeah ... I'll take care of it right now. I'll use that text block you just provided and ping you on the PR.
@tmm360 No need to sweat closing this. The issue will auto-close when the PR goes in. Thanks for mentioning this. I'm just a community guy, but I'm sorry someone didn't catch your issue sooner. It was a good issue ... things are just crazy busy these days with .NET, and it slipped thru the cracks.

Eheh, thank you!


Expose toggle visibility

Hey @iamlukesky and @phillchill, I am merging this now 👍
Trying not to stay too close to the naming suggested by quicksettings, since I am still planning to provide support for other GUI libraries. Plus I want to keep the function names as short as possible. I was thinking about just naming it toggle?
On the other hand quicksettings has toggleVisibility and  toggleCollapsed, which might also be nice-to-have at some point...


Expand range of sites used for testing

The tentative goal is that each of us bootstrap tests on a reasonable set of machines we have access to.

LLNL machines uniformly give me a self-signed certificate error:
(37B) [corbett8@lassen709:psi-j-python]$ make tests -- --upload-results
PYTHONPATH=/usr/WS2/corbett8/ExaWorks/psi-j-python/src:/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/plugins1:/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/plugins2: \
	python -m pytest -v --upload-results
2022-01-25 15:02:56 DEBUG Attempting to acquire lock<PHONE_NUMBER>1728 on /g/g12/corbett8/.psij/.key.lock
2022-01-25 15:02:56 DEBUG Lock<PHONE_NUMBER>1728 acquired on /g/g12/corbett8/.psij/.key.lock
2022-01-25 15:02:56 DEBUG Attempting to release lock<PHONE_NUMBER>1728 on /g/g12/corbett8/.psij/.key.lock
2022-01-25 15:02:56 DEBUG Lock<PHONE_NUMBER>1728 released on /g/g12/corbett8/.psij/.key.lock
2022-01-25 15:02:56 INFO Ignoring duplicate entry in sys.path: /collab/usr/gapps/python/build/spack-coralea.3/opt/spack/linux-rhel7-ppc64le/gcc-4.9.3/python-3.7.2-yx4gc64m743jidvhr5i3kklxgnm74mzk/lib/python3.7/site-packages/six-1.12.0-py3.7.egg
2022-01-25 15:02:56 DEBUG Attempting to load aprun_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:56 DEBUG Found module "aprun_descriptor" with classes [_Descriptor(name=aprun, path=None)]
2022-01-25 15:02:56 DEBUG Registering _Descriptor(name=aprun, path=None)
2022-01-25 15:02:56 DEBUG Attempting to load cobalt_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:56 DEBUG Found module "cobalt_descriptor" with classes [_Descriptor(name=cobalt, path=None)]
2022-01-25 15:02:56 DEBUG Registering _Descriptor(name=cobalt, path=None)
2022-01-25 15:02:57 DEBUG Attempting to load core_descriptors from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:57 DEBUG Found module "core_descriptors" with classes [_Descriptor(name=local, path=None), _Descriptor(name=batch-test, path=None)]
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=local, path=None)
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=batch-test, path=None)
2022-01-25 15:02:57 DEBUG Found module "core_descriptors" with classes [_Descriptor(name=single, path=None), _Descriptor(name=multiple, path=None), _Descriptor(name=mpirun, path=None)]
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=single, path=None)
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=multiple, path=None)
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=mpirun, path=None)
2022-01-25 15:02:57 DEBUG Attempting to load flux_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:57 DEBUG Found module "flux_descriptor" with classes [_Descriptor(name=flux, path=None)]
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=flux, path=None)
2022-01-25 15:02:57 DEBUG Attempting to load jsrun_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:57 DEBUG Found module "jsrun_descriptor" with classes [_Descriptor(name=jrun, path=None)]
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=jrun, path=None)
2022-01-25 15:02:57 DEBUG Attempting to load lsf_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:57 DEBUG Found module "lsf_descriptor" with classes [_Descriptor(name=lsf, path=None)]
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=lsf, path=None)
2022-01-25 15:02:57 DEBUG Attempting to load rp_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:02:57 DEBUG Found module "rp_descriptor" with classes [_Descriptor(name=rp, path=None)]
2022-01-25 15:02:57 DEBUG Registering _Descriptor(name=rp, path=None)
/usr/WS2/corbett8/37B/lib/python3.7/site-packages/radical/utils/atfork/stdlib_fixer.py:77: UserWarning: logging handlers already registered.
  warnings.warn('logging handlers already registered.')
2022-01-25 15:03:01 DEBUG Attempting to load saga_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:03:01 DEBUG Found module "saga_descriptor" with classes [_Descriptor(name=saga, path=None)]
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=saga, path=None)
2022-01-25 15:03:01 DEBUG Attempting to load slurm_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:03:01 DEBUG Found module "slurm_descriptor" with classes [_Descriptor(name=slurm, path=None)]
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=slurm, path=None)
2022-01-25 15:03:01 DEBUG Attempting to load srun_descriptor from /usr/WS2/corbett8/ExaWorks/psi-j-python/src
2022-01-25 15:03:01 DEBUG Found module "srun_descriptor" with classes [_Descriptor(name=srun, path=None)]
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=srun, path=None)
2022-01-25 15:03:01 DEBUG Attempting to load descriptors from /usr/WS2/corbett8/ExaWorks/psi-j-python/tests/plugins1
2022-01-25 15:03:01 DEBUG Found module "descriptors" with classes [_Descriptor(name=p1-tp1, path=None), _Descriptor(name=p2-tp1, path=None), _Descriptor(name=p2-tp3, path=None), _Descriptor(name=_always_loads, path=None), _Descriptor(name=_never_loads, path=None)]
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=p1-tp1, path=None)
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=p2-tp1, path=None)
2022-01-25 15:03:01 INFO [Errno 2] No such file or directory: '/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/plugins1/_test_plugins1/ex2.py'
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=p2-tp3, path=None)
2022-01-25 15:03:01 INFO [Errno 2] No such file or directory: '/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/plugins1/_test_plugins3/ex3.py'
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=_always_loads, path=None)
2022-01-25 15:03:01 DEBUG Registering _Descriptor(name=_never_loads, path=None)
2022-01-25 15:03:01 INFO No module named 'does_not_exist'
2022-01-25 15:03:01 DEBUG Attempting to load dummy from /usr/WS2/corbett8/ExaWorks/psi-j-python/tests/plugins2
2022-01-25 15:03:01 INFO Ignoring duplicate entry in sys.path: /usr/WS2/corbett8/ExaWorks/psi-j-python
/usr/WS2/corbett8/37B/lib/python3.7/site-packages/radical/saga/adaptors/shell/shell_wrapper.py:11: ResourceWarning: unclosed file <_io.TextIOWrapper name='/usr/WS2/corbett8/37B/lib/python3.7/site-packages/radical/saga/adaptors/shell/shell_wrapper.sh' mode='r' encoding='UTF-8'>
  _WRAPPER_SCRIPT = open (os.path.dirname(__file__) + '/shell_wrapper.sh').read ()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
2022-01-25 15:03:05 DEBUG Output from ['ssh', '-oBatchMode=yes', '-oStrictHostKeyChecking=no', 'localhost', 'true']:          **WARNING**WARNING**WARNING**WARNING**WARNING**
 This is a Department of Energy (DOE) computer system. DOE
 computer systems are provided for the processing of official
 U.S. Government information only. All data contained within
 DOE computer systems is owned by the DOE, and may be audited,
 intercepted, recorded, read, copied, or captured in any
 manner and disclosed in any manner, by authorized personnel.
 THERE IS NO RIGHT OF PRIVACY IN THIS SYSTEM. System personnel
 may disclose any potential evidence of crime found on DOE
 computer systems to appropriate authorities.

 USE OF THIS SYSTEM BY ANY USER, AUTHORIZED OR UNAUTHORIZED,
 CONSTITUTES CONSENT TO THIS AUDITING, INTERCEPTION, RECORDING,
 READING, COPYING, CAPTURING, AND DISCLOSURE OF COMPUTER ACTIVITY.

        **WARNING**WARNING**WARNING**WARNING**WARNING**

Permission denied (gssapi-keyex,gssapi-with-mic,password,keyboard-interactive).

2022-01-25 15:03:05 DEBUG Starting new HTTPS connection (1): testing.exaworks.org:443
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 600, in urlopen
INTERNALERROR>     chunked=chunked)
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 343, in _make_request
INTERNALERROR>     self._validate_conn(conn)
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 839, in _validate_conn
INTERNALERROR>     conn.connect()
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connection.py", line 344, in connect
INTERNALERROR>     ssl_context=context)
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 345, in ssl_wrap_socket
INTERNALERROR>     return context.wrap_socket(sock, server_hostname=server_hostname)
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/ssl.py", line 412, in wrap_socket
INTERNALERROR>     session=session
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/ssl.py", line 853, in _create
INTERNALERROR>     self.do_handshake()
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/ssl.py", line 1117, in do_handshake
INTERNALERROR>     self._sslobj.do_handshake()
INTERNALERROR> ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)
INTERNALERROR>
INTERNALERROR> During handling of the above exception, another exception occurred:
INTERNALERROR>
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
INTERNALERROR>     timeout=timeout
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 638, in urlopen
INTERNALERROR>     _stacktrace=sys.exc_info()[2])
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/util/retry.py", line 399, in increment
INTERNALERROR>     raise MaxRetryError(_pool, url, error or ResponseError(cause))
INTERNALERROR> urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='testing.exaworks.org', port=443): Max retries exceeded with url: /result (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))
INTERNALERROR>
INTERNALERROR> During handling of the above exception, another exception occurred:
INTERNALERROR>
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/main.py", line 265, in wrap_session
INTERNALERROR>     config._do_configure()
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/config/__init__.py", line 982, in _do_configure
INTERNALERROR>     self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_hooks.py", line 277, in call_historic
INTERNALERROR>     res = self._hookexec(self.name, self.get_hookimpls(), kwargs, False)
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_manager.py", line 80, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_callers.py", line 60, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_result.py", line 60, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_callers.py", line 39, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/conftest.py", line 205, in pytest_configure
INTERNALERROR>     _save_or_upload(config, data)
INTERNALERROR>   File "/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/conftest.py", line 467, in _save_or_upload
INTERNALERROR>     _upload_report(config, data)
INTERNALERROR>   File "/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/conftest.py", line 483, in _upload_report
INTERNALERROR>     'key': config.option.key, 'data': data})
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/api.py", line 117, in post
INTERNALERROR>     return request('post', url, data=data, json=json, **kwargs)
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/api.py", line 61, in request
INTERNALERROR>     return session.request(method=method, url=url, **kwargs)
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/sessions.py", line 542, in request
INTERNALERROR>     resp = self.send(prep, **send_kwargs)
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/sessions.py", line 655, in send
INTERNALERROR>     r = adapter.send(request, **kwargs)
INTERNALERROR>   File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/adapters.py", line 514, in send
INTERNALERROR>     raise SSLError(e, request=request)
INTERNALERROR> requests.exceptions.SSLError: HTTPSConnectionPool(host='testing.exaworks.org', port=443): Max retries exceeded with url: /result (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))
2022-01-25 15:03:06 DEBUG Starting new HTTPS connection (1): testing.exaworks.org:443
Traceback (most recent call last):
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 343, in _make_request
    self._validate_conn(conn)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 839, in _validate_conn
    conn.connect()
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connection.py", line 344, in connect
    ssl_context=context)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 345, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/ssl.py", line 412, in wrap_socket
    session=session
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/ssl.py", line 853, in _create
    self.do_handshake()
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/urllib3/util/retry.py", line 399, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='testing.exaworks.org', port=443): Max retries exceeded with url: /result (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pytest/__main__.py", line 5, in <module>
    raise SystemExit(pytest.console_main())
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/config/__init__.py", line 185, in console_main
    code = main()
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/config/__init__.py", line 163, in main
    config=config
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_callers.py", line 60, in _multicall
    return outcome.get_result()
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/main.py", line 316, in pytest_cmdline_main
    return wrap_session(config, _main)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/main.py", line 311, in wrap_session
    config._ensure_unconfigure()
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/_pytest/config/__init__.py", line 987, in _ensure_unconfigure
    self.hook.pytest_unconfigure(config=self)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_callers.py", line 60, in _multicall
    return outcome.get_result()
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/WS2/corbett8/37B/lib/python3.7/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
  File "/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/conftest.py", line 230, in pytest_unconfigure
    _save_or_upload(config, data)
  File "/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/conftest.py", line 467, in _save_or_upload
    _upload_report(config, data)
  File "/usr/WS2/corbett8/ExaWorks/psi-j-python/tests/conftest.py", line 483, in _upload_report
    'key': config.option.key, 'data': data})
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/api.py", line 117, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/usr/tce/packages/python/python-3.7.2/lib/python3.7/site-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='testing.exaworks.org', port=443): Max retries exceeded with url: /result (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1056)')))
make: *** [Makefile:14: tests] Error 1
(37B) [corbett8@lassen709:psi-j-python]$

@jameshcorbett and I spoke about this a bit earlier and, it appears that something in James' environment causes python/requests to not recognize letsencrypt.org as a CA.

Got it working thanks to help from some LC people. The fix is to export REQUESTS_CA_BUNDLE=/etc/pki/tls/cert.pem. So we now have our first LLNL results.
I have the same problem with my laptop on LLNL VPN but the solution there is to not use VPN.

Thanks @jameshcorbett!
I wonder why the default doesn't work and whether it's reasonable to assume that it should. I would not personally have expected a widely used CA to not be seen by default, but things clearly don't work according to my expectations.

The explanation I got was:

Most of the time, but certainly not always, this is due to the Lab's MITM web proxy replacing the SSL certificate with its own, but the client not knowing about the Lab's CA certificates.  What application are you using to attempt to upload the results? It is possible to exempt certain web sites from the MITM SSL replacement, which might end up being needed here...

!#$!@#
You know, my first suspicion was that there was a lab proxy replacing the page, and, when I asked you to check the certificate with curl and it returned a valid certificate, I didn't check the actual cert, so I dismissed that theory.
My gut wants to say a few things about "MITM SSL replacement", but I worry I have nothing nice to say about it, so I'll abstain.

Moving to 1.0.0


Adding back ledger library & UI

What type of PR is this?
feature
What this PR does / why we need it:
This PR is to allow user unlock wallet by Ledger device and signing transaction by that ledger device.
Which issue(s) this PR fixes:
Fixes #913
Special notes for your reviewer:
The root cause of the issue is that Ledger signer plugin was added to Antenna instance even no ledger device connected.
NOTE: We now support 3 kinds of the signer:

ws: using the wallet app to sign a transaction from web wallet via WebSocket.
ledger: using ledger device to sign a transaction from web wallet or electron app wallet.
default: using the default RPC method to sign the transaction.

The antenna can be switched between those kinds of signers by calling method setSignerType accordingly.
Important note: This PR requires PASSED test round with real ledger devices before the merge.
Does this PR introduce a user-facing change?:
NONE

have you tested it in the iotex-wallet environment?

please resolve conflicts


Edit output coordinate box - Sample Sample

When you edit the output coordinate the dialog has the words Sample Sample. Should the second sample be replaced with an example of the notation you are setting up?

So for example if I was setting up MGRS with a custom notation of Z S X 00000 Y 00000 then the dialog should show, something like:
Sample 31U DR 14263 12234

verified fixed in build 1612


Added UnnecessaryAbstractClass rule

This finishes the abstract modifier/class rules.

So basically the user should use an interface instead?

@arturbosch Thanks for the review.
Right. I don't think it is controversial per se. It's kind of a multi rule if you want so.
A abstract class without a concrete member can be refactored to an interface.
A abstract class without an abstract member can be refactored to a concrete class.
I'll add this information to the issue description.

Ok, Awesome, will need to manually merge this :/ ;)

related to #333

Manually merged.


Unable to adjust font size

I'm not sure if it's a bug or something on my part, but I can't get this code below to adjust the font and/or size on ttk.Label even when I reconfigure the 'primary.TLabel'.
code:
from tkinter import *
from tkinter import ttk
from ttkbootstrap import Style
root = Tk()
style = Style(theme='journal')
style.configure('primary.TLabel',
font=('Arial', 25, 'bold')
)
main_notebook = ttk.Notebook(root)
main_notebook.pack(pady=15,padx=15)
master = ttk.Frame(main_notebook)
master.configure(width=300)
cal_Label = ttk.Label(master, text="Choose the starting date.", style='primary.TLabel' )
cal_Label.grid(row = 0, column = 0,sticky=W)
main_notebook.add(master, text='Test')
root.mainloop()

Try setting the font directly in the label.
from tkinter import *
from tkinter import ttk
from ttkbootstrap import Style

root = Tk()
style = Style(theme='journal')

main_notebook = ttk.Notebook(root)
main_notebook.pack(pady=15,padx=15)

master = ttk.Frame(main_notebook)
master.configure(width=300)

cal_Label = ttk.Label(
    master,
    text="Choose the starting date.",
    style='primary.TLabel',
    font=('Arial', 25, 'bold')
    )
cal_Label.grid(row = 0, column = 0,sticky=W)

main_notebook.add(master, text='Test')
root.mainloop()

Here's a working example:
<EMAIL_ADDRESS>

That works, thank you!
For some reason the global style setting ,'style.configure('.', font=('Arial', 18)) with ttkbootstrap, doesn't affect the ttk.Labels like ttk.Style() does.

experienced the same problem. My workaround was to use tkinters label module. Create some instances for fonts you wanna use in your program and then assign it to the labels, buttons, etc.
import tkinter.font as font
fontTitel = font.Font(family="Helvetica", size=10, weight="bold")

With that you have still a global control of all used fonts and dont have to change it in every widget.
I hope there will be a option in Styles later on to change the font with it.
best regrads :)

Thanks for the input. Agreed this is a good approach.
You can also use the named fonts as well. There are several such as "TkDefaultFont" and "TkTextFont", etc.... These are applied automatically if no font is specifically configured. This is the approach I plan to take eventually, releasing control of the font to the default system to ensure I get the best cross platform look & feel. For now, you'd have to set the font to a named font because I'm currently overriding it, but eventually it will just default (as is normal) to the default font.
To update a default font:
f = font.nametofont("TkDefaultFont")
f.configure(family="Helvetica", size=10, weight="bold")


waiting time between messages

I'm working on creating a DLQ stream. When attempting to consume a message with error, after the 3 attempt the message should be sent to a DLQ topic.
Is it possible to configure a waiting time between messages?

You can just use a ConsumerGroupStream and call read() at your convenience.

Procurei a informação de alguma forma chamada read () e não encontrei.
Isso poderia ser uma configuração do consumidor.

ConsumerGroupStream implements the readable stream interface.


add "Wolof Subtitle Generator" project 🎉

by @lodjim

Great thanks you Daouda
Le mer. 30 août 2023 à 21:22, Daouda BA @.***> a écrit :

Merged #65 https://github.com/GalsenDev221/made.in.senegal/pull/65 into
master.
—
Reply to this email directly, view it on GitHub
https://github.com/GalsenDev221/made.in.senegal/pull/65#event-10237506492,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOMHFHTTGWFD2FZOPUJMK63XX6VHZANCNFSM6AAAAAA4FDUPXM
.
You are receiving this because you were mentioned.Message ID:
@.***>


Access ComponentActivity in Android app

I am trying to upgrade Stripe native library that I access via React Native Bridge. Stripe version 17+ requires ComponentActivity to be used in library calls: https://github.com/stripe/stripe-android/blob/master/MIGRATING.md. however React Native returns Activity component with getCurrentActivity() call. How can ComponentActivity be accessed via React Native?

Never mind, it looks like simple type casting works in this situation
stripe.confirmPayment((ComponentActivity) getCurrentActivity(), params);
Closing the issue.


Adds owner refs for created secrets

When an account is deleted, the linked secrets are now also removed.

Looks good, can you please test this? I think you'll need to rebase due to a bug we fixed after you branched off master.


zetacore : fix events for add observer

Message AddObserver currently emits events when a new observer is not added, this should be refactored to make sure this event is only emitted when a new observer gets added to the set

In my opinon its just better to refactor this message and break it down into two different messages

AddSignerNodeAccount
AddObserverToObserver

The AddNodeAccountOnly flag is just extra logic we dont need


Makes zoom and text size persistent between launches

Hi, :wave:
I made zoom and text size persistent between launches. :v:

Thanks, @rsms! :smile::+1:


Is AMQP-CPP thread safe??

Hi Emiel,
Is AMQP-CPP thread safe.
Can I use this library to create multiple threads with one tcp connection  shared between threads. But with multiple channels, i.e one channel per thread?
Thanks,
Sheetal

Hi,
Request for info on using one channel per thread and only 1 thread establishing connection with rmq.
Channels: A channel is a sort of virtual connection, and it is possible to create many channels that all use the same connection.
Is it possible to achieve this in a multithreaded application? if So how can we achieve with connection object not being thread safe?
Thanks,
Sheetal

Yes and no. The AMQP-CPP library is thread safe. No global or static variables are used, and you can safely use it in a multithreaded application.
An AMQP object, however, is not thread safe. You can not call multiple methods on the same object from multiple threads at the same time. This means that you cannot have one AMQP-CPP connection, and send data to over it simultaneously from multiple threads.

@EmielBruijntjes @zerodefect How does this affect usage within a multi-threaded IO service, such as asio? The libboostasio example explicitly mentions thread safety. Is there some magic going on that ensures that one AMQP-CPP object is handled only by one service thread?
It would be really nice if the documentation could be clarified for this.

I did not make the boost asio example, nor do i use it, i have no idea how it works.
But as a general rule: amqp-cpp is thread safe, but the objects are not. You can not acces a connection from multiple threads at the same time. But you can have multiple connections running in different threads.

Internally, I use an asio strand to ensure that only one thread from the given boost pool acts on object at any one time.

....so my comment in the example code was to demonstrate that the number of threads in boost asio pool has no affect on safety of implementation for a given object. That comment was not meant to address the overall thread safety of AMQP-CPP.


[RESOLVED] High ICMP ping response time

Problem started at 07:48:14 on 2023.08.10
Problem name: High ICMP ping response time
Host: MF-FG
Severity: Warning
Operational data: Value: 732ms
Original problem ID: 35216
Event details in Zabbix: http://<IP_ADDRESS>/tr_events.php?triggerid=23132&eventid=35216

Problem has been resolved in 5m 0s at 07:53:14 on 2023.08.10
Problem name: High ICMP ping response time
Host: MF-FG
Severity: Warning
Original problem ID: 35216


is it possible to use only attention from tensorrt_llm/layers/attention.py

hi team,
I need some clarifications.
This attention used flash attention(faster implementation), which can be used in Pytorch and TensorRT (TRT).
But I wanted to use only attention class in my flow. If so, please guide me through the steps. It's dependent on the network, too (default_net(), and which needs to be set), which I got to know when I was trying to understand the flow.
please correct me fmha is also related to flash-attention.
Thank you.

thank you so much for your fast replay @PerkzZheng
Sorry to ask you more, but can I get an equivalent in Python?

thank you so much for your fast replay @PerkzZheng
Sorry to ask you more, but can I get an equivalent in Python?

you can refer to https://github.com/NVIDIA/TensorRT-LLM/blob/main/tests/attention/test_gpt_attention.py (based on trt plugins), or you may need to wrap everything through pytorch ops or python bindings.

thank you for guiding me, @PerkzZheng

thank you for guiding me, @PerkzZheng

No problem.


feat(fs): folder stracture docs updated

:tada: This PR is included in version 1.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Published but nothing on the profile

Hello
It was working yesterday
but today my video is "published" but nothing on my profile, I updated the sessionid at least 5 times.
Any idea ?
                title = "test"
                tags = generate_tags(mp4_name)
                proxy=None
                file = file_path
                if uploadVideo(sessions[account], file, title, tags, proxy=proxy):
                    upload_success += 1

I print the response:
if r.json()["status_code"] == 0:
	print(r.json())

{'extra': {'fatal_item_ids': [], 'logid': '202307261919357C66FA4FE681B4042741', 'now':<PHONE_NUMBER>000}, 'info': {'projectID': '2307292421', 'status': 0, 'tasks': [{'batch_index': 0, 'item_id': '7260208650315156763', 'postID': 0, 'projectID': '0', 'taskID': 0}], 'type': 1, 'version': 1}, 'log_pb': {'impr_id': '202307261919357C66FA4FE681B4042741'}, 'status_code': 0, 'status_msg': 'success'}
Tks

now it's uploading I don't get it few hours it was bugged and now it works fine..

maybe it is limited by  tiktok


Enable casting custom errors in Go

Follow up to #5184
Instead of having to unwrap a custom error:
var e *dagger.ExecError
if errors.As(err, &e) {
    return e.ExitCode
}

This allows directly casting:
if e, ok := err.(*dagger.ExecError); ok {
    return e.ExitCode
}

I think this is fine, but folks should be using errors.As anyway; directly asserting on an error's type is super brittle. Was this causing issues?

Was this causing issues?

No, it just seemed to me based on some shared bits of code that people might expect to do it that way. Not married to it in any way 🙂

All good! Just curious. :) It makes sense to me to not directly wrap our own expected errors anyhow.


Add entity and component lifecycle events

See https://github.com/genaray/Arch/issues/25
This doesn't (currently) support custom user-defined events.
Adds a way to handle entity created/destroyed events and component add/set/remove events.
It only uses arrays for data structures unless a component of type object is passed, at which point it needs to use a dictionary to find its id.
Few things:

EventType and ComponentType should be merged as they do effectively the same thing, I can do that in this pr or it can be done later since it doesn't change the API.
There is one quirk where doing _world.Create<EventTestComponentOne>(); fires a set event but not an add event, should that be changed?
With this PR some source generated operations rent an array of entities to store which ones to fire events on, since Shift removes them from the archetype and they become inaccessible otherwise.

Should Shift be changed?
If not, the array could be replaced with a stackalloc if the amount of entities is under a certain size. What size should this be, and should it depend on if PURE_ECS is enabled, which makes the Entity struct hold less data? Or should it just store its int Id?

Should the Events class that holds the handlers be a struct instead? This would require changing how the non generic calls work slightly or using manual field offsets.
The handlers are stored in a list instead of an event Action field so that this can more easily support ordering later if necessary.
Should the handler array loops use the same code as the rest of Arch's loops to avoid bound checks? With Unsafe.Add and DangerousGetReference

Gonna look at this later!  But tomorrow :)

Sorry for the late reply, im extremely happy when that damn thesis does not consume 99% of my time anymore.

EventType and ComponentType should be merged as they do effectively the same thing, I can do that in this pr or it can be done later since it doesn't change the API.

That can be done later ^^ Probably its even "clean" to separate them or probably its my tired brain forcing me into that thinking.

There is one quirk where doing _world.Create<EventTestComponentOne>(); fires a set event but not an add event, should that be changed?

I think it makes the most sense to fire a add event only or? Well actually a create operation is a add and a set operation, but for the user it only notable as one single add operation i guess.

With this PR some source generated operations rent an array of entities to store which ones to fire events on, since Shift removes them from the archetype and they become inaccessible otherwise.

I think there's a way around this. Its not that well documented since its dark magic (actually i just have no clue how i should explain it). EntityInfo.Shift updated the EntityInfo mapping only. However, they are not really inaccessible, they still exist in their origin archetype. and after the copy operation also in the target archetype. We know where those were attached to by using the cached LastSlot stuff. And therefore we can then just iterate from the previous last slot to the newest last slot. Those are the newly added entities and we can fire add and set events for them without the need of an additional array. Thats extremely performant and also reduces the code. I think some method already uses this technique, it probably even is the EntityInfo.Shift itself. Or some archetype.SetRange method... i need to check this.

Should the Events class that holds the handlers be a struct instead? This would require changing how the non generic calls work slightly or using manual field offsets.

Thats a potential improvement, but is that really necessary? ^^ Theres only one Events class, correct?

The handlers are stored in a list instead of an event Action field so that this can more easily support ordering later if necessary.

Thats actually very useful. I could also imagine that this approach is "better" with e.g. queryable events and stuff.

Should the handler array loops use the same code as the rest of Arch's loops to avoid bound checks? With Unsafe.Add and DangerousGetReference

It should (to enforce a common codestyle here) i guess ^^

Im gonna look at that add/set problematic to remove the need of array renting :)

EventType and ComponentType should be merged as they do effectively the same thing, I can do that in this pr or it can be done later since it doesn't change the API.

That can be done later ^^ Probably its even "clean" to separate them or probably its my tired brain forcing me into that thinking.

Keeping them separate does mean that no array space is wasted accounting for components that don't have events subscribed to them.

There is one quirk where doing _world.Create<EventTestComponentOne>(); fires a set event but not an add event, should that be changed?

I think it makes the most sense to fire a add event only or? Well actually a create operation is a add and a set operation, but for the user it only notable as one single add operation i guess.

It now raises both events with this commit, since it doesn't check if the component passed is of default value before raising the set event. Should it? That would be the only way I can think of fixing it.

Should the Events class that holds the handlers be a struct instead? This would require changing how the non generic calls work slightly or using manual field offsets.

Thats a potential improvement, but is that really necessary? ^^ Theres only one Events class, correct?

There's one events class and its generic counterpart that inherits it, with an array that holds those event classes, which are casted using Unsafe.As

Should the handler array loops use the same code as the rest of Arch's loops to avoid bound checks? With Unsafe.Add and DangerousGetReference

It should (to enforce a common codestyle here) i guess ^^

Checked this and it isn't possible to do while targeting netstandard2, since DangerousGetReference can't be called on a list and no span can be obtained from it without a call to CollectionsMarshal, which was introduced in .NET 5. A preprocessor directive could be used for #if NET5_0_OR_GREATER, if that's considered worth it.

And i will probably also remove the World from the Archetype and add those capabilities to the world directly. This will require an exposing of the Entity-Event methods to the public so that the user can call them upon his own needs for such a scenario ^^

World has been removed from the archetype in this commit) and the event-raising methods are public now with this commit
I didn't fix the array renting yet though.

So i think this should work as a replacement for the renting arrays:
       // Update the entityInfo of all copied entities.
        for (var chunkIndex = archetypeSlot.ChunkIndex; chunkIndex >= newArchetypeSlot.ChunkIndex; --chunkIndex)
        {
            // Get data
            ref var chunk = ref archetype.GetChunk(chunkIndex);
            ref var entityFirstElement = ref chunk.Entity(0);

            // Only move within the range, depening on which chunk we are at.
            var isStart = chunkIndex == archetypeSlot.ChunkIndex;
            var isEnd = chunkIndex == newArchetypeSlot.ChunkIndex;

            var upper = isStart ? archetypeSlot.Index : chunk.Size-1;
            var lower = isEnd ? newArchetypeSlot.Index : 0;

            for (var index = upper; index >= lower; --index)
            {
                ref readonly var entity = ref Unsafe.Add(ref entityFirstElement, index);
                // Fire event for entity
            }
        }

This is done exactly like this during the shift operation and since no EntityInfo is accessed, it will also work after the shift since all the data still exists.

It now raises both events with this commit, since it doesn't check if the component passed is of default value before raising the set event.

I think that's fine :) Default value is default value and its still being set, so it makes sense to still fire it.

Checked this and it isn't possible to do while targeting netstandard2, since DangerousGetReference can't be called on a list and no span can be obtained from it without a call to CollectionsMarshal, which was introduced in .NET 5. A preprocessor directive could be used for #if NET5_0_OR_GREATER, if that's considered worth it.

Then we will just leave it like this for the first. Putting more directives into this would just reduce the readability.
A custom array or list could come in handy here, probably even as an addition to Arch.Extended ^^ But for now its good like this. Probably the JIT compiler also removes the bound checks by itself since its a linear operation.


debug - delete cpod - expr: syntax error: unexpected argument ‘172’

in some AZ deleting a cpod does not clean up BGP config properly.
Probably a bug in collecting cpod info.
symptom :
root@cpodedge [ ~/cPodFactory ]# cpodctl delete v80 vedw
=== Deleting cPod called 'V80'.
expr: syntax error: unexpected argument ‘172’
% Unknown command.
Modifying '/etc/dnsmasq.conf' and '/etc/hosts'.
Deleting ResourcePool 'cPod-V80'.
Deleting 'cpod-v80' segment.
=== Deletion is finished.

need to add more variable testing in delete_cpod.sh
https://github.com/Tanzu-Solutions-Engineering/cPodFactory/blob/38cecef0525a9717be45119615b449fc3b428c2a/delete_cpod.sh#L91

suspect problem at line : 	ASN=$( expr ${ASN} + ${TMP} )
in https://github.com/Tanzu-Solutions-Engineering/cPodFactory/blob/38cecef0525a9717be45119615b449fc3b428c2a/delete_cpod.sh#L93


How do I connect to a LAN machine service such as redis？

Info:

Docker version 18.09.2, build 6247962

Laradock commit: 63fc1fde44cc00aacb89511a441cb83685e8010c

System info: windows PC

System info disto/version: Microsoft Windows [版本 10.0.18932.1000]

I created two containers php-fpm and nginx
My native IP is <IP_ADDRESS>
I want the php-fpm container to connect to the redis service provided by one of the machines on the LAN
php-fpm container IP is <IP_ADDRESS>
nginx container IP is  laradock_frontend <IP_ADDRESS>   laradock_backend <IP_ADDRESS>
a LAN has two segments: <IP_ADDRESS>/24  and <IP_ADDRESS>/24, redis service on <IP_ADDRESS>/24 network segment， my own machine is on the <IP_ADDRESS>/24 network segment.

The document says that it can be configured as REDIS_HOST=redis
This is not suitable for me, I directly specify <IP_ADDRESS> display
Connection refused [tcp://<IP_ADDRESS>:6379]
what should I do?

Unfortunately it's not supported on Windows.
Docker has macvlan network (https://docs.docker.com/network/macvlan/) so that you can use it to access other machines on your LAN network. However, macvlan is not supported on Docker Desktop for Windows (https://docs.docker.com/network/network-tutorial-macvlan/)


Cache caret parameters

Fixes https://github.com/flutter/flutter/issues/36707
We were not caching the caret parameters before, causing the short circuit to never trigger, resulting in additional redundant work. This adds the caching to bring it into line with what it was meant to be.
This does not change the output at all and slightly increases performance for cases like blinking carets.

Existing tests should be sufficient to catch any regressions in behavior, which should remain the same.


Rails 4.2 Can't modify frozen hash ActiveSupport::HashWithIndifferentAccess

I have Can't modify frozen hash ActiveSupport::HashWithIndifferentAccess when I do blog.tag_list = "hello" with rails 4.2
Now I dont know how to fix it.

Will a new version of the gem come out that contains this fix?