Implement the Workstation APIs

Overview
In this issue, we implement the workstations functionality on the server. At a high level, a workstation is a logical grouping for an AgoraCloud user, workspace and deployment. This means that each workstation created is tied to a single user, a single workspace and a single deployment in that workspace. When a workstation is deleted, the workstations user, workspace and deployment are also deleted.
To support the former functionality, a workstation module, schema, controller and service need to be created. This means that the server will expose 6 REST API endpoints, in addition to the already exposed 73 REST API endpoints, to create, read, update and delete workstations. The 6 REST API endpoints are:

API
Method
Description

/api/workstation
GET
Get the current signed in users workstation

/api/workstations
GET
Get all workstations (accessible by super admins only)

/api/workstations/:id
GET
Get the workstation with the given id (accessible by super admins only)

/api/workstations
POST
Create a new workstation (accessible by super admins only)

/api/workstations/:id
PUT
Update the workstation with the given id (accessible by super admins only)

/api/workstations/:id
DELETE
Delete the workstation with the given id(accessible by super admins only)

When a GET request is made to retrieve the information of a workstation, we obtain:
{
    "id": "616e1ac791a1a900124e1080",
    "createdAt": "2021-10-28T21:26:41.939Z",
    "updatedAt": "2021-10-28T21:26:41.939Z",
    "name": "My first workstation",
    "user": {
        // All the user properties
    },
    "workspace": {
        // ALl the workspace properties
    },
    "deployment": {
        // All the deployment properties
    }
}

To create a workstation, the following data needs to be supplied in the POST request:
{
    "name": "Workstation name here",
    "user": {
        "fullName": "Student Name",
        "email"<EMAIL_ADDRESS>        "password": "password"
    },
    "properties": {
        "cpuCount": 1,
        "memoryCount": 2,
        "storageCount": 16,
        "scalingMethod": "ON_DEMAND"
    }
}

To update a workstation, the following data needs to be supplied in the PUT request:
{
    "name": "Updated workstation name here",
    "user": {
        "fullName": "Updated student Name",
        "password": "updated_password"
    },
    "properties": {
        "cpuCount": 1,
        "memoryCount": 2
    }
}

To Do

[x] Create and implement the Workstation module
[x] Create and implement the Workstation schema
[x] Create the Workstation service
[x] Create the workstation controller
[x] Create and implement the NoProvisionedWorkstationException exception
[x] Create and implement the WorkstationNotFoundException exception
[x] Modify the AuditingController and AuditingSchema to add the new Workstation audit resource
[x] Create and implement the CreateWorkstationDto class (used to validate incoming data to create a workstation)
[ ] Create and implement the UpdateWorkstationDto class (used to validate incoming data to update a workstation)
[x] Create and implement the WorkstationDto class (used to transform a workstations information for GET requests)
[x] Implement the /api/workstation GET REST API
[x] Implement the /api/workstations GET REST API
[x] Implement the  /api/workstations/:id GET REST API
[x] Implement the /api/workstations POST REST API
[ ] Implement the /api/workstations/:id PUT REST API
[ ] Implement the /api/workstations/:id DELETE REST API

Note to SEG4105 TA's
Since this issue is a huge issue where multiple API endpoints are going to be implemented, this issue will be gradually worked on and completed as the weeks pass by. This is done to ensure that my work is spaced out and that the UI team (@MarcDAFrame and @waleedza99) have the API's ready before they start work on their respective issues.
Currently (November 2nd, 2021), the following tasks have been completed:

November 9, 2021 Progress Update (Sprint 26)
The following tasks have been completed:

All the tasks have been completed 🎉. Please note that I forgot to include the issue number in my latest commit (please see this commit) that includes all the work required for the  /api/workstations/:id PUT REST API and /api/workstations/:id DELETE REST API.

Done 🎉


feat: add descriptions to report emails

SUMMARY
Adds the report description to the report email body and slack notification
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

@samtfm you may want to rebase or merge from master - there are some conflicts here :)

LGTM once CI is green.

It looks like the failing python test tests/datasets/api_tests.py::TestDatasetApi::test_get_dataset_distinct_schema is also failing on master.

@samtfm looks like master is green, a rebase will likely solve your build issue.

I was getting failures running this test on my local master, but I'll try rebasing in case that was some local anomaly

@samtfm looks like most required checks are passing, I think you just need to run black on a couple of files to make the pre-commit check pass.

@samtfm looks like most required checks are passing, I think you just need to run black on a couple of files to make the pre-commit check pass.


Update getting_started.md

Hey there, thank you for this awesome project!
I was following your docs and ran into this error when trying to join the minilm_l6 extractor. Not sure if this is a typo
or if it was renamed in previous versions, but I was getting this:
...snip

AttributeError: module 'minilm_l6' has no attribute 'MiniLMExtractor'. Did you mean: 'MiniLML6Extractor'?

...snip

@tzumby Thanks for the PR! It was a typo indeed.


go/types: Identical panics with unreachable if first argument is nil

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?
go version go1.6 linux/amd64
go version devel +121c434 Thu Apr 7 09:57:06 2016 +0000 linux/amd64

What operating system and processor architecture are you using (go env)?
GOHOSTARCH="amd64"
GOHOSTOS="linux"

What did you do?
Run http://play.golang.org/p/7MLy8FEed8

What did you expect to see?
I expected types.Identical to return false

What did you see instead?
It panics:

go run /tmp/foo.go
func(i int) reflect.Value
panic: unreachable

goroutine 1 [running]:
panic(0x610f60, 0xc823c6b3a0)
	/usr/lib/go/src/runtime/panic.go:464 +0x3e6
go/types.unreachable()
	/usr/lib/go/src/go/types/errors.go:23 +0x65
go/types.identical(0x0, 0x0, 0x7f89526f0360, 0xc823c5e7e0, 0x0, 0xc82008a008)
	/usr/lib/go/src/go/types/predicates.go:281 +0x2f1
go/types.Identical(0x0, 0x0, 0x7f89526f0360, 0xc823c5e7e0, 0x0)
	/usr/lib/go/src/go/types/predicates.go:115 +0x48
main.main()
	/tmp/foo.go:23 +0x356
exit status 2

Looking at the code, it's quite clear why. It should either be documented that the type mustn't be nil

/cc @alandonovan @griesemer


Overriding global $fetch with ofetch.create will break the test run

Environment
Nuxt project info:

Operating System: Linux
Node Version:     v18.18.0
Nuxt Version:     3.11.1
CLI Version:      3.11.0
Nitro Version:    2.9.4
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools
Runtime Modules:  -
Build Modules:    -

@nuxt/test-utils version: 3.12.0
vitest version: 1.4.0
Reproduction
Here is a reproduce stackblitz: https://stackblitz.com/edit/github-lxyzpn?file=plugins%2Fonrequest.client.ts
Create a plugin that will override the default $fetch. This is handy when trying to inject your own headers into the HTTP requests. If you google this, you will find a helpful SO solution: https://stackoverflow.com/a/75871291/216846
import { ofetch } from 'ofetch';

export default defineNuxtPlugin((_nuxtApp) => {
  globalThis.$fetch = ofetch.create({ // <- this is the important part!
    onRequest({ request, options }) {
      options.headers = { Authorization: `Bearer token` };
      console.log('onRequest', request);
    },
    onRequestError({ error }) {
      console.log(error);
    },
  });
});

This works fine when running the dev environment or prod environment. When you now run @nuxt/test-utils based test case, the tests pass, but the run fails to this error (see the whole log in logs):
TypeError: Cannot set property request of FetchError: [GET] "/_nuxt/builds/meta/test.json": <no response> Failed to parse URL from /_nuxt/builds/meta/test.json which has only a getter

Describe the bug
The correct way to implement this kind of plugin that edits the HTTP requests is described here: https://nuxt.com/docs/examples/advanced/use-custom-fetch-composable. Instead of returning you just inject the globalThis.$fetch with the created fetch instance.
The bug is that in dev and prod environments you can as well do it like this globalThis.$fetch = ofetch.create.
So, again, the correct way is to do globalThis.$fetch = $fetch.create but I think there should be a warning or something guiding the devs to do it correctly. Or at least they find this bug issue and can fix it in their code.
Additional context
No response
Logs
~/projects/vbwirlala.github 4m 11s
❯ npm run test

> test
> vitest

 DEV  v1.4.0 /home/projects/vbwirlala.github

stdout | Object.onRequest (/home/projects/vbwirlala.github/plugins/onrequest.client.ts:8:15)
onRequest /_nuxt/builds/meta/test.json
onRequest /_nuxt/builds/meta/test.json

stdout | Object.onRequestError (/home/projects/vbwirlala.github/plugins/onrequest.client.ts:11:15)
TypeError: Failed to parse URL from /_nuxt/builds/meta/test.json
    at _0x88e3f9 (https://vbwirlalagithub-bvqi.w-credentialless-staticblitz.com/blitz.810981ba.js:352:614955)
    at _0x303d3a._0x5ec96b (https://vbwirlalagithub-bvqi.w-credentialless-staticblitz.com/blitz.810981ba.js:352:625681)
    at Object.t.exports.fetch (node:internal/deps/undici/undici:194:308109)
    at $fetchRaw2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:236:26)
    at $fetch2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:278:15) {
  [cause]: TypeError [ERR_INVALID_URL]: Invalid URL
      at __node_internal_ (node:internal/errors:36:5406)
      at new <anonymous> (node:internal/errors:36:4168)
      at new URL (node:internal/url:48:8018)
      at new URL (/home/projects/vbwirlala.github/node_modules/happy-dom/lib/url/URL.js:25:1)
      at new oe (node:internal/deps/undici/undici:194:83653)
      at fetch (node:internal/deps/undici/undici:194:307099)
      at Object.t.exports.fetch (node:internal/deps/undici/undici:194:308078)
      at node:internal/process/pre_execution:56:2507
      at $fetchRaw2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:236:32)
      at $fetch2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:278:15) {
    input: '/_nuxt/builds/meta/test.json',
    code: 'ERR_INVALID_URL'
  }
}
TypeError: Failed to parse URL from /_nuxt/builds/meta/test.json
    at _0x88e3f9 (https://vbwirlalagithub-bvqi.w-credentialless-staticblitz.com/blitz.810981ba.js:352:614955)
    at _0x303d3a._0x5ec96b (https://vbwirlalagithub-bvqi.w-credentialless-staticblitz.com/blitz.810981ba.js:352:625681)
    at Object.t.exports.fetch (node:internal/deps/undici/undici:194:308109)
    at $fetchRaw2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:236:26)
    at $fetchRaw2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:245:14)
    at $fetch2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:278:15) {
  [cause]: TypeError [ERR_INVALID_URL]: Invalid URL
      at __node_internal_ (node:internal/errors:36:5406)
      at new <anonymous> (node:internal/errors:36:4168)
      at new URL (node:internal/url:48:8018)
      at new URL (/home/projects/vbwirlala.github/node_modules/happy-dom/lib/url/URL.js:25:1)
      at new oe (node:internal/deps/undici/undici:194:83653)
      at fetch (node:internal/deps/undici/undici:194:307099)
      at Object.t.exports.fetch (node:internal/deps/undici/undici:194:308078)
      at node:internal/process/pre_execution:56:2507
      at $fetchRaw2 (/home/projects/vbwirlala.github/node_modules/ofetch/dist/shared/ofetch.00501375.mjs:236:32) {
    input: '/_nuxt/builds/meta/test.json',
    code: 'ERR_INVALID_URL'
  }
}

stdout | createSuspenseBoundary (/home/projects/vbwirlala.github/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1442:43)
<Suspense> is an experimental feature and its API will likely change.

 ✓ test/my.spec.ts (1)
   ✓ abba (1)
     ✓ should be abba

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Vitest caught 1 unhandled error during the test run.
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Uncaught Exception ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
TypeError: Cannot set property request of FetchError: [GET] "/_nuxt/builds/meta/test.json": <no response> Failed to parse URL from /_nuxt/builds/meta/test.json which has only a getter
 ❯ _0x46d1e6 ../../../blitz.810981ba.js:352:617597
 ❯ _0x1eee56 ../../../blitz.810981ba.js:352:615189
 ❯ FetchError.get ../../../blitz.810981ba.js:352:615388
 ❯ Module.processError node_modules/@vitest/utils/dist/error.js:95:11
 ❯ catchError node_modules/vitest/dist/vendor/execute.2_yoIC01.js:396:39
 ❯ process.unhandledRejection node_modules/vitest/dist/vendor/execute.2_yoIC01.js:406:37
 ❯ EventEmitter.emit node:events:42:9202
 ❯ emit node:internal/process/promises:230:1176
 ❯ processPromiseRejections node:internal/process/promises:230:3782
 ❯ processTicksAndRejections node:internal/process/task_queues:107:1089

This error originated in "test/my.spec.ts" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

 Test Files  1 passed (1)
      Tests  1 passed (1)
     Errors  1 error
   Start at  08:55:23
   Duration  4.31s (transform 467ms, setup 535ms, collect 11ms, tests 2ms, environment 800ms, prepare 1.37s)

 FAIL  Tests failed. Watching for file changes...
       press h to show help, press q to quit

If you don't actually need the plugin for the test I would assume you could add an early return in your defineNuxtPlugin based on the environment.

This is a good tip if you don't need the plugin. Still, cluttering the plugin code with that kind of a check is also little smelly. I investigated and I don't think there is a way to disable, say in vitest.config, certain autoloaded plugins in tests run by test-utils? That is totally different topic, though.


Kerberos stopped working to ipa-server-4.9.12-11

After our Identity and Access Management group updated their IPA server to ipa-server-4.9.12-11.module+el8.9.0+20824+f2605038.x86_64  our conservers stopped working with Kerberos authentication.
The OS system still works when using ssh as in 'ssh -AK $FQDN' so the system keytab and kerberos setup is working. However we can only connect via console if kerberos is disabled via 'KRB5_TRACE=/dev/stdout console $ARGS' and supplying the user password each time.
At present we are running:
rpm -qa | grep conserver
conserver-debuginfo-8.2.1-4.3.el7.x86_64
conserver-client-8.2.1-4.3.el7.x86_64
conserver-8.2.1-4.3.el7.x86_64
The server is running:
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
Is this something that can be looked at and possible fixed on this end ?
Thanks in Advance.

I should note tracing on the server only shows:
`[root@console ~]# KRB5_TRACE=/dev/stdout /usr/sbin/conserver
[Wed Feb 14 21:40:42 2024] conserver (153644): conserver.com version 8.2.1
[Wed Feb 14 21:40:42 2024] conserver (153644): started as root' by root'
[Wed Feb 14 21:41:24 2024] conserver (153644): ERROR: GSSAPI didn't work, An invalid status code was supplied`


[WIP] Add Experiment Viewed Non-Interactive option for Google Analytics

This destination has been missing an option to make Experiment Viewed events non-interactive for when we repeat it to Google Analytics users, resulting in low bounce rates. This will give our Google Analytics + VWO users the ability to make their events non-interactive to preserve sessions.

Codecov Report

Merging #10 into master will decrease coverage by 1.17%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #10      +/-   ##
==========================================
- Coverage   89.23%   88.05%   -1.18%
==========================================
  Files           1        1
  Lines          65       67       +2
==========================================
+ Hits           58       59       +1
- Misses          7        8       +1

Impacted Files
Coverage Δ

lib/index.js
88.05% <100%> (-1.18%)
:arrow_down:

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 0e930e2...56b266a. Read the comment docs.


Add Ambari Metrics Service to blueprints

Added AMS to multi-node-yarn and single-node-yarn blueprints and removed the Ganglia email address from the multi-node-yarn blueprint.

Can one of the admins verify this patch?

Thank, it looks good to me. Can you please merge your commits into 1 commit?

Sure thing, thanks!


Use the atom-workspace tag instead of the workspace class.

In keymaps/highlight-css-color.cson: Use the atom-workspace tag instead of the workspace class.

+1


tapTarget instead of icon & callbacks reworked

The many changes come from flutter dartfmt lib.
First I only added a Key that the Icon in _TapTarget would take, however, it is bad practice to pass IconData in Flutter. In Flutter all child parameters like this one should be Widget's and there is no reason to limit the user by not providing this as a parameter.
Would like your feedback on the new callbacks for dismissal etc.
Passing another callback to the callbacks is not good practice as far as I am concerned. I followed onWillPop with this.

I like that you reworked the callbacks, the previous implementation wasn't very efficient.
I just requested a few changes, yet necessary, as one of them corrects a compilation error.
Could you also edit the readme file based on the changes you made?

@axel-op Hi, thanks for taking a look. I will resolve the errors (sorry I did not test it yet, but that's the benefit of using a custom branch in a fork 😄 ) quickly and update README.md later. I could create another pull request for that.

I think that I will just remove color because if anyone will upgrade to this version of the plugin, e.g. by using this fork, they will certainly have to adapt to a lot of breaking changes anyway.

I will update the README and the example in another PR, so if you think that this PR is fine, merging it would make the work flow easier.

I will update the README and the example in another PR, so if you think that this PR is fine, merging it would make the work flow easier.

I'm about to test it quickly!

@axel-op Sounds good.
Actually, I think that if you do not encounter any issues, you should just let me know and if that is okay, it would be better to leave the PR open for now because I will also test it in just a moment and then I could merge it if my testing also yields no errors.

I am going to merge this for now and will do the README.md and example tomorrow. There are also some other issues I am seeing.


Azure - Unable to use SSH key after deploying RancherOS from Azure's Marketplace

Trying to deploy the RancherOS from Rancher Labs on Azure, using the marketplace image is not working when set up to use SSH key, it looks like after the VM is deployed only password is working and it will fail since it was deployed using SSH key.
At the moment the workaround would be to do a reset password through the Azure portal , then password login will work just fine.
Is there any way we can get a request to update the image in there to the one that has this fixed?
Steps to reproduce are very straightforward, assuming you have an Azure account, you just have to deploy the Rancher OS and use SSH Key instead of password.
Please, let me know if you guys need any other details.
RancherOS v 3.1
I'll try to get more details in the meantime but this looks to be an issue maybe with cloud-init.

Can you open this in the RancherOS issues? This is unrelated to Rancher.


ci: Fix the openssl installation fail on macOS

Summary
report here: https://github.com/apache/nuttx/pull/10107
+ brew install u-boot-tools ==> Fetching dependencies for u-boot-tools: openssl@3 ==> Fetching openssl@3
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/manifests/3.1.2-1 Already downloaded<EMAIL_ADDRESS>==> Downloading https://ghcr.io/v2/homebrew/core/openssl/3/blobs/sha256:2bea791e9eacc59e0a9099065f3229afaf2b68a9b7b3136ec508103985b1176c Already downloaded<EMAIL_ADDRESS>==> Fetching u-boot-tools
==> Downloading https://ghcr.io/v2/homebrew/core/u-boot-tools/manifests/2023.07.02 Already downloaded: /Users/runner/work/nuttx/nuttx/sources/tools/homebrew/downloads/5e0a4a2e6eda6e1dc965b8523549685de4c2da7f1c68d8431bbd7c536642bfee--u-boot-tools-2023.07.02.bottle_manifest.json ==> Downloading https://ghcr.io/v2/homebrew/core/u-boot-tools/blobs/sha256:bfd54176e94ffd2ad380ab7cbd25e091afe9338b17343881cd957f5f6c30d5ed Already downloaded: /Users/runner/work/nuttx/nuttx/sources/tools/homebrew/downloads/8ce6e97fdea98c1581ffe5f52ccd876f3cbf373da9a70f889948b5c888528402--u-boot-tools--2023.07.02.ventura.bottle.tar.gz ==> Installing dependencies for u-boot-tools: openssl@3 ==> Installing u-boot-tools dependency: openssl@3
==> Pouring<EMAIL_ADDRESS>Error: Could not symlink bin/openssl
Target /usr/local/bin/openssl
is a symlink belonging to<EMAIL_ADDRESS>You can unlink it:
  brew unlink<EMAIL_ADDRESS>
To force the link and overwrite all conflicting files:
  brew link --overwrite openssl@3

To list all files that would be deleted:
  brew link --overwrite --dry-run openssl@3

Impact
macOS ci
Testing
ci

If this does not work we can try
brew unlink<EMAIL_ADDRESS>|| true


[Email][Mailbox]: Added support for downloading attachments

Code changes

Added connection/files to handle downloading files
Added support for showing attachment icon and the filename/s attached in the messages
Added support for downloading the file on click of filename
Added attachment inside the message body
Added tests to Email & Mailbox for showing file when files.length > 0

Next

PR for rendering inline images / files within message body will follow after this

Screenshots

Readiness checklist

[X] Cypress tests passing?
[X] New cypress tests added?
[X] Included before/after screenshots, if the change is visual

License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Got a pass from SDET, merging this:


Failed to launch without user gesture.

This is a repo reproducing this question: https://github.com/daGaiGuanYu/show-me-bugs/tree/nostalgist240207
warn message in console:
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.

I don't know whether this can be fixed.
If not, it would be nice to mention it in the documentation.
Developer could show a dialog to tell users "rom download, start now?".
And user's clicking will offer a "user gesture", and this limit are gone.

I'm making a little APP (not completed):

load nes games from local and the internet.
Installable, and offline playing(not completed), and launching by clicking a nes file.

Make a user gesture before launch:
// ...
await make_usergesture()
Nostalgist.launch(...)

function make_usergesture () {
  const div = document.createElement('div')
  div.style.position = 'fixed'
  div.style.left = '0'
  div.style.top = '0'
  div.style.right = '0'
  div.style.bottom = '0'
  div.style.zIndex = '1000'

  div.style.background = '#333'
  div.style.color = '#fff'
  div.style.display = 'grid'
  div.style.placeItems = 'center'

  div.innerHTML = 'Please click on the screen to continue'

  return new Promise<void>(res => {
    div.addEventListener('click', () => {
      document.body.removeChild(div)
      res()
    })
    document.body.appendChild(div)
  })
}

It's a limitation from the browser (see https://developer.chrome.com/blog/autoplay) so we cannot bypass it. We have to ensure the launch method is invoked after a user click event or a keyboard event.
In fact, there is an undocumented parameter waitForInteraction working like this:
await Nostalgist.nes({
  rom: 'flappybird.nes',
  waitForInteraction({ done }) {
    const button = document.createElement('button')
    button.textContent = 'click to start'
    document.body.append(button)
    button.addEventListener('click', () => {
      done()
      button.remove()
    })
  },
})

It still haven't been added to the documentation now, since it's a bit complex to explain, and I also think the API design may have room to improve to achieve better clarity.
I think your approach for making a user gesture before launching is quite straightforward and you could just keep using it.


implementation fastEQCompareOperator

Summary
Purpose
Contents
Testing Methods Performed

if review is complete, rebase the PR into single commit.

@mdonaka
Yes i really wanted to do that, but i merged develop by misstake.
i should have a large number of change commit.
so i am not going to rebase.
sorry.
please merge it.


Make the mixer robust to adapter panics and end processing early on timeout

Wrap the dispatch to our adapters in a function which will recover them panicking. This wrapper also polls for the cancellation of the request's context and aborts early if it is canceled (e.g. because we exceeded the requests's deadline).

This change is

I verified this by both having the manager panic and adding a deadline flag to mixc. In both cases we got the expected behavior. If we're interested in a flag for setting the request deadline in mixc I can include it in this PR too.

Current coverage is 71.41% (diff: 0.00%)

No coverage report found for master at 00eb072.

Powered by Codecov. Last update 00eb072...f27bf90

Missing tests?

There's no tests for the entire file, I can start some.

Updated to keep things in the request thread; the semantics are essentially unchanged but we don't have to run the adapter in a different thread. Do we like this version more or less than the other?

We ultimately need to imbue the code with parallelism. At some point, we
need a goroutine pool that will take requests from the front-end and issue
the calls into the adapters. The adapters will block on I/O, but we can
keep pumping incoming requests (until some predetermined limit at which
point we need to start failing additional requests)
I think the old mixologist code already has this kind of model.
Given this, seems like it might be time to start embracing go routines and
not shy away...
On Fri, Jan 20, 2017 at 3:58 PM, Zack<EMAIL_ADDRESS>wrote:

Updated to keep things in the request thread; the semantics are
essentially unchanged but we don't have to run the adapter in a different
thread. Do we like this version more or less than the other?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/istio/mixer/pull/177#issuecomment-274211373, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AVucHcpPZPsVdzmPXlDYMt1Tcz8Z6mvqks5rUUomgaJpZM4Lp3Ka
.

Yeah, the prototype used go routines. We learned some lessons in this regard. @mandarjog can give you a full dump of the details (debugging, performance troubleshooting, etc.).

The version previously written had no parallelism of adapter execution, the only parallelism was to enable monitoring both the context's cancellation and the execution of the adapter. The current version is a little worse in that we wait for the adapter to finish executing before returning a DEADLINE_EXCEEDED to the user, where previously we returned it immediately, but there's no extra expenditure of resources since we can't kill the goroutine executing the adapter anyway.
It's as easy to implement parallel execution of adapters with the code as currently written compared to how it was previously written (changing h.execWrapper(ctx, conf, ab) to go h.execWrapper(ctx, conf, ab)) but I think the current version is easier to understand.

Thought about this over the weekend: I think this is better if we push catching adapter panics down into the manager, so that manager.Execute always returns either output or an err. I think this will make things cleaner when we move to concurrent adapter execution.
I also updated the panic-handling code to always return the recover, even if its not an error, by wrapping it in another error providing context on the failure.
Still open is how to handle the context finishing before we're done executing adapters. As written, the loop in methodHandlers exit as soon as an adapter returns a not-OK code. Mandar suggested returning the output we have to far, but I'm not sure we want to return an OK if the request is canceled or we deadline exceed. Added a TODO to look into this behavior later.


Test if Tradfri light is available/reachable?

Where are you using pytradfri (eg stand-alone, Home Assistant etc)
Homeassistant
Version of pytradfri
Expected behaviour
Please consider adding functionality of checking reachability of Tradfri-lights.
Actual behaviour
Right now, when power is cut off to the lights, they still show on or off. In the app the lights show unavailable (grey out) so some sort of check is already implemented in the Tradfri system.
please see community-post:
https://community.home-assistant.io/t/test-if-tradfri-light-is-available-reachable/74314
if reachability would be implemented we can do this in the Ha frontend, and, create automations and other template sensors based on that reachabilty:

Driveway is a Philips Hue light tested with:
- platform: command_line
  name: Driveway reachable
  command: !secret driveway_command
  value_template: >
    {{value_json.state.reachable}}

Parking is a Tradfri light showing to be on, while in fact it is unavailable while power is cut.

I did some investigation here and in the code base of Home Assistant and it seems (which I had forgotten) the feature is already available. In pytradfri, the reachable state is exposed here:
https://github.com/ggravlingen/pytradfri/blob/3e3d68fb5b14c497b45548085778261fbd3c0ff7/pytradfri/device.py#L60
And in Home Assisstant, here:
https://github.com/home-assistant/home-assistant/blob/7f0a50ce31befab10e8ba1892cc30b1334f22fc2/homeassistant/components/light/tradfri.py#L359
I also tried switching of my light using the wall switch and the light does show up as unavailable:

So, in conclusion. It already does work :)

Not sure how you did this , but it is exactly what I am hoping for .
If power is cut off here , the lights show with their last state, I haven’t seen unavailable on any of the TRÅDFRI lights yet.

Just to be sure: you are running the tradfri gateway and not a hue?

Yes I am.
Both in fact ;-)
But I use the dedicated setup: TRÅDFRI lights on the TRÅDFRI hub and hue lights on the hue hub.

I'm running v80.3 of Home Assistant, which runs the latest version of pytradfri. But there have not been any changes to this part of the code for long. What happens if you turn of a light using the switch and then try to adjust, for instance, brightness?

a yes, now i see the too: unavailable. Neer noticed before. Thats a start!
It needs the command though and doesn't change to unavailable automatically when power is cut.

That's something that needs to be fixed in home assistant so we should close the issue here.
(I'm not enough versed in the inner workings of home assistant to provide a fix in home assistant I'm afraid.)

ok, where should we go from here then? the regular homeassistant GitHub issue tracker?

Yes and hope that someone picks the issue up. As a temporary workaround, perhaps you could trigger an automation that sends the last observed brightness level every five minutes or so? Just to trigger the unavailable state.

This issue does not relate to pytradfri, but rather the Home Assistant project. Closing the issue so that the discussion can be continued in their repo.


Document Deployment of a Flink and Spark Clusters with Portable Beam

The Apache Beam vision has been to provide a framework for users to write and execute pipelines on the programming language of your choice, and the runner of your choice. As the reality of Beam has evolved towards this vision, the way in which Beam is run on top of runners such as Apache Spark and Apache Flink has changed.
These changes are documented in the wiki and in design documents, and are accessible for Beam contributors; but they are not available in the user-facing documentation. This has been a barrier of adoption for other users of Beam.
This project involves improving the Flink Runner page[1] to include strategies to deploy Beam on a few different environments: A Kubernetes cluster, a Google Cloud Dataproc cluster, and an AWS EMR cluster. There are other places in the documentation that should be updated in this regard[4][5].
After working on the Flink Runner, then similar updates should be made to the Spark Runner page[2], and the getting started documentation[3].
[1] https://beam.apache.org/documentation/runners/flink/
[2] https://beam.apache.org/documentation/runners/spark/
[3] https://beam.apache.org/get-started/beam-overview/
[4] https://beam.apache.org/documentation/sdks/python-streaming/
[5] https://beam.apache.org/documentation/sdks/python-streaming/#unsupported-features
Imported from Jira BEAM-7104. Original Jira may contain additional context.
Reported by: pabloem.

The following subtask(s) are associated with this issue: #19550

I updated the Apache Spark runner document to run spark runner on a Kubernetes cluster


Add platform to install-controller-kind target

Changes
On M1/M2 macOS machines, it can happen that the KinD setup uses arm64 node images and ko wants to match the system OS and architecture. However, the base images Shipwright relies on do not support a platform like darwin/arm64.
Add --platform=linux/$(GO_ARCH) to enforce that ko build Linux images with the respective current system architecture.
Submitter Checklist

[ ] Includes tests if functionality changed/was added
[ ] Includes docs if changes are user-facing
[X] Set a kind label on this PR
[ ] Release notes block has been filled in, or marked NONE

See the contributor guide
for details on coding conventions, github and prow interactions, and the code review process.
Release Notes
NONE

Works as long as we do not support anything else than Linux. Probably good enough. Maybe an easy alternative: you use the GO_OS variable here and substitute darwin with linux. Does that work ?

It seems we already have that "substitution" of sorts. I added GO_OS in the command.


slidesToShow greater than 1 causes arrows to not activate?

The following displays arrows in the markup
$('#slider').slick({
arrows: true,
slidesToShow: 1,
});

The following displays no arrows in the markup
$('#slider').slick({
arrows: true,
slidesToShow: 3,
});

Using Chrome and Slick 1.4.1
Thanks

Slick won't activate unless you have enough slides to slide.

Ok, interesting... I've added a fourth slide and the arrows have now appeared!
However if I have 3 slides in centerMode, how can you scroll through them without arrows?

what do you mean?

This is being tracked in several other issues. Closing.


Allow federation metadata & prepare lib for SWITCHAAI

TODO:

[ ] run tests As we got rid of md: prefix tests won't pass as they use the proper way of namespacing
[ ] check that it still works with single EntityDescriptor Not checking this as tests don't pass anyway
[x] Remove unused code
[ ] Fix the problem with xmlns as prefix md: in some places The problem is that for some reason SwitchAAI metadata file does not use urn:oasis:names:tc:SAML:2.0:metadata xmlns for tags like EntityDescriptor (it should). So we cannot really fix this. One thing we could do is to do it in a seperate PR and this way let this PR be merged to OS.

Closing due to https://github.com/kanes115/samly/pull/2 which is more general


⚠ Bofrost.de has degraded performance

In aed4231, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1472 ms

Resolved: Bofrost.de performance has improved in 08cf808.


ROSA provider: perform a region check prior to cluster creation

What
Region check will tell the caller function that the region they supplied either does not support hosted control plane clusters or multi az clusters. Providing the caller function with information up front over performing additional steps prior to initiating cluster creation.
Jira

SDCICD-1043

/hold

/unhold

/retest

/lgtm


Make sure Terminal Stable shows up as default on 22544+

Since we turned this feature on in windows, and it relies on lying
about the contents of the registry, Terminal needs to be in on the
joke.
This will need to be reverted and serviced if we choose not to ship like
this.
Fixes #12308

@msftbot merge this in 1 minute


RuntimeError: Cannot convert Constant nodes.

With python 3.8 installed, running the sine.py example, the script fails with the following error:
Traceback (most recent call last):
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\commonast.py", line 808, in _convert
converter = getattr(self, 'convert' + type)
AttributeError: 'NativeAstConverter' object has no attribute '_convert_Constant'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "sine.py", line 6, in
from flexx import flx
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\flexx\flx.py", line 10, in
from .app import *
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\flexx\app_init_.py", line 38, in
from ._app import App, manager
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\flexx\app_app.py", line 17, in
from ._component2 import PyComponent, JsComponent
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\flexx\app_component2.py", line 19, in
from ..event._js import create_js_component_class
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\flexx\event_js.py", line 598, in
JS_FUNCS = (mc.py2js(mutate_array_js) + '\nvar mutate_array = mutate_array_js;\n' +
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\flexx\event_js.py", line 61, in py2js
code = py2js(*args, **kwargs)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\functions.py", line 145, in py2js
return py2js(ob)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\functions.py", line 110, in py2js
p = Parser(pycode, (filename, linenr), **parser_options)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\parser0.py", line 214, in init
self._root = ast.parse(code)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\commonast.py", line 39, in parse
return converter.convert(comments)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\commonast.py", line 791, in convert
node = self._convert(native_node)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\commonast.py", line 812, in _convert
val = converter(n)
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\commonast.py", line 927, in _convert_Expr
return Expr(self._convert(n.value))
File "C:\Users\lewis\AppData\Local\Programs\Python\Python38\lib\site-packages\pscript\commonast.py", line 810, in _convert
raise RuntimeError('Cannot convert %s nodes.' % type)
RuntimeError: Cannot convert Constant nodes.

Just noticed that this is due to py3.8 not being supported yet, and relates to https://github.com/flexxui/pscript/pull/32

Just a note that as 3.8 becomes default more people will be affected (just hit this with Archlinux). Thanks for pscript it's nice!

the patch in https://github.com/flexxui/pscript/pull/32 works for me (just drop it in the installed pscript location as a workaround).

Updating Pscript to 0.7.3 should fix this issue.


chore(pkg::react): update to React 18 client rendering APIs

The demo is not really public API, so I'll review and test it before next publish cyle.

I have tested it and it works like a charm! Thank you!


YAAAAS - Yet Another Attempt At Adaptive Sampling

Which problem is this PR solving?

Fixes #365

Short description of the changes
This PR builds on #2818 and as such @Ashmita152 is named as a coauthor. Currently it only wires config for adaptive sampling to the existing Cassandra storage implementations.
Todo:

[ ] Unit tests
[ ] Cassandra Schema
[ ] Documentation
[ ] Manual testing in a realistic environment

Do you want an initial review, or should I wait for the remaining items to be done?

Let me move this a little farther forward before a first review. I have everything wired up but I'd like to see it work at least a little before we start reviews.

I'll mark this as a draft then.

@joe-elliott
Sorry, I asked a very simple question. In the process of reading the source code, I found that the Store.InsertThroughput method was not called anywhere
// Store writes and retrieves sampling data to and from storage.
type Store interface {
// InsertThroughput inserts aggregated throughput for operations into storage.
InsertThroughput(throughput []*model.Throughput) error
......
}

I realized there are a few files missing from what was available internally at Uber. I will work with @vprithvi to get them committed (they were all cleaned up for oss, but for some reason not moved).

The missing files have been added in #3065

Allright, I'm going to drop draft status on this PR as I think it's ready for review. codecov is not passing yet, but I wanted to see how the review shook out before expanding the tests. There is one final "todo" that I'm not sure how to handle, but I'm still mulling over it.
$ curl http://localhost:5778/sampling?service="frontend"
{"strategyType":"PROBABILISTIC","operationSampling":{"defaultSamplingProbability":0.5,"defaultLowerBoundTracesPerSecond":0.016666666666666666,"perOperationStrategies":[{"operation":"HTTP GET /config","probabilisticSampling":{"samplingRate":0.008823601197058824}},{"operation":"HTTP GET /dispatch","probabilisticSampling":{"samplingRate":0.008333401130555557}},{"operation":"HTTP GET /","probabilisticSampling":{"samplingRate":0.15000122035}}],"defaultUpperBoundTracesPerSecond":0}}

cqlsh:jaeger_v1_dc1> select * from operation_throughput;

 bucket | ts                                   | throughput
--------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------
      8 | 2e95481a-cdf5-11eb-84c2-0242ac1d0005 | frontend,HTTP GET /,2,1.000000\nfrontend,HTTP GET /config,34,"0.500000,1.000000"\nfrontend,HTTP GET /dispatch,36,"1.000000,0.500000"\n
      2 | f1d4c95a-ce0d-11eb-91db-0242ac1d0005 |                                                                                frontend,HTTP GET /dispatch,1,0.008333\n
      2 | 761bdf37-cdf5-11eb-84ca-0242ac1d0005 |                                                         frontend,HTTP GET /config,5,0.500000\nfrontend,HTTP GET /dispatch,4,0.500000\n
      7 | 52587dfd-cdf5-11eb-84c6-0242ac1d0005 |
      6 | 99df500d-cdf5-11eb-84ce-0242ac1d0005 |
      9 | ce11878d-ce0d-11eb-91d7-0242ac1d0005 |                         frontend,HTTP GET /config,0,0.008824\nfrontend,HTTP GET /dispatch,0,0.008333\nfrontend,HTTP GET /,0,0.150001\n

Are we saving throughput data as some sort of CSV format? Maybe worth converting to JSON before we commit, because JSON can be further extended in the future, but CSV would make any extension difficult.

Are we saving throughput data as some sort of CSV format? Maybe worth converting to JSON before we commit, because JSON can be further extended in the future, but CSV would make any extension difficult.

Yes, that code is here:
https://github.com/jaegertracing/jaeger/blame/master/plugin/storage/cassandra/samplingstore/storage.go#L138
There are two sets of methods to translate between strings and probabilities/throughput. I don't know enough about the original implementation to comment on why csv was chosen. json would be heavier weight to parse/store if there were a large number of operations to store, but I can look into it.

Linting is failing with:
[/home/runner/work/jaeger/jaeger/pkg/hostname/hostname.go:18] - G404 (CWE-338): Use of weak random number generator (math/rand instead of crypto/rand) (Confidence: MEDIUM, Severity: HIGH)

@joe-elliott, I see in a test here a reference to the flag --sampling.initial-sampling-probability, but I can't seem to be able to use it with this PR:
$ git log -1
commit b72f4704b4dac191d147fa34b92f23dbf5804280 (HEAD -> adaptive-sampling)
Author: Joe Elliott<EMAIL_ADDRESS>Date:   Fri Jun 25 16:21:59 2021 -0400

    added hostname

    Signed-off-by: Joe Elliott<EMAIL_ADDRESS>$ SPAN_STORAGE_TYPE=cassandra go run -tags ui ./cmd/collector/ --log-level debug --sampling.initial-sampling-probability=.5
Error: unknown flag: --sampling.initial-sampling-probability
$ SPAN_STORAGE_TYPE=cassandra go run -tags ui ./cmd/collector/ --help | grep sampling.initial-sampling-probability
$

Would you mind writing a couple of lines describing how I can test this?

Would you mind writing a couple of lines describing how I can test this?
In the case of the above lines you simply need to define the sampling type (default is static):

SAMPLING_TYPE=adaptive SPAN_STORAGE_TYPE=cassandra go run -tags ui ./cmd/collector/ --log-level debug --sampling.initial-sampling-probability=.5

Also please review /docker-compose/jaeger-docker-compose.yml. I made some small changes here to run a full jaeger stack with hotrod and cassandra setup to use adaptive sampling.

@jpkrohling

Are the participant names expected to be different here?

The way I had written it, yes, but I recognize that might be confusing. Improved the hostname package to always return the same value when called in the same process.

I think this is good to go! Let's get user feedback and iterate :-)

Let's go!

woohoo!


Associate actor/provider with its image_ref, HostAPI parity

This PR brings the HostAPI functionality up-to-par with the control interface's HostInventory operation. A consumer of the Host API or the control interface can now retrieve the list of running actors and providers including their name, revision, OCI image reference (if applicable), ID, and link_name (for providers).
As we haven't released 0.18.0 yet, I did not bump cargo versions. These changes were tested with wash for the control interface and Host API along with the integration tests

The cargo check failed because of docker!??!?! That's a first
  /usr/bin/docker pull nats
  Using default tag: latest
  Error response from daemon: received unexpected HTTP status: 503 Service Unavailable
  Error: Docker pull failed with exit code 1


"describe ingress" does not list service endpoints for ingresses not in kube-system

Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.1", GitCommit:"eec55b9ba98609a46fee712359c7b5b365bdd920", GitTreeState:"clean", BuildDate:"2018-12-13T19:44:19Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.7", GitCommit:"65ecaf0671341311ce6aea0edab46ee69f65d59e", GitTreeState:"clean", BuildDate:"2019-01-24T19:22:45Z", GoVersion:"go1.10.7", Compiler:"gc", Platform:"linux/amd64"}

Environment:

Cloud provider or hardware configuration: AWS
OS (e.g. from /etc/os-release): N/A
Kernel (e.g. uname -a): N/A
Install tools: N/A
Others:

What happened:
kubectl describe ingress on any ingress not in the kube-system namespace shows <none> endpoints for services that do indeed have endpoints.
Name:             test
Namespace:        test
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host                       Path  Backends
  ----                       ----  --------
  example.com
                             /*   example:80 (<none>)
Annotations:

Ingresses that are in the kube-system namespace correctly have their endpoints listed:
Name:             test
Namespace:        kube-system
Address:
Default backend:  example:80 (X.X.X.X:80,Y.Y.Y.Y:80)
Rules:
  Host  Path  Backends
  ----  ----  --------
  *     *     example:80 (X.X.X.X:80,Y.Y.Y.Y:80)
Annotations:

What you expected to happen:
endpoints are listed for ingresses outside of the kube-system namespace. Something like:
Name:             test
Namespace:        test
Default backend:  default-http-backend:80 (X.X.X.X:80,Y.Y.Y.Y:80)
Rules:
  Host                       Path  Backends
  ----                       ----  --------
  example.com
                             /*   example:80 (X.X.X.X:80,Y.Y.Y.Y:80)
Annotations:

How to reproduce it (as minimally and precisely as possible):

Create ingresses in both the kube-system namespace and a different namespace. Both should point to valid services with "ready" endpoints.
Run kubectl describe ingress on both ingresses. The kube-system ingress will list the service's endpoints but the other namespace's ingress will not.

Anything else we need to know:
Running kubectl -v 9 describe ingress on the ingress in the other namespace shows some 404s for getting the service and its endpoints but incorrectly using the kube-system namespace rather than the same namespace in which the ingress is located.
I0227 12:05:46.669052   43775 round_trippers.go:419] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: kubectl/v1.13.1 (darwin/amd64) kubernetes/eec55b9" -H "Authorization: Basic ******" 'https://$CLUSTER_NAME/api/v1/namespaces/kube-system/endpoints/example'
I0227 12:05:46.682031   43775 round_trippers.go:438] GET https://$CLUSTER_NAME/api/v1/namespaces/kube-system/endpoints/example 404 Not Found in 12 milliseconds
I0227 12:05:46.682071   43775 round_trippers.go:444] Response Headers:
I0227 12:05:46.682084   43775 round_trippers.go:447]     Content-Type: application/json
I0227 12:05:46.682092   43775 round_trippers.go:447]     Date: Wed, 27 Feb 2019 20:05:46 GMT
I0227 12:05:46.682099   43775 round_trippers.go:447]     Content-Length: 196
I0227 12:05:46.682178   43775 request.go:942] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"endpoints \"example\" not found","reason":"NotFound","details":{"name":"example","kind":"endpoints"},"code":404}
I0227 12:05:46.682351   43775 round_trippers.go:419] curl -k -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: kubectl/v1.13.1 (darwin/amd64) kubernetes/eec55b9" -H "Authorization: Basic ************" 'https://$CLUSTER_NAME/api/v1/namespaces/kube-system/services/example'
I0227 12:05:46.695058   43775 round_trippers.go:438] GET https://$CLUSTER_NAME/api/v1/namespaces/kube-system/services/example 404 Not Found in 12 milliseconds
I0227 12:05:46.695089   43775 round_trippers.go:444] Response Headers:
I0227 12:05:46.695099   43775 round_trippers.go:447]     Content-Type: application/json
I0227 12:05:46.695105   43775 round_trippers.go:447]     Date: Wed, 27 Feb 2019 20:05:46 GMT
I0227 12:05:46.695110   43775 round_trippers.go:447]     Content-Length: 194
I0227 12:05:46.695176   43775 request.go:942] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"services \"example\" not found","reason":"NotFound","details":{"name":"example","kind":"services"},"code":404}

that's designed i think. when the ingress's backend is absent.
https://github.com/kubernetes/kubernetes/blob/32333b0fc74bfa0352a23ecfae3772ea07c9755c/pkg/kubectl/describe/versioned/describe.go#L2297-L2305

That would not explain why the non-default-backend has <none> though. I would expect my backend's service to have its endpoints listed just like they are for ingresses in the kube-system namespace.

It appears this was fixed in 1.14.0 by https://github.com/kubernetes/kubernetes/pull/72142
Name:             example
Namespace:        default
Address:
Default backend:  default-http-backend:80 (<none>)
Rules:
  Host              Path  Backends
  ----              ----  --------
  example.com
                    /*      example:80 (<IP_ADDRESS>:80)


auto rd?

add auto rd and improve stuf? idk try it
new colab ?

I will make a few changes on your branch before merging this.

Please give me access to make changes to your repository.

Please give me access to make changes to your repository.

Done, maybe


Finalize function naming scheme.

Need to decide function names.

I'm thinking I'd like to separate each set of functions, so the code would be:
robot.mouse.click();

instead of:
robot.mouseClick();

that would be greate idea...we need to implement the native object factory..

In e55e2d21b0d2cce3345942eb82ecd043477ce064 I did this in the index.js, are you suggesting we do it natively? I'd be ok with that!

i would suggest javascript functions are better than native.

I agree, seems like it would be easier to maintain.

yup. it would be much easier . I have seen many native node.js libraries the author will write a primitive functional modules in c++/c and he implements his idea in native node.js

I'm thinking for keyboard events I'd like to use, keyboard instead of key.
Like:
robot.keyboard.type("Hello World");
robot.keyboard.press("enter");

instead of:
robot.key.type("Hello World");
robot.key.press("enter");

I think it looks better, and it makes more sense.

:+1: for this. Then you can also just include the scope you need, so if you only need to control the mouse, simply just only have that.

Good point @Multiply!

Just chiming in as I see would be great to chain, have the commands return the robot object so you can do:
robot
    .keyboard.type('Hello world')
    .mouse.click()
    .window.close()
...
    .<context>.<command>

Chaining would be pretty nice, actually.

Chaining would be nice, but how would you do error handling?

This might be controversial, but what about a promise-based API?

(First of all, I'm new here. Sorry if I shouldn't just be jumping in. I really like the idea of this project, and have been looking for something to contribute to. I don't know C/C++, but I'm goodish with node).
@RangerMauve Promises would work, but they're hard to chain. The trouble with them is that they return a promise, not robot.
IMHO, the way to do it would be to throw an error. It seems like (especially if this is supposed to replace AutoHotKey), that most of the time there will be a human using in, to deal with an error. If not, try/catch. What jQuery does is they emit error events, which would work. Have a global error handler that prints and quits.

@ariporad In terms of promises, it doesn't necessarily have to be a promise that gets returned outright. It just matters that it's a "thenable". So it could be an object that has all the same methods as robot but also has a .then() method. And whenever one of the methods get called, they get chained with something like return robot.wrapPromise(robot.then(dothething)) internally.

Oh, really? (Promises are weird). That could work then. Although I feel like it'd be rather confusing. (but it's probably the best way to do it).

Well, it's not so much promises as it'd be a fluent interface that relies on promises. One could probably do it without promises, too.

I did some testing and for this code to work:
var robot = require("robotjs");

robot.moveMouse(5, 5);
var old = robot.getMousePos();
robot.moveMouse(50, 50);
var current = robot.getMousePos();
if (current.x !== old.x)
{
    console.log("Success!");
}

There needs to be a 50-100ms delay after the move. After I added the delay to the C++ code this code works without issue.
With the delay in the C code, is there anything wrong with the syntax above?
#14 and #27 are related.

I don't like to block my app. I'd much rather have something like:
robot.moveMouse({ x: 50, y : 50}, function(err, success) {
  if (err) {
    return;
  }
  var current = robot.getMousePos();
});

@Multiply +1 for callbacks.
Callbacks are nice for activities which take considerable amount of time to complete.
Keyboard and mouse activities should have OPTIONAL callbacks.
Callbacks would be really helpful in scenarios such as taking screenshots and saving them to a file. Those kind of activities will require large amount of time and hence callbacks.

-1 for callbacks. What @RangerMauve suggested is part of the future of callback replacement.
My suggestion is go all in on ES7 async/await so you can instead do the following
var robot = require("robotjs");

await robot.moveMouse(5, 5);
var old = robot.getMousePos();
await robot.moveMouse(50, 50);
var current = robot.getMousePos();
if (current.x !== old.x)
{
    console.log("Success!");
}

Now some real API suggestions is that move could return an object containing the old and/or current position rather than nothing.
var robot = require("robotjs");

await robot.moveMouse(5, 5);
var { old, current } = await robot.moveMouse(50, 50);
if (current.x !== old.x)
{
    console.log("Success!");
}

If you don't want to go with es7, then async/await is really just nice sugar on top of waiting for promises to resolve and returning promises from async functions, so if you wrote it in es5 with Promises being returned from the various functions, it'd be forward-compatible for when async/await becomes a thing.

+1 for promises. They naturally suit the "async sequence of actions" paradigm.

+1 for promises.
What about actions where you need to wait some time before doing the next action? Or until some condition is true, like successfully finding an image on the screen.

robot.mouse.move(5, 5);
robot.mouse.click();
// Wait 2 seconds for some animation to complete
robot.mouse.move(50, 50);
robot.mouse.click();
// Wait until image of some button exists on screen
robot.mouse.move(200, 100);
robot.mouse.click();

Is there thoughts on syntax for multiple key presses (e.g. if I needed to do CTRL SHIFT L)?

@danprime multiple keypresses are implemented with keyTap. Something like
robot.keyTap("c", "command");

Should work. I'll get the documentation updated soon.
Also keyToggle can hold keys down. So you can hold down control while clicking.

I guess we could just have sync and async versions of the functions. I'll at least start working on non-blocking functions using libuv in a branch.

Here are some alternate apis that could address both.
robot.kb.key('c').key('ctrl').hold()
robot.kb.key('c').key('ctrl').press()
robot.kb.keys('c', 'ctrl').hold()
robot.kb.keys(['c', 'ctrl']).hold()
robot.kb.async.key('c').key('ctrl').press()
robot.kb.async().key('c').key('ctrl').press()

I was thinking about creating a typo-corrector in nodejs that observes text typed in every window a few days ago, Your project could serve as a base. It already provides a way to do keypresses, but does it provide a way to listen them?

@steelbrain as of now it doesn't support that feature. Since its a desktop automation tool there wouldn't be much of a use for event listening (that's my honest opinion). But if the feature is requested maybe it can be done. It all depends on @octalmage

The README of the project states that the project started because there was no AutoHotKey for mac, and that's actually the basic usage of AutoHotKey that it transforms brb in to be right back. Really looking forward to have this implemented in here.

@steelbrain Sorry I am yet to try out AHK. Till yesterday was thinking it was only for Mac (or something similar)

@steelbrian this wasn't something I even planned to implement because I use aText for this on Mac and I don't have a need, but I started work on a separate module. See #55.

I run X11 in Docker containers on my Mac, I'd love to be able to do this:
var Robot = require("robot");

var robotOne = new Robot({xDisplay:"/tmp/x11-1"});
robotOne.keys("a");

var robotTwo = new Robot({xDisplay:"/tmp/x11-1"});
robotTwo.keys("a");

Also, imo, all commands should be promise-based. That's the direction JS is taking going forward (promises are the basis of async/await)
async function myFunc(){
   await robot.keys("a");
}

add detect click of mouse or keyboard function, part of an event listener maybe?
if someone click x button, then move mouse by 300 px


Refactor oidcconfig and move a reuse-able code to a new helper package

Moving a reuse-able code from oidcconfig to an helper package

/lgtm


Update enumerating-all-processes.md

Hi, I was trying to use this code and most of my applications showed "". I was wondering if we could add a note about x64/x64 mode applications. I'm really new to trying to use C++ so I am not sure if this is something that was supposed to be very obvious. Please let me know if there is a better way to do this!

@aloofbit : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@Karl-Bridge-Microsoft : Thanks for your contribution! The author(s) have been notified to review your proposed change.


fix: Javascript es6 migration

it turns out that the culprit was in fact travis-ci not using the proper node version. Adding the snippet directly to the job did the trick.

Hi,
thanks so much8 that does solve the node version issue
seems the tests themselves still hang though
did you manage to get them running on travis?

seems the tests themselves still hang though

hey @ericvergnaud, yes the tests "seem to hang" but it is just that the output is only shown once all tests are done. No idea why but since it was the same for me locally I didnt bother checking further and just waited for it to run. After 20 mins or so the tests passed.

did you manage to get them running on travis?

yes, see https://github.com/carocad/antlr4/runs/1203678730 . From what I could gather, the changes from this PR were enough to get it all working

Thanks
I did a couple of additional changes, notably install and link the runtime as a package before running the tests
as opposed to do it for each test
now they run in 3.5 mns

Le 4 oct. 2020 à 20:08, Camilo Roca<EMAIL_ADDRESS>a écrit :
seems the tests themselves still hang though
hey @ericvergnaud https://github.com/ericvergnaud, yes the tests "seem to hang" but it is just that the output is only shown once all tests are done. No idea why but since it was the same for me locally I didnt bother checking further and just waited for it to run. After 20 mins or so the tests passed.
did you manage to get them running on travis?
yes, see https://github.com/carocad/antlr4/runs/1203678730 https://github.com/carocad/antlr4/runs/1203678730 . From what I could gather, the changes from this PR were enough to get it all working
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/ericvergnaud/antlr4/pull/1#issuecomment-703246195, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZNQJCWIHMV2R4GNFI2J4TSJBQURANCNFSM4SDHD2IA.


[WIP] Reorganize syntax and code

Note - not going to merge this until after #9, so as not to make @dwnusbaum deal with reconciling everything. =)
So now we'll read from jenkins-x.yml, within
PipelineConfig.Pipelines.[Release|PullRequest|Feature].Pipeline. Tests
are updated accordingly, and I've also moved the code around -
pkg/buildpipeline/pipeline.go is now in
pkg/kpipelines/syntax/pipeline.go (tried to put it in
pkg/kpipelines/syntax.go but that resulted in dependency loops
between packages, so yoink, let's move to a subpackage and clear
that up).
Switch to using jenkins-x.yml with Pipeline embedded in it, and rework
generation from Pipeline YAML to be more like the CRDs generated from
build packs.
Note that there are still plenty of problems: jx get build logs
lists the build number but not a name, so something's messed up there,
and no PipelineActivity is created, so things aren't actually glued
together right yet.

@dwnusbaum Reworked this on top of #9, including switching jx step create task to not have the --from-repo option any more - instead, that'll just kick in if jenkins-x.yml exists and has a Pipeline defined for one of the pipeline lifecycles. Now we need tests. =)

Updated the description - I think this is as workingish as I can get it right at the moment. @dwnusbaum, thoughts?


Update install-minikube.md

Include example for starting minikube with a specific vm

Hi,
I have signed the CLA.
Thanks,
Chloe
On Thu, Mar 12, 2020 at 11:48 AM Kubernetes Prow Robot <
<EMAIL_ADDRESS>wrote:

Thanks for your pull request. Before we can look at your pull request,
you'll need to sign a Contributor License Agreement (CLA).
📝 Please follow instructions at
https://git.k8s.io/community/CLA.md#the-contributor-license-agreement
https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to
sign the CLA.
It may take a couple minutes for the CLA signature to be fully registered;
after that, please reply here with a new comment and we'll verify. Thanks.

If you've already signed a CLA, it's possible we don't have your
GitHub username or you're using a different email address. Check your
existing CLA data and verify that your email is set on your git commits
https://help.github.com/articles/setting-your-email-in-git/.
If you signed the CLA as a corporation, please sign in with your
organization's credentials at
https://identity.linuxfoundation.org/projects/cncf to be authorized.
If you have done the above and are still having issues with the CLA
being reported as unsigned, please log a ticket with the Linux Foundation
Helpdesk: https://support.linuxfoundation.org/
Should you encounter any issues with the Linux Foundation Helpdesk,
send a message to the backup e-mail support address at:
<EMAIL_ADDRESS>
Instructions for interacting with me using PR comments are available here
https://git.k8s.io/community/contributors/guide/pull-requests.md. If
you have questions or suggestions related to my behavior, please file an
issue against the kubernetes/test-infra
https://github.com/kubernetes/test-infra/issues/new?title=Prow issue:
repository. I understand the commands that are listed here
https://go.k8s.io/bot-commands.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/website/pull/19613#issuecomment-598144380,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACYE47PZS4BV5RMYCKEVRV3RHDD2VANCNFSM4LGKOXRA
.

I signed

I signed

/check-cla

Hi @ChloeAcheampong!
There may be a problem with your git commit author email address and the email address you used to sign the CLA.
If the robot cannot verify your CLA status, the PR will not merge. If you cannot correct this problem, please close and re-open a new PR with the correct commit / author.

/check-cla
@ChloeAcheampong would you like any advice on getting a CLA signed and checked?

@ChloeAcheampong 👋 Please sign the contributor agreement in order to continue.
/close


Error on First Run

I'm just starting to dive into your module - first snag.
On first run, I did a set-GLAPIConfig with the URL and a token from your convert token tool.
My string works in an invoke-restmethod but I get:
Write-Error : Cannot bind argument to parameter 'Exception' because it is null.
At C:\Program Files\WindowsPowerShell\Modules\PSGraylog\Release\PSGraylog\public\Get-GLCluster.ps1:47 char:36
+             Write-Error -Exception $Error[0].Exception -Message $Erro ...
+                                    ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Write-Error], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.WriteErrorC
   ommand

Null exception was because the try / catch couldn't parse the error for an 'unable to estable TLS connection'
I didn't go over the code - but are you calling the .Net ServicePoint manager at any time?
I say this - as I can fix within a session by forcing the TLS12 protocol (more and more sites forcing this... including our laod balancer in front of graylog!)
The fix (in my case):
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12


[SPARK-39832][PYTHON] Support column arguments in regexp_replace

What changes were proposed in this pull request?
Support either literal Python strings or Column objects for the pattern and replacement arguments for regexp_replace.
Why are the changes needed?
Allows using different replacements per row, as in this example.
Does this PR introduce any user-facing change?
Users can now use regexp_replace with columns for all three arguments. The first argument (string that regex should be applied to) can be either a Column object or the string name of the column. In summary, the following signatures are supported:
regexp_replace("str", "\d", "")
regexp_replace(F.col("str"), "\d", "")
regexp_replace("str", F.col("pattern"), F.col("replacement"))
regexp_replace(F.col("str"), F.col("pattern"), F.col("replacement"))

How was this patch tested?
Added unit tests

cc @zero323 FYI

Any advice to solve the failing check?
Error: Unhandled error: Error: There was a new unsynced commit pushed. Please retrigger the workflow.

Can one of the admins verify this patch?

@physinet mind enabling https://github.com/physinet/spark/actions/workflows/build_main.yml and rebasing please? Apache Spark leverages the Github resources from the PR author's fork.

@HyukjinKwon @zero323 are you happy with the latest changes?

I am fine with this. I will leave it to @zero323

All comments are addressed; this should be ready for merge.

Merged into master.


chore: Render env vars in cadddy-reconfigure script

Move more logic in managing Caddy into Javascript from the shell script.

/build-deploy-preview skip-tests=true


Allow extra manually added pull secrets to managed SA

This PR fixes #417
Checklist

[x] I have signed the CLA
[x] I have updated/added any relevant documentation

Description
What's the goal of this PR?
Change the default behaviour of service account pull secrets to support adding extra ones, supporting global pull secrets on OKD/OCP and the ones manually added
What changes did you make?
The SA matching logic is updated so it matches SAs with the same metadata and if all of the desired pull secrets are present on the existing SA.
What alternative solution should we consider, if any?

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

Hey @sudermanjr, I've rearranged the e2e tests a bit so I think it kinda make more sense now there are multiple tests. Also I take the liberty to bump the yq version up so I can use it into the e2e test to analyze the SA manifests.
This is my first time doing this kind of e2e test, so if there are any further adjustments needed or if something isn't quite right, please just let me know so I can fix it.

forgot to commit the yq fix on the pre script, sorry

I think now it should be fixed for good, but I can not run the whole e2e tests. Is there any way to run this locally to not be waiting for the CI to be enabled?

You can definitely run the tests using Venom against a local cluster. I don't remember exactly how these get run, so you might have to check the scripts in the e2e folder to figure out how.

Seems like the e2e/rbacdefinition folder isn't getting copied to the "command-runner" container in CircleCI. I think you'll need an additional docker cp command in the e2e/pre.sh

yeah, you're right! I was thinking it was the BASE_DIR variable but it was properly resolved

That got a lot closer. Looks like just a couple tweaks to the yq commands now

I've updated the versions. I'm not sure that this is the problem now, but it's fine by me to do it in this PR


besu: Use jemalloc & add tests

Description of changes
This PR adds jemalloc to besu. The docs  recommend to do this in order to decrease the memory footprint.
Furthermore, a test on the installed version (besu --version) is added.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@ofborg eval

There have been issues with the Darwin-based test for jemalloc. Unfortunately, I don't have access to a Mac computer. I have added some debug output to the test and will check later on, what the ofBorg evaluation yields.

Okay, I checked the output from ofBorg for the darwin-build and also checked besu's source code. Actually, usage of jemalloc is only recommended for Linux. I adapted the the code accordingly.

@cole-h What do you think, could this stay as is and get merged or do you have any further suggestions?

@cole-h Can we merge this?

@zimbatm I've seen you've been active at https://github.com/nix-community/ethereum.nix so maybe you could also approve & merge this PR here? Related PR is https://github.com/nix-community/ethereum.nix/pull/511.


Fix inheritance of 'number' option

There are a few more changes here than I originally envisioned. The problem I wanted to solve is that when you open a file in a new window (e.g. C-v), it inherits the number option from the harpoon window. The easiest way to solve this problem is to replace the deprecated (in the next release, I'm building nvim from master) nvim_win_set_option with nvim_set_option_value (released in 7.0).
I then noticed that nvim_buf_set_option was also deprecated, so I replaced all nvim_buf_set_option and nvim_win_set_option with nvim_set_option_value and changed the minimum required neovim version in the README.
Finally, I run stylua.

cc @ThePrimeagen

we are fixing all these issues in Harpoon2 which is almost done (i just have to port over the UI part of harpoon 1 and add autocmds)
it has more flexible api.  i will update this issue when harpoon2 is ready to be used

Wow, nice. Thank you


Rename torch and tf modules to pytorch and tensorflow

Change rikai.torch to rikai.pytorch, and rikai.tf to rikai.tensorflow. This change makes the reflection easier to access code by model flavor.

Thanks @darcy-shen !


[BUG] Multiple GM Time Update Issue

Set up:

2 GMs connected to a game.
Game time integration set to mixed or self.

Reproduce:
Primary GM tries to update the minutes or hours using the time controls causes the time to flip between the updated time and the old time but sometimes update correctly.
Time updates correctly if updating just the seconds, day, month or year.

This bug does not appear to be coming from Simple Calendar but only happens when SmallTime is installed and enabled. I have reported the bug to SmallTime for investigation.


fix: add  vehicle_status topic checking

Signed-off-by: badai-nguyen<EMAIL_ADDRESS>Description
To solve this issue #1102
Since the other simulation might needed on run failed cases so only warning is added into.
Warning status in case no velocity report topic is published:

Status in case velocity report topic is published:

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Distortion collector I/F is currently being discussed here. This diagnostic shuold be implemented after the interface is changed.

https://github.com/autowarefoundation/autoware.universe/pull/1120 is merged

https://github.com/autowarefoundation/autoware.universe/issues/1102# is already closes.


general questions on the script (master listings, already alerted list, brave browser for client)

Hello Michael!
Thank you for the amazing Python script! I cloned the repo and was able to build and install it. Now I want to play around with the code a bit and add some features for myself.

I noticed that If I inputted for the id a master_id 1757517 for the listing of https://www.discogs.com/sell/list?master_id=1757517&ev=mb, I did not get any notifications. Is it how it is programmed?

When I first ran python3 -m discogs_alert -dt ... with my want list, I noticed that sent all the available (old) listing via pushbullet. When uninstalling discogs_alert and reinstalling through git and rerunning the code it did not send those alerts. How does the code work? And it did not notify for all that were for sale. (is maybe the country wrong? and how can I have it use multiple counties to see if shipping is available?)

get the complete list of previous pushes
    pushes_dict = defaultdict(set)
    for p in pushbullet.get_all_pushes(pushbullet_token):
        if "title" in p and "body" in p:
            pushes_dict[p["title"]].add(p["body"])

If I understand correctly, does it check through the push bullet api if it has already sent it before and won't send even if the python script is rerun?

I saw that it uses Chrome, I installed it for now but I was curious if I could make it work with Brave browser. I figured it has something to do with the AnonClient(Client) but I can't figure out how to do it. I would be really happy if you could lead me on the right way!

Furthermore I want the notification to also include the price. I saw there is a self.total_price, but how can I use it in the loop.py?
if we found something, send notification
        message_title = f"Now For Sale: {release.display_title}"
        for listing in valid_listings:
            message_body = f"Listing available: {listing.url}"
            if message_title not in pushes_dict or message_body not in pushes_dict[message_title]:
                print(f"{message_title} — {message_body}")
                pushbullet.send_pushbullet_push(
                    token=pushbullet_token, message_title=message_title, message_body=message_body, verbose=verbose
                )

Thanks for your questions!

I noticed that If I inputted for the id a master_id ... I did not get any notifications.

I didn't actually design the script to work with master IDs, so there's a good chance that doesn't work. It will work if you select a specific release though, e.g. https://www.discogs.com/sell/item/2454159833. Is that sufficient for your use-case?

If I understand correctly, does it check through the push bullet api if it has already sent it before and won't send even if the python script is rerun?

This is exactly correct!I You will only receive a notification for a single listing once as it's assumed that, if you do nothing, you don't want to buy it. This is a common use-case for me as there'll be an expensive listing that's currently for sale that I want to ignore in the hope that something cheaper pops up. If you do want to receive notifications for listings more than once, you can delete the pushbullet notification.

and how can I have it use multiple counties to see if shipping is available?

Unfortunately this isn't possible on Discogs itself... you can only have a single address at any given time. The best solution here would probably be to have multiple accounts 🤷.

I saw that it uses Chrome, I installed it for now but I was curious if I could make it work with Brave browser.

It actually doesn't use Chrome, it uses Chromium, the underlying open-source software. Brave is itself just a Chromium implementation.

Furthermore I want the notification to also include the price.

You could just include it in the message_body  or message_title of the notification! This is actually a pretty good idea in general, I'll think about making that change in the next release 👍.

It actually doesn't use Chrome, it uses Chromium, the underlying open-source software. Brave is itself just a Chromium implementation.
Ahh right I see, I installed chrome now and it works fine. But I'm still curious what I should've done to be able to use chromium from brave instead of needing to download chrome. Only if you have the time to explain ofc. Thanks!

You could just include it in the message_body or message_title of the notification! This is actually a pretty good idea in general, I'll think about making that change in the next release 👍.
would I have to add {listing.total_price} into the message_body?

Added the listing price to the message in #53 :) will be released shortly


scrcpy: use adb from android-tools

android-tools is built from source and available on aarch64-linux, while platform-tools isn't
Fixes the following error:
$ nix shell nixpkgs/master#scrcpy
error:
       … while calling the 'derivationStrict' builtin

         at //builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'scrcpy-2.0'
         whose name attribute is located at /nix/store/268pcpgj83j1crdcffgwd2bcj8w849xw-source/pkgs/stdenv/generic/make-derivation.nix:303:7

       … while evaluating attribute 'postInstall' of derivation 'scrcpy-2.0'

         at /nix/store/268pcpgj83j1crdcffgwd2bcj8w849xw-source/pkgs/misc/scrcpy/default.nix:64:3:

           63|
           64|   postInstall = ''
             |   ^
           65|     mkdir -p "$out/share/scrcpy"

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: No Android SDK tarballs are available for system architecture: aarch64-linux

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 238451 run on aarch64-linux 1

1 package failed to build:

scrcpy

FWIW the PR looks good but the branch is very behind master, it shouldn't matter but I'd recommend rebasing either way. I'll approve it once my local x86_64 and aarch64 builds pass.


🏷 Add default_tags to Observability Platform

This pull request:

Switches to using default_tags on the default provider

Inspiration:

@dms1981's work on https://github.com/ministryofjustice/modernisation-platform-environments/pull/5637 ❤

Notes:

https://developer.hashicorp.com/terraform/tutorials/aws/aws-default-tags
https://www.hashicorp.com/blog/default-tags-in-the-terraform-aws-provider

Signed-off-by: Jacob Woffenden<EMAIL_ADDRESS>

We'll try again some other time...


0.4.0

I haven't actually published yet, just ran np --no-publish so everything is ready for publish, if you guys are good with it just merge this one in and I'll do the actual publish quickly

Coverage remained the same at 100.0% when pulling 9b06fed00b9d1c664c0dea3e8e0150dfa0630704 on 0.4 into 4732d4a4ff143b4f30ff4ebfdb156454420fcf2b on master.


Namespace of BT-7220-Lot & BT-722-Contract

Their appears to be problem with the namespaces of the fields "BT-7220-Lot" and "BT-722-Contract". The fields.json shows the following:
BT-7220-Lot "efac:Funding/efbc:FundingProgramCode"
BT-722-Contract "efac:Funding/efbc:FundingProgramCode"
The actual object FundingProgramCode is not available in the efbc namespace, but appears to be available in the cbc namespace.

Thanks for your feedback.
This is indeed a mistake in the XPaths for those 2 fields. This will be corrected in the next version of the SDK.

This is fixed in SDK 1.2.0.


Not working the QBKG03LM Xiaomi wall switch double key switching

Error log:
Cannot handle MQTT message with topic 'zigbee2mqtt/0x00158d00014a5ab2/left/set' and message 'ON'

Where is this entry from?

@itanczos This probably not related to the addon. Looks like the mqtt client had issues processing the message. As @zen mentioned, it would help to understand where the message was from.

The bug was terminated after a zigbee2mqtt (v.0.1.6) version upgrade.


VSWhere not returning "prerelease" versions

What You Are Seeing?
VSWhere not picking up pre-release VS2017 installs
What is Expected?
VSWhere has flag for prerelease versions
What version of Cake are you using?
Are you running on a 32 or 64 bit system?
What environment are you running on?  Windows? Linux? Mac?
Are you running on a CI Server?  If so, which one?
AppVeyor - https://ci.appveyor.com/project/dotnetfoundation/reactiveui/build/1.0.21
How Did You Get This To Happen? (Steps to Reproduce)
On machine with only latest VS2017 version (e.g. AppVeyor Visual Studio 2017 Preview builds)
I think the solution is to add an extra option that maps to "-prerelease" (see https://blogs.msdn.microsoft.com/heaths/2017/06/24/vswhere-version-2-0-released/) which is ignored on older versions of VSWhere but wanted to check before sending a PR in

This sounds like a great addition to Cake, PR would be welcome.

Fixed by #1755


Generate GQL schema

Having GQL types for the protos is required for downstream usage. Making them available for now.

When you get a chance, @pastuxso, could use see if the protos generate cleanly for you locally using runme run proto-dev? You may have to do a build first to pull in the latest dependencies.

Having trouble making protoc-gen-gql installable because it's kind of old.


Compilation on H100 fails with "Assertion `idx < size()' failed" in LLVM

We are trying to run the new Triton Split-K attention kernel from XFormers on H100. It fails at compilation stage on assertion idx < size() in llvm/ADT/SmallVector.h:
python: /root/.triton/llvm/llvm+mlir-17.0.0-x86_64-linux-gnu-centos-7-release/include/llvm/ADT/SmallVector.h:298: const T& llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::operator[](llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type) const [with T = long int; <template-parameter-1-2> = void; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::const_reference = const long int&; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type = long unsigned int]: Assertion `idx < size()' failed.
SIGABRT(6), PID: 3908092, Thread 3908092:
 frame #0: c10::FatalSignalHandler::stacktraceSignalHandler(bool) + 0x72 (0x7fa7a7192f92 in /home/grigorysizov/miniconda3/envs/xformers/lib/python3.9/site-packages/torch/lib/libc10.so)
frame #1: c10::FatalSignalHandler::fatalSignalHandler(int) + 0x152 (0x7fa7a7193432 in /home/grigorysizov/miniconda3/envs/xformers/lib/python3.9/site-packages/torch/lib/libc10.so)

Do you happen to have an idea what might be causing this?
Same code runs without errors on A100. It also runs without errors when debug-mode checks in C++ are turned off (so the problem might be in the assert itself?)
We are using triton==2.0.0, torch==2.0.1, pytorch-cuda=12.1 and commit 26ea807035920ece322176b478219b44b76ffc0e from XFormers
@bertmaher @bottler
Below is the script to reproduce the issue:
from xformers.ops import fmha

import torch

torch._C._set_print_stack_traces_on_fatal_signal(True)

def test_decoder(

) -> None:
    op = fmha.triton_splitk.FwOp
    n_heads = 8
    padding = 4096
    bsz = 8
    d = 128

    k_seqlen = [padding] * bsz
    q = torch.ones((1, bsz, n_heads, d), dtype=torch.bfloat16).cuda()

    k = torch.ones(1, bsz * padding, n_heads, d // 8 + 1, device=torch.device("cuda"), dtype=torch.int32)
    v = torch.ones(1, bsz * padding, n_heads, d // 8 + 1, device=torch.device("cuda"), dtype=torch.int32)

    k = k[:, :, :1].expand(k.shape)
    v = v[:, :, :1].expand(v.shape)

    attn_bias = fmha.attn_bias.BlockDiagonalCausalWithOffsetPaddedKeysMask.from_seqlens(
        q_seqlen=[1] * bsz,
        kv_seqlen=k_seqlen,
        causal_diagonal=None,
        kv_padding=padding,
    )
    inp = fmha.Inputs(q, k, v, attn_bias=attn_bias)

    decoder_output = fmha.memory_efficient_attention_forward(
        q, k, v, attn_bias, op=op
    )

if __name__ == "__main__":
    test_decoder()

I have a minimal repro attached that should reproduce the Index out of bounds issue on triton mainline attached. The problem appears to be a mismatch between the rank for opInfo and retTy in BroadcastOpAxisInfoVisitor::getAxisInfo (one is rank 2 the other is rank 3).
https://github.com/openai/triton/blob/470da8798fc5ff849ff287a370be30620cec610d/lib/Analysis/AxisInfo.cpp#L542
_fwd_kernel_splitK_min.ttggir.txt

I have a minimal repro attached that should reproduce the Index out of bounds issue on triton mainline attached. The problem appears to be a mismatch between the rank for opInfo and retTy in BroadcastOpAxisInfoVisitor::getAxisInfo (one is rank 2 the other is rank 3).
https://github.com/openai/triton/blob/470da8798fc5ff849ff287a370be30620cec610d/lib/Analysis/AxisInfo.cpp#L542
_fwd_kernel_splitK_min.ttggir.txt

Which instruction in the ttgir triggered the issue? I wonder if the ttgir itself is legal.

I have a minimal repro attached that should reproduce the Index out of bounds issue on triton mainline attached. The problem appears to be a mismatch between the rank for opInfo and retTy in BroadcastOpAxisInfoVisitor::getAxisInfo (one is rank 2 the other is rank 3).
https://github.com/openai/triton/blob/470da8798fc5ff849ff287a370be30620cec610d/lib/Analysis/AxisInfo.cpp#L542
_fwd_kernel_splitK_min.ttggir.txt

Which instruction in the ttgir triggered the issue? I wonder if the ttgir itself is legal.

I believe it is tt.broadcast, but if I bypass some of the other instructions in that IR it wont repro. I wonder the same myself. I am still trying to get a sense for where in the IR the rank info comes from.

I have a workaround that makes the failing tests using XFormers pass, but I want to. better understand how the tensor ranks are supposed to work together in this code:
diff --git a/lib/Analysis/AxisInfo.cpp b/lib/Analysis/AxisInfo.cpp
--- a/lib/Analysis/AxisInfo.cpp
+++ b/lib/Analysis/AxisInfo.cpp
@@ -538,6 +538,7 @@
     AxisInfo::DimVectorT divisibility;
     AxisInfo::DimVectorT constancy;
     for (int d = 0; d < retTy.getRank(); ++d) {
+      if (d >= opInfo.getRank()) continue;
       contiguity.push_back(opShape[d] == 1 ? 1 : opInfo.getContiguity(d));
       divisibility.push_back(opInfo.getDivisibility(d));
       constancy.push_back(opShape[d] == 1 ? retShape[d]

looks like the problem is that we don't handle ptr of tensor correctly. I can send a fix for that later.

looks like the problem is that we don't handle ptr of tensor correctly. I can send a fix for that later.

Is the problematic instruction the convert_layout then?
%6 = triton_gpu.convert_layout %5 : (tensor<64x16xi32, #blocked2>) -> tensor<64x16xi32, #triton_gpu.slice<{dim = 1, parent = #blocked7}>>

not really, the problem is %4 = tt.make_tensor_ptr %3, [%2, %2], [%2, %2], [%1, %1] {order = array<i32: 1, 0>} : <tensor<64x16xi32, #blocked2>, 1> but we don't have a pattern for it so it falls back to the default pessimistic function which gets the rank this way:
  auto rank = 1;
  if (TensorType ty = value.getType().dyn_cast<TensorType>())
    rank = ty.getRank();

and then the rank is propagated like that.

@joker-eph might have some insight on the best way to fix it. My intuition is that we use the rank of the tensor when we have a ptr of tensor.

not really, the problem is %4 = tt.make_tensor_ptr %3, [%2, %2], [%2, %2], [%1, %1] {order = array<i32: 1, 0>} : <tensor<64x16xi32, #blocked2>, 1> but we don't have a pattern for it so it falls back to the default pessimistic function which gets the rank this way:
  auto rank = 1;
  if (TensorType ty = value.getType().dyn_cast<TensorType>())
    rank = ty.getRank();

and then the rank is propagated like that.

Thanks Thomas. Just curious why we would hit the above code path. dyn_cast a triton::PointerType to a TensorType should be false, right?

not really, the problem is %4 = tt.make_tensor_ptr %3, [%2, %2], [%2, %2], [%1, %1] {order = array<i32: 1, 0>} : <tensor<64x16xi32, #blocked2>, 1> but we don't have a pattern for it so it falls back to the default pessimistic function which gets the rank this way:
  auto rank = 1;
  if (TensorType ty = value.getType().dyn_cast<TensorType>())
    rank = ty.getRank();

and then the rank is propagated like that.

Thanks Thomas. Just curious why we would hit the above code path. dyn_cast a triton::PointerType to a TensorType should be false, right?

right the code above would not be reached which was the problem, this is why we need to handle ptr of tensors and make sure we use the rank of the tensor:
  if (triton::PointerType ty = value.getType().dyn_cast<triton::PointerType>())
    if (TensorType elemTy = ty.getPointeeType().dyn_cast<TensorType>())
      rank = elemTy.getRank();


Windows window jittering resizing

Running app from starter project in Visual Studio, regardless of flutterMode in launch.json, produces window jitter on its resizing:
https://user-images.githubusercontent.com/46814554/127115866-c40c6db7-f897-4230-af31-797de6eda3e1.mp4
To reproduce the problem:

Create project from default template.
Run with/without debugging in release/debug mode.
Resize window by left/top side.

Expected results:
Smooth window resizing by left/top side.
Actual results:
Jittering resizing
To fix this, read the answer: https://stackoverflow.com/a/25364123/9486175

Hi @Oleksa3
This was reported in https://github.com/flutter/flutter/issues/76465, a duplicate of https://github.com/flutter/flutter/issues/79427
Closing as duplicate
If you disagree, please write in the comments and I will reopen it.
Thank you


Add battery percentage in de bar near the icon

Add battery percentage in de bar near the icon

Having more customisation like show the time remaining and/or battery %

I'm a bit torn on this. I kind of want to keep this tool very minimalist, especially since many of the commonly asked features are built into the battery icon that the system already has.
Can you explain why you want this feature? Why not just use the built-in battery icon for this?

Hi,I want to avoid 2 battery icon in the bar. If battery diplays the percentage I can remove the OS icon. May be you can add too in the menu an item to access to the battery configuration. JC. Le 11 févr. 2023 à 22:25, Mentor Palokaj @.***> a écrit :
I'm a bit torn on this. I kind of want to keep this tool very minimalist, especially since many of the commonly asked features are built into the battery icon that the system already has.
Can you explain why you want this feature? Why not just use the built-in battery icon for this?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

Is the current dropdown insufficient for you? It shows very similarly to the system dialogue:

well ... I also would like to only have one battery icon... I really like having the possibility to get time remaining battery...

But it says the time remaining?

No, the official battery tray icon gives you only battery percentage. While the command battery status can give you time remaining

It gives both, I'm very confused what you are talking about

you can use just the Command-line version, so you'll have only the system icon


Add hover effect in Web Series page

Add hover effect in Web Series page.

@QAZIMAAZARSHAD pls assign me this issue.

@QAZIMAAZARSHAD pls assign me this issue

@ishitakapoor26 and @Sumit11081996 this issue is already open https://github.com/QAZIMAAZARSHAD/Movie-Streaming-Website/issues/241.
Before opening any issue make sure that no other similar issue is open.


Clean branch name before creating artifacts.

Due to using git flow, when the branch 'release/0.10' was created, this was fine as a branch name but not as part of a file name. This replaces characters that are legal in branch names but illegal in filenames in order to avoid that issue.

Could you please use buildPlugin(configurations: buildPlugin.recommendedConfigurations())  so this plugin also can build on ci.jenkins.io? This would also allow testing the expected combinatorials from the Jenkins community standpoint for quality plugins.
You could use the the same as in https://github.com/jenkinsci/artifact-manager-s3-plugin/blob/cca5bc848c1acf59524ae66cf983d0fe6e9a9667/Jenkinsfile to be able to use different build process depending on the infra in use.
Thanks!