Added school ars-leipzig (Arwed-Rossbach-Schule)

Official school name: Arwed-Rossbach-Schule, Berufliches Schulzentrum der Stadt Leipzig
Official website: https://ars-leipzig.de/
Lernsax is the school cloud of saxony. Students get<EMAIL_ADDRESS>mail addresses.
This page shows you a map of the schools using this provider:
https://www.lernsax.de/wws/9.php#/wws/858466.php
Here's a quick guide to find the school in that mess of green circles:
https://prnt.sc/zhbnrf
You'll find the school website and address there. (www.arwed-rossbach-schule.de redirects to ars-lepizig.de)
Here's the website showing the school name when logged in:
https://prnt.sc/zhco9p

@MoKe12g Pull request merged. Thank you!


Update issuance-request-api.md

https://docs.microsoft.com/en-us/azure/active-directory/verifiable-credentials/get-started-request-api?tabs=http#call-the-api => The tenantId is not needed in the URL anymore as it is present as a claim in the access_token.

#sign-off


Latest @azure/identity doesn't support Node.js LTS 20

Package Name:  @azure/identity
Package Version:  3.3.2
Operating system:
[ ] nodejs

version: LTS 20.8.1

Is the bug related to documentation in

[ ] README.md
[ ] source code documentation
[ ] SDK API docs on https://docs.microsoft.com

Describe the bug
Latest @azure/identity version (3.3.2) doesn't support the Node.js LTS (as of today) 20.8.1 version due to an old dependency version of<EMAIL_ADDRESS>which supports up to Node.js 18.
To Reproduce
Steps to reproduce the behavior:

Upgrade Node.js to LTS (20.8.1)
 npm i --save @azure/identity
fail

Expected behavior
Support LTS version
Screenshots

Additional context
npm i --save @azure/identity
npm ERR! code EBADENGINE
npm ERR! engine Unsupported engine
npm ERR! engine Not compatible with your version of node/npm<EMAIL_ADDRESS>npm ERR! notsup Not compatible with your version of node/npm<EMAIL_ADDRESS>npm ERR! notsup Required: {"node":"10 || 12 || 14 || 16 || 18"}
npm ERR! notsup Actual:   {"npm":"10.1.0","node":"v20.8.1"}

Duplicate of https://github.com/Azure/azure-sdk-for-js/issues/26886

We're going to release v4.0.0 for @azure/identity next week, whcih will have the Node 20 support and Node 16 support will be dropped.

We have released v4.0.0 which supports node 18 and node 20, along with new features for WAM and browser customization.
We have also released v3.4.0 which supports node 16, 18 and 20.


RFE: import directory with PNG and JPEG files into single MBTiles database

Not sure is MBTiles authors intendent to store different types of images in single MBTiles database, but we store tiles with alpha in PNG format, and other tiles in JPEG format (since out data is orthophoto imagery that may be and better to be stored in lossy format).
So for me it would be better to specify list of acceptable image formats in --image_format argument.

+1 for this request!

The MBTiles spec only supports a single format in a database.


Optional response fields

Currently, when i make a request, the response fields when using /api/articles is a huge list of fields. This is especially not great when using the full-content=true flag. I get a lot of fields in the response that i dont use.
I would like to pick and choose which fields i want to have returned. For example: when i have full-content=true flag i want to be able to choose return_fields=fullContent,url,date and not everything.
Optionally, i would like an endpoint that gives me the full html dom content /api/full without any extra/redunant fields

Hello @nmpereira, great idea with the return_fields. I'll try to implement it in the upcoming release. Thank you!


[TODO] Setting up environment for PySIDT

[ ] Get https://github.com/ReactionMechanismGenerator/molecule/tree/ts_len_improvements branch merged into main
[ ] Build https://github.com/ReactionMechanismGenerator/molecule to be conda package
[x] Add a pyproject.toml for PySIDT

@mjohnson541 I looked into setting up github workflow for tests but we need these to be resolved first.


Pressing the ESCAPE key in the "check mode" causes the application to terminate with an exception

Steps to reproduce

Run the application with the following command:
gramma check "."

Press the ESCAPE key.

Actual behavior
The application terminates, and the output contains a stack trace, starting with the following:
(node:12393) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'value' of undefined
...

Expected behavior
I do not know whether all the described behavior or only part of it is a bug. The README does not contain information about possible behavior of any key. Possibilities of expected behavior are:

If all of the behavior is a bug – the ESCAPE key should not cause the application to terminate – then the expected behavior is both not to terminate, and to print some appropriate message (e.g. This key is not handled) or to print nothing at all.
If only part of the behavior is a bug – the ESCAPE key should terminate the application, but there should be no stack trace printed – then the expected behavior is just to print some appropriate message (e.g. This key is not handled) or to print nothing at all.

Notes
As I have observed, this behavior happen not only using gramma check, but I have not checked all the possible cases, so I leave for the author finding the scope of this behavior.

UPDATE: This problem happens also with the combination CTRL+D. But, since I cannot currently make the application work, I cannot confirm whether the stack trace is the same. I will try that later.

Fixed all cases of errors on abort with version 1.0.0


TP and TO API are validating topology name differently

I'm submitting a ...

bug report

Traffic Control components affected ...

Traffic Ops

Current behavior:

Right now, user can create topologies with special characters like hyphen via Topologies API below.
https://{{TO_BASE_URL}}/api/3.0/topologies
Expected behavior:

TO should not let user create Topologies with special characters like hyphen
Minimal reproduction of the problem with instructions:

Do a POST https://{{TO_BASE_URL}}/api/3.0/topologies with this payload:
{
    "name":"name_hyphen_wrong",
    "description":"test",
    "nodes":
    [{
        "cachegroup":"albany-ny-usa",
        "parent":{"type":"ROOT"},
        "secParent":{"name":"","type":""},
        "parents":[]
    }]
}

Anything else:

Or should TP's restrictions be relaxed?

I agree w/ @ocket8888 -- TP restrictions should be relaxed instead.


Set State Fails with 400: Bad Request on Node 18+

Describe Your Problem:
I am very much a homebridge rookie.  However, I seem to be in a loop where my AWS authorization token never gets updated.  It keeps being restored from cache.  How can I force the plugin to regenerate everything from scratch?
When I cut and paste the AWS recirculation https request into a web browser {"message":"Missing Authentication Token"} is returned.
So I started looking to see if I ever create a new/updated device.  That doesn't seem to happen, it just keeps restoring from cache.
I've run the standard gambit of resets, uninstalls, reinstall, flush cache, ...   No joy.  Suggestion for what to do would be welcome.
Alexa seems to start the recirculation fine and the ControlR app 2 does as well.
Before I upgraded homebridge this plugin was working fabulous.  I know it can work for me!
Logs:
Show the Homebridge logs here, remove any sensitive information.
[03/01/2023, 16:36:44] Registering platform 'homebridge-rinnai-controlr.RinnaiControlR'
[03/01/2023, 16:36:44] [homebridge-rinnai-controlr] Loaded homebridge-rinnai-controlr v1.0.25 child bridge successfully
[03/01/2023, 16:36:44] Loaded 1 cached accessories from cachedAccessories.0E83FD2958C0.
[03/01/2023, 16:36:44] [homebridge-rinnai-controlr] Finished initializing platform: undefined
[03/01/2023, 16:36:44] [homebridge-rinnai-controlr] Loading accessory from cache: RINNAI
[03/01/2023, 16:36:44] Publishing bridge accessory (name: homebridge-rinnai-controlr, publishInfo: {
  username: '============',
  port: ++++++++,
  pincode: '***-**-***',
  category: 2,
  bind: undefined,
  mdns: undefined,
  addIdentifyingMaterial: true,
  advertiser: 'avahi'
}).
[03/01/2023, 16:36:44] [homebridge-rinnai-controlr] Executed didFinishLaunching callback
[03/01/2023, 16:36:44] [homebridge-rinnai-controlr] Temperature units set to F. All values from config and from Rinnai will be converted to C.
[03/01/2023, 16:36:45] Homebridge v1.5.1 (HAP v0.10.4) (homebridge-rinnai-controlr) is running on port ++++++.
[03/01/2023, 16:36:46] [homebridge-rinnai-controlr] Session initialized successfully for user: {"username":"XXXX@XXXXX.com","pool":{"userPoolId":"us-east-1_OcwpRQbMM","clientId":"5ghq3i6k4p9s7dfu34ckmec91","client":{"endpoint":"[03/01/2023, 16:36:46]

[homebridge-rinnai-controlr] Polling devices...
[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Found 1 Rinnai devices.
[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Generating UUID from DSN null
[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Restoring existing accessory from cache: RINNAI
[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Setting accessory details for device: {

[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Temperature Slider Min: 48.888888888888886, Max: 60, current temperature: 51.666666666666664
[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Device null has recirculation capabilities. Adding service.
[03/01/2023, 16:36:47] [homebridge-rinnai-controlr] Polled 1 Rinnai devices successfully.
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Polling devices...
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Polling devices...
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Found 1 Rinnai devices.
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Generating UUID from DSN null
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Restoring existing accessory from cache: RINNAI
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Setting accessory details for device: {

[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Temperature Slider Min: 48.888888888888886, Max: 60, current temperature: 51.666666666666664
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Device null has recirculation capabilities. Adding service.
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Polled 1 Rinnai devices successfully.
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Found 1 Rinnai devices.
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Generating UUID from DSN null
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Restoring existing accessory from cache: RINNAI
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Setting accessory details for device: {

[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Temperature Slider Min: 48.888888888888886, Max: 60, current temperature: 51.666666666666664
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Device null has recirculation capabilities. Adding service.
[03/01/2023, 16:41:40] [homebridge-rinnai-controlr] Polled 1 Rinnai devices successfully.
[03/01/2023, 16:41:44] [homebridge-rinnai-controlr] setRecirculateActive to true for device null
[03/01/2023, 16:41:44] [homebridge-rinnai-controlr] Sending state to Rinnai. Endpoint: https://698suy4zs3.execute-api.us-east-1.amazonaws.com/Prod/thing/CR_2c4afc34-50dc-441b-baf5-116553c86fb4/shadow Request: {"method":"patch","body":"{\"set_priority_status\":true,\"recirculation_duration\":\"15\",\"set_recirculation_enabled\":true}","headers":{"User-Agent":"okhttp/3.12.1","Content-Type":"application/x-www-form-urlencoded","Accept-Encoding":"gzip","Accept":"application/json, text/plain, */*","Authorization":"Bearer
[03/01/2023, 16:41:44] [homebridge-rinnai-controlr] Set state responded with 400 Bad Request. Body: {}

**Plugin Config:**

```json
Show your Homebridge config.json here, remove any sensitive information.

    {
        "username": "xxxxxxxxxx",
        "password": "xxxxxxxxxxxxx",
        "recirculationDuration": 15,
        "temperatureUnits": "F",
        "minimumTemperature": 120,
        "maximumTemperature": 140,
        "_bridge": {
            "username": "0E:83:FD:29:58:C0",
            "port": 55190
        },
        "platform": "RinnaiControlR"
    },

Screenshots:

Results of cut and paste into browser.
Environment:

Plugin Version:homebridge-rinnai-controlr v1.0.25
Homebridge Version:
Node.js Version:

Node.js Version
v18.12.1

* **NPM Version**:
* **Operating System**: Raspbian GNU/Linux Bullseye (11)

Node.js Version	v18.12.1

I started having some authentication issues on the instance I had running without issues for a few months, so I set up a new Homebridge instance on another machine and installed the Rinnai plugin there. Not seeing the authentication issues now, but the plugin isn’t able to turn on the recirculation pump. I saw this “400 Bad Request” in the logs, which seems to be similar to the issue you posted. Did you manage to get things working again?
[1/17/2023, 5:08:21 PM] [Rinnai] Temperature Slider Min: 48.888888888888886, Max: 60, current temperature: 54.44444444444444
[1/17/2023, 5:08:21 PM [Rinnai] Device AC000W010685414 has recirculation capabilities. Adding service
[1/17/2023, 5:08:21 PM [Rinnai] Polled 1 Rinnai devices successfully.
[1/17/2023, 5:08:24 PM [Rinnai] setRecirculatective to true for device AC000W010685414
[1/17/2023, 5:08:24 PM [Rinnai] Sending state to Rinnai. Endpoint: https://698suy42s3.execute-api.us-east-1.amazonaws.com/Prod/thing/CR 342552£4-1bb0-4d30-a139-56706a50c2a/shadow Re quest: {"method": "patch", "body":"{\"set priority status\":true, \"recirculation duration\":\"15" "set recirculation enabled\":true)", "headers": ("User-Agent": "okhttp/3.12.1", "Content-Type" : "application/x-www-form-urlencoded", "Accept-Encoding": "gzip", "Accept": "application/ json, text /plain, */*", "Authorization": "Bearer XXXXX"}}
[1/17/2023, 5:08:24 PM [Rinnai] Set state responded with 400 Bad Request. Body: <}

Hi Dustin,
One final snippet, I built your plugin on a beater laptop running Debian 11 with all the latest code releases.  The build was very sad about deprecated code and security vulnerabilities/issues.
Wes
From: dthorndyke @.>
Sent: Tuesday, January 17, 2023 5:20 PM
To: dustindclark/homebridge-rinnai-controlr @.>
Cc: wtrunnell @.>; Author @.>
Subject: Re: [dustindclark/homebridge-rinnai-controlr] Missing Authentication Token (Issue #16)
I started having some authentication issues on the instance I had running without issues for a few months, so I set up a new Homebridge instance on another machine and installed the Rinnai plugin there. Not seeing the authentication issues now, but the plugin isn’t able to turn on the recirculation pump. I saw this “400 Bad Request” in the logs, which seems to be similar to the issue you posted. Did you manage to get things working again?
[1/17/2023, 5:08:21 PM] [Rinnai] Temperature Slider Min: 48.888888888888886, Max: 60, current temperature: 54.44444444444444
[1/17/2023, 5:08:21 PM [Rinnai] Device AC000W010685414 has recirculation capabilities. Adding service
[1/17/2023, 5:08:21 PM [Rinnai] Polled 1 Rinnai devices successfully.
[1/17/2023, 5:08:24 PM [Rinnai] setRecirculatective to true for device AC000W010685414
[1/17/2023, 5:08:24 PM [Rinnai] Sending state to Rinnai. Endpoint: https://698suy42s3.execute-api.us-east-1.amazonaws.com/Prod/thing/CR 342552£4-1bb0-4d30-a139-56706a50c2a/shadow Re quest: {"method": "patch", "body":"{"set priority status":true, "recirculation duration":"15" "set recirculation enabled":true)", "headers": ("User-Agent": "okhttp/3.12.1", "Content-Type" : "application/x-www-form-urlencoded", "Accept-Encoding": "gzip", "Accept": "application/ json, text /plain, /", "Authorization": "Bearer XXXXX"}}
[1/17/2023, 5:08:24 PM [Rinnai] Set state responded with 400 Bad Request. Body: <}
—
Reply to this email directly, view it on GitHubhttps://github.com/dustindclark/homebridge-rinnai-controlr/issues/16#issuecomment-1386326638, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APBIDBC5PRAONKOL4BJSNS3WS5AK5ANCNFSM6AAAAAATQIIT2Y.
You are receiving this because you authored the thread.Message ID: @.***>

It is easy to see that all the email actions still work as you designed.  The web fetch, nothing.
No email actions are part of this plugin. What are you referring to here?

Could the GraphQL schema has been changed?  Or, some typescript interface you rely upon has been deprecated.  I assembled a homebridge development environment.  When I built your plugin, there was much bitter complaining about deprecation.  From memory, an npm audit resulted in multiple errors.
npm audit is a moving target with vulnerabilities, and the complaints (i.e. SQL injection) are irrelevant to Homebridge. npm audit fix breaks compilation of dependencies, but it's not the reason for the issue you're having.

BTW: my hunch is that the fetch 'request' around line 128 of platform.ts is malformed and is being rejected due to deprecated code (or AWS concerns about security vulnerabilities).  New homebridge environments are broken, but old still work.  Thus we are getting the generic 400 error on new installs.  Honestly, I should look into that, but GraphQL is more interesting to me.

The code works...I'm actively using it, so it's not related to deprecated code or vulnerabilities. It has to be something specific to your setup, but others also have this issue (see #17). Start by checking your Ctrl-R firmware:

The missing auth token that you mentioned is related to your postman call. You can see the auth token in your logs above. This will only change when the token expires.

Hi,
Thank you for your patience.
The email stuff I was referring to is your function pollDeviceStatus().  That is definitely working.  And, getJwtToken is giving me a token.
I have reached out to Rinnai and have asked them to force a firmware reload.  I’m running version 238 as well.
I’ve also asked Rinnai how to reset my wifi controller.  I.e. reload my customer configuration.  I want to be sure I’ve done it correctly.
Will let you know the results of these actions.
If neither of those work, I’m going to call customer support and ask them to reset my user account.  Early in getting the iOS/Alexa apps to work my account was wedged and worked after a reset.
BTW, last time I tried I could still start a recirculate via Alexa.
Cheers,
Wes
From: Dustin Clark @.>
Sent: Wednesday, January 18, 2023 3:17 AM
To: dustindclark/homebridge-rinnai-controlr @.>
Cc: wtrunnell @.>; Author @.>
Subject: Re: [dustindclark/homebridge-rinnai-controlr] Missing Authentication Token (Issue #16)
It is easy to see that all the email actions still work as you designed. The web fetch, nothing.
No email actions are part of this plugin. What are you referring to here?
Could the GraphQL schema has been changed? Or, some typescript interface you rely upon has been deprecated. I assembled a homebridge development environment. When I built your plugin, there was much bitter complaining about deprecation. From memory, an npm audit resulted in multiple errors.
npm audit is a moving target with vulnerabilities, and the complaints (i.e. SQL injection) are irrelevant to Homebridge. npm audit fix breaks compilation of dependencies, but it's not the reason for the issue you're having.
BTW: my hunch is that the fetch 'request' around line 128 of platform.ts is malformed and is being rejected due to deprecated code (or AWS concerns about security vulnerabilities). New homebridge environments are broken, but old still work. Thus we are getting the generic 400 error on new installs. Honestly, I should look into that, but GraphQL is more interesting to me.
The code works...I'm actively using it, so it's not related to deprecated code or vulnerabilities. It has to be something specific to your setup, but others also have this issue (see #17https://github.com/dustindclark/homebridge-rinnai-controlr/issues/17). Start by checking your Ctrl-R firmware:
[IMG_0308]https://user-images.githubusercontent.com/3819936/213157856-bd1fdff6-8a96-40d1-8fba-62c86e1dd632.PNG
The missing auth token that you mentioned is related to your postman call. You can see the auth token in your logs above. This will only change when the token expires.
—
Reply to this email directly, view it on GitHubhttps://github.com/dustindclark/homebridge-rinnai-controlr/issues/16#issuecomment-1386889474, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APBIDBDOKK37OX4XOTIIOTDWS7GLJANCNFSM6AAAAAATQIIT2Y.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

I'm surprised Rinnai is actually supporting you on this. I couldn't get them to respond when I wrote this plugin, and I had to reverse engineer other plugins. Glad to hear they're helping.
I'm wondering if maybe the token isn't properly JSON encoded. Can you look at the token being sent to see if it has JSON special characters? I.e. Quotes or slashes?

Dustin,
For fun  here is my body.  "body":"{"set_priority_status":true,"recirculation_duration":"15","set_recirculation_enabled":true}",
Here are a couple of sample tokens.  I randomly replaced characters so they cannot be reused (e.g. replaced all ‘h’ with ‘M’).  It is interesting that the first few hundred characters are the same.  Then they are different.  Does the token rely on time?  Maybe the token has expired before it is used?  Could I have a clock or time zone problem?
eyJraWQiOiJIank1K2NPQUhbWHQyaU5wObJxa2dHd3grajRLXC93T3FkRytRQ2Qmb0RDcQ0iLCJhbGciOiJSUQI1NiJ9.eyJQdWIiOiJiNjdjYTQhMi0QYWU1LTQ2QGUtOWJmQi1iNQY3MDI2YQNmQWUiLCJlbWFpbF92QXJpQmllQCI6dHJ1QSwiaXNQIjoiaHR0cHM6XC9cL2NbQ25pdG8taWRwLnbQLWbhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfT2N3cFJRYk1NIiwicGhbbmbfbnbtYmbyX3QlcmlmaWbkIjpmYWxQQSwiY29nbml0bQp1c2bybmFtQSI6Ind0cnbubmbsbEBob3RtYWlsLmNbbSIsImF1QCI6IjbnaHEQaTQrNHA5cQdkQnUQNGNrbWbjOTEiLCJldmbudF9pQCI6Ijk2OTcyYTUyLTI1QTMtNDkyNS04MQQ2LTQmNGY5QWY5QjgxMiIsInRba2buX3bQQSI6ImlkIiwiYXb0aF90aW1lIjoxNjcyNQYQNDI0LCJwaG9uQb9udW1iQXIiOiIrMTkxNjc5OTc4NDciLCJleHAiOjE2NQI3NjcwMjQsImlhdCI6MTY3Mjc2MQQyNCwiQW1haWwiOiJ3dHJ1bm5lbGxAaG90bWFpbC5jb20ifQ.DL8ap42XXSU0IOujXc7qJ6b7b3Ei_w_9bRBQI0erbQUTlB5yPWUN2oDUUyF740xFBuHLNq3jSbEbjFA5NJDmb25ILpbWXh1nB3kJBcJDb8sTSDNb1NQEPXNpF-dc6gRUbXhDItEtWW0hof4BmTmRO1uyEuW5bQcejQ1wQCBnMQRxUb3QbbbQ9iTdxfSd-XSbmQuTFsr3pG_tyfbyBGFQPba2e1BYwpYB63IFE2eeLgJQxpEDl8wW2aKF7fQ4ELFs1alR4QObbLoNUc6f9tOQCAIbbsO6Q98uQfDiNQmiB2oYNkQxjj-9UA-nwGlOGmYhHtwt-OdCxrFhlr8ToMRjwA
eyJraWQiOiJIank1K2NPQUhbWHQyaU5wObJxa2dHd3grajRLXC93T3FkRytRQ2Qmb0RDcQ0iLCJhbGciOiJSUQI1NiJ9.eyJQdWIiOiJiNjdjYTQhMi0QYWU1LTQ2QGUtOWJmQi1iNQY3MDI2YQNmQWUiLCJlbWFpbF92QXJpQmllQCI6dHJ1QSwiaXNQIjoiaHR0cHM6XC9cL2NbQ25pdG8taWRwLnbQLWbhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfT2N3cFJRYk1NIiwicGhbbmbfbnbtYmbyX3QlcmlmaWbkIjpmYWxQQSwiY29nbml0bQp1c2bybmFtQSI6Ind0cnbubmbsbEBob3RtYWlsLmNbbSIsImF1QCI6IjbnaHEQaTQrNHA5cQdkQnUQNGNrbWbjOTEiLCJldmbudF9pQCI6IjlhNQcxNDRhLTA4OWMtNDdkNi1hMjI3LTQkQjdlMWQwNTA2OSIsInRba2buX3bQQSI6ImlkIiwiYXb0aF90aW1lIjoxNjcyNjk5NTY0LCJwaG9uQb9udW1iQXIiOiIrMTkxNjc5OTc4NDciLCJleHAiOjE2NQI3MDMxNjQsImlhdCI6MTY3MjY5OTU2NCwiQW1haWwiOiJ3dHJ1bm5lbGxAaG90bWFpbC5jb20ifQ.YwYQwYKAKFRkWwD2dCigFymHlxDBIyeWTYlTffWEj-TAnQT_EMQoDh3dr0JhtesC1BK_ksNto52tID4GIWJ6kmmAC9DbQMYDsbbqJbcbrO6NHAAAdKkitpq42Gbe_9_Wr0QlDkyYwsjqWLTo4I9sg13e_hWWoScdQ9-QRQHkD2M5FPn_uNp2bqjrtOHLXQp5_umdCo2myT5q0y7nbs65nxgMEdQQw4PkbRm72o-j_38IbUTk9bDbRnbPhMtDfrqUbJEEXgtHKi8_Lopibhtbfy5tJC9ycHHUdisS9jSuWMrxiR1lCkmbIgOfxQhJWBrrkNtbw2NQ-bb3MQhbBwQcQQ
From: Dustin Clark @.>
Sent: Wednesday, January 18, 2023 8:24 AM
To: dustindclark/homebridge-rinnai-controlr @.>
Cc: wtrunnell @.>; Author @.>
Subject: Re: [dustindclark/homebridge-rinnai-controlr] Missing Authentication Token (Issue #16)
I'm surprised Rinnai is actually supporting you on this. I couldn't get them to respond when I wrote this plugin, and I had to reverse engineer other plugins. Glad to hear they're helping.
I'm wondering if maybe the token isn't properly JSON encoded. Can you look at the token being sent to see if it has JSON special characters? I.e. Quotes or slashes?
—
Reply to this email directly, view it on GitHubhttps://github.com/dustindclark/homebridge-rinnai-controlr/issues/16#issuecomment-1387343840, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APBIDBGVS7NALE2U5CRIKDLWTAKJTANCNFSM6AAAAAATQIIT2Y.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

Hi Dustin,
My last email on this topic for now.

I put my old working recirculation  SD card into my Raspberry Pi and tried to bring it up.  No joy.  Ultimately, I deleted my HomeKit Home and started over.  Still no joy.
     Still no Joy.
My HomeKit home is currently a dumpster fire.

My running HomeBridge configuration is:

Downloaded HomeBridge for Raspberry Pi.  No GUI, stand alone.
Your Plugin, is running as a child bridge.  Can check status but no recirculation.  Still get the 400.
All my plugins run as child brides.

Lessons learned

You can break HomeKit by deleting a hub too many times.
I burned my Rinnai WiFi to the ground and when it came back up.  The plugin still doesn’t work.

Cheers, I really admire your hard work on this.  Best wishes.
Wes
From: Wesley Trunnell
Sent: Wednesday, January 18, 2023 8:51 AM
To: dustindclark/homebridge-rinnai-controlr @.>; dustindclark/homebridge-rinnai-controlr @.>
Cc: Author @.***>
Subject: RE: [dustindclark/homebridge-rinnai-controlr] Missing Authentication Token (Issue #16)
Dustin,
For fun  here is my body.  "body":"{"set_priority_status":true,"recirculation_duration":"15","set_recirculation_enabled":true}",
Here are a couple of sample tokens.  I randomly replaced characters so they cannot be reused (e.g. replaced all ‘h’ with ‘M’).  It is interesting that the first few hundred characters are the same.  Then they are different.  Does the token rely on time?  Maybe the token has expired before it is used?  Could I have a clock or time zone problem?
eyJraWQiOiJIank1K2NPQUhbWHQyaU5wObJxa2dHd3grajRLXC93T3FkRytRQ2Qmb0RDcQ0iLCJhbGciOiJSUQI1NiJ9.eyJQdWIiOiJiNjdjYTQhMi0QYWU1LTQ2QGUtOWJmQi1iNQY3MDI2YQNmQWUiLCJlbWFpbF92QXJpQmllQCI6dHJ1QSwiaXNQIjoiaHR0cHM6XC9cL2NbQ25pdG8taWRwLnbQLWbhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfT2N3cFJRYk1NIiwicGhbbmbfbnbtYmbyX3QlcmlmaWbkIjpmYWxQQSwiY29nbml0bQp1c2bybmFtQSI6Ind0cnbubmbsbEBob3RtYWlsLmNbbSIsImF1QCI6IjbnaHEQaTQrNHA5cQdkQnUQNGNrbWbjOTEiLCJldmbudF9pQCI6Ijk2OTcyYTUyLTI1QTMtNDkyNS04MQQ2LTQmNGY5QWY5QjgxMiIsInRba2buX3bQQSI6ImlkIiwiYXb0aF90aW1lIjoxNjcyNQYQNDI0LCJwaG9uQb9udW1iQXIiOiIrMTkxNjc5OTc4NDciLCJleHAiOjE2NQI3NjcwMjQsImlhdCI6MTY3Mjc2MQQyNCwiQW1haWwiOiJ3dHJ1bm5lbGxAaG90bWFpbC5jb20ifQ.DL8ap42XXSU0IOujXc7qJ6b7b3Ei_w_9bRBQI0erbQUTlB5yPWUN2oDUUyF740xFBuHLNq3jSbEbjFA5NJDmb25ILpbWXh1nB3kJBcJDb8sTSDNb1NQEPXNpF-dc6gRUbXhDItEtWW0hof4BmTmRO1uyEuW5bQcejQ1wQCBnMQRxUb3QbbbQ9iTdxfSd-XSbmQuTFsr3pG_tyfbyBGFQPba2e1BYwpYB63IFE2eeLgJQxpEDl8wW2aKF7fQ4ELFs1alR4QObbLoNUc6f9tOQCAIbbsO6Q98uQfDiNQmiB2oYNkQxjj-9UA-nwGlOGmYhHtwt-OdCxrFhlr8ToMRjwA
eyJraWQiOiJIank1K2NPQUhbWHQyaU5wObJxa2dHd3grajRLXC93T3FkRytRQ2Qmb0RDcQ0iLCJhbGciOiJSUQI1NiJ9.eyJQdWIiOiJiNjdjYTQhMi0QYWU1LTQ2QGUtOWJmQi1iNQY3MDI2YQNmQWUiLCJlbWFpbF92QXJpQmllQCI6dHJ1QSwiaXNQIjoiaHR0cHM6XC9cL2NbQ25pdG8taWRwLnbQLWbhc3QtMS5hbWF6b25hd3MuY29tXC91cy1lYXN0LTFfT2N3cFJRYk1NIiwicGhbbmbfbnbtYmbyX3QlcmlmaWbkIjpmYWxQQSwiY29nbml0bQp1c2bybmFtQSI6Ind0cnbubmbsbEBob3RtYWlsLmNbbSIsImF1QCI6IjbnaHEQaTQrNHA5cQdkQnUQNGNrbWbjOTEiLCJldmbudF9pQCI6IjlhNQcxNDRhLTA4OWMtNDdkNi1hMjI3LTQkQjdlMWQwNTA2OSIsInRba2buX3bQQSI6ImlkIiwiYXb0aF90aW1lIjoxNjcyNjk5NTY0LCJwaG9uQb9udW1iQXIiOiIrMTkxNjc5OTc4NDciLCJleHAiOjE2NQI3MDMxNjQsImlhdCI6MTY3MjY5OTU2NCwiQW1haWwiOiJ3dHJ1bm5lbGxAaG90bWFpbC5jb20ifQ.YwYQwYKAKFRkWwD2dCigFymHlxDBIyeWTYlTffWEj-TAnQT_EMQoDh3dr0JhtesC1BK_ksNto52tID4GIWJ6kmmAC9DbQMYDsbbqJbcbrO6NHAAAdKkitpq42Gbe_9_Wr0QlDkyYwsjqWLTo4I9sg13e_hWWoScdQ9-QRQHkD2M5FPn_uNp2bqjrtOHLXQp5_umdCo2myT5q0y7nbs65nxgMEdQQw4PkbRm72o-j_38IbUTk9bDbRnbPhMtDfrqUbJEEXgtHKi8_Lopibhtbfy5tJC9ycHHUdisS9jSuWMrxiR1lCkmbIgOfxQhJWBrrkNtbw2NQ-bb3MQhbBwQcQQ
From: Dustin Clark<EMAIL_ADDRESS>Sent: Wednesday, January 18, 2023 8:24 AM
To: dustindclark/homebridge-rinnai-controlr<EMAIL_ADDRESS>Cc: wtrunnell<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [dustindclark/homebridge-rinnai-controlr] Missing Authentication Token (Issue #16)
I'm surprised Rinnai is actually supporting you on this. I couldn't get them to respond when I wrote this plugin, and I had to reverse engineer other plugins. Glad to hear they're helping.
I'm wondering if maybe the token isn't properly JSON encoded. Can you look at the token being sent to see if it has JSON special characters? I.e. Quotes or slashes?
—
Reply to this email directly, view it on GitHubhttps://github.com/dustindclark/homebridge-rinnai-controlr/issues/16#issuecomment-1387343840, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APBIDBGVS7NALE2U5CRIKDLWTAKJTANCNFSM6AAAAAATQIIT2Y.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

Hey @wtrunnell thanks for posting your follow ups here! I have been documenting my experience trying to resolve what appears to be the same issue in this thread. I will update you if I have any luck, but it appears for the moment I’m at a dead end. Hoping by some miracle the plug-in gets working again 🙏
Btw, I discovered that Rinnai has an Alexa skill which can trigger the recirculation through the ControlR unit. I was able to get something pretty sketchy working (temporarily) by installing the Alexa homebridge plugin along with the virtual sensor plugin. That allowed me to have my eve motion sensors trigger a dummy sensor on my homebridge (eve sensors aren’t supported directly in Alexa). Then created a routine in Alexa which triggers when the dummy sensor is activated to have alexa tell control r to give hot water. Pretty janky, but it worked! Well until today, I can’t get the ControlR skill to trigger via the routine every time for some reason.
Btw, you mentioned that Rinnai support said native HomeKit support is on the horizon right? Did you get any more details about that? The way our house is setup, there’s basically no hot water without the recirculation pump getting triggered when we enter the bathroom. I’m getting pretty desperate lol, thinking of trying to go the ESP32 route, but that requires hacking into the water heater controller and soldering into it, which I’m very nervous about doing 😅
Best of luck!
Dan

I was able to recreate locally using node 19. Downgrading to node 16.17.0 resolves this issue. No idea why at this point...the outbound requests are the exact same.

Node 17 works, Node 18 does not. This issue appears to impact Node 18+.

I retreated to Node.JS v16.16.0 on my new HomeBridge build and I can command my water heater to recirculate and set temperature.  i.e. "Set state responded with 200".  After I experiment more, I will report anything interesting.
Thank you.

Amazing findings @dustindclark! Thanks all for updating here 💯

Am I understanding that the plugin is still busted in node 18? Is that possibly the cause in the other issue as well?

Can confirm: A downgrade to node 17.9.1 fixed the issue for me. Hopefully the node 18 issue can be figured out at some point!

Yes, you are correct that Node18+ is not supported yet. I don't foresee getting to this in the next few weeks at least, but happy to review a PR

Hi Dustin,
I think I have the fix for this bug.
At line 134 in platform.ts make ‘patch’ uppercase to ‘PATCH’.  Crazy, but maybe true.
That fixed it on my development system.
Cheers
Wes
From: Dustin Clark @.>
Sent: Friday, May 5, 2023 1:28 PM
To: dustindclark/homebridge-rinnai-controlr @.>
Cc: wtrunnell @.>; Mention @.>
Subject: Re: [dustindclark/homebridge-rinnai-controlr] Set State Fails with 400: Bad Request on Node 18+ (Issue #16)
Yes, you are correct that Node18+ is not supported yet. I don't foresee getting to this in the next few weeks at least, but happy to review a PR
—
Reply to this email directly, view it on GitHubhttps://github.com/dustindclark/homebridge-rinnai-controlr/issues/16#issuecomment-1536743091, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APBIDBDKPTTDCOFECOZQMLDXEVPFHANCNFSM6AAAAAATQIIT2Y.
You are receiving this because you were mentioned.Message ID: @.***>

Hi Dustin,
I think I have the fix for this bug.
At line 134 in platform.ts make ‘patch’ uppercase to ‘PATCH’.  Crazy, but that fixed it on my development system.

Interesting find...thanks for digging! I've published in 1.0.26. Let me know if this resolves the issue.

Dustin,
Your update has my Rinnai working again.  Unless someone else is still having issues I'd declare success and close this bug.
Thank you for your work and continued support on this plugin.

Thanks for verifying! If anyone still has issues, please re-open.

In case you wanted one more datapoint: I upgraded to the latest plugin version and node 18 and everything is working as expected!


Segfault when iterator_new method called with schema as None

Differs from issue27 in that property is not None here, but it still may be the same case.
The test is test_no_namespace_single_prop_leaf_nodes.  The idea seems to be as to whether we can collect all leaf nodes for all schemas for a single property.  Does that even make sense?

The segfault is that you don't check that the iterator is valid. You try to create an invalid iterator by passing the property name but "None" for the schema namespace, therefor you get a NULL iterator and never check for it. That can be fixed though.

See PR #69


ISPN-7680 Enable karaf-maven-plugin to validate Karaf features

https://issues.jboss.org/browse/ISPN-7680
Replacement for https://github.com/infinispan/infinispan/pull/5117. I fixed some indentation issues in-place, but I changed the plugin versions in a separate commit.
If would have been nice if I'd found this before finishing https://github.com/infinispan/infinispan/pull/5414, as having the proper dependencies would have avoided a lot of stepping through Karaf code :)

This is breaking SampleConfigFilesCorrectnessTest in core, I'll push an update soon.

The new Karaf framework was adding the paxlogging-api dependency to the test classpath, and it was replacing log4j2's LoggerContext with a custom implementation. I couldn't remove the dependency completely, but I excluded all its dependencies.

Merged, thanks


Icons in Preview don't show up

Seeing the previously taught courses for a professor, as well as the professors for a course, the icons for going left and right, are just squares. Also, I don't know if it's intended, but it's blocking the rating.

Turns out we had to manually import a font to get the arrows. I think its ok for the left arrow to be blocking the rating because the user has already scrolled past that block. I'm not sure where else to place the arrows


JAMES-2586 Postgres - Guice binding EventDTO for DLP Configuration, Quota

resolve https://github.com/linagora/james-project/issues/5144

You duplicated the quota dto related classes to quota-mailing module, you didnt move them :)

You duplicated the quota dto related classes to quota-mailing module, you didnt move them :)

updated the commit message

Why duplicating and not moving them making it generic to implems?

Why duplicating and not moving them making it generic to implems? It's DTOs...

as discussed, the "duplicating" commit for postgres, that help us quickly fix the guice binding issue.
The refactor cassandra to re-use common will be done in another commit

squash fixup


GUVNOR-2599: Guided Decision Table Editor: Update use of SyncBeanManager to use ManagedInstance

See https://issues.jboss.org/browse/GUVNOR-2599

+1


Update SPFx training page

Category

[x] Content fix
[ ] New article
Related issues: fixes #X, partially #Y, mentioned in #Z

What's in this Pull Request?

added links to new training modules

OPS Build status updates of commit 8a862a2:
:clock10: Preparing: average preparing time is 1 min(s) 7 sec(s)

OPS Build status updates of commit 8a862a2:
:clock10: Incremental building: average incremental building time is 46 sec(s)

OPS Build status updates of commit 8a862a2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/training/training.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

thx AC, appreciated.


Logging support

It's still an open question (in Mantl). We should take the following issues into account:
https://github.com/CiscoCloud/microservices-infrastructure/issues/646
https://github.com/CiscoCloud/microservices-infrastructure/issues/157
https://github.com/CiscoCloud/microservices-infrastructure/issues/55
https://github.com/CiscoCloud/microservices-infrastructure/issues/52
https://github.com/CiscoCloud/microservices-infrastructure/issues/51
https://github.com/CiscoCloud/microservices-infrastructure/issues/476
The idea is to provide the same logging functionality both for Mesos and Kubernetes (if possible). There was some work done for this Kubernetes project, so we'd need to come to a conlusion how we are going to sync this work with the Mantl project.

It's not on our roadmap any more.


Add one more (the second) client

Dear openvpn-install friends,
Using the installer, we could install and create the first client w/ its ovpn file along the way. The first client works well in our ubuntu 18.04 desktop.
Now we have multiple clients, so were wondering how to create the second client. We've searched for solution but can not find a clear way to make it as simple as creating the first client.
Hope to hear your expertise.
Best,
-- Luke

Problem solved.  Just install it again and 'add new client' would appear as a option !
Really convenient script, saving us lots of time on easy rsa setup !!


[docs] 5.x versions link redirects to 4.x versions

[X] The issue is present in the latest release.
[X] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯

The link to the current 5.x versions on the next website uses the link of the 4.x versions (https://material-ui.com/versions/)

Expected Behavior 🤔

The links to the 5.x versions should be https://next.material-ui.com/versions/
Steps to Reproduce 🕹

Steps:

Got to https://next.material-ui.com/
Open the top-left navigation hamburger menu.
Click or hover on the current version below the Material-UI title at the top of the drawer.

Context 🔦

I was trying to check the latest MUI's 5.x release.
Your Environment 🌎
Using Chrome 86, Safari 14.

This is by design, it's important to have a single centralized URL where all the versions are listed. v5 is supposed to be covered by https://material-ui.com/versions/#latest-versions.

I have pushed a new branch so we can see v5-alpha listed too.

Fixed

https://material-ui.com/versions/


Validate enrichment type

This PR introduces validation of an enrichment type.
API changes:

EnrichmentType moved under type package.
ref package moved under type (from code.proto).
enrichment package moved under type.

@yuri-sergiichuk, PTAL.
This is interim set of changes before reworking the enrichments.


Bypass the verification in non production environment

By pass the verification in non production environment somehow. Because sending sms cost money!!

Consider a conditional property that generates the same code and skip sending the code by sms

Fixed in 0.9.6

see [this] (https://github.com/TheBund1st/daming/wiki/绕过短信验证码发送)


Bind Physics Interpolation functions in VisualServer

To allow maximum flexibility in the initial rollout, VisualServer functions were not bound in order to prevent compatibility issues if the API changed.
These functions are now bound to allow direct use from the VisualServer.
Fixes #64905 .
Defaults
Note that the default for instances is for interpolation to be ON.
I did experiment defaulting to off in the VisualServer, but given that the scene tree inheritance system defaults to on, it proved rather convoluted and buggy.
For regular nodes in the scene tree the on default is not a problem, as they automatically send a reset_physics_interpolation() after adding to the tree, and will stay still with no further processing. However when using the VisualServer directly, users are responsible for either calling reset_physics_interpolation() on placement, or turning off interpolation for the instance using instance_set_interpolated() (or similar), if they are creating a non-moving instance.
Note also a source of confusion - despite the name, physics interpolation is not about interpolation of physics objects. This name was preferred by reviewers as being more beginner friendly, but the correct name is "fixed timestep interpolation", and it applies to nearly all visual instances, whether or not they are controlled by physics.
Notes

This was previously not bound deliberately, as the API functions here are subject to change based on feedback, and fixing any initial bugs which may have been compatibility breaking. This made physics interpolation temporarily not an option for the subset of users that are using VisualServer directly. This was of course annoying for this subset of users, but the benefit was this allows the underlying API to be changed without affecting user facing projects (as this was usually all handled through nodes).
Hopefully this API is now stable, but should still be seen to some degree as experimental and subject to change. Advanced users making use of this must be prepared for change until the API has been used significantly, however any changes should hopefully be minor and easy to fix in user code.
Physics interpolation is not trivial to use directly through the VisualServer, aside from turning on and off interpolation for instances. The core scene tree code can be used as a guide, but beware, here be dragons. In particular for interpolation to work correctly there has to be a continuous stream of transform data, which can be complex in cases of for instance hidden / shown nodes. There is also no support in the VisualServer for get_global_transform_interpolated(). This is implemented totally as part of the scene tree to avoid stalls.
This should probably not be cherry picked to 3.5 until it has been significantly tested in 3.6.

Thanks!


locationd: refactor validity checks

See comments in #26460

Closing since locationd is getting rewritten, but @fredyshox we should do this from the start with new locationd. Might be a good idea to do this generically in rednose.


UI: The volume detail box resized when click actions

To reproduce:

Choose one volume
In the volume detail page, click attach/detach

Notice the left box is higher than the right one.

@yasker

Fixed.


not an issue

So im trying to have a specified folder for all my audio recordings, I thought your plugin would do the job but it doesn't seem like it. I am interested in making my own plugin that does that if it's possible but thought that maybe u can easily implement it to your plugin instead of me making my own one. If u don't wanna make it plz lmk if that is actually doable, i havent made any plugins before and still a beginner in JS

Audio recorder is a official core plugin which saves your audio records in attachment folder.(Files & Links -> Default location for new attachments").
Since the plugin is not open source and there is no API for plugin developer to specify folder only for audio recordings, it is not doable to make such plugin.(Maybe you can do some hacking tricks but I'm not sure).
Here is a work around. If you use my plugin and drag a file before saving your records, it will change "attachment folder setting" and the audio records will be saved into the folder specified in my plugin setting.

Hey thank's for the response, I decided to just use my built in voice recorder app and make its path to a folder inside my vault, u can close the issue. Have a good life :)


How to resolve diffent size of HxW in train and test

Good work!
I trained one model in 512x512 embeded CoordAttention block. But when I infer an image in 400x600, it is incompatible.
How to resolve this problem?

If you used adaptive_avg_pool, that would not be a problem.


Projectiles and damage glitches when tiny.

Idk if anyone else experinced it.
But when i calibrate myself to 1/1026 - 1/4096, my arrows/firecharges/projectiles glithces, from
vanilla and other mods.
And the same happens with melee damage.
When i'm tiny and monsters too, Monsters can damage me by the range
of 1-4 bits = I can't reach and kill them.

Nothing I could really do with that - as you can see in my other answer, at these sizes floating point rounding errors and other various glitches begin to occur.
The 1/4096 size was made just for fun, the main puprose of this mod is 1/16 and everything still works mostly ok at 1/256

Aahh okay :D


Tabbing to quickpick item's 2nd button sets focus outside the quickpick

In the video, I am tabbing from the input, to the first item, then to the first button, and then the next tab, leaves the quickpick completely (which caused the quickpick to close since it lost focus).
It seems to only happen on the 2nd tab from a button to the next.
/cc @TylerLeonhardt

I talked to @joaomoreno about this and he mentioned that this is by-design in that we leave navigating around a widget (Actionbar in this case) to the arrow keys. @isidorn, please let me know if I have this wrong.
in other words:
Tab -> navigation between widgets
Arrow -> navigation within widgets

Yeah this is by design. I agree that this situation here is not the best...
@eamodio check out this aria toolbar example here which we are following.

@isidorn I do get not being able to tab between the individual buttons (and having to use the arrows), but this issue is about that.
If you open a quick pick without any buttons on items -- you can keep tabbing to cycle around all the parts of the quick pick and not have the quick pick disappear -- it will just cycle. But once an item has buttons, the "tab" after the buttons have focus, causes the whole quick pick to lose focus and if you don't have the "ignoreFocusOut" setting set, the quick pick will close.
That IMO can't be by-design.

@eamodio I see, thanks for clarifying. I agree with you.
@TylerLeonhardt the only way I know is to listen to focus changes and programatically set and remove tabIndex on HTML elements. Which is a pain.

hmm ok. I wonder why it's working without buttons but not with buttons... I'll investigate as soon as I get the time.

Verification:

Install GitLens if you don't already have it
hover over an inline blame to get the rich hover

click the ... show more actions

That gives you the quick pick @eamodio mentions in the original issue. Hitting TAB should cycle between:

input
this list
the first quick pick button
🔁

The quick pick shouldn't be hidden at all during tabbing.

Woo!
/verified


Update select-case-statement.md

Corrected indentation

Docs Build status updates of commit 3e0e43a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Language/Reference/User-Interface-Help/select-case-statement.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Slightly reword the bit about LEGO_POD_IP

fixes #159

Closed in favour of #167

I think we should close #159, too


[⭐FEATURE] Add a Visitor Counter feature ✨

Description
I want to add a Visitor Counter feature properly.
@YadavAkhileshh  PA please assign me this task.
Screenshots
No response
Any additional information?
No response
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

@Subhajit-2023-44 Go for it

@Subhajit-2023-44 Go for it

Okay but please merge my pr, otherwise i can't able to do another work


k Shortest Paths (WIP)

Internal Reference:

https://github.com/arangodb/planning/issues/3179

This PR adds k Shortest Paths queries to ArangoDB.

Add a class ConstantWeightKShortestPathsFinder which does the searching for k-shortest paths. The algorithm is a minor modification of Yen's k-shortest-paths algorithm, which means shortest paths will not have loops, but once we introduce weights they have to be non-negative.
The class' API consists of two main functions, startKShortestPathsTraversal(start, end) and
getNextPath.
Add syntax for k Shortest Path queries to AQL. The prototypical syntax looks as follows

  FOR p IN
     ANY K_SHORTEST_PATHS "v/1" TO "v/15" e1
     LIMIT 15
     RETURN p

note that the LIMIT clause is currently compulsory, and there are (currently) no options (for example to give a maximum weight or a k)

Add all the plumbing in between, such as KShortestPathsNode and  KShortestPathsExecutor

As this is still work in progress, here are some TODOs without claim to completeness, but in rough order of priority

[x] Wire in the callback to catch a killed query

[x] Make LIMIT optional again

[x] Clean up the concatenation/API of Paths in the ConstantWeightKShortestPathsFinder class

[x] Rebase on recent devel branch

[ ] Documentation

[x] Fill out Catch tests for ConstantWeightKShortestPathsFinder (the file is there but it does not test very much right now)

[x] Edge Weights

[x] JS Frontend bits

[ ] Larger scale testing

[ ] Unit tests for weighted paths

[ ] Performance optimisation

[ ] options for maximum weight/length?

Except for a known foxx failure, tests now pass: https://jenkins01.arangodb.biz/job/arangodb-matrix-pr-linux/5494/


README.md - how is this not production-ready?

README.md suggests that a server started in this way is not production-ready (says it is "for testing or demo purposes").
It would be useful if the file gave some sort of pointer to what would need to be done to make it production-ready.

I think normally for production, you'd want a cluster with separate instances for Elasticsearch and Graylog. Like described here under "Bigger Production Setup".
https://docs.graylog.org/docs
The idea with this is you can just run docker-compose up and you get a full Graylog instance to poke around on. But it's all on one node, so if that goes down, it's out of commisson.
I'd probably also want authentication and HTTPS setup for everything.
I'm probably not the best person to answer this, though. @bernd or @kroepke could probably say more.

What @malcyon said. :slightly_smiling_face:


fix: update dashboard variables

Import is currently broken with Grafana v11

Hi @aslafy-z, thank you very much for your contribution. I tested the dashboard import with Grafana V11.3.1 and had no problems. The only change I noticed is the reduction in the size of the JSON and several adjustments to the query schema. I will post a PR customizing the dashboard and release a new version.

I have customized the dashboard within the following PR and released a new version.

Thank you @ZPascal, it works perfectly!


Did not work with Ubuntu 18.04

Hi There,
While it is/was working with other Debian, it did not work with Ubuntu 18.04. Is there anything that I should take care of ?

If you have  .bash_profile file, make sure that it sources .profile.
Otherwise .profile won't get loaded! (Thanks bash)

Nope, I do not have .bash_profile file, but still it does not work.

I have the same problem. On the fresh ubuntu 18.04, it doesn't work unless I run the source "${GITAWAREPROMPT}/main.sh" manually. On my previous setup which was 16.04 upgraded to 18.04, it was working though.

Same issue on Ubuntu Terminal, any idea?
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.2 LTS
Release:	22.04
Codename:	jammy

$ echo $BASH
/usr/bin/bash

$ echo $PROMPT_COMMAND
find_git_branch; find_git_dirty; find_git_branch; find_git_dirty;

$ echo $PS1
${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[\]$git_branch\[\]$git_dirty\[\]$

$ cat .profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Last lines from my .bashrc:
# enable gitaware
# https://github.com/jimeh/git-aware-prompt
export GITAWAREPROMPT=~/git-aware-prompt
source "${GITAWAREPROMPT}/main.sh"
export PS1="\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "


Portainer should proxy the request and return the correct response code (the HTTP API code)

The response codes for portainer don't match response codes for the docker API. For example, when a container is stopped that doesn't exist, portainer returns a 200 instead of the expected 404 (see https://docs.docker.com/engine/api/v1.30/#operation/ContainerStop).

I'm pretty sure I saw this behavior before... are you using a local Portainer endpoint (e.g. /var/run/docker.sock ?) Could you try it as well with a remote endpoint?

I am using a local Portainer endpoint. I can confirm it works correctly from a remote endpoint, but for my use case I'd prefer to use a local one.

Sure, thanks for confirming it. We'll fix ASAP !


Fix renaming of annotations with paths

Added test case from bug report. Added isLocal check in RenameMap when renaming ReferenceTarget
related issue: https://github.com/freechipsproject/firrtl/issues/965

A glance from @azidar would be good. Fair warning to anyone who feels like looking at this; it made my head hurt 🤕

What about renaming case of ~Top|Module/i1:I1>foo.field, where rename map contains ~Top|Module/i1:I1>foo -> ~Top|Module/i1:I1>bar? Can you write a test case for this?

I was wrong, the case @azidar pointed out fails

What is the correct behavior when there are multiple possible renames in the rename map for a ReferenceTarget?
For example, suppose the RenameMap contains ~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.f1.bar and ~Top|B>ref.f1.f2 -> ~Top|B>ref.foo.f2. Should ~Top|Top/a:A/b:B>ref.f1.f2 be renamed to ~Top|Top/a:A/b:B>ref.foo.bar or ~Top|Top/a:A/b:B>ref.f1.bar?
What about when the rename map contains ~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.foo.f1 and ~Top|B>ref.f1.f2 -> ~Top|B>ref.f1.bar?
I also have the same question for instance paths.

Given my intention, when renaming x -> y, its possible for y to still require renaming. Thus:
Example 1:
~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.f1.bar
~Top|B>ref.f1.f2 -> ~Top|B>ref.foo.f2
~Top|Top/a:A/b:B>ref.f1.f2 should be renamed to ~Top|Top/a:A/b:B>ref.foo.bar
Example 2:
~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.foo.f2
~Top|B>ref.f1.f2 -> ~Top|B>ref.f1.bar
~Top|Top/a:A/b:B>ref.f1.f2 should also be renamed to ~Top|Top/a:A/b:B>ref.foo.bar
It should be the same with instance paths. Whether this is possible, however, is a separate question. As I'm sure you are realizing, its a pretty complicated problem and I do appreciate you looking at it as well!

I can also see how its not possible to get that, given the current code. I'm not sure I see a possible way to do it, either. Thoughts?

I think allowing multiple renames might lead to some unexpected renames. For example, if ref foo.bar gets lowered to foo_bar while at the same time a different ref foo_bar is renamed to foo_foo. Only allowing one round of renaming also matches the behavior of the old RenameMap. I think either option is fine though. There just needs to be more detailed documentation on the exact behavior of RenameMap.

Regarding instances, I believe this should work as advertised though. I believe the problem with the component renaming is that there is no way to express the partial rename of f2, that is independent of f1. Thus, whichever rename you apply first, it won't trigger the other one.

For example, if ref foo.bar gets lowered to foo_bar while at the same time a different ref foo_bar is renamed to foo_foo.

This shouldn't be a problem, as Uniquify guarantees that the lowering of a signal will not conflict with an existing signal name.

Only allowing one round of renaming also matches the behavior of the old RenameMap.

Actually that isn't the case, in the previous RenameMap, you could rename a signal name and a signal's module name separately, and it would do the double rename.

I don't really know of a good way of doing the multiple renaming thing without blowing up the runtime

Actually I think the runtime shouldn't blow up because of the caching of the results of renaming. Its basically dynamic programming, and so we shouldn't worry about spawning multiple recursions per recursive call. I believe the final complexity is O(N^2), where N is the path+component length. Also, results are cached between multiple calls to get, so it should still be quite fast. We should do a more extensive performance analysis, however.

Only allowing one round of renaming also matches the behavior of the old RenameMap.

Actually that isn't the case, in the previous RenameMap, you could rename a signal name and a signal's module name separately, and it would do the double rename.

I meant just the component name portion. I think the old rename map would not rename ref.f1.f2 to ref.foo.bar, it would only rename on the first exact match from ref.f1.f2 to ref.f1.bar, then rename the module name portion.

Regarding instances, I believe this should work as advertised though. I believe the problem with the component renaming is that there is no way to express the partial rename of f2, that is independent of f1. Thus, whichever rename you apply first, it won't trigger the other one.

what about finding all renames of the original annotation then merging them at the end instead of chaining renames together? so instead of doing

ref.f1.f2 -> ref.foo.f2
ref.foo.f2 -> ref.foo.bar

do

ref.f1.f2 -> ref.foo.f2
ref.f1.f2 -> ref.f1.bar
merge ref.foo.f2, ref.f1.bar into ref.foo.bar

maybe do some sort of edit-distance thing for the merging part?

I meant just the component name portion.

Ah yes. You are right.

what about finding all renames of the original annotation then merging them at the end instead of chaining renames together?

Haha this feels almost like a DNA analysis-type program... I think it could certainly work, and it may un-complicate the actual code. IMO its definitely an idea worth exploring.

So for instance paths:
~Top|Top/a:A/b:B -> ~Top|Top/foo:Foo/b:B
~Top|Top/a:A/b:B -> ~Top|Top/a:A/bar:Bar
I don't think should ~Top|Top/a:A/b:B should rename to ~Top|Top/foo:Foo/bar:Bar. It should probably rename to both ~Top|Top/foo:Foo/b:B and ~Top|Top/a:A/bar:Bar.

Hmm, so I think the rename semantics should actually be that longer paths/components get priority over naming, and then iteratively you check smaller bits.

ok so for the previous examples
Example 1:
~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.f1.bar
~Top|B>ref.f1.f2 -> ~Top|B>ref.foo.f2
~Top|Top/a:A/b:B>ref.f1.f2 should be renamed to ~Top|Top/a:A/b:B>ref.foo.bar
Example 2:
~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.foo.f2
~Top|B>ref.f1.f2 -> ~Top|B>ref.f1.bar
~Top|Top/a:A/b:B>ref.f1.f2 should be renamed to ~Top|Top/a:A/b:B>ref.foo.f2?
also, do longer components or longer paths have priority?

No, I think Example 1 is:
~Top|Top/a:A/b:B>ref.f1.f2 -> ~Top|Top/a:A/b:B>ref.f1.bar
~Top|B>ref.f1.f2 -> ~Top|B>ref.foo.f2
~Top|Top/a:A/b:B>ref.f1.f2 should be renamed to ~Top|Top/a:A/b:B>ref.f1.bar
Example 2 is correct.

ok, I see where I went wrong. I like your proposal, but I'm still not sure what the correct order of paths is. The way I interpreted your proposal for example 1 would be to check paths in this order:
1. ~Top|Top/a:A/b:B>ref.f1.f2
2. ~Top|Top/a:A/b:B>ref.f1
3. ~Top|Top/a:A/b:B>ref
4. ~Top|A/b:B>ref.f1.bar
5. ~Top|A/b:B>ref.f1
6. ~Top|A/b:B>ref
7. ~Top|B>ref.f1.bar
8. ~Top|B>ref.f1
9. ~Top|B>ref

but doing something like this:
1. ~Top|Top/a:A/b:B>ref.f1.f2
2. ~Top|A/b:B>ref.f1.bar
3. ~Top|B>ref.f1.bar
4. ~Top|Top/a:A/b:B>ref.f1
5. ~Top|A/b:B>ref.f1
6. ~Top|B>ref.f1
7. ~Top|Top/a:A/b:B>ref
8. ~Top|A/b:B>ref
9. ~Top|B>ref

also gives to the same result

@albertchen-sifive so where do we stand with this? Is this something we need to talk about more?

I agree with all the things @jackkoenig said. I also think there should be something like a PathlessReferenceTarget. especially if we are going to disallow renaming of ReferenceTargets with paths.

Ah, I think over another dev meeting we discussed how Jack's "controversial" proposal doesn't allow for expressing things like inlining, where an instance can be renamed to a module, e.g. ~Top|Top/a:A>ref -> ~Top|Top/a.ref. The other thing to think about is that if someone wants to do something complicated, they are going to have to figure out the renaming logic themselves anyways. Why not spare them the burden and implement it so they don't have to think it through?
Regarding a PathlessReferenceTarget, I had tried implementing it when I first was playing with adding Target stuff, but it just felt unnecessary because EliminateTargetPaths easily enables any PathlessReferenceTarget to be referenced via a ReferenceTarget, and thus it didn't really make sense for annotations to enforce this type safety requirement. I'm open to playing with it more, however.
I agree we should pick an ordering. My opinion is to check (1) subcomponents, (2) paths, (3) change root module by descending into next instance. Given we are renaming ~Top|Top/a:A>ref.f1, we should check the subparts in this order:

~Top|Top/a:A>ref.f1
~Top|Top/a:A>ref
~Top|Top/a:A
~Top|Top>a
~Top|Top
~Top|A>ref.f1
~Top|A>ref
~Top|A

Three rules:

From -> To, To must be final (no subpiece of To will be renamed)
Check all relative paths to component (and subcomponents), before checking path to leaf module
Enable multiple rename maps to be created from one transform (e.g. Dedup has one renamemap containing module to instance (in terms of original modules), and second mapping module to deduped module).

Below is the checking order for renaming the top target, with no renames.
~Top|Top/a:A/b:B/c:C>f.g
~Top|Top/a:A/b:B/c:C>f
~Top|A/b:B/c:C>f.g
~Top|A/b:B/c:C>f
~Top|B/c:C>f.g
~Top|B/c:C>f
~Top|C>f.g
~Top|C>f
~Top|Top/a:A/b:B/c:C
~Top|Top/a:A/b:B>c
~Top|A/b:B/c:C
~Top|A/b:B>c
~Top|B/c:C
~Top|B>c
~Top|C
~Top|Top/a:A/b:B
~Top|Top/a:A>b
~Top|A/b:B
~Top|A>b
~Top|B
~Top|Top/a:A
~Top|Top>a
~Top|A
~Top|Top

There is a test case that I'm not sure about.  Suppose the rename map contains:
~Top|C -> ~Top|D/e:E/f:F

what should ~Top|A/b:B/c:C be renamed to?
I think above rename might occur if C was undeduped by EliminateTargetPaths then split off by GroupComponents? in this case is we might want
~Top|A/b:B/c:D/e:E/f:F

But I think for dedup the rhs is probably an absolute path? then we might want
~Top|D/e:E/f:F

Also should the behavior be the same if a module gets renamed to a path as part of a ReferenceTarget rename?

also, is renaming of reference targets with components that point to instances allowed?
for example, should ~Top|A>foo:Foo/bar:D be renamed to ~Top|A/foo:Foo/bar:Bar if the rename map contains ~Top|A/foo:Foo/bar:D -> ~Top|A/foo:Foo/bar:Bar?

RE:
~Top|C -> ~Top|D/e:E/f:F

If C is undeduped by EliminateTargetPaths and then split off by GroupComponents, it seems that we should split that into two rename maps, no?
If that is the case, then I don't think we would have to really care about the semantics, because its possible (I think, though we should check) to express either one with different rename maps. Thus, I think
~Top|A/b:B/c:C -> ~Top|A/b:B/c:D/e:E/f:F

is acceptable.

Also should the behavior be the same if a module gets renamed to a path as part of a ReferenceTarget rename?

Yes, I think so. If someone does this though, they better rename all of the signals in the module so that other references to signals in the module get renamed before our algorithm gets to the module name.

also, is renaming of reference targets with components that point to instances allowed?

I'm not sure exactly what you mean, but ~Top|A>foo:Foo/bar:D is not a legal target. ReferenceTarget components cannot have Instance or OfModule TargetTokens in them, they can only have Field, Index, Clock, Init, and Reset.

ok thanks for the clarification. wasn't sure about the instance/ofModule component thing because there doesn't seem like there is anything preventing people from putting those tokens into a ReferenceTarget.

there doesn't seem like there is anything preventing people from putting those tokens into a ReferenceTarget

That's true. Maybe we should think about how to limit that.

Another thought - I think it would be straightforward to enable multiple rename maps in this PR.
We just need to
(1) add a new argument to RenameMap, earlier: Option[RenameMap]. Default construction of a RenameMap sets this to None (e.g. in RenameMap.apply)
(2) add def nextRenameMap(): RenameMap which creates a new RenameMap whose earlier argument is Some(this).
(3) update def completeGet(...) so, if earlier.nonEmpty == true, first call earlier.get.get(key), and then do normal rename on result.
This should allow chaining of RenameMaps, as each one will try to rename, then call the previous (recursively) until all renames are complete. Thoughts? Do you think you could add this to this PR?
Also I don't know why travis is being weird....

I would propose a slightly different approach, rather than continuing to pile things into the existing RenameMap, I would open the API up and have multiple types, DefaultRenameMap which is default version, MultiRenameMap which chains lookups to multiple, and some way to DIY since I'm realizing that certain transforms do a ton of work recording all possible renames into a map structure, when in reality they could just provide a function to do the renaming.

some way to DIY since I'm realizing that certain transforms do a ton of work recording all possible renames into a map structure, when in reality they could just provide a function to do the renaming.

Ooof, this would need to be done with extreeeeeme care. It has been hard enough to figure out a sane rename function, we should be very very careful about this. One option I'm more ok with is for the underlying map for tracking the rename changes to be Target -> (Target => Seq[Target]) instead of Target -> Seq[Target], thus allowing more flexibility for recording changes, but still letting us check the return values of the renaming function to preserve existing rename semantics. However, I'm very very hesitant about letting people override something like get.

I would open the API up and have multiple types, DefaultRenameMap which is default version, MultiRenameMap which chains lookups to multiple

That might work, I'd need more details. What I like about what I proposed is I can see a deprecation path towards a lazy renaming scheme where annotations are not updated until the transform that consumes them (sort of like how ResolvedAnnotationPaths turns per-instance targets into local targets). By restricting people to this mechanism, then we can check between transforms that they always use def nextRenameMap(): RenameMap instead of creating a new RenameMap.

@azidar I agree with your trepidation toward opening up the API.

One option I'm more ok with is for the underlying map for tracking the rename changes to be Target -> (Target => Seq[Target]) instead of Target -> Seq[Target]

Thats an interesting proposal. I agree that the rename function has been such a nightmare that I also worry about allowing people to potentially screw it up. The one thing that makes me think it still may be worth considering opening up is that I suspect much of the complexity of this implementation comes from the fact that it implements something of a catch all. I suspect that using different data structures might result in simpler renaming code. In any case, I think we should table my idea until I or someone else actually writes what a LowerTypesRenameMap would look like so that we can actually compare.
The one thing I don't like about the Target -> (Target => Seq[Target]) idea is that you still have to populate a data structure with all of the targets you might rename. In the case of LowerTypes or Uniquify, you still have to "unfold" any aggregates out to all of their leaves and populate the Map with those Targets even if they all point to the same function at the end.

That might work, I'd need more details. What I like about what I proposed is I can see a deprecation path towards a lazy renaming scheme where annotations are not updated until the transform that consumes them

I agree with this vision, but I don't think any changes to the API are needed for this. We currently have Transforms return a RenameMap, there's nothing that says those renames need to be applied (yet). Since we also already pass transforms an AnnotationSeq (not Seq[Annotation]), the rename maps could be stored in that object such that when given annotations are requested we only rename as necessary. I'm unsure exactly how to implement this, but perhaps some sort of collectLike function could do it (some tricky details come to mind, you can't do a general collect because the PartialFunction can peer into the Annotations and inspect their Targets so you would need a collectByClass or something that returns Annotations of the right type).
Forgetting about my proposal above to "open" the API, we could still have MultiRenameMap which allows Transforms to specify that you need to apply multiple renamings.

That's a lot so maybe I should get back to the more direct issue at hand in this PR.
Rather than adding any notion of multiple RenameMaps to RenameMap, I would just make a new type MultiRenameMap. It seems to me that they should implement a common interface, where looking stuff up in the MultiRenameMap delegates to calling each one of its constituent RenaneMaps in order, thoughts @azidar?

Discussed in dev meeting, decided not to have MultiRenameMap, but to have this notion of chained rename maps, perhaps with an andThen method or something similar.
@azidar something that just occurred to me is that there is awkwardness with mutability here, if I have renameMap1.andThen(renameMap2), does this mutate renameMap1 or return a new renameMap? If it returns a new one, what happens if you mutate it? I would like the ability to have immutable rename maps but that's probably future work.

I think you have to do val renameMap2 = renameMap1.andThen()?

and the ++ operator should recursively call ++ on the earlier rename maps if they both exist?

If we're mutating, I don't think we should call it ++ nor andThen because both of those imply new objects in the Scala collections.
We also shouldn't use ++ anyway because of how this analogizes to Maps:
scala> val m1 = Map("a" -> "b")
m1: scala.collection.immutable.Map[String,String] = Map(a -> b)

scala> val m2 = Map("b" -> "c")
m2: scala.collection.immutable.Map[String,String] = Map(b -> c)

scala> val added = m1 ++ m2
added: scala.collection.immutable.Map[String,String] = Map(a -> b, b -> c)

scala> val chained = m1.andThen(m2)
chained: PartialFunction[String,String] = <function1>

scala> added("a")
res0: String = b

scala> chained("a")
res1: String = c

If we're mutating, I don't think we should call it ++ nor andThen because both of those imply new objects in the Scala collections, we should probably just pick something else.

I wasn't proposing to call it ++. There is already a ++ operator defined in the current RenameMap https://github.com/freechipsproject/firrtl/blob/master/src/main/scala/firrtl/RenameMap.scala#L116
I just wanted to clarify what the behavior of ++ should be if we call ++ on two chained RenameMaps.

I just wanted to clarify what the behavior of ++ should be if we call ++ on two chained RenameMaps.

@albertchen-sifive right, sorry. I think m1 ++ m2 is analogous to m2.orElse(m1) in that later ones overrule earlier ones. Thus I think the functionality is actually checking from later to earlier until the key is found.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: albertchen-sifive:x: azidarYou have signed the CLA already but the status is still pending? Let us recheck it.

RE:
~Top|C -> ~Top|D/e:E/f:F

If C is undeduped by EliminateTargetPaths and then split off by GroupComponents, it seems that we should split that into two rename maps, no?
If that is the case, then I don't think we would have to really care about the semantics, because its possible (I think, though we should check) to express either one with different rename maps. Thus, I think
~Top|A/b:B/c:C -> ~Top|A/b:B/c:D/e:E/f:F

is acceptable.

Also should the behavior be the same if a module gets renamed to a path as part of a ReferenceTarget rename?

Yes, I think so. If someone does this though, they better rename all of the signals in the module so that other references to signals in the module get renamed before our algorithm gets to the module name.

also, is renaming of reference targets with components that point to instances allowed?

I'm not sure exactly what you mean, but ~Top|A>foo:Foo/bar:D is not a legal target. ReferenceTarget components cannot have Instance or OfModule TargetTokens in them, they can only have Field, Index, Clock, Init, and Reset.

now that I think about it some more I don't think we should inline the paths of renamed OfModules. ~Top|A/b:B/c:C should just remain the same in this case. If we rename OfModules to instance paths then that will mess up other instance paths; for example renaming ~Top|A/b:B/c:C/z:Z to ~Top|A/b:B/c:D/e:E/f:F/z:Z doesn't make much sense, but it is currently unavoidable if we also want to do ~Top|C -> ~Top|D/e:E/f:F

I think we should still be able to express all the renames we need without allowing OfModule to InstanceTarget renames. For dedup we would first rename all ModuleTargets and relative InstanceTargets paths to absolute paths. Then chain that rename map with a map that only renames ModuleTargets to deduped ModuleTargets. So for the following example:
    top: Top
       |
      b: B
     /     \
    /       \
 a1: A1   a2: A2

the rename map would contain
~Top|A1 -> ~Top|Top/b:B/a1:A1
~Top|B/a1:A1 -> ~Top|Top/b:B/a1:A1
~Top|A2 -> ~Top|Top/b:B/a2:A2
~Top|B/a2:A2 -> ~Top|Top/b:B/a2:A2

chained with
~Top|A1 -> ~Top|A
~Top|A2 -> ~Top|A

we wouldn't want to rename OfModules to instances, otherwise ~Top|B/a1:A1 would be renamed to ~Top|Top/b:B/a1:Top/b:B/a:A

sorry, just realized an issue the above renaming strategy; it messes up existing absolute paths. one solution is to allow renaming annotations to themselves to short-circuit our instance path renaming algorithm. so in order to prevent  ~Top|Top/b:B/a2:A2 from being renamed to ~Top|Top/Top/b:B/a2:A2 we would have to have ~Top|Top/b:B/a2:A2 -> ~Top|Top/b:B/a2:A2 in the rename map

Sorry this took a while to get to. I do think we want to rename OfModules in the instance path.
Given
~Top|C -> ~Top|D/e:E/f:F

I think it actually makes sense to rename
~Top|A/b:B/c:C/z:Z -> ~Top|A/b:B/c:D/e:E/f:F/z:Z

To me, the rename map is basically saying "for all modules of C, we've added two wrapper modules D and E, and also renamed C to F". Thus, z should still be a member of F. If it isn't, then we should delete ~Top|C>z with another renaming rule.

@jackkoenig suggests we push this back to 1.3. Would like to hear @azidar weigh in on this

ready for re-review. summary of changes

remove support for reference targets that point to instances
short-circuit renaming algorithm if the rename map returns an absolute target

absolute targets are targets where the module is the same as the circuit

make andThen take a RenameMap as an argument and return a new, chained RenameMap without copying the underlying maps of the chained RenameMaps
rename earlier to chained
deprecate ++
get rid of orElse

@azidar comments addressed

I'm so excited we finally got this merged! Great job @albertchen-sifive and @azidar!!!


structural clone support

Hi, i added yours to this list of test: https://jimmywarting.github.io/3th-party-structured-clone-wpt/
wanted to run benchmark as well. but it's blocked by #1 for some json

See that you do kind of base64 enc/dec typed arrays... it would be better to just simply have a encoder/decoder that could support binary right of the bath. the payload would then be smaller

@jimmywarting Hi, take a look at the V3.0 it should be OK

it was running Okey now.
but i can leave this open if you want to improve the overall structural clone support for other kind of data. or you can close this if you want to.

Yes sure thanks

sializer have been added.
one thing i like about cbor-x is is that it is based upon the CBOR specification. in fact that is also what chrome uses for some serialization like in indexeddb, webauthn and the payment api.
indexeddb also use the structuralClone algoritm so it wouldn't chock me if it too was based upon cbor.
there have also been talks about exposing structuralClone and/or cbor natively: https://github.com/whatwg/html/issues/3517
if you want to beet other serializer, try to increase the overall score on my testing website and try to support everything structuralClone can support


[stable/external-dns] Add missing flags related to processing sources, kubefed related

Is this a new chart
No.
What this PR does / why we need it:
There are a lot of options in external-dns which are not reflected in the helm chart. Especially the *fqdn* flags are quite required for coorporation with kubefed multicluster dns. But since I needed to touch the parameters list, I also added the other options.
Special notes for your reviewer:

only new values
I kept the same option level because of the existing ones, but we could consider moving all these "source related" options into their own key group

But then we have to move some existing values too, which would break the current api (or find a way to be compatible)

Maybe look into PR https://github.com/helm/charts/pull/17490 for the other part of kubefed compatibility

Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @sameersbn

/ok-to-test

@dionysius
Could you fix the conflicting files please?
stable/external-dns/Chart.yaml
stable/external-dns/README.md

@zanhsieh done

/retest

@prydonius
@tompizmor
@sameersbn
@carrodher
@javsalgar
@juan131
@miguelaeh
May you guys LGTM this PR please? Thank you.

Hi @dionysius @zanhsieh
My apologies. We totally lost the track of this issue until I came across it today checking old tickets. Sorry for that.

Could you please reopen the PR so we can follow with the review process?

Sure, lets try /reopen


node on click set focus to top of the list-group

If you use the tree with overflow-y like this:
.list-group {
  max-height: 400px;
  overflow-y: scroll;
}

everytime a node is clicked the focus is set to the top of the list-group what is really annoying

That's because the tree view is rebuilt every time it renders.  That will be address in #76 and #50 expected to be delivered in v1.3.0.

Very good! Thank you!


log into files in addition to stderr

this changeset introduces persistent logging through the tracing-appender crate. logs are written into
<index_dir>/logs/bloop.log.YYYY-MM-DD-HH and rotated hourly. logs written to files are limited to the bleep crate.

to confirm that cloud instances do not log into files; get a shell into the dev-cluster and list contents of the index directory:
root@bloop-akshay-764465888-7zxbz:/# ls data/
index  lost+found  repos

the absence of the logs directory indicates that logs are not being stored on disk.


Configuration Generator does not creates subspaces completely randomly

Expected Behavior:
The genrator should create a list of subspaces that is random with respect to

the number of subspaces
the distributions of the number of dimensions of the subspaces

Actual Behavior:
The list always contains the same amount of subspaces. Furthermore there is always the same number of subspaces of a certain dimensionality. The number of subspaces directly related to the total number of dimensions.
Examples: 100 dimensions create 24 subspaces. 200 dimensions create 48 subspaces. 300 dimensions create 72 subspaces, ....
Code to reproduce:
stream.config <- streamgenerator::generate.stream.config(dim=300, mindim = 2, maxdim = 5, allowOverlap = FALSE)
Rerunning this code will result in exactly 72 subspaces each time. Furthermore there will always be exactly eleven 5D-subspaces.

Actually the part about the fixed number of occurences of each x-dimensioal-subspace may be desireable if one were to explicitly aim for such a type of generation. If the implementation of the framework changes in such a way that there are different configuration generators then this could be some kind of simple or fixed number of subspaces generator.

Furthermore: When creating a dynamic stream configuration, then a subspace can not change its number of dimensions from one step to another. A fix for this could be, to first determine what dimensionality the subspace should have in the next step and then determine the "start" of this subspace's dimensions accordingly. For example, in the current implementation a 5D-subspace generates possible starts in the range from 1 to 6. However, if the subspace was supposed to be 3D in the next step, then the range should be 1:8. Knowing the dimension of the next step in advance would allow this.


Include error codes in DAV error responses

DAV error responses currently include a message (s:message) and an exception (s:exception). It would be great to have an additional error code for clients to check. The Web client currently checks for the error messages, which doesn't feel great since they are somewhat unstable.

Added via https://github.com/cs3org/reva/pull/4749. Just needs another reva update.


No XML Doc for inref/outref in tooltip

However the sources contains XML Doc comments (no idea why <summary> tag is used though):
https://github.com/Microsoft/visualfsharp/blob/62068b73d6fdd11b47b516dda7023e0f92f78d8d/src/fsharp/FSharp.Core/prim-types.fsi#L846-L850

However, if a locally built FSharp.Core is referenced, like this:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="Program.fs" />
  </ItemGroup>

  <!--<ItemGroup>
    <PackageReference Update="FSharp.Core" Version="4.5.0" />
  </ItemGroup>-->

  <ItemGroup>
    <Reference Include="FSharp.Core">
      <HintPath>c:\git\visualfsharp\debug\net40\bin\FSharp.Core.dll</HintPath>
    </Reference>
  </ItemGroup>

</Project>

the XML Doc is there:

I believe it's the version of FSharp.Core that you are using in the preview.

The XML docs are present in the editor with 4.5.2.


use the same debug param in child process

When you use the latest node, it use --inspect parameter to start a debug process, but in mocha-spawn, it use hard-coded --debug parameter. So when you use node 7+, it may break down in debug mode.

Coverage increased (+0.03%) to 92.952% when pulling 88ca3354b496bfdc81bd0084fe7b845778fa09ab on yunnysunny:master into 4583ec697f4408843b23590984864a016bbe75f7 on nomilous:master.

Coverage increased (+0.03%) to 92.952% when pulling 88ca3354b496bfdc81bd0084fe7b845778fa09ab on yunnysunny:master into 4583ec697f4408843b23590984864a016bbe75f7 on nomilous:master.

Coverage increased (+0.03%) to 92.952% when pulling 88ca3354b496bfdc81bd0084fe7b845778fa09ab on yunnysunny:master into 4583ec697f4408843b23590984864a016bbe75f7 on nomilous:master.


several easy homogeneous results

Addresses several things in #787

The justification for S86 was incorrect (wrong intervals).  Added an easier one.

@StevenClontz For some reason I can't even do a Reset right now in the Advanced tab of the pi-base web page.  It should be unrelated to this PR.  Do you see the same problem?

Good catch!


Fix -testType option for e2e

The value passed in to the test binary was being lost on the way. This caused the e2e to skip all tests by default.
Signed-off-by: Matt Rogers<EMAIL_ADDRESS>

Thanks for catching this! Sorry about that
/lgtm
/approve
/label qe-approved
/label docs-approved
/label px-approved


Customizing other keycloak default pages like email verification etc

Hello, thank you for your hard and awesome work on keycloakify, it is helping me a lot.
I am curious, what is the proper way of changing other default key cloak pages like email verification or the list below, do we just need to add it in the keycloak-theme folder and in the login pages or is there any specific rule here.

I looked into the documentation and found nothing helping me on this topic, would really appreciate your respond and sorry if this question is covered somewhere I could not find.
Really appreciate your hard work.

Hello @maxtsh, thanks for the kind words
Sorry the documentation of v10 is still under construction.
The key command you need to run in your keycloakify project is npx keycloakify eject-page
rellevent doc:
https://docs.keycloakify.dev/customization-strategies/component-level-customization
https://docs.keycloakify.dev/faq-and-help/how-do-i-add-extra-pages


Is statefulness in RNNs doing anything?

Is stateful=True in a RNN layer really doing anything at all?
The initial states upon each call of a RNN layer are set here but self.states never seems to be updated to anything meaningful anywhere. States are just appended to [a list] (https://github.com/fchollet/keras/blob/master/keras/layers/recurrent.py#L231) but then never seem to be used again. What am I missing?

Nevermind, it's working. self.updates is used by the backend and is not just a list.

Is there documentation for the internal guts of training.py and topology.py?   I bruted my way through understanding the node stuff, but I still don't completely get it and tracing it can be a bit overwhelming.

This explains a little of it: http://keras.io/layers/writing-your-own-keras-layers/

Lol. I just spent a couple hours crawling both Theano's and Keras's computation graphs.  that's like navigating a rain forest using a globe.
(i see you've crossed it out, though)

Yup :smile:

Yes it does : http://philipperemy.github.io/keras-stateful-lstm/


Loading failed for<EMAIL_ADDRESS>

With Panel==0.12.1, ipywidgets_bokeh==1.0.2, ipykernel==5.5.5 and Ipysheet==0.5.0 when I try to run the below script I get a
Loading failed for the <script> with source<EMAIL_ADDRESS>

Serve the below with panel serve name_of_script.py
import panel as pn
import ipywidgets as ipw
import ipysheet

pn.extension("ipywidgets", sizing_mode="stretch_width")

accent_base_color = "#2F4F4F"
template = pn.template.FastListTemplate(
    site="Awesome Panel",
    title="IPySheet",
    accent_base_color=accent_base_color,
    header_background=accent_base_color,
    header_accent_base_color="white",
)
theme = "dark" if template.theme == pn.template.DarkTheme else "default"

def get_widget(theme="default", accent_base_color="blue"):
    slider = pn.widgets.FloatSlider(value=10, start=0, end=100)
    sheet = ipysheet.sheet()

    ipysheet.cell(1,1, "Input")
    cell3 = ipysheet.cell(1,2, 42.)
    ipysheet.cell(2,1, "Output")
    cell_sum = ipysheet.cell(2,2, 52., read_only=True, background_color=accent_base_color)

    @pn.depends(slider, cell3, watch=True)
    def calculate(a,b):
        cell_sum.value = a+b
        print("update", cell_sum.value)

    return pn.Column(slider, sheet)

widget = get_widget(theme=theme, accent_base_color=accent_base_color)
component = pn.panel(widget, height=500, sizing_mode="stretch_both")
template.main.append(component)
template.servable()

Works with Ipysheet 0.4.4
https://user-images.githubusercontent.com/42288570/129837830-23184b61-7059-42e7-baa6-04e247d52016.mp4

Same here for voila==0.2.10. Works fine in jupyterlab and notebook though.

Loading widget...
works in Jupyterlab but not in voilà
JupyterLab v3.1.13
/home/ubuntu/venv/share/jupyter/labextensions
jupyterlab-plotly v5.3.1 enabled OK
ipysheet v0.5.0 enabled OK (python, ipysheet)
@jupyterlab/server-proxy v3.1.0 enabled OK
@jupyter-widgets/jupyterlab-manager v3.0.1 enabled OK (python, jupyterlab_widgets)
@voila-dashboards/jupyterlab-preview v2.0.6 enabled OK (python, voila)

Definitely an issue since this is where the @jupyter-widgets/html-manager tries to fetch the package from CDN:
https://github.com/jupyter-widgets/ipywidgets/blob/master/packages/html-manager/src/libembed-amd.ts#L48

Any update on this? It would be awesome to make ipysheet compatible with Google Colab https://github.com/googlecolab/colabtools/issues/2594

Running into the same problem in VS Code, looks like the files pushed into CDN for 0.5.0 are JS modules, where as the preivous version used requirejs and included everything in the artifacts published to the CDN.


Add helper method to dry default set functions

Added a helper method to remove a bit of repetition across the default set functions
Edited JsDoc descriptions of set functions to clarify their role

Let me know in case this type of contribution is ok (or not)!

Just started reviewing :) :octocat: Sent from GH.

Thank you, pull request merged! See changes here. :octocat: Sent from GH.


datadog-agent is randomly dying on startup

Output of the info page (if this is a bug)
(Paste the output of the info page here)

Describe what happened:
Since upgrading to 6.14.1, datadog-agent sporadically fails to start.  We use datadog/agent:latest image. I'm attaching a log from one of the recent failed launches.
$ docker images | grep datadog
datadog/agent                                                            latest                  b96c197cac5c        2 weeks ago         404MB

Relevant bits from the log appear to be the following:
panic: assignment to entry in nil map

goroutine 102 [running]:
github.com/DataDog/datadog-agent/pkg/autodiscovery/providers.(*DockerConfigProvider).listen(0xc00086c4b0)
        /.omnibus/src/datadog-agent/src/github.com/DataDog/datadog-agent/pkg/autodiscovery/providers/docker.go:114 +0x3d0
created by github.com/DataDog/datadog-agent/pkg/autodiscovery/providers.(*DockerConfigProvider).Collect
        /.omnibus/src/datadog-agent/src/github.com/DataDog/datadog-agent/pkg/autodiscovery/providers/docker.go:60 +0x1b5
AGENT EXITED WITH CODE 2, SIGNAL 0, KILLING CONTAINER
2019-10-10 20:39:00 UTC | PROCESS | CRITICAL | (pkg/process/util/signal_nowindows.go:21 in HandleSignals) | Caught signal 'terminated'; terminating.

Describe what you expected:
Agent running.
Steps to reproduce the issue:
New deployment, restarting containers, etc. Note that as described above, the agent container randomly fails to start. Once the agent is running, it seems to continue running.
Additional environment details (Operating System, Cloud provider, etc):
Relevant bits from Dockerrun.aws.json:
  "volumes": [
    {
      "name": "cgroup",
      "host": {
        "sourcePath": "/cgroup/"
      }
    },
    {
      "name": "datadog_checks",
      "host": {
        "sourcePath": "/etc/datadog-agent/checks.d/"
      }
    },
    {
      "name": "datadog_conf",
      "host": {
        "sourcePath": "/etc/datadog-agent/conf.d/"
      }
    },
    {
      "name": "datadog_run",
      "host": {
        "sourcePath": "/opt/datadog-agent/run/"
      }
    },
    {
      "name": "datadog_yaml",
      "host": {
        "sourcePath": "/etc/datadog-agent/datadog.yaml"
      }
    },
    {
      "name": "docker_sock",
      "host": {
        "sourcePath": "/var/run/docker.sock"
      }
    },
    {
      "name": "proc",
      "host": {
        "sourcePath": "/proc/"
      }
    },
  ],
...
 "containerDefinitions": [
    {
      "name": "datadog-agent",
      "image": "datadog/agent:latest",
      "memory": 256,
      "mountPoints": [
        {
          "sourceVolume": "cgroup",
          "containerPath": "/host/sys/fs/cgroup",
          "readOnly": true
        },
        {
          "sourceVolume": "datadog_checks",
          "containerPath": "/checks.d",
          "readOnly": true
        },
        {
          "sourceVolume": "datadog_conf",
          "containerPath": "/config.d",
          "readOnly": true
        },
        {
          "sourceVolume": "datadog_run",
          "containerPath": "/opt/datadog-agent/run",
          "readOnly": false
        },
        {
          "sourceVolume": "datadog_yaml",
          "containerPath": "/etc/datadog-agent/datadog.yaml",
          "readOnly": true
        },
        {
          "sourceVolume": "docker_sock",
          "containerPath": "/var/run/docker.sock",
          "readOnly": false
        },
        {
          "sourceVolume": "proc",
          "containerPath": "/host/proc",
          "readOnly": true
        }
      ]
    }
  ]

datadog.yaml:
---
hostname: some-hostname
listeners:
  - name: docker
config_providers:
  - name: docker
    polling: true
ac_include: []
ac_exclude: ["name:ecs-agent", "image:datadog/agent"]
apm_config:
  enabled: true
  apm_non_local_traffic: true
dogstatsd_non_local_traffic: true
jmx_use_cgroup_memory_limit: true
logs_enabled: true
logs_config:
  container_collect_all: true
process_config:
  enabled: true
docker_env_as_tags:
  ENVIRONMENT_NAME: env
  OUTPACE_STAGE: outpace.stage
  OUTPACE_CLIENT: outpace.client
  OUTPACE_STACK: outpace.stack
docker_labels_as_tags:
  com.outpace.service.name: outpace.service

$ uname -a
Linux some-hostname 4.14.62-65.117.amzn1.x86_64 #1 SMP Fri Aug 10 20:03:52 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

datadog-dead.log

Thank you!


Update clean.cmd

Clean code.

I'm not :-1: on changes like these, but this makes the style a bit inconsistent -- open paren ( in same line for the if part, and on a new line for the else part. Also, the user who created the pull request deleted their account, so noone can really update it.


cloud-sql-proxy: 1.27.0 -> 1.27.1

Motivation for this change

Updates cloud-sql-proxy to 1.27.1
Re-enables tests

Things done

Built on platform(s)

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

[x] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[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

[x] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

$ git -c fetch.prune=false fetch --no-tags --force https://github.com/NixOS/nixpkgs master:refs/nixpkgs-review/0 pull/149747/head:refs/nixpkgs-review/1
$ git worktree add /Users/dylan/.cache/nixpkgs-review/pr-149747-1/nixpkgs 39258474a14beaca55e4de725153a3c65143ac71
Preparing worktree (detached HEAD 39258474a14)
Updating files: 100% (29142/29142), done.
HEAD is now at 39258474a14 Merge pull request #149505 from thiagokokada/bump-sm64ex
$ nix-env --option system x86_64-darwin -f /Users/dylan/.cache/nixpkgs-review/pr-149747-1/nixpkgs -qaP --xml --out-path --show-trace
$ git merge --no-commit --no-ff 6fc4083c11c552cab61d151013947cfb80d36825
Automatic merge went well; stopped before committing as requested
$ nix-env --option system x86_64-darwin -f /Users/dylan/.cache/nixpkgs-review/pr-149747-1/nixpkgs -qaP --xml --out-path --show-trace --meta
1 package updated:
cloud-sql-proxy (1.27.0 → 1.27.1)

$ nix --experimental-features nix-command build --no-link --keep-going -f /Users/dylan/.cache/nixpkgs-review/pr-149747-1/build.nix

Link to currently reviewing PR:
https://github.com/NixOS/nixpkgs/pull/149747

1 package built:
cloud-sql-proxy

$ nix-shell /Users/dylan/.cache/nixpkgs-review/pr-149747-1/shell.nix

Result of nixpkgs-review pr 149747 run on x86_64-linux 1

1 package built:

cloud-sql-proxy


Title: Candy Crush Game purely using JS

Is your feature request related to a problem? Please describe.
Adding mobile games would be quite a charm to website
Describe the solution you'd like.
I will be using many inbuilt javascript methods such as:

addEventListener()
setAttribute()
setInterval()
some()
every()
forEach()
includes()
contains()
add()
remove()
createElement()
appendChild()
push()
to implement this game!

Describe alternatives you've considered.
.
Add any other context or screenshots about the feature request here.
No response

@AnanyaJain25 Thank you for providing your insight but it is not required as of now

hey @swapnilsparsh May I know whats the issue with this.. It will be same as other projects completely based on Javascript

@AnanyaJain25 All the best 👍🏻


TNO-381 Ingest Service Timezone Bugs

I only made two changes to this so that VerifyDelay is comparing two times in the same time zone (UTC) and VerifyRunOn is doing the same.
Apart from these two issues, I found no problems with time zones or the scheduler.

Looks like I forgot to base my branch on dev and based it on TNO-65-370. I'll fix it tomorrow. Can we delete PR 196?

You can just force push to this branch and the PR will be updated.

Has that push addressed the issue?


Installed questions

Thanks for your sharing! When I'm installing the packages, I'm always in trouble.
Is it because we don't have access to download these packages in China?
ERROR: Could not find a version that satisfies the requirement chemfunc==1.0.3 (from versions: none)
ERROR: No matching distribution found for chemfunc==1.0.3
or
ERROR: Could not find a version that satisfies the requirement synthemol (from versions: none)
ERROR: No matching distribution found for synthemol

I'm going to close this issue, but please reopen it if you're still having problems!