Micro-improvements concerning types

There is no Navigation type in @toolpad/core/react-router-dom. However, I found it in @toolpad/core/AppProvider;
Added explicit type React.FC for the App component (otherwise importing * as React from 'react' would be unnecessary).

Sorry, I just found out that you're already working on this:
https://github.com/mui/toolpad/issues/4270
It was in the closed issues, so I missed it before creating the PR


Migration failed from 11 to 12: Remove deprecated options from 'angular.json' that are no longer present in v12.

🐞 Bug report
Command

[x] update

Description
I'm trying to update my Angular project from 11 to 12 and it's failing. I'm having a hard time figuring out what's going on.
🔬 Minimal Reproduction
I'm running this command:
ng update
Using package manager: 'yarn'
Collecting installed dependencies...
Found 42 dependencies.
    We analyzed your package.json, there are some packages to update:

      Name                               Version                  Command to update
     --------------------------------------------------------------------------------
      @angular/cdk                       11.2.2 -> 12.0.3         ng update @angular/cdk
      @angular/cli                       11.2.2 -> 12.0.3         ng update @angular/cli
      @angular/core                      11.2.3 -> 12.0.3         ng update @angular/core
      @angular/material                  11.2.2 -> 12.0.3         ng update @angular/material
      @nguniversal/express-engine        11.2.0 -> 12.0.1         ng update @nguniversal/express-engine

    There might be additional packages which don't provide 'ng update' capabilities that are outdated.
    You can update the additional packages by running the update command of your package manager.

In which I'm then running this command:
ng update @angular/core @angular/cli @angular/material @angular/cdk @nguniversal/express-engine
🔥 Exception or Error
❯ Remove deprecated options from 'angular.json' that are no longer present in v12.
✖ Migration failed: 'set' on proxy: trap returned falsish for property 'defaultConfiguration'
  See "/private/var/folders/gw/1qz7jj69327488vm7307hxkm0000gn/T/ng-Q5CvCH/angular-errors.log" for further details.

/private/var/folders/gw/1qz7jj69327488vm7307hxkm0000gn/T/ng-Q5CvCH/angular-errors.log
[error] TypeError: 'set' on proxy: trap returned falsish for property 'defaultConfiguration'
    at updateOptions (/Users/maki/git/roxiplus.es/node_modules/@angular/cli/node_modules/@schematics/angular/migrations/update-12/update-angular-config.js:55:33)
    at /Users/maki/git/roxiplus.es/node_modules/@angular/cli/node_modules/@schematics/angular/migrations/update-12/update-angular-config.js:36:21
    at /Users/maki/git/roxiplus.es/node_modules/@angular/cli/node_modules/@schematics/angular/utility/workspace.js:40:34
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

🌍 Your Environment
yarn ng version Angular 11, current from package.json
Angular CLI: 11.2.2
Node: 16.3.0
OS: darwin arm64

Angular: 11.2.3
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router
Ivy Workspace: Yes

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1102.2
@angular-devkit/build-angular   0.1102.2
@angular-devkit/core            11.2.2
@angular-devkit/schematics      11.2.2
@angular/cdk                    11.2.2
@angular/cli                    11.2.2
@angular/material               11.2.2
@nguniversal/builders           11.2.0
@nguniversal/express-engine     11.2.0
@schematics/angular             10.1.2
@schematics/update              0.1102.2
rxjs                            6.6.6
typescript                      4.0.3

Anything else relevant?
package.json
{
	"name": "roxi-plus",
	"version": "0.0.0",
	"scripts": {
		"pre": "node download-plausible.js",
		"start": "npm run pre && ng serve --host <IP_ADDRESS>",
		"build": "npm run pre && npm run build:ssr && npm run optimize",
		"dev:ssr": "npm run pre && ng run roxi-plus:serve-ssr",
		"serve:ssr": "node dist/server/main.js",
		"build:ssr": "ng build --prod && ng run roxi-plus:server:production",
		"prerender": "ng run roxi-plus:prerender",
		"format": "prettier --write **/*.html",
		"optimize": "gulp optimize",
		"ng": "ng"
	},
	"private": true,
	"dependencies": {
		"@angular/animations": "11.2.3",
		"@angular/cdk": "11.2.2",
		"@angular/common": "11.2.3",
		"@angular/compiler": "11.2.3",
		"@angular/core": "11.2.3",
		"@angular/forms": "11.2.3",
		"@angular/material": "11.2.2",
		"@angular/platform-browser": "11.2.3",
		"@angular/platform-browser-dynamic": "11.2.3",
		"@angular/platform-server": "11.2.3",
		"@angular/router": "11.2.3",
		"@nguniversal/express-engine": "11.2.0",
		"@schematics/angular": "10.1.2",
		"body-parser": "1.19.0",
		"bootstrap": "4.5.2",
		"cookie-parser": "^1.4.5",
		"express": "4.17.1",
		"express-static-gzip": "^2.1.1",
		"ngx-cookie-service": "^11.0.2",
		"nodemailer": "6.4.11",
		"rxjs": "6.6.6",
		"tslib": "^2.0.0",
		"zone.js": "0.10.3"
	},
	"devDependencies": {
		"@angular-devkit/build-angular": "0.1102.2",
		"@angular/cli": "11.2.2",
		"@angular/compiler-cli": "11.2.3",
		"@angular/language-service": "11.2.3",
		"@nguniversal/builders": "11.2.0",
		"@types/express": "4.17.7",
		"@types/node": "14.11.1",
		"@types/nodemailer": "6.4.0",
		"gulp": "^4.0.2",
		"node-fetch": "^2.6.1",
		"prettier": "^2.2.1",
		"sharp": "^0.27.2",
		"svgo": "^2.2.2",
		"through2-concurrent": "^2.0.0",
		"ts-loader": "8.0.4",
		"ts-node": "9.0.0",
		"tslint": "6.1.0",
		"typescript": "4.0.3",
		"webpack-cli": "3.3.12"
	}
}

angular.json
{
	"$schema"<EMAIL_ADDRESS>	"version": 1,
	"newProjectRoot": "projects",
	"projects": {
		"roxi-plus": {
			"projectType": "application",
			"schematics": {
				"@schematics/angular:component": {
					"style": "scss",
					"skipTests": true
				},
				"@schematics/angular:class": {
					"skipTests": true
				},
				"@schematics/angular:directive": {
					"skipTests": true
				},
				"@schematics/angular:guard": {
					"skipTests": true
				},
				"@schematics/angular:interceptor": {
					"skipTests": true
				},
				"@schematics/angular:module": {
					"skipTests": true
				},
				"@schematics/angular:pipe": {
					"skipTests": true
				},
				"@schematics/angular:service": {
					"skipTests": true
				}
			},
			"root": "",
			"sourceRoot": "src",
			"prefix": "app",
			"architect": {
				"build": {
					"builder": "@angular-devkit/build-angular:browser",
					"options": {
						"outputPath": "dist/browser",
						"index": "src/index.html",
						"main": "src/main.ts",
						"polyfills": "src/polyfills.ts",
						"tsConfig": "tsconfig.app.json",
						"aot": true,
						"assets": [
							"src/favicon.ico",
							"src/66c2e6a0f3149850fd26.js",
							"src/assets"
						],
						"styles": ["src/styles.scss"],
						"scripts": []
					},
					"configurations": {
						"production": {
							"fileReplacements": [
								{
									"replace": "src/environments/environment.ts",
									"with": "src/environments/environment.prod.ts"
								}
							],
							"optimization": true,
							"outputHashing": "all",
							"sourceMap": false,
							"namedChunks": false,
							"extractLicenses": true,
							"vendorChunk": false,
							"buildOptimizer": true,
							"budgets": [
								{
									"type": "initial",
									"maximumWarning": "2mb",
									"maximumError": "5mb"
								},
								{
									"type": "anyComponentStyle",
									"maximumWarning": "6kb",
									"maximumError": "10kb"
								}
							]
						}
					}
				},
				"serve": {
					"builder": "@angular-devkit/build-angular:dev-server",
					"options": {
						"browserTarget": "roxi-plus:build"
					},
					"configurations": {
						"production": {
							"browserTarget": "roxi-plus:build:production"
						}
					}
				},
				"extract-i18n": {
					"builder": "@angular-devkit/build-angular:extract-i18n",
					"options": {
						"browserTarget": "roxi-plus:build"
					}
				},
				"server": {
					"builder": "@angular-devkit/build-angular:server",
					"options": {
						"outputPath": "dist/server",
						"main": "server.ts",
						"tsConfig": "tsconfig.server.json"
					},
					"configurations": {
						"production": {
							"fileReplacements": [
								{
									"replace": "src/environments/environment.ts",
									"with": "src/environments/environment.prod.ts"
								}
							],
							"sourceMap": false,
							"optimization": true
						}
					}
				},
				"serve-ssr": {
					"builder": "@nguniversal/builders:ssr-dev-server",
					"options": {
						"browserTarget": "roxi-plus:build",
						"serverTarget": "roxi-plus:server"
					},
					"configurations": {
						"production": {
							"browserTarget": "roxi-plus:build:production",
							"serverTarget": "roxi-plus:server:production"
						}
					}
				},
				"prerender": {
					"builder": "@nguniversal/builders:prerender",
					"options": {
						"browserTarget": "roxi-plus:build:production",
						"serverTarget": "roxi-plus:server:production",
						"routes": ["/"]
					},
					"configurations": {
						"production": {}
					}
				}
			}
		}
	},
	"defaultProject": "roxi-plus"
}

I am experiencing the same issue though I am using nx. The migration update-angular-config throws the following error when I run the migration Cannot read property 'startsWith' of undefined

I am experiencing the same issue though I am using nx. The migration update-angular-config throws the following error when I run the migration Cannot read property 'startsWith' of undefined

@mehrad-rafigh, That indicates that you have an invalidate configuration, where the required builder property is missing.

Let's keep this issue focused on the original issue and avoid posting unrelated comments. I don't know about NX, but with Angular CLI projects with library targets always need a builder. All architect entries must have the mandatory builder option defined.

@makitsune, as a workaround you can use the following command
npx ng update @angular/core @angular/cli @angular/material @angular/cdk @nguniversal/express-engine

Awesome, thank you. Will work fine for everyone when the next patch is out.


New Number match for equivalence

I've found code easier to read and more functional when moving from assertEquals to the Hamcrest matchers.  However, I've found it a pain have to make sure the types of primatives are the same given the matchers require Objects.
I've written a small matcher I've called IsNumberEquiv with a static check called equivTo which passes if values are numerically the same.
I've written a reasonable initial set of tests and covered the standard implementations of Number.  Happy to contribute this as appropriate e.g. patch or commit, if there's interest.

Can you show some sample code that demonstrates the problem?
I'd be curious to see your IsNumberEquiv. Feel free to raise a PR, if you're keen.


Feature: fully disable scrolling

I would like to be able to disable scrolling altogether. There is a use case we have where we will have a partially visible row at the bottom:

We don't want this grid to be scrollable at all (we handle all scrolling with the underlying data model).

Ok
:)
On Mar 13, 2015 3:25 PM, "slikrik98"<EMAIL_ADDRESS>wrote:

I would like to be able to disable scrolling altogether. There is a use
case we have where we will have a partially visible row at the bottom:
[image: image]
https://cloud.githubusercontent.com/assets/1585478/6645693/af82648c-c98c-11e4-9d5b-dc6dab089002.png
We don't want this grid to be scrollable at all (we handle all scrolling
with the underlying data model).
—
Reply to this email directly or view it on GitHub
https://github.com/openfin/fin-hypergrid/issues/21.

its now a configuration option
https://github.com/openfin/fin-hypergrid#modifying-various-hypergrid-features-and-property-defaults


"trainable" location in 101 docs chromatix

In the docs https://chromatix.readthedocs.io/en/latest/101/ first code-block, I have an issue with importing "trainable" from chromatix.utils; it seems to be in chromatix.elements instead.
-Vojko

Thanks! We'll fix it.
@hosseybposh You checked the tutorials right? Did we miss something?

I think this time we got them all (also thanks to issue #108). Fixes and a new release coming soon!

Fixed by #136.


Set up prettier for auto-formatting

I'll take this on. I'm planning on sending a PR and worried that I'll introduce a bunch of semicolons. 😛


Tracking API : POD not inluded in the track response

The new REST API doesn't return POD (proof of delivery) or a signature photo, even though the request has 'returnSignature' set to true. Any resolution to this issue would be greatly appreciated. Below is the endpoint I am using to retrieve tracking responses
https://onlinetools.ups.com/api/track/v1/details/{trackingnumber}?locale=en_US&returnSignature=true&returnMilestones=true.
Based on the API documentation provided at https://developer.ups.com/api/reference?loc=en_US#operation/getSingleTrackResponseUsingGET, the endpoint returns the Proof of Delivery (POD). However, when testing it, the actual response doesn't include the POD for the same tracking number.

Same issue here. There is a "returnPOD" parameter in the API documentation, but not in the API spec. There is also a "pod" property on the "deliveryInformation" in the API documentation, which gets filled when "returnPOD" is "true". Both are missing from the OpenAPI spec.
We keep an edited version of the OpenAPI spec that includes these two missing properties.

@david-szabo97  nice to know. In general: this is a duplicate of #57 , or?

@david-szabo97 nice to know. In general: this is a duplicate of #57 , or?

No, these are two different parameters with two different outcomes.

@david-szabo97 true. Are you happy with the values found in DeliveryInformation.pod.content? I raised #76 after some analysis.

Same issue here. There is a "returnPOD" parameter in the API documentation, but not in the API spec. There is also a "pod" property on the "deliveryInformation" in the API documentation, which gets filled when "returnPOD" is "true". Both are missing from the OpenAPI spec.
We keep an edited version of the OpenAPI spec that includes these two missing properties.

Thanks, having returnPOD=true parameter worked for me

resolved

Same issue here. There is a "returnPOD" parameter in the API documentation, but not in the API spec. There is also a "pod" property on the "deliveryInformation" in the API documentation, which gets filled when "returnPOD" is "true". Both are missing from the OpenAPI spec.
We keep an edited version of the OpenAPI spec that includes these two missing properties.

Hi, thank you for the collaboration in this thread. Our documentation push yesterday added these two missing fields.


path_provider-1.5.1\android\src\main\java\io\flutter\plugins\pathprovider\PathProviderPlugin.java uses or overrides a deprecated API.

Steps to Reproduce

...
...
...

Logs

Hi @vinodlee
I see there's an open issue addressing the case you described.
Please follow up on that issue #47833, or #47816
I'm closing the current one as duplicate.
If you disagree please write in the comments
and I will reopen it.
Thank you


🌱 reconciler/cache/replication: use mocks, not fakes

Summary
Mocks allow for a more reslilient set of tests.
Signed-off-by: Steve Kuznetsov<EMAIL_ADDRESS>/assign @stevekuznetsov
Part of #2167
Related issue(s)
Fixes https://github.com/kcp-dev/kcp/pull/2170

/hold
putting this PR on hold because I want to review it myself

/hold cancel
@stevekuznetsov ptal

/hold
actually, we might drop the usage of mocks for this particular case, discussing with @stevekuznetsov


[Feature request]Ability to trigger alert for scheduled Etcd snapshot backup

What kind of request is this (question/bug/enhancement/feature request):
Feature request
Description:
It would be nice to have the ability to trigger the alert when the schedule Etcd backup is failed
gz#8824
gz#10830

Frequently in support calls, I find the backup infrastructure has a previously unknown and unresolved issue as the user had no indication of if backups were still working or not.  It's also not clear when backups may have started failing unless we are lucky and an S3 bucket has not been cleared out.
It would be very helpful if there was a way to alert a user when backups have failed or failed to be uploaded to the bucket.  For a good production-grade solution, this should actually check a md5sum or in some other way confirm that the backup is in the bucket, can be downloaded, and is not an empty or corrupted file.

+1

We need this, too!


The initializer can't complete when there is more than one container running within the same pod

Brief summary
Symptom
When running more than one container together within the same pod as the initializer, the operator can't retrieve container logs because the container was not specified.
Explained
I'm trying to use a custom k6 runner pod with dapr configured, in order to get this running, I have to add the dapr annotations to the runner, as the following:
dapr.io/app-id: "tester-app"
dapr.io/enabled: "true"

As the initializer pod annotations are the same as specified for runners, the initializer pod will also contain the daprd container, leading in two different problems:

As k8s jobs won't complete until all containers are done, the dapr will make this fail because I have no control to shutdown the pod, and, as the per documentation, the correct way for doing this is calling sidecar shutdown.

A simple solution would be having different annotations for initializer and runners because the runner itself can do http requests on teardown but the initializer doesn't.

Even though a patched k6 version is used for shutting down the dapr sidecar whenever the initialization is complete, the operator fails as it is unable to read the pod logs.

Suggested solutions

Do not reuse the same annotations as used for the test runner
Specify the k6 container when reading pod logs

k6-operator version or image
latest
K6 YAML
apiVersion: k6.io/v1alpha1
kind: K6
metadata:
  name: k6-sample
spec:
  parallelism: 1
  script:
    configMap:
      name: tests
      file: test.js
  runner:
    metadata:
      annotations:
        dapr.io/app-id: "tester-app"
        dapr.io/enabled: "true"
    image: localhost:5001/k6-custom:latest

Other environment details (if applicable)
dapr installed
Steps to reproduce the problem
git clone github.com/mcandeia/k6-operator-dapr-error
cd k6-operator-dapr-error
./setup.sh

Check the manager logs:
2022-11-05T00:47:43.891Z        ERROR   controllers.K6  unable to stream logs from the pod      {"k6": "default/k6-sample", "error": "a container name must be specified for pod k6-sample-initializer-cqs8s, choose one of: [k6 daprd]"}

Expected behaviour
initializer should complete regardless of running containers
Actual behaviour
The test initializer can't complete
https://github.com/grafana/k6-operator/issues/164#tasklist-block-8de0afeb-65ae-40a0-87b0-bcd26f483ef3

Suggested solutions

Do not reuse the same annotations as used for the test runner
Specify the k6 container when reading pod logs

Just adding context that item 2 is now resolved by the merge of #165. Handling of annotations is the remaining issue.

Hi @mcandeia, there was an issue with Istio degradation due to annotations removal in #172 so I reverted the #166. My apologies for this.
I'm re-opening your issue but I'd like to clarify this part with you:

Even though a patched k6 version is used for shutting down the dapr sidecar whenever the initialization is complete, the operator fails as it is unable to read the pod logs.

What do you mean by "patched k6 version" here? It sounds to me like with your fix for containers in #165 merged, it should actually be sufficient for your use case without changing annotations. Is that correct? I haven't yet the time to dig into dapr logic enough to evaluate this so I'd appreciate if you could clarify :slightly_smiling_face:

Hi @mcandeia, there was an issue with Istio degradation due to annotations removal in #172 so I reverted the #166. My apologies for this. I'm re-opening your issue but I'd like to clarify this part with you:

Even though a patched k6 version is used for shutting down the dapr sidecar whenever the initialization is complete, the operator fails as it is unable to read the pod logs.

What do you mean by "patched k6 version" here? It sounds to me like with your fix for containers in #165 merged, it should actually be sufficient for your use case without changing annotations. Is that correct? I haven't yet the time to dig into dapr logic enough to evaluate this so I'd appreciate if you could clarify 🙂

Hello @yorugac, by “patched k6” I meant a custom k6 runner image that shutdowns the sidecar when the initializer complete. But the fix was actually applied by having separate annotations for the initializer, did you open the repository link that I provided in the issue? I think you can reproduce there(you have to pin the k6 operator version now because there is pointing to latest)

In addition, the latest operator version is not working and I had to pin the 0.0.8 release.


Objects fail to render when changing the render bounds

My objective is to preserve aspect ratio while user resizes browser window ( this is needed for portrait / landscape orientation support for mobile ). The problem appears when matter-js is being scaled, and some of the bodies stop being rendered and disappear when they approach the edges of the screen ( sometimes this also happens in the middle of the screen )
CSS
html, body
{
  padding: 0;
  margin: 0;
  min-height: 100%;
  overflow: hidden;
}

HTML

<canvas></canvas>

Script
Constructor
// ...
    this.container = container; // div element reference
    this.canvas = canvas; // canvas element reference
    this.engine = Engine.create();
    this.render = Render.create({
      element: container,
      canvas: this.canvas,
      engine: this.engine,
      options:
      {
        hasBounds: true,
        width: 400,
        height: 400,
        background: '#AAA',
      }
    });
    Render.run(this.render);
    Engine.run(this.engine);

   // ...
   // add a simple physics objects
   // ...

   // reset min bounds ( ? )
    this.render.bounds.min = { x:0,y:0 };

    // Save starting render bounds to calc scale ratio later
    this.renderBounds =
    // Autofit max bounds to current render bounds
    this.render.bounds.max =
    {
      x : this.render.options.width,
      y : this.render.options.height
    };

    // Initial render bounds ratio
    this.renderRatio = this.renderBounds.x / this.renderBounds.y;

    // attach event listener & force event resize
    window.addEventListener("resize", this.eResize.bind( this ) );
    this.eResize();
// ...

Resize event
// On browser resize, change canvas size to fit full width
function eResize()
{
    // resize canvas
    this.canvas.width = window.innerWidth;
    this.canvas.height = window.innerWidth * this.renderRatio;

    // Current screen scale ratio relative to starting canvas size
    var screenRatio = this.renderBounds.x / window.innerWidth;

    // calculate new render bounds based on old size times new ratio
    this.render.bounds.max =
    {
      x : this.renderBounds.x * screenRatio,
      y : this.renderBounds.y * screenRatio
    };
}

I have also tried changing Render.lookAt & world.bounds but the issue doesn't seem to go away.
See also: https://github.com/liabru/matter-js/issues/408

Hi, I have the same issue. Did you manage to fix this?

I solved this by commenting out this row in Render.js (:346)
Render.startViewTransform(render);
Now I can set the render bounds without everything being scaled.


Add Whatsapp community link on the homepage

Kushul is experimenting with WhatsApp community as a way to reach and notify more people without sharing their contact information like a WhatsApp group would.
Right now, the website looks like this :

Task
Remove the FB Group
Add the Whats app Community Link in its place.
Guidance
There are two components in use:

HomeSocialPresence.astro - to update
IconFacebookGroup.astro - to remove
IconWhatsappCommunity.astro - to create

The file IconWhatsappCommunity.astro should contain the SVG of a WhatsApp logo. See the previous IconFacebookGroup.astro or IconGithub for reference. Don't forget the currentColor attribute value so that it inherits the color from its parent.
Use the class="bg-[#XXXXXX] on the <SocialCard> component to give it the green WhatsApp color.
Resources
The link: https://chat.whatsapp.com/CqXAj6m8NtQB6NN8B9aoEJ
SVG Logo: this or maybe this? you can look for something better.

resolved in https://github.com/Front-End-Coders-Mauritius/frontendmu-astro/pull/34


“openssl cms” with EdDSA does not work

After creating an Ed25519 self-signed certificate with
openssl req -x509 -subj "/CN=A" -newkey ed25519 -nodes -keyout - > signer

I tried to sign a file with
openssl cms -in file -sign -signer signer -noattr

but it failed with
4622915008:error:2E066080:CMS routines:CMS_add1_signer:no default digest:crypto/cms/cms_sd.c:295:

My understanding is the pureEdDSA does not need a message digest at all.

What OpenSSL version?

My understanding is the pureEdDSA does not need a message digest at all.

True.  @DDvO, do you know some more about this?  Is OpenSSL's CMS up to date with RFC 8419?

It's 1.1.1g installed by brew on macOS.

My understanding is the pureEdDSA does not need a message digest at all.

True. @DDvO, do you know some more about this? Is OpenSSL's CMS up to date with RFC 8419?

I don't have particular knowledge of CMS and EdDSA, but will have a look.
Trying to follow @wangweij's steps I've just come across a further issue:
With OpenSSL 1.1.1,
openssl req -x509 -subj "/CN=A" -newkey ed25519 -nodes -keyout - > signer.pem

outputs both the key and the cert to signer.pem,
but with the current master the cert is not included!
Yet when I replace ed25519 by RSA:1024:
apps/openssl req -x509 -subj "/CN=A" -newkey RSA:1024 -nodes -keyout - > signer.pem

it works as expected.

I did tried to download/master the master to see if this issue was fixed and noticed that problem. I can confirm that even with the key and cert created from 1.1.1g, the current master shows the same problem at cms -sign.

the current master shows the same problem at cms -sign.

I found this, too.
It looks like openssl cms -sign simply does not support pureEdDSA yet.
EVP_PKEY_get_default_digest_nid() correctly returns NID_undef in this case,
and the CMS app reports this as an error rather than getting along without a digest algorithm.

I tried use -md sha512 but also not accepted.

It looks like openssl cms -sign simply does not support pureEdDSA yet

It  does not. Nor does dgst.  I don't think anything does, except calling the low-level EVP routines directly.

I'm getting the same error with OpenSSL 3.0.0-beta1-dev  (Library: OpenSSL 3.0.0-beta1-dev ). Apparently, this issue hasn't been fixed.

Ping @openssl/committers

This should be solved as specified in https://datatracker.ietf.org/doc/html/rfc8419#section-2.3:

When the signer includes signed attributes, a message digest
algorithm is used to compute the message digest on the eContent
value.  When signing with Ed25519, the message digest algorithm MUST
be SHA-512 [FIPS180].  Additional information on SHA-512 is available
in [RFC6234].  When signing with Ed448, the message digest algorithm
MUST be SHAKE256 [FIPS202] with a 512-bit output value.

There are clearly bugs here.
Already loading the key and cert supplied via the -signer option produces the above error message.
If the key and cert are provided separately, the error is not shown.
In both cases then the process continues but no signature is produced, failing without giving an error.
I am analyzing further and will provide a fix.

There are clearly bugs here.

But we might simply say - supporting EdDSA properly in CMS is a feature. And the bug would be at most that we do not reject EdDSA outright but instead fail in weird ways.
It really depends on the size and nature of the fixes that need to be done for the EdDSA support.

It also isn't a regression from 1.1.1 so even if regarded as bugs it could be postponed Post 3.0.

I tend to agree that this is really a new feature and could be documented as not currently supported.

So I'm going to split the solution into bug fixes (to be included into 3.0 as far as possble)
and a feature extension (post 3.0).

Due to a request/report yesterday on openssl-users, I got reminded of this issue, which also holds for PKCS7 (e.g, openssl smime).
This issue is much harder to fix than for CMP, due to ugly legacy code in the CMS and PKCS7 implementations.
I tried again today, but sorry to say: fixing this is beyond my OpenSSL expertise.

BTW, for the use case given above in the OP, meanwhile for some reason no error queue output is given at all.
In cms_sd.c, after
if (EVP_PKEY_get_default_digest_nid(pk, &def_nid) <= 0)
a call
    ERR_raise(ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST);
is missing.

BTW, for the use case given above in the OP, meanwhile for some reason
no error queue output is given at all.

Yes, just an exit error code of "3" with no stderr output.

In "cms_sd.c", after
if (EVP_PKEY_get_default_digest_nid(pk, &def_nid) <= 0)

a call
 ERR_raise(ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST);

is missing.

A succinct PR to add an error message would be productive.

I investigated somewhat further, and it looks like there is a relatively elegant solution at least for Ed25519 with CMS,
yet some several CMS cases fail so far and there seems to be an underlying inconsistency on the signature size.
And before being able to use Ed448, apparently there is some underlying bug that needs to be fixed

Two questions on the OpenSSL SHAKE256 implemenation:
When using Ed448 with CMS, the related digest algorithm is SHAKE256, and 512 bits output MUST be used. Which output length does one get when using just NID_shake256, i.e., which is the default output length? If it is not 512, how to select/force 512 bits?

The default output length for SHAKE256 and SHAKE128 is not what one might desire, per #18622 -- you'd need to specifically set xoflen to get the 512-bit SHAKE256 output.

Which output length does one get when using just NID_shake256, i.e., which is the default output length? If it is not 512, how to select/force 512 bits?

SHAKE256 has a variable length output, producing in a sense a "key stream".  So you can truncate it to any length of your choice. There is no default output length: SHAKE256(M, d) is a digest of message M having length d.
Looking at the docs, suggests that the digest length is specified via EVP_DigestFinalXOF(), i.e. not up-front when fetching the algorithm or creating a digest context, but during digest extraction.

Thanks for the quick answers.
Any chance to use SHAKE(_, 512)  with the nice high-level function ASN1_item_sign_ex(),
somehow using EVP_DigestFinalXOF() or the like?
How to state the output length inside X509_ALGOR as a parameter?

I'd look into avoiding parameters, and treat SHAKE256(_, 512) as a black-box non-parametrised algorithm, whose output length is 512. This could involve registering a dedicated digest algorithm, whose ordinary EVP_DigestFinal() runs EVP_DigestFinalXOF() under the covers.
Isn't the X509_ALGOR just Ed25519 or Ed448 in any case? There should be nothing there about the digest algorithm, since it is a fixed internal detail.  The real issue is to prepare the digest context correctly and extract the right "XOF" length, when either of these signature algorithms are in use. Knowledge of the 512-bit length is an internal fixture, not a parameter.

Because the defaults are broken for SHAKE256 and SHAKE128 introducing new algorithm names that do the right thing might be even more confusing.
LMS supports truncated digests including SHAKE256-192..
We could then just use SHAKE256-256, SHAKE256-192 and SHAKE256-512 as names.. These would then just work with the normal DigestFinal..

Currently you would have to use EVP_MD_is_a() and then set the XOFLEN..

Fix is in work: draft PR #22391


Fixed buffer flushing

Bug introduced in commit bc88bb1. Flushing of buffers would happen when text contains '/' anywhere, and not just at the start for actions.

:+1:


raft: defer closing conns on applyRemoveNode

This allows us to use connection for some time. For example if we're
demoting leader, then we executing request to leader to do it and it's
not wise to close its connection.
That's sorta proposal. This case is very rare, but possible. Some of my integration tests might be flaky because of that.
ping @aaronlehmann

Current coverage is 53.69% (diff: 71.42%)

Merging #1543 into master will decrease coverage by 0.12%

@@             master      #1543   diff @@
==========================================
  Files            82         82
  Lines         13430      13448    +18
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           7228       7221     -7
- Misses         5219       5236    +17
- Partials        983        991     +8

Powered by Codecov. Last update 65af901...008273a

I think the following functions need to check for and respect this new flag:
ReportActive
Active
ValidateConfigurationChange
AddMember
Removed

It may make sense to create a helper function for looking up members that treats members with removed == true as if they don't exist.
Actually, a cleaner approach could be to remove these members from the members map immediately, and move them to an intermediate beingRemoved map. When Tick closes the connection, they get moved to the removed map. Then there wouldn't be potential for confusion in functions that access members.

@aaronlehmann I like intermediate map approach. Do you think it makes sense to defer all close connections? Just to have cleaner code.

I think so.

@aaronlehmann I've changed code to defer all connections closing. Code became simpler.

LGTM

I might have better solution. Do not merge for now.

On other thought, it would be useful not to overcomplicate code now.
ping @nishanttotla @dongluochen @stevvooe

@LK4D4: Does that mean you want to get this merged?

@aaronlehmann yes

LGTM

@aaronlehmann fixed nit and added explanation comment to deferredConn structure.


BUG: Terrain height Inconsistent

The procedural terrain is fiddly and can cut into the model or float depending on the range generated.
I need to make it consistent.

I dug deep into terrain.scad and figured out that the core function is surfaceplot
The function uses polyhedron, and with the box flag active, already adds 4 points and 5 faces to make a box
CHANGES:

the max/min scaling policy. I changed the behaviourto MIN and MAX. So from a random field, it is normalized so that the output ranges from MIN to MAX. By keeping the base of the box at 0, and MIN above 0, I can create a consistent base at 0 that is easy to join with my geometries.
I added a roll to randomize the MAX and make it lower. A parameters decide the percentage of that roll.
I changed the height calculation, so now If I say MAX=30, that's the actual max, and not a weird scaling parameter. Maxing the maximum height very consistent


CI does not run tests in CedarJavaFFI

Before opening, please confirm:

[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

Bug Category
Other
Describe the bug
CedarJavaFFI has its own tests, but the CI in this repo does not run them; as a result, they are broken on main as of this writing.  We should either modify the CI to run these tests, or remove the tests if we don't think they add value and prefer to have only the tests in CedarJava.
Expected behavior
main does not contain broken tests.
Reproduction steps

Checkout main
cd CedarJavaFFI
cargo test

Code Snippet
No response
Log output
No response
Additional configuration
No response
Operating  System
No response
Additional information and screenshots
No response

Somewhat related and probably could be addressed at the same time: CedarJava and/or CedarJavaFFI could use more tests for error paths, ensuring that various failure cases are properly reported across the FFI boundary (both sides agree on the structure of JSON for these error cases).

Closed by #128?

Yes


Option to disable registration of new user accounts by env var.

Thanks for the kosync server! Extended it a bit for my own use and thought I should contribute upstream.
This enables/disable new registrations to the server by setting the env var OPEN_REGISTRATIONS.
Set to True (enabled) by default but can easily be set to False after creating the needed accounts.

Thanks!


Shared gallery replace '--seletct=permissions' with '--expand=sharingProfile/Groups'

Related command

az sig show
Resource Provider

Azure.Compute
Description of Feature or Work Requested

Previous we have project direct sharing CLI support and for command 'az sig show', we do not show gallery's sharing profile- groups unless user input '--select=permissions' and that is a bad design which does not have anything to do with 'permissions' and it does not conform to OData standard, we plan to correct it and replace it '--expand=sharingProfile/Groups'.
Minimum API Version Required

2021-10-01
Swagger Link

https://github.com/Azure/azure-rest-api-specs/blob/3abdf3eaf45b42d78e242a2cca4a977e8dcf3103/specification/compute/resource-manager/Microsoft.Compute/stable/2021-10-01/gallery.json#L3159-L3173
Target Date

06/30

Compute


abapGit picks up "translations" to 늑 / 1Q language code for Translation Object Detective

Hello abapGit Team,
today I came around a quite interresting issue. @pksingh78 currently tries to fix the SCI issues in the abap2xlsx project (https://github.com/abap2xlsx/abap2xlsx/issues/1012 and https://github.com/abap2xlsx/abap2xlsx/issues/1013). As the ABAP Developer edition isn't available he does that in the customers sandbox system. Each time we continue working we see differences like this in abapGit:

To track down the issue I've looked at the issue with the translations using the language key 늑 I looked at the issues with object type MSAG:

The translations for this object are stored in table T100:

So I found that 늑 has the two letter code 1Q and the description "Technical Code 1". A Google search revealed that in this system the:
Translation Object Detective
is active. By running the report RS_LXE_FILL_TECH_LANG the language 1Q is filled with a "translation" that contains the technical object name. So you can easily identify which SE63 object you need to translate when logging on with language 1Q.
But I think this translation should not be included in the abapGit language export. What do you think?
Best Regards
Gregor

In our concrete case for abap2xlsx the language serializers of the following object types would need to be adjusted:

[ ] MSAG
[ ] CLAS
[ ] PROG
[ ] DTEL
[ ] DOMA
[ ] TABL

I would suggest to define a constant c_translation_detective in class ZCL_ABAPGIT_OBJECTS_SUPER that is then added to the selection e.g. for the MSAG object type:

Always something new with abap... :-)
ZCL_ABAPGIT_LXE_TEXTS=>GET_INSTALLED_LANGUAGES uses function SYSTEM_INSTALLED_LANGUAGES. Does that call include the 1Q language?

In my ABAP Developer Edition I've activated the 1Q language as described in the documentation I've linked above. That is the return of SYSTEM_INSTALLED_LANGUAGES:

I'd guess we should also filter in these out in ZCL_ABAPGIT_LXE_TEXTS=>GET_INSTALLED_LANGUAGES then.
I thought about how we can be somewhat sure we adjusted every select. You said you were able to install 1Q in the developer edition. So if we run all abapGit-tests repos via CI in a system that has 1Q installed everything that's still to be adjusted should show up as a diff, right?

@flaiker yes, assuming that the object class supports translations and that we have a CI test case for it (with at least one description for each possible text element (some classes have several) and that the tests cover short and long texts. Overall, that's currently a lower coverage ratio.
certainly yes to adjusting ZCL_ABAPGIT_LXE_TEXTS.
on a side note, I find the E,EQ,1Q + E,EQ,2Q in the returned range a bit difficult to digest when you read the select/delete statements which might have another condition for language on top of this (like <> main_language). Using a single inclusive range of languages to select would be easier to understand.

I opened #5601. Feel free to suggest a different approach to the select conditions. I personally like the current way of letting the runtime merge them when executing the SELECT statement instead of doing it by hand which adds lines and room for error. The range returned is inclusive with exclude conditions so it doesn't filter everything out when it's empty, which it will be in most systems (this admittedly is a bit confusing at first sight).

Close? or do you have other object types that need this fix?

As the ABAP Developer edition isn't available he does that in the customers sandbox system.

The docker image is indeed not available but 7.52SP04 is! Granted, not as modern but not too shabby either.

Closed by #5601


All project components plus logic tested

What is added new

[ ] Unit tests have been added for the logic file
[ ] Unit tests added for components
[ ] Snapshot testing used for test components
[ ] all tests works fine and pass

What is added

[ ] tests added for multiplication and modulo operator as instructed
[ ] all operators  tests covered


Migrate internal IT environment 1.1 TF Grid

Migrate all from our 1.0.0 environment into Zero-OS boxes running on TF Grid.

➤ Chris Hutton commented:
@delandtj ... will this be completed by month end ? pls advise

➤ PeterNashaat commented:

For our internal it , we will migrate content to use lua/nginx framework.
samar and Ehab ready for integrating the websites once we find a good md parser to integrate , reem and andrew are working on that as we speak .

For progress of migrating websites in ticket ( https://docs.grid.tf/threefold/org_support/issues/11 )

➤ sabrinasadik commented:
List what services of ours are still running @ GIG

➤ sabrinasadik commented:
Full list see: https://docs.grid.tf/threefold/org_support/issues/11


Sample for jobs and Queue Storage

Paging @jeffhollan & @ahmelsayed to have a look

Thanks for submitting!


Obsolete GO:0098806 miRNA-mediated gene silencing by mRNA deadenylation?

Hi,
@RLovering and I are looking at GO:0098806 miRNA-mediated gene silencing by mRNA deadenylation. This is the single child of 'miRNA-mediated gene silencing by mRNA destabilization' - as if there were no other mechanism for GO:0035279 miRNA-mediated gene silencing by mRNA destabilization. Also, looking at papers cited in term term def cross reference - PMID:21118121 and PMID:23209154 - this seems to be the mechanism by which GO:0035279 miRNA-mediated gene silencing by mRNA destabilization takes place.
So we propose to obsolete GO:0098806  and replace by GO:0035279
There are 6 EXP annotations - 2 BHF and 4 FlyBase. @hattrill @gantonazzo - are you OK with obsoleting GO:0098806 miRNA-mediated gene silencing by mRNA deadenylation?
Thanks,
Pascale & @RLovering

Hi both,
That's fine by me. I'll change our "miRNA-mediated gene silencing by mRNA deadenylation" annotations to "miRNA-mediated gene silencing by mRNA destabilization". I just think it would maybe be good to include the deadenylation process somewhere in the definition of GO:0035279, or maybe even add it as a synonym?

I think a synonym is better as I am not sure if deadenylation always occurs with mRNA destabilization and I wouldn't want to put curators off using the term if they felt there was no evidence for the process

Makes sense, adding a synonym sounds good enough to me.


chore(NODE-4545): docs front page brand alignment

Description
What is changing?
Is there new documentation needed for these changes?
What is the motivation for this change?

Double check the following

[ ] Ran npm run check:lint script
[ ] Self-review completed using the steps outlined here
[ ] PR title follows the correct format: <type>(NODE-xxxx)<!>: <description>
[ ] Changes are covered by tests
[ ] New TODOs have a related JIRA ticket


Please consider adding etcd support

Hello everyone, there is no doubt that categraf is already great. However, etcd, as the core base of k8s, is actually lacking. Have you considered supporting etcd?

etcd has exposed  metrics(like :2379/metrics), and the input.prometheus/prometheus agent can be used for collection.


Critic inputs

Hello, i have a question about the paper

Doesn't this allow the critic to spot the real samples by looking at the 0 ?
This would make its job too easy and it will become too powerful for the generator, especially in the beginning, thus the generator won t be able to keep up.

No it's the opposite, real samples are not continuous since originally they come from [0, 255]. Fake samples are continuous, so we round them before feeding into the critic to make them discontinous, e.g. nearest(r*H(...))/r.

I see, Thanks for the response,  So you round not just the difference |y - round(r H(x))|/r but also the x_z ?

Sorry for the confusion, we only do it for the difference (the code is the ultimate reference since that's what produces the results from the paper):
https://github.com/google-research/lag/blob/master/lag.py#L147
But on second thought maybe it could be a good idea to do it also for the input of the critic (as an experiment).

it s okay, Thank you for your clarification. I'm re implementing the paper in pytorch, maybe i ll try it and see the results.


colsample_bytree still locale dependant.

Despite #3230 was closed, this issue still remains if number delimiter is set to space (i.g. 123 456 789).
Way to represent:

Install Ubuntu 18.04 LTS.
Go to Settings -> Region & Language, set Formats to Russia (Российская Федерация).
Same as #3230.

@vbogach I think you should always use the American notation (. as delimiter).


Fix typo of getParams() phpdoc

Coverage remained the same at 97.954% when pulling c0902b33afd2b9c6015f2fc1bd255ef43be2cd85 on dopesong:patch-1 into c138554cb16a92156db787143ab1f266dece7c7f on slimphp:3.x.

 Thanks :)


Map<String, String>' has no instance getter 'token'

Below exception is thrown when the userInfo method is called.
Map<String, String>' has no instance getter 'token'

thanks for reporting, i check your MR and all its ok, thank for contributing


luci-base: add cbi tsection error msg option

In some situation it is usefull to inform the use that this section
could not get delete, because this config is referenced or is in use.
Example pseudo code:
function s.remove(self, sid)
  <check if secation could get deleted>
  if output == nil then
    self.error_msg = translatef("Unable to remove this section")
    return nil
  end
end

Signed-off-by: Florian Eckert<EMAIL_ADDRESS>

Merged, thanks!


FAILED TO APPLY MSR MOD

When I run it
docker run -it --cpus="0.8" giansalex/monero-miner

It show FAILED TO APPLY MSR MOD, HASHRATE WILL BE LOW , and I find  this page someone have the same question
FAILED TO APPLY MSR MOD, HASHRATE WILL BE LOW #1973

Maybe you can join msr-tools in this docker. Thank you.
[2022-03-07 04:17:57.596]  cpu      use argon2 implementation AVX2
[2022-03-07 04:17:57.600]  msr      msr kernel module is not available
[2022-03-07 04:17:57.601]  msr      FAILED TO APPLY MSR MOD, HASHRATE WILL BE LOW

pull requests are welcome ..


CSE-1087: Added option for phantom dependency analysis

@dkourkouzelis please take another look

@dkourkouzelis can you take another look? Thanks!


Images pre-processing

Hello.
I've two questions abount images pre-processing:

Why BGR2RGB conversion? the faces becomes "blue"... there is an improvement in this way?
The equalization of the images could be used?

Thanks

Hi @MarcorOnline,

Why BGR2RGB conversion? the faces becomes "blue"... there is an improvement in this way?

Most of OpenFace uses dlib, which uses RGB.
To save images with OpenCV's imwrite, convert the image back to BGR.
I just noticed I forgot this conversion before saving for the neural network pass
and pushed a correction at https://github.com/cmusatyalab/openface/commit/5177deb351de576fb3459a2d6a79dfc92c6ddb57

The equalization of the images could be used?

You can try experimenting with equalization before the neural network pass, but this requires training a new model (see http://cmusatyalab.github.io/openface/training-new-models/). My intuition is that it wouldn't improve the accuracy.
-Brandon.


feat: Ignore NG's Launch Template Version Change

PR o'clock
As a heavy user of this module, every time I run the terraform apply I get frustrated by the fact I all of my managed nodegroups are updated, regardless of the change I made to the TF stack.
The update is to the LT version, from "2" to "$Latest", even though in my configuration the version is already set to "latest":
My configuration look like this:

module "eks" {
  source          = "terraform-aws-modules/eks/aws"
  .....
  workers_group_defaults = {
    .....
    create_launch_template   = true
    launch_template_version = "$Latest"
  }
}

But when I run terraform plan, I see that terraform is aiming to change the version:

Description
I added the LT version to the ignore list in hope this may help other people using this module

#1447 looks like a much better fix, since it handles the case where the specified launch template version is not "$Latest".

I agree, thanks!


allow call AtomicPtr::safe_load to domais generated by unique_domain!

Improve the ergonomic of domains generated by the macro unique_domain making the AtomicPtr::safe_load available

Codecov Report

Merging #26 (d99ce08) into main (ba8ffcc) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main      #26   +/-   ##
=======================================
  Coverage   84.08%   84.08%
=======================================
  Files           8        8
  Lines         817      817
=======================================
  Hits          687      687
  Misses        130      130

Impacted Files
Coverage Δ

src/domain.rs
85.71% <ø> (ø)

src/lib.rs
33.73% <100.00%> (ø)

Continue to review full report at Codecov.

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


Error on python version

Running python3 -m pip install git+https://github.com/kraanzu/dooit.git
throw: ERROR: Package 'dooit-0.1.0' requires a different Python: 3.8.10 not in '>=3.10,<4.0'.
I tried again with other versions of python, but nothing worked. Am I missing something ?

You need to use python 3.10 or later

thank you

Due to use of the match feature, which is introduced in Python 3.10, this is a real requirement.
https://docs.python.org/3/whatsnew/3.10.html#pep-634-structural-pattern-matching

Looks like this has been resolved so I'll be closing this :)


Include ATGMediaBrowser in Image category

Project URL
https://github.com/altayer-digital/ATGMediaBrowser
Category
Image
Description
ATGMediaBrowser is an image viewer which allows multiple transition styles with provision to define custom transitions.
Why it should be included to awesome-ios (optional)
This framework is different from all other frameworks in the category, because of the ability to add custom transitions easily as needed by the user.
Checklist

[x] Only one project/change is in this pull request
[x] Has unit tests, integration tests or UI tests
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 4 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          2 Warnings

:warning:
Too many changes (when adding, please keep it to one project per Pull Request)

:warning:
Found 3 link issues, a project collaborator will take care of these, thanks :)

Link issues by awesome_bot

Line
Status
Link

199
301
https://www.raywenderlich.com/38557/learn-to-code-ios-apps-1-welcome-to-programming redirects tohttps://www.raywenderlich.com/redirect?uri=rw://koenig/post/38557

329
301
https://github.com/BitcoinCashKit/BitcoinKit redirects tohttps://github.com/yenom/BitcoinKit

3137
429
http://iphonedevsdk.com/

  Generated by :no_entry_sign: Danger


pgadmin connection error

On connection by pgadmin to new database it get error: Error connctiong to the server: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request

Could you attach the logs from your pgadmin and postgres containers? docker logs [id | name]

postgres logs:
2015-08-02 14:44:16 MSK LOG:  database system was shut down at 2015-08-02 02:16:41 MSK
2015-08-02 14:44:16 MSK LOG:  MultiXact member wraparound protections are now enabled
2015-08-02 14:44:16 MSK LOG:  autovacuum launcher started
2015-08-02 14:44:16 MSK LOG:  database system is ready to accept connections
2015-08-02 14:44:16 MSK LOG:  incomplete startup packet
pgadmin:
2015-08-02 14:46:47 STATUS : Соединение с базой данных...
2015-08-02 14:46:47 INFO   : Opening connection with connection string: host='localhost' dbname='postgres' user='postgres' password='XXXXXX' port=5432 application_name='pgAdmin III - Браузер'
2015-08-02 14:46:49 STATUS : Соединение с базой данных... (2,02 секунд)
2015-08-02 14:46:49 ERROR  : Error connecting to the server: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
docker logs:
ivan@ivan-VirtualBox:/var/log/postgresql$ docker logs pg
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /var/lib/postgresql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
postgres -D /var/lib/postgresql/data

or
pg_ctl -D /var/lib/postgresql/data -l logfile start
FATAL:  the database system is starting up
LOG:  database system was shut down at 2015-08-02 11:45:57 UTC
PostgreSQL init process in progress...
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
ALTER ROLE
/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down
PostgreSQL init process complete; ready for start up.
LOG:  database system was shut down at 2015-08-02 11:45:59 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started

It looks like your pgadmin is trying to connect to localhost, if that is being run in a container you will need to tell it to connect to the IP address of the postgres container. Here is how I connect with psql in a separate container:
docker run -it --rm --link some-postgres:postgres postgres psql -h postgres -U postgres
# can use the host "postgres" since container links will populate /etc/hosts

What are the docker run lines that you are doing?

Another variant to the recommended version of @yosifkit
sudo docker run --name pt -t -p <IP_ADDRESS>:5555:5432 -d postgres

to expose the container internal port 5432 to port 5555 on your host machine.

renzok, your advice is helped. i did change port to 5555 and pgadmin start connect to database. thank you!

good to hear :) I guess then that this issue is then good to be closed.


Use sqlsvr 5.11.1 on PHP 8

name: 🐞 Bug Fix
about: You found a bug, want to improve something or add a new feature
labels: bug or enhancement

A Pull Request should be associated with a Discussion.

If you're fixing a bug, adding a new feature or improving something please provide the details in discussions,
so that the development can be pointed in the intended direction.

Related discussion:

Further notes in Contribution Guidelines
Thank you for your contribution.

Description
This PR [briefly explain what it does]

In case this PR introduced TypeScript/JavaScript code changes:

[ ] I have written test cases for the changes in this pull request
[ ] I have run npm run format before the commit.
[ ] I have run npm run lint before the commit.
[ ] I have run npm run release before the commit.
[ ] npm test returns with no unit test errors and all code covered.

In case this PR edits any scripts:

[ ] I have checked the edited scripts for syntax.
[ ] I have tested the changes in an integration test (If yes, provide workflow YAML and link).

@GrahamCampbell
Thanks for the contribution.
Released 2.26.0. It should now install the latest version.
Test workflow: https://github.com/shivammathur/test-setup-php/actions/runs/6181784047/workflow


⚠ Bofrost.at has degraded performance

In 2e94909, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2359 ms

Resolved: Bofrost.at performance has improved in 039253a after 6 minutes.


Test files are executed in different order between Windows and Linux.

Do you want to request a feature or report a bug?
bug
What is the current behavior?
Test files are executed in different order between Windows and Linux.
Currently using in jest.json
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.tsx?$"
If the current behavior is a bug, please provide the steps to reproduce and
either a repl.it demo through https://repl.it/languages/jest or a minimal
repository on GitHub that we can yarn install and yarn test.
Create some test files, and run the test on different OS, example of file names ordering:
LINUX:
BOMItem.spec.tsx
BOMItem.spec.tsx
BOMItem.spec.tsx
BillOfMaterialsTab.spec.tsx
WIN:
BillOfMaterialsTab.spec.tsx
BOMItem.stories.spec.tsx
BOMItem.stories.spec.tsx
BOMItem.stories.spec.tsx
What is the expected behavior?
The file should be read in a deterministic order:
BOMItem.stories.storyshot
BOMItem.stories.storyshot
BOMItem.stories.storyshot
BillOfMaterialsTab.stories.storyshot
Please provide your exact Jest configuration and mention your Jest, node,
yarn/npm version and operating system.
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.tsx?$"
node v8.1.4
win 10

Is there an issue with that? There is no guaranteed execution order anyways, and jest wil rerun failing tests first in later runs, etc.
@cpojer thoughts?

Jest does not guarantee in which order tests are run. In fact, we are likely to start doing more intelligent scheduling in the future.


Optimize scheduler

Profiling reveals https://github.com/dabreegster/abstreet/blob/master/sim/src/scheduler.rs as a hot spot, which makes sense. Anybody have ideas to speed it up? It's a priority queue with updateable priorities. There are lots of alternatives to std::collections::BinaryHeap, but I think I had trouble finding one that was deterministic (given the same inputs, simulations must run exactly the same).
I squeezed running a huge scenario from 71s to 63s using 7a0b9cd09a96e155a26f3304029d7c3ae753a9dc. I bet there's more possible.

How did you profile the code? I would like to try some things and see the change

cargo run --release -- --prebake in the game crate. This runs the weekday scenario for the montlake and lakeslice maps without the GUI, so all the work is just spent simulating. I've also used cpuprofiler before; there's a few commands in docs/misc_dev_tricks, but right now, I think that pretty much just points to stuff in scheduler as the main hot spot.
The slight complication is that the simulation is still sensitive, so for example, if the a new priority queue slightly reorders commands with the same timestamp, then hypothetically gridlock could occur on these currently stable maps. If that happens, performance grinds to a halt, so it's obvious. :)  On my machine, prebaking takes about 5 minutes total, so it's fairly obvious when a new problem is introduced.

@vks, based on your other repos (thanks for all your work on rand by the way!), I'm wondering if you happen to be interested in / knowledgable about core data structures in Rust like this? Doing something more clever here would probably be the single greatest perf boost we could get by changing one thing.

I'm not really an expert on data structures, but I would be interested having a look at performance! So thanks for marking me.

This crate looks promising: priority-queue It is built with an ordered hash map (indexmap). We could try to swap it in and see whether it improves performance.

This looks like it might work. I'm not sure if the Item struct should be the I type, or if we could remove time from that struct and just use the CommandType. The priority is mainly determined by Time, but the tie-breaking for equal times needs to be deterministic. peek doesn't say what happens when multiple items have the same greatest priority, but given the backing indexmap, it should probably work.
It would be nice if we could do away with having both a priority queue and a separate CommandType -> Command lookup. The queue's item must implement Hash and Eq. I tried just now and actually it's possible to make Command derive Eq. But not Hash; at the end of the day, there's geom::Duration and geom::Speed buried somewhere inside, which just wrap anf64. And maybe more importantly, the Command struct can get quite big, so hashing it by looking at all of its fields recursively is probably bad for perf.
That's why the whole CommandType indirection was started. The code using the scheduler promises to only ever have one Command per CommandType at a time in the priority queue. So we could probably ditch the queued_commands mapping and use the entire Command directly. Instead of deriving Hash and Eq, we would just make the hashing function take the CommandType, created lazily in the hashing function, as the input.

The priority is mainly determined by Time, but the tie-breaking for equal times needs to be deterministic.

It is deterministic, and independent of the hasher: https://github.com/garro95/priority-queue/issues/29

@vks, I might actually try tackling this soon. I just wanted to make sure I'm not repeating something you've started or were really keen to do

Thanks for the heads up! I don't have plans to work on this soon, so please feel free to go ahead.

Well that was anti-climactic. I tried two different approaches for using priority_queue. https://github.com/a-b-street/abstreet/tree/pq_v2 just swaps out BinaryHeap for PriorityQueue, but otherwise keeps the CmdType -> Command mapping. https://github.com/a-b-street/abstreet/tree/pq_v1 removes that mapping as well, and instead implements Hash on Command by lazily calculating the CommandType and hashing that.
I measured total time to run the small montlake simulation. I repeated each run 3 times and tried to avoid other heavy activity while the test ran. There's a fair bit of noise repeating runs, but consistently, all of the variations using the new priority queue were slower than the current use of BinaryHeap.
So, failed experiment, sadly. :(   But it could be eventually worth trying out other priority queue implementations.

I’m not too familiar with the design of this scheduled but I understood it required to update all the priorities regularly. Is that correct?
With a binary heap, I think updating one priority is log n, so optimising à priorities is a log n.
Might have better luck with a data structure that has better priority update performance, like a Fibonacci heap? There may be other I do not know.


The following format causes a link to be made: [[whatever]]

This is messing with a program of mine as the link is basically causing a redirect to my page (I am coding in electron.js and react.js so reloading a page to a '/' is very bad.) and showing an unnecessary link.
Edit: even just doing [whatever] creates a blank link.

Its noted here that:

Note that brackets that aren’t part of links do not take precedence

Im having the same issue. It works great locally but as soon as I deploy to aws-amplify there is an redirect causing it to not display the .md file....
Any insight?


Add a Blazor example

This page has links to Microsoft Identity examples for JavaScript development frameworks from other vendors, but nothing for your own SPA frameworks Blazor Server and Blazor WebAassembly.

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

ID: 5e6e5855-ef79-2759-6773-f3a44886cb14
Version Independent ID: 73154754-ea03-f123-3506-9173f7472322
Content: Configure single-page app - Microsoft identity platform
Content Source: articles/active-directory/develop/scenario-spa-app-configuration.md
Service: active-directory
Sub-service: develop
GitHub Login: @mmacy
Microsoft Alias: marsma

@BenjaminCharlton Thank you for your suggestion . We will check this with the content team and create an internal request accordingly .

@BenjaminCharlton Could you please confirm if this works for you . https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-blazor-webassembly .

I hope the above recommendation provided by the content team works for you . The team have been informed about adding it on the page and they will take action accordingly .


console: handle disconnection more gracefully

right now, if the console is connected to a server, and the server disconnects abruptly, we immediately crash with a big error message:
:; cargo run
   Compiling console-subscriber v0.1.0 (/home/eliza/Code/consolation/console-subscriber)
    Finished dev [unoptimized + debuginfo] target(s) in 0.69s
     Running `target/debug/console`
using default address (http://<IP_ADDRESS>:6669)
Error:
   0: status: Unknown, message: "h2 protocol error: broken pipe", details: [], metadata: MetadataMap { headers: {} }

Location:
   console/src/main.rs:52

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                                ⋮ 5 frames hidden ⋮
   6: console::main::{{closure}}::h0f02eae7993e30df
      at /home/eliza/Code/consolation/console/src/main.rs:52
   7: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::h89be4d09d64d3ea1
      at /home/eliza/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/future/mod.rs:80
   8: tokio::park::thread::CachedParkThread::block_on::{{closure}}::h8f240001a5901c1b
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/park/thread.rs:263
   9: tokio::coop::with_budget::{{closure}}::h3c95765523460448
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/coop.rs:106
  10: std::thread::local::LocalKey<T>::try_with::hab4856318f2607b4
      at /home/eliza/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:272
  11: std::thread::local::LocalKey<T>::with::h3d4d9732c38fcac6
      at /home/eliza/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:248
  12: tokio::coop::with_budget::h54da439ec06757dd
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/coop.rs:99
  13: tokio::coop::budget::h9ae2f64aafef4b99
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/coop.rs:76
  14: tokio::park::thread::CachedParkThread::block_on::h045a83290eb58c9b
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/park/thread.rs:263
  15: tokio::runtime::enter::Enter::block_on::hdddd13bfd62fbbcb
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/runtime/enter.rs:151
  16: tokio::runtime::thread_pool::ThreadPool::block_on::h7920c3eacc3339a7
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/runtime/thread_pool/mod.rs:71
  17: tokio::runtime::Runtime::block_on::h678a88f6df65c487
      at /home/eliza/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-1.5.0/src/runtime/mod.rs:452
  18: console::main::hdbffd1488c60b5c6
      at /home/eliza/Code/consolation/console/src/main.rs:17
  19: core::ops::function::FnOnce::call_once::hf4e9e56d9a430675
      at /home/eliza/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227
                                ⋮ 11 frames hidden ⋮

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.

(this is after i ctrl-c'd the example app).
We should probably handle connection errors a little more gracefully --- if the user is debugging something when the app crashes or there's a network issue, it's almost certainly better to continue showing the last state and add a message saying "hey, the connection to the remote ended abruptly, here's why".
Eventually, it would also be good to try to reconnect with a backoff period, so that we can recover from transient network issues.

@hawkw Is there something generic that can be used that works with a backoff or we need to put in place something like the reconnect in Linkerd

We can probably use tower's reconnect middleware, but it doesn't implement backoffs, so we would have to implement that part ourselves --- there may be other crates in the ecosystem that I'm not personally aware of.
It does seem like support for backoffs is something that's worth having upstream in tower::reconnect. I might open an issue for that.
For now, I would start with handling the error nicer in the UI --- we probably want to continue displaying the last state and add a message at the top that says we lost the conenction to the remote application. Then, we can add reconnection (with a backoff) in a follow-up.

Update: oh, it turns out there already is an issue for adding backoffs to tower (https://github.com/tower-rs/tower/issues/60)...and it was opened by me, three years ago. :sweat_smile:

Update: oh, it turns out there already is an issue for adding backoffs to tower (tower-rs/tower#60) ...and it was opened by me, three years ago. 😅

Yeah :) Forgot to mention that

Looks like this was done in #57, so I'm going to close :)


React router 4 update

Updated bones to utilize React Router 4

@khumphrey this is @queerviolet's repo. Did you intend to merge this PR her or at Fullstack's fork?


Migrated PronounsPage to functional component

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/16296
PROPOSAL: https://github.com/Expensify/App/issues/16296#issuecomment-1575945807
Tests

Go to Settings -> Profile -> Pronouns
Select/Unselect any pronouns & observe that you're redirected to the previous page.
Verify the pronouns value on the profile page is what you selected or shows "Select your pronoun" text if you unselected.
Click on it again to verify the same value is selected by default on the Pronouns page.

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

Offline tests

Same as Tests above.
QA Steps

Same as Tests above.

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

PR Author Checklist

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

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

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

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/38547776/9e1ce1a0-f2b9-471b-ae4b-ed92264b12e2

Mobile Web - Chrome

https://github.com/Expensify/App/assets/38547776/74939f1e-38e5-481c-ba6d-4d6a8e1ca839

Mobile Web - Safari

https://github.com/Expensify/App/assets/38547776/14667576-7c28-4d20-986f-ce2bb3d7130b

Desktop

https://github.com/Expensify/App/assets/38547776/5861be44-cfd9-4ca0-8044-2d75386fbe43

iOS

Android

https://github.com/Expensify/App/assets/38547776/1d1cf8ef-5f20-4c6e-b591-ecfea28250fb

@priyeshshah11 can you fix the conflicts please
@aimane-chnaif whats your ETA on this one please?

@mountiny I have now resolved the conflicts.
@aimane-chnaif Thanks for the links, addressed const->function change but I don't think it is violating the destructuring code style.

reviewing this in a few hrs

@aimane-chnaif any updates, let me know if any changes are still needed.

iOS screenshot is missing

Could you please add that? as I am OOO for a week

@aimane-chnaif lets just use your iOS screenshot for this one, thanks!

Lint failing

Please refer & respond to this comment https://github.com/Expensify/App/pull/20178#discussion_r1229612016

@priyeshshah11 sorry for this taking a while, if you are back from ooo, could you take a look at this PR?

@priyeshshah11 sorry for this taking a while, if you are back from ooo, could you take a look at this PR?

@mountiny @aimane-chnaif done, fixed lint error.

@aimane-chnaif Are you able to run the tests? thanks!

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

🚀 Deployed to staging by https://github.com/mountiny in version: 1.3.31-0 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.31-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.31-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


use getters/setters instead of Proxy

You'll need to define most of them inside the constructor
Adjust the utilities methodsto do this instead

Use Symbols!
https://stackoverflow.com/questions/34418012/how-to-work-with-private-variables-in-es6/34870285#34870285


Installation Error

Below is the error I get while installing the tool
../go/pkg/mod/github.com/xm1k3/cent@v0.0.0-20210814092536-1ebc728ac753/pkg/jobs/jobs.go:7:2: package io/fs is not in GOROOT (/usr/lib/go-1.15/src/io/fs)

Hi,
You can find the solution here #6


Feature request: allow switching CNI to OVN-Kubernetes

OpenShift can be used with OpenShiftSDN, which has been the default for a while, or OVN-Kubernetes. In future releases, the default plugin should change to OVN-Kubernetes.
While this is probably going to be transparent for most application developers who use CRC, it's still perhaps a good idea to allow switching from one to another in CRC.
Personally it would also help me to use some features that OVN-Kubernetes only provides.
Not sure what would be the best way to proceed, should it be a crc config or something else...
The OpenShift documentation mentions two ways to use OVN-Kubernetes, either by editing manifests before cluster installation or by following this migration guide on an existing cluster.
For some reason I couldn't follow the migration guide, and I'm not sure if it's due to something special in CRC or something different. (I can file a different issue about that). But basically, when restarting the (unique) node, openshift never recovers and its status remains as "unreachable" forever.

For some reason I couldn't follow the migration guide, and I'm not sure if it's due to something special in CRC or something different.

If these instructions rely on the MCO to be functional, then this could be the issue as CRC disables it.

I see, so the only remaining way would be to act before cluster installation (if I understand what you told me, it's more something with snc)

I see, so the only remaining way would be to act before cluster installation (if I understand what you told me, it's more something with snc)

@jotak Right, better to try with snc.

Would it mean to produce twice as many artifacts for download, one for openshift-sdn and another for ovn-k (x number of currently supported architectures) ?

Would it mean to produce twice as many artifacts for download, one for openshift-sdn and another for ovn-k (x number of currently supported architectures) ?

@jotak I am just saying for special use case, for CRC we are not changing the default but we are planning to have MCO running when we create bundle from 4.8 release (which support single node).

CRC will only deliver images with the 'default' that the installer will offer.

I second this feature request. There are many differences between the default Openshift SDN based CNI and the OVN-Kubernetes based CNI option (and the forward direction for Openshift is to move to OVN-Kubernetes) .. the current CNI default is mainly for backwards compatibility. Hence it would be very useful for testing, development, demos etc if CRC could support both CNI options.

Our plan is still to enable the MCO for our 4.8-based releases. When this is released, it will be useful to check if the migration guide can now be successfully followed or not.

The last 2 crc releases have been 4.8  based with the MCO enabled, maybe switching to OVN-Kubernetes now works by following the steps in the OpenShift documentation?

I'm failing to follow documenation for migration to OVN kubernetes.
After completing the migration, I always get to the following state:
oc get co
NAME                                       VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
authentication                             4.9.12    False       False         True       15m     OAuthServerRouteEndpointAccessibleControllerAvailable: Get "https://oauth-openshift.apps-crc.testing/healthz": dial tcp <IP_ADDRESS>:443: connect: connection refused
config-operator                            4.9.12    True        False         False      7d3h
console                                    4.9.12    False       True          False      14m     DeploymentAvailable: 0 replicas available for console deployment...
dns                                        4.9.12    True        False         False      7m4s
etcd                                       4.9.12    True        False         False      7d3h
image-registry                             4.9.12    True        False         False      26m
ingress                                    4.9.12    True        False         True       7d3h    The "default" ingress controller reports Degraded=True: DegradedConditions: One or more other status conditions indicate a degraded state: CanaryChecksSucceeding=False (CanaryChecksRepetitiveFailures: Canary route checks for the default ingress controller are failing)
kube-apiserver                             4.9.12    True        False         False      7d3h
kube-controller-manager                    4.9.12    True        False         False      7d3h
kube-scheduler                             4.9.12    True        False         False      7d3h
machine-api                                4.9.12    True        False         False      7d3h
machine-approver                           4.9.12    True        False         False      7d3h
machine-config                             4.9.12    True        False         False      7d3h
marketplace                                4.9.12    True        False         False      7d3h
network                                    4.9.12    True        False         False      7d3h
node-tuning                                4.9.12    True        False         False      27m
openshift-apiserver                        4.9.12    True        False         False      27m
openshift-controller-manager               4.9.12    True        False         False      26m
openshift-samples                          4.9.12    True        False         False      7d3h
operator-lifecycle-manager                 4.9.12    True        False         False      7d3h
operator-lifecycle-manager-catalog         4.9.12    True        False         False      7d3h
operator-lifecycle-manager-packageserver   4.9.12    True        False         False      7m4s
service-ca                                 4.9.12    True        False         False      7d3h

where authentication,  console and ingress cluster operators are in error state.

@cfergeau  maybe worth reopening this?

and the forward direction for Openshift is to move to OVN-Kubernetes

Unless this is the default for OpenShift this remains a non-standard approach. We are providing an environment for development purposes first. I do not see a motivation for us to investigate this. You are however more than welcome to look into this and update the instructions.

Note that the docs state clearly:

You must configure hybrid networking with OVN-Kubernetes during the installation of your cluster. You cannot switch to hybrid networking after the installation process.

Therefore, this needs to be done by creating a custom bundle. Please look at snc.

@gbraad Thanks for your reply!

The migration might assume the control plane gets restarted in a coordinated way. This might not work for a single node.

Migration worked for me on a single node cluster running on bare metal, so that shouldn't be an issue.

Note that the docs states:
You must configure hybrid networking with OVN-Kubernetes during the installation of your cluster. You cannot switch to hybrid networking after the installation process.
Therefore, consider creating a custom bundle to verify this.

Well, I'm not interested in hybrid networking, IIUC this shouldn't concern users who would only like to perform migration to OVN, as it's not a prerequisite for that, right?

Last, our images are based on the libvirt provider and this is not a supported provider according to the migration guide.

Yeah.. I can't tell whether this causes the issue or not. I don't have capacity to dig deeper atm. I may get a chance to try this in the future though.

We also wouldn't have the time. It is interesting to note this worked on baremetal single node.
It might be a combination with of the dummy interface and a non-supported provider

as it's not a prerequisite for that, right

Couldn't say. We are not the experts / implementors of OVN. Perhaps better to find those as they might understand better what is happening here.


fix broken links in README

Signed-off-by: Kaito Ii<EMAIL_ADDRESS>What this PR does / why we need it:
Fixes broken links in README.

@kaitoii11 thank you for the PR! This is great, before we can merge it, you will have to sign off on the commit. See https://github.com/vmware-tanzu/octant/pull/2022/checks , it provides the instructions for doing so.


Add gambling sites from HGC

There is a blacklist here: https://www.gamingcommission.gov.gr/images/epopteia-kai-elegxos/blacklist/blacklist.xlsx from the Hellenic Gaming Commission.

Hi @konqoro, thanks for the suggestion.
Unfortunaltely we can't deal with .xslx and any other proprietary file formats.  Impossible to diff, for example.
Also how is this list curated?

The blacklist contains online gambling sites which fail to comply with the Greek laws (no permits, do not pay taxes). The 're more info at their site but are all in Greek. It is updated regularly (latest was at 13 of May previous at April). Currently (according to their site) contains 993 entries. I think you should reconsider or we can come up with a workaround, since is a good resource, your host file misses lots of its entries.

This would require anyone who builds a consolidated hosts file to have Microsoft Excel or some sort of Excel parser installed, and to call this app or adapter to extract the data in the build process.
Not gonna happen   😄 .
Data sources need to be in an open format.  Maybe someone wants to create and maintain a data source based, in whole or in part, on this file?

ok will see what I can do

@StevenBlack I suppose it makes sense you're not aware there are so many methods to handle M$ formats outside spreadsheet softwares. You're already using some sorta automation in making this hosts list, so if you tried you could get that Micro$hit file auto-parsed for its data. ATM, column D, row 3, is where the list of domains (without subdomains) start.
I'll see about a method as well, particularly in Python 3.

We won't ever supporting the parsing of proprietary data formats on all the platforms we currently support here.
Closing.

So since the data needed to block the gambling sites is distributed in a proprietary format, the data won't be accepted no matter who or how it was extracted ?

@rautamiekka please read the thread ⬆⬆⬆.  I explicitly ask for this in this, my comment, above ⬆ ⬆⬆.

@rautamiekka The way to go would be for someone (you) to (continually) parse the data and publish a clean hosts (text) file, that way it could be included as a source in this project.

1 thing hit me in regards to this issue:

the hosts file doesn't have only the domain itself listed, but subdomains as well, like example.com and sub.example.com.
This spreadsheet has columns for

web browser addresses which may have a subdomain, and/or may have address parts after that like /index.html (which can be stripped, no problem)
main domain only

, so are the stripped web browser addresses as needed as just the main domains ? At first I had the impression just the main domains would be needed, but seeing that alone doesn't seem to do the blocking ...

Hosts works with the exact domain.  So <IP_ADDRESS> foo.com does not prevent <IP_ADDRESS> ads.foo.com.
I wish hosts supported wildcards.

^ In other words every address is needed.


Write a GO program to convert string to dotcase

Description
Write a GO program to convert string to dotcase
Dotcase is a style of writing in which all letters are lowercase and spaces are replaced with periods.
Input  : "hello world"
Output : "hello.world"

How to contribute

Save the solution in program/convert_string_to_dotcase.go file
Add convert_string_to_dotcase.go file in convert-string-to-dotcase folder

!assign


MUMUP-1770 : auto complete selection now goes to details

If one finds a result in the autocomplete that they like and they select it, it goes to the details page
If one just hits enter or the search button on the search, then it goes to marketplace with that filter

gif of goto details

gif of goto search results

:+1:

Nicely done!  I hadn't thought about when one would expect this to still be search, but now that I see this, I think this got it exactly right.

Late to the game but this is awesome :+1:


HTTPS mixed content warning fix Iframe API

Great module, I noticed that when using this module on my pWA over HTTPS I get a mixed content warning, I changed this line in the file youtube-player-service.js:
    playerApiScript.src = "http://www.youtube.com/iframe_api";

to this:
        playerApiScript.src = "//www.youtube.com/iframe_api";
It fixes the problem (youtube iframe is now loaded via https if the request source is https

Should check if it works with http this way as well.

a new optional input property will be available in v0.3 to set the protocol to whatever you want. the default is set to "http". to set it for https would be:
<youtube-player protocol="https"></youtube-player>
<youtube-player [protocol]="protocol"></youtube-player>

That'll do the trick - cheers


split worker logic into threads

Having fought with the issues for quite some time I think this is the solution. Bear in mind, that the only thing that I'm certain is that there needs to be return ack / nack in subscribe Observable to inform ES. I don't know when it was removed, but that takes part in some of the problems (with speeds of event processing) we're having; currently it still works, because ES knows about which events were processed and which weren't, but there's a significant performance loss without these returns. Now, for other issue of head not updating / additional performance issues - please take the below as my assumptions as to how rxnet implementation of ES works and why we need separate threads for EventLoop (EL) (it was a lengthy ride)
I believe that each event on ES consists of multiple actions that are put on the same "queue" (which is EL). As such there're actions like: SubscriptionDropped, PersistentSubscriptionConfirmation, PersistentSubscriptionStreamEventAppeared etc. - all of them are Observables. Additionally there're writer/reader classes that work on that connection, embedded within ES class (reader is a buffer for TCP packets retrieved from ES - there's assembly of event data from multiple packets I've fixed some time ago in rxnet library, but I don't know if that feeds into actions; writer sends commands to ES). So, we have loop that runs through actions that arrive and go out to ES
If we use one connection for multiple streams, there's a slowdown in how events are processed (which kind of makes sense, as every time you switch streams actions need to be performed to get current head, retrieve event, send ack to advance the head - this is due to usage of one reader/writer in rxnet EventStore class). The solution would then to use, for each stream a separate EventStore object (which I was already doing) - this means that each streams gets its own reader/writer, and that removes overhead of stream switching. Now enter parallelisation - in this context this means "how many events should be accessed at a time" (they're still accessed synchronously - I don't know what "at a time" means, as parallelisation gives idea of events arriving in EL in any order, let's say 10 at a time, but I'm always getting them in correct order). There's also mystery of difference in quality of subscriptions - first subscription will always be processed faultlessly; second will sometimes run at the same speeds as first; third and fourth will usually stutter and not process through events as quickly; parallelisation seemed to fix that.
To gain a significant performance boost as little as setting of 10 can be used. With one connection that means that 10 events for each stream would be processed in round robin. With separate connections that means that 10 events would be retrieved for each stream and then would be processed in fifo. I've proceeded to test out the latter option. Looking at the logs I would still notice issue where one stream would stop because of the other, or one stream would jump back, to anothers head (for example - quotes was at 3k, accounts was at 2.5k, quotes would go back to 2.5k and start processing from there). Both of the cases happened sporadically, but got me thinking that they're caused by same thing - action of head lookup arrives in EL, gets picked up by wrong subscription, causes stream processing to stop (because stream caught up to head) or reruns already processed events.
As there's no way to create multiple EL and there's no other ES library, I've as such separated each stream into separate PHP thread, kept one worker and maintained current behaviour.

Happy with this.

needs to be return ack / nack in subscribe Observable to inform ES. I don't know when it was removed

What do you mean it was removed?

What do you mean it was removed?

I think I've followed this example for persistent subscriptions: https://github.com/Rxnet/eventstore-client/blob/master/examples/persistent.php which has the return, but looking at the git history I can't find return ack / nack being committed. I was confused by this as well. The example on main page: https://github.com/Rxnet/eventstore-client doesn't have return, but there's a noticeable difference when running events (at least with parallel=1 setting)