Better Doorbell Suppression Support

Building on #126, I implemented and tested a select entity for doorbell suppression and separate switches for the different suppression settings. The switch entities are disabled by default so the user can choose to enable those if they prefer them over the select entity.
This also corrects the bit that has to be flipped for the previously existing switch. It seems the documentation from Nuki is slightly wrong and that's why the switch was changing the Continuous Mode ring suppression as seen here.
I implemented this because I needed to have this functionality, but feel free to use my code in #126 instead.
Keep in mind that I'm not very familiar with git, GitHub, python or Home Assistant development, so I apologize if I did something wrong.

worked okay, but now:
Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: homeassistant
Source: custom_components/nuki_ng/sensor.py:220
Integration: Nuki Lock (documentation, issues)
First occurred: 19. März 2023 um 23:13:06 (243 occurrences)
Last logged: 18:27:20

Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 330, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 135, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 390, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 559, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 603, in _async_write_ha_state
    attr.update(self.extra_state_attributes or {})
  File "/config/custom_components/nuki_ng/sensor.py", line 220, in extra_state_attributes
    "timestamp": datetime.fromisoformat(timestamp) if not None else None,
TypeError: fromisoformat: argument must be str

also the following error occurs:
Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/nuki_ng/sensor.py:220
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 18:26:14 (1 occurrences)
Last logged: 18:26:14

[140580569104784] fromisoformat: argument must be str
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 199, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1808, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1845, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 961, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 726, in _handle_entity_call
    await result
  File "/config/custom_components/nuki_ng/switch.py", line 143, in async_turn_off
    await self.update_doorbell_suppression(self.doorbellSuppression & (~self._suppression))
  File "/config/custom_components/nuki_ng/__init__.py", line 204, in update_doorbell_suppression
    await self.coordinator.update_config(self.device_id, "openerAdvancedConfig", dict(doorbellSuppression=new_value))
  File "/config/custom_components/nuki_ng/nuki.py", line 536, in update_config
    self.async_set_updated_data(data)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 360, in async_set_updated_data
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 135, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 390, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 559, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 603, in _async_write_ha_state
    attr.update(self.extra_state_attributes or {})
  File "/config/custom_components/nuki_ng/sensor.py", line 220, in extra_state_attributes
    "timestamp": datetime.fromisoformat(timestamp) if not None else None,
TypeError: fromisoformat: argument must be str

It looks like this is the same as #106, which will be fixed by #132.

Just tested it. It works flawlessly together with #132.

Thanks for testing, everyone. Should I merge it and release a new version?

From my point of view, yes.

Seems okay for me, too. Make sure to merge #146  and #132 :)

Seems okay for me, too. Make sure to merge #146  and #132 :)

New release: https://github.com/kvj/hass_nuki_ng/releases/tag/0.4.0

🎉


Fix Kubernetes version and template version for TestVSphereKubernetes130AWSIamAuth test

Update Kubernetes Version and template version to 1.30 for TestVSphereKubernetes130AWSIamAuth E2E test.
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/hold

Same Changes went in #8310


request.raw().getSession().getServletContext() return null

can't get ServletContext from request.

Not sure if fixed. Closing this because we need to clean up. Please create a new issue if this is still a problem.


Strange problem with nginx reverse proxy in Linux

I'm not sure whetherit is a setup issue or some bug。I deployed the idsrunder linux with nginx reverse proxy。Occasionally the following problems occur when requesting authorization。The space sometimes disappear。Using the clientid spa client will also become spaclient, so I changed to spa_client。but response_type cannot be changed。so i want  to know how to deal with this problem. It doesn't appear every time and I did not find this problem under the window.

Client IDs don't allow spaces.
For response_type, I have never seen that before.

Any update?

What's the URL of that request to IdentityServer with all those query params? You might have a different character in there.


[WFCORE-4621] Create wildflyee.api static module to serve the Jakarta…

… EE api dependencies to the external modules
Jira issue: https://issues.redhat.com/browse/WFCORE-4621
It will follow up with a PR on WildFly full to create a module alias for {{javaee.api}} to {{wildflyee.api}}

Core - Full Integration Build 9391 outcome was UNKNOWN using a merge of 28d4e88f8c508e6ecf96e55ae0e3e784f4d11f79
Summary: Canceled (Tests passed: 727, ignored: 14; exit code 143 (Step: Build & test full (Maven)) (new)) Build time: 00:17:29

Core - Full Integration Build 9386 outcome was UNKNOWN using a merge of 28d4e88f8c508e6ecf96e55ae0e3e784f4d11f79
Summary: Canceled (Tests passed: 1190, ignored: 33; exit code 143 (Step: Build & test full (Maven)) (new)) Build time: 00:17:29

Core - Full Integration Build 9392 outcome was FAILURE using a merge of b06b41dd4e99759642df7e619fe24f00ae7da412
Summary: Tests failed: 1 (1 new), passed: 1868, ignored: 15 Build time: 00:46:45
Failed tests
org.jboss.as.test.layers.LayersTestCase.testServlet: java.lang.Exception: Some unreferenced modules are un-expected [wildflyee.api]
	at org.jboss.as.test.layers.LayersTest.test(LayersTest.java:100)
	at org.jboss.as.test.layers.LayersTestCase.testServlet(LayersTestCase.java:85)

Core - Full Integration Build 9387 outcome was UNKNOWN using a merge of b06b41dd4e99759642df7e619fe24f00ae7da412
Summary: Canceled (Tests passed: 5218, ignored: 90; exit code 143 (Step: Build & test full (Maven)) (new)) Build time: 01:49:02

Core - Full Integration Build 9393 outcome was UNKNOWN using a merge of 82a3f81b051207bc3aecbbf1a185155884e1be02
Summary: Canceled (Exit code 143 (Step: Build & test full (Maven)) (new)) Build time: 00:05:02

Core - Full Integration Build 9388 outcome was UNKNOWN using a merge of 82a3f81b051207bc3aecbbf1a185155884e1be02
Summary: Canceled (Tests passed: 495, ignored: 11; exit code 143 (Step: Build & test full (Maven)) (new)) Build time: 00:05:03

Core - Full Integration Build 9394 outcome was FAILURE using a merge of ac5cfd51472be892acf23ac0f0ec6051fa628b17
Summary: Tests failed: 1, passed: 1868, ignored: 15 Build time: 00:45:33
Failed tests
org.jboss.as.test.layers.LayersTestCase.testServlet: java.lang.Exception: Some unreferenced modules are un-expected [wildflyee.api]
	at org.jboss.as.test.layers.LayersTest.test(LayersTest.java:100)
	at org.jboss.as.test.layers.LayersTestCase.testServlet(LayersTestCase.java:85)

Core - Full Integration Build 9389 outcome was FAILURE using a merge of ac5cfd51472be892acf23ac0f0ec6051fa628b17
Summary: Tests failed: 1 (1 new), passed: 6226, ignored: 105 Build time: 02:46:11
Failed tests
org.jboss.as.test.layers.LayersTestCase.testServlet: java.lang.Exception: Some unreferenced modules are un-expected [wildflyee.api]
	at org.jboss.as.test.layers.LayersTest.test(LayersTest.java:100)
	at org.jboss.as.test.layers.LayersTestCase.testServlet(LayersTestCase.java:85)

@yersan The PR for https://github.com/wildfly/wildfly/pull/13070 was done agains wildfly master branch which now targets WildFly 20.
That means that this PR for wildfly-core will not make it into WildFly 19. Is that intended?

Hello @jmesnil , yes that's intentional

@yersan thanks


Configure Azure Pipelines

This pipeline configuration builds the application and produces a build for the Release configuration.

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


Travis CI: Upgrade to jammy

https://docs.travis-ci.com/user/reference/linux/

Travis CI is no longer free to open-source projects...  https://app.travis-ci.com/github/mathjax/MathJax/builds

We still have access, but this merge does not trigger a build.  The last one was for the v4.0.0-alpha.1 release, nine months ago.

In fact, the Travis run for this repository really only does the npm publish, as all the actual building is done in the MathJax-src repository.  This repository just has a copy of the es5 directory from MathJax-src.


Cannot get more than 50 items while calling *.list methods

Colleagues, kindly advise how to implement reading all items from Bitrix *.list methods. I am stuck.
Code is the following:
...
resdict = bx24.call_webhook('xxxxxxxxxxxxxxx',
"crm.activity.list",
{
'order':{"ID": "DESC" },
'filter':{"OWNER_TYPE_ID": 1,'PROVIDER_ID': 'CRM_WEBFORM'},
'select':[ "ID", "SUBJECT" ],
# 'more': True, - these are my attempts, which obviously failed
# 'next': 100
}
)
The code produces the dictionary with the following params: ... 'next': 50, 'total': 450 ...

hi @sbatov ! according to the documentation:

Because the number of elements, returned by REST-methods, depends on the specific conditions and parameters, Bitrix24 returns elements via "batches" of several elements (presently, not more than 50 elements in a batch)

you should make a sequence of requests in a loop and pass start option for each request to get all activities like follows:
start = 0
crm_activities = []
while True:
    data = bx24.call_webhook('xxxxxxxxxxxxxxx', 'crm.activity.list', {'start': start, ...})
    crm_activities.append(data['result'])
    start += len(data['result'])
print(crm_activities)

the code snippet above wasn't tested because i haven't an account with a lot of data but i hope you have a point ;)

Yep, i've got the point. Thank you!


Months to Service sensor bug when time is less than a month

Describe the bug
When the time to service is less than a month the API returns days instead of months. In the Home Assistant sensor this is not taken to account and the sensor will for example show 26 months to service when it is 26 days.
To Reproduce:
Connect a Volvo to the integration with less than a month to service.
Expected behavior:
The sensor name in HA is Months to Service. When the time is less than a month expected behavior would be to show 0 months. Other option is to have the sensor name as Time to Service and show months and days as in the API.
Version info:
Docker container v1.8.12
Logs:
    "timeToService" : {       "value" : 26,       "unit" : "days",       "timestamp" : "2023-11-16T06:36:38.426Z"     }

Should be fixed with v1.8.13 :)

Yes, this is now fixed 👍


[ADD] EnbPI

Description
Add a class dedicated for Time Series Regression called MapieTimeSeriesRegressor. Correspond to Issue #134
Type of change
Please remove options that are irrelevant.

New feature (non-breaking change which adds functionality)
This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Checklist:

[x] I have read the contributing guidelines
[x] I have updated the HISTORY.rst and AUTHORS.rst files
[x] Linting passes successfully : make lint
[x] Typing passes successfully : make type-check
[x] Unit tests pass successfully : make tests
[x] Coverage is 100% : make coverage
[x] Documentation builds successfully : make doc

Codecov Report

Merging #135 (e23a4d1) into master (be4667e) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master     #135   +/-   ##
=======================================
  Coverage   99.92%   99.92%
=======================================
  Files          17       19    +2
  Lines        1286     1316   +30
  Branches      117      118    +1
=======================================
+ Hits         1285     1315   +30
  Misses          1        1

Impacted Files
Coverage Δ

mapie/regression.py
100.00% <ø> (ø)

mapie/tests/test_time_series_regression.py
100.00% <100.00%> (ø)

mapie/time_series_regression.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

Thanks for developing this. I have pulled the branch to test locally and am using sktime with make_reduction on the regressor for the forecasts. An issue I am seeing is that the sktime fit method looks like fit(self, y, X=X) (because you can predict y using only previous y values), while sklearn regressors have the fit method the other way round, i.e. fit(self, X, y). I can write a wrapper to solve this locally but wanted to raise in case there is a cleaner way.


Disable JBallerina ArgumentParserPositiveTest

Purpose
Fix disabling of Ballerina ArgumentParserPositiveTest instead of JBallerina ArgumentParserPositiveTest.
Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #16419 into master will increase coverage by 1.63%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #16419      +/-   ##
============================================
+ Coverage     11.25%   12.89%   +1.63%
  Complexity     2969     2969
============================================
  Files          1500     1495       -5
  Lines         82798    72267   -10531
  Branches       9696     8700     -996
============================================
  Hits           9318     9318
+ Misses        72555    62024   -10531
  Partials        925      925

Impacted Files
Coverage Δ
Complexity Δ

...ler/parser/antlr4/BallerinaParserBaseListener.java

...er/parser/antlr4/BallerinaParserErrorStrategy.java

...nalang/compiler/parser/antlr4/BallerinaParser.java

...inalang/compiler/parser/antlr4/BallerinaLexer.java

...er/parser/antlr4/BallerinaParserErrorListener.java

Continue to review full report at Codecov.

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


Customize font-size of taskbar

I would like the ability to change the font size on the status bar. It would be very useful in conjunction with the vim extension as that is where the vim command display. This is the only reason I want it to be bigger. I know I can just do Ctl + + but that makes everything bigger.

duplicate https://github.com/microsoft/vscode/issues/519


refactor: add turborepo and upgrade to Node 16

Have added turbo repo in order to help clean up the npm scripts - https://turborepo.org/
Also upgraded the project to Node 16 in the process
Updated the docker-compose.yml file to use the actual Dockerfiles
Moved the API and Web apps inside an "apps" folder, and kept "packages" for things like the common package.

reverted renaming of packages directory to apps, for ease of reviewing and keeping PR as smaller

fixed api 500 error

e2e-tests/README.md - this file has make install and make serve references on line 36.

When I run: npm run dev and do a CTRL + C after the server spins and runs I get this message:
^C
Gracefully stopping... (press Ctrl+C again to force)
Killing applications-web-app      ... done
Killing redis                     ... done
Killing applications-service-api  ... done
Killing ni_db                     ... done
Killing adminer                   ... done
ERROR: 2
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! applications-service@ dev: `docker-compose up`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the applications-service@ dev script.

Many files on docker-compose.yaml are exposing secrets and endpoints.
As it's a public repo and even private ones for security reasons use env variables to pass those secrets using a secret manager.
It's unrelated to this task as it was already done like this in case it cannot or would take much effort to be done here I am happy to create a new ticket for it in the backlog.

e2e-tests/README.md - this file has make install and make serve references on line 36.

Thanks! I've updated to remove that reference.

When I run: npm run dev and do a CTRL + C after the server spins and runs I get this message:
^C
Gracefully stopping... (press Ctrl+C again to force)
Killing applications-web-app      ... done
Killing redis                     ... done
Killing applications-service-api  ... done
Killing ni_db                     ... done
Killing adminer                   ... done
ERROR: 2
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! applications-service@ dev: `docker-compose up`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the applications-service@ dev script.

I've had a look into this, and I think it is down to the exit code that docker-compose returns after you hit CTRL+C, and that npm treats that exit code as an error. Ideally, we wouldn't see an error after a graceful exit like this but without doing some hacking around with the docker-compose exit code I'm not sure there's an obvious solution to this. Or we can just run docker-compose up directly, the npm run dev task isn't doing a lot so perhaps isn't needed anyway.

Many files on docker-compose.yaml are exposing secrets and endpoints.
As it's a public repo and even private ones for security reasons use env variables to pass those secrets using a secret manager.
It's unrelated to this task as it was already done like this in case it cannot or would take much effort to be done here I am happy to create a new ticket for it in the backlog.

Definitely agree. We have/had a ticket in the backlog to move the value for the SESSION_KEY environment variable into Azure Key Vault. We should do the same for other secret values, and raise a separate ticket for those.

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

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


enableAutoOutboundTracking breaks some  and <a @click> behavior.

When using vue-plausible with enableAutoOutboundTracking, clicking router-links and  tags sometimes triggers a page refresh. I'm not sure what causes the error, but disabling enableAutoOutboundTracking fixes  tags that otherwise causes a hard-refresh. This seems to happen with  and  tags that have #click event attached to them.

Same issue on my end.


using docker-deployment-action

cannot pass environment variables from github to VM

Why did you close it? What were you trying to do?

This was the github marketplace action to deploy using docker-compose.
Wasn't good enough for us since it couldn't send environment variables from github to the VM.
So we stick with docker run


isparta doesn't forward exit code in case of failures

The docs give this line as an example:
babel-node node_modules/.bin/isparta cover --report text --report lcovonly --root ./src node_modules/.bin/_mocha

The problem is it seems it doesn't forward the test exit status code properly, so we get successes instead of failures:

isparta v.3.0.3

This is also reproducible on the isparta repository itself — which test suite is failing as well btw:
$ babel-node bin/isparta cover --report text --report html node_modules/.bin/_mocha -- --reporter dot
Transformation error; return original code
{ [SyntaxError: /Users/niko/Sites/isparta/node_modules/mocha/bin/_mocha: 'return' outside of function (392:2)]
  pos: 9902,
  loc: { line: 392, column: 2 },
  raisedAt: 9908,
  _babel: true,
  codeFrame: '  390 |   \u001b[32m}\u001b[39m\u001b[34m\u001b[1m)\u001b[22m\u001b[39m\u001b[1m;\u001b[22m\n  391 | \n> 392 |   \u001b[36mreturn\u001b[39m\u001b[1m;\u001b[22m\n      |   ^\n  393 | \u001b[32m}\u001b[39m\n  394 | \n  395 | \u001b[90m// load\u001b[39m' }

  ․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․․

  33 passing (121ms)
  14 failing

  1) Isparta instrumenter when es6-classes should localize the 1st fn:

      Expect the 1st fns to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 3
         "loc": {
           "end": {
             "column": 0
             "line": 0

      at Context.locationIt (test/index.spec.js:119:24)

  2) Isparta instrumenter when es6-classes should localize the 2nd fn:

      Expect the 2nd fns to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 5
         "loc": {
           "end": {
             "column": 0
             "line": 0
             "column": 0
             "line": 0
           }
         }
      -  "name": "defineProperties"
      +  "name": "(anonymous_2)"
         "skip": true
       }

      at Context.locationIt (test/index.spec.js:119:24)

  3) Isparta instrumenter when es6-classes should localize the 3rd fn:

      Expect the 3rd fns to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 5
         "loc": {
           "end": {
             "column": 0
             "line": 0
             "column": 0
             "line": 0
           }
         }
      -  "name": "(anonymous_3)"
      +  "name": "defineProperties"
         "skip": true
       }

      at Context.locationIt (test/index.spec.js:119:24)

  4) Isparta instrumenter when es6-classes should localize the 4th fn:

      Expect the 4th fns to be deeply equal.
      + expected - actual

       {
      -  "line": 11
      +  "line": 5
         "loc": {
           "end": {
             "column": 0
             "line": 0
             "column": 0
             "line": 0
           }
         }
      -  "name": "_classCallCheck"
      +  "name": "(anonymous_4)"
         "skip": true
       }

      at Context.locationIt (test/index.spec.js:119:24)

  5) Isparta instrumenter when es6-classes should localize the 5th fn:

      Expect the 5th fns to be deeply equal.
      + expected - actual

       {
      -  "line": 13
      +  "line": 12
         "loc": {
           "end": {
             "column": 10
             "line": 3

      at Context.locationIt (test/index.spec.js:119:24)

  6) Isparta instrumenter when es6-classes should localize the 6th fn:

      Expect the 6th fns to be deeply equal.
      + expected - actual

       {
      -  "line": 14
      +  "line": 13
         "loc": {
           "end": {
             "column": 0
             "line": 0

      at Context.locationIt (test/index.spec.js:119:24)

  7) Isparta instrumenter when es6-classes should localize the 7th fn:

      Expect the 7th fns to be deeply equal.
      + expected - actual

       {
      -  "line": 20
      +  "line": 19
         "loc": {
           "end": {
             "column": 10
             "line": 4

      at Context.locationIt (test/index.spec.js:119:24)

  8) Isparta instrumenter when es6-classes should localize the 8th fn:

      Expect the 8th fns to be deeply equal.
      + expected - actual

       {
      -  "line": 25
      +  "line": 24
         "loc": {
           "end": {
             "column": 13
             "line": 8

      at Context.locationIt (test/index.spec.js:119:24)

  9) Isparta instrumenter when es6-classes should localize the 9th fn:

      Expect the 9th fns to be deeply equal.
      + expected - actual

       {
      -  "line": 30
      +  "line": 29
         "loc": {
           "end": {
             "column": 19
             "line": 12

      at Context.locationIt (test/index.spec.js:119:24)

  10) Isparta instrumenter when es6-classes should localize the 1st branch:

      Expect the 1st branchs to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 3
         "locations": [
           {
             "end": {
               "column": 0
               "line": 0
             }
           }
         ]
      -  "type": "binary-expr"
      +  "type": "if"
       }

      at Context.locationIt (test/index.spec.js:119:24)

  11) Isparta instrumenter when es6-classes should localize the 2nd branch:

      Expect the 2nd branchs to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 5
         "locations": [
           {
             "end": {
               "column": 0
               "line": 0
             }
           }
         ]
      -  "type": "if"
      +  "type": "binary-expr"
       }

      at Context.locationIt (test/index.spec.js:119:24)

  12) Isparta instrumenter when es6-classes should localize the 3rd branch:

      Expect the 3rd branchs to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 5
         "locations": [
           {
             "end": {
               "column": 0

      at Context.locationIt (test/index.spec.js:119:24)

  13) Isparta instrumenter when es6-classes should localize the 4th branch:

      Expect the 4th branchs to be deeply equal.
      + expected - actual

       {
      -  "line": 9
      +  "line": 5
         "locations": [
           {
             "end": {
               "column": 0

      at Context.locationIt (test/index.spec.js:119:24)

  14) Isparta instrumenter when es6-classes should localize the 5th branch:

      Expect the 5th branchs to be deeply equal.
      + expected - actual

       {
      -  "line": 11
      +  "line": 5
         "locations": [
           {
             "end": {
               "column": 0

      at Context.locationIt (test/index.spec.js:119:24)

================================================================================
Writing coverage object [/Users/niko/Sites/isparta/coverage/coverage.json]
Writing coverage reports at [/Users/niko/Sites/isparta/coverage]
================================================================================
------------------|----------|----------|----------|----------|----------------|
File              |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
------------------|----------|----------|----------|----------|----------------|
 src/             |    99.49 |    92.59 |      100 |    97.73 |                |
  instrumenter.js |    99.43 |    92.96 |      100 |     97.5 |             40 |
  isparta.js      |      100 |       90 |      100 |      100 |                |
------------------|----------|----------|----------|----------|----------------|
All files         |    99.49 |    92.59 |      100 |    97.73 |                |
------------------|----------|----------|----------|----------|----------------|

=============================== Coverage summary ===============================
Statements   : 99.49% ( 196/197 ), 37 ignored
Branches     : 92.59% ( 75/81 ), 32 ignored
Functions    : 100% ( 36/36 ), 3 ignored
Lines        : 97.73% ( 43/44 )
================================================================================
 niko@n1k0-moz ~/Sites/isparta
$ echo $?
0

Minimal reproducible test case:
 niko@n1k0-moz ~/Sites/isparta
$ cat fail.js
process.exit(1)
 niko@n1k0-moz ~/Sites/isparta
$ babel-node bin/isparta cover fail.js -- --reporter dot && echo $?
================================================================================
Writing coverage object [/Users/niko/Sites/isparta/coverage/coverage.json]
Writing coverage reports at [/Users/niko/Sites/isparta/coverage]
================================================================================

=============================== Coverage summary ===============================
Statements   : 100% ( 1/1 )
Branches     : 100% ( 0/0 )
Functions    : 100% ( 0/0 )
Lines        : 100% ( 1/1 )
================================================================================
0

After investigating the issue for a little while, I came with this as a replacement for runCommandFn in cli.js:
function runCommandFn() {
    process.env.running_under_istanbul = 1;
    var p = (0, _child_process.spawn)('node', [cmd].concat(cmdArgs));
    p.stdout.on('data', function (data) {
      process.stdout.write(data);
    });
    p.stderr.on('data', function (data) {
      process.stderr.write(data);
    });
    p.on('close', function (code) {
      callback(code === 0 ? null : 'Command exited with ' + code);
    });
  }

Sadly, it fails at transpiling babel code and lose coloration. I'm leaving all this here, feel free to come with a solution; for now I'll have to disable coverage reporting as failing green builds are simply unacceptable to us.

Having same issue. Is there a solution or fix for that already or not yet?
Thanks

@n1k0 passing { stdio: 'inherit' } to the spawn command options gives you colors.


use defineEmits error

Version
3.2.1
Reproduction link
[https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHRlbXBsYXRlPlxuICA8ZGl2IEBjbGljaz1cInRlc3RWYWx1ZVwiPnRlc3Q8L2Rpdj5cbjwvdGVtcGxhdGU XG5cbjxzY3JpcHQgc2V0dXA XG4gIGltcG9ydCB7IGRlZmluZUVtaXRzIH0gZnJvbSAndnVlJztcblx0Y29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFtcImNsaWNrXCJdKTtcbiAgY29uc29sZS5sb2coZW1pdCk7XG4gIGNvbnN0IHRlc3RWYWx1ZSA9ICgpID0 IHtcbiAgICBlbWl0KFwiY2xpY2tcIiwgMTIzKTtcbiAgfVxuPC9zY3JpcHQ In0=](https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHRlbXBsYXRlPlxuICA8ZGl2IEBjbGljaz1cInRlc3RWYWx1ZVwiPnRlc3Q8L2Rpdj5cbjwvdGVtcGxhdGU XG5cbjxzY3JpcHQgc2V0dXA XG4gIGltcG9ydCB7IGRlZmluZUVtaXRzIH0gZnJvbSAndnVlJztcblx0Y29uc3QgZW1pdCA9IGRlZmluZUVtaXRzKFtcImNsaWNrXCJdKTtcbiAgY29uc29sZS5sb2coZW1pdCk7XG4gIGNvbnN0IHRlc3RWYWx1ZSA9ICgpID0 IHtcbiAgICBlbWl0KFwiY2xpY2tcIiwgMTIzKTtcbiAgfVxuPC9zY3JpcHQ In0=)
Steps to reproduce

your repro link is borken

your repro link is borken

I add code and description in steps to reproduce,just general idea,thank you

The code you posted works fine on the playground for me

The code you posted works fine on the playground for me
It also works without import { defineEmits } because in 3.2, that function is only a compiler hint and doesn't have to be imported.

if i do not import { defineEmits },program fault，only import it,just right，but can not get emit,emit is null,i upload picture，thank you

@zengjie911
please make sure the version of @vue/compiler-sfc is 3.2.1 too.
if it's not, update it to 3.2.1 and remove the yarn.lock file and re-install deps.

You really need to provide the code that produces this error.

@zengjie911
I mean @vue/compiler-sfc  not 'vue'.

@edison1105  compiler-sfc  is 3.2.1, after it's ok.  Thanks.

@zengjie911
I mean @vue/compiler-sfc  not 'vue'.

just the version of @vue/compiler-sfc'problem,i update the version,just ok,thank you

@edison1105 compiler-sfc is 3.2.1, after it's ok. Thanks.

yes,i update the version,is ok,thank you


Improve Label component compatibility with Phoenix label/2

Follow-up to #264.
We decided to go with our own implementation for the <Label /> component instead of relying on Phoenix's label/2 due to #262. We should, however, make sure that our component is compatible with Phoenix's.
This PR copies over and adapts Phoenix's tests for their label/2 implementation. I commented out all tests that are not relevant (e.g. tests for implementation details like do: blocks), but decided to keep them in the code as reference.
I also moved the label test file into the form folder, where it belongs.
And lastly, I also snuck in some tests for <Link /> :D

I commented out all tests that are not relevant (e.g. tests for implementation details like do: blocks), but decided to keep them in the code as reference.

@miguel-s I'm probably missing something but I wonder why those tests are not relevant. Shouldn't we keep them?

@msaraiva on second thought I believe you're right, they're actually pointing out some missing behaviours on our end.
Regarding tests for inline and block content, I'll translate them to Surface's props (inline) and slots (block), do you agree?


[BugFix] Add lock to prevent concurrency issue in committed_rs_map

Why I'm doing:
There are several scenarios where _committed_rs_map might be modified:

Adding to _committed_rs_map when committing a transaction.
Removing from _committed_rs_map when publishing a transaction.
Clear _committed_rs_map during a schema update.

Add and Delete from _committed_rs_map is thread safe but there are concurrent issue between add(delete) and clear operation.
What I'm doing:
Add schema_lock to prevent concurrency issue.
Fixes #issue
What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.4
[x] 3.3
[x] 3.2
[ ] 3.1
[ ] 3.0

@mergify backport branch-3.2.13


Quick order and direct order should handle variation master products and retail sets in a useful way

Is your feature request related to a problem? If yes, please describe it.
Currently the quantity field disappears, when a user insert the sku of a variation master product or a retail set.
The quantity component isn't been visible for variation master products and retail sets, because usually you can't buy these products with a specified quantity (see on the according product pages).
The same behavior is used for the quantity component in the referred forms.
Steps to Repeat:

Enter SKU 201807231 => Quantity field is removed which is ok because you can't add this product.
Click "Add to Cart" => A product variation 201807231-04 is added to cart.

Describe the desired solution.
Requirements need to be specified for this.
Possible solutions:

such products are not orderable from these forms and shows an error message, like for invalid skus
quantity field is visible, but shows unchangeable 0
change the visibility of the quantity component, so a quantity can be filled in and the products can be ordered

AB#69206

I would intuitively follow the "Add to cart" behavior on product detail pages:

Variation master products are not orderable and an error message is displayed: ""The product cannot be ordered. Please enter a specific variation." (like invalid SKUs)
Retail sets are orderable (quantity field is visible & editable) and all single products are added to the cart.


Flux2

Full and short name of product
Flux2, FluxCD, Flux
Does this product have LTS versions? What are the intervals between each LTS version?
Alpha, Beta, Stable version, see semver conventions:
[General semver conventions:] (https://github.com/PowerShell/PowerShell/tags](https://fluxcd.io/flux/releases/)
[Actually versions:] (https://github.com/fluxcd/flux2/tags)
[Timetable of EoL Flux version 1:] (https://fluxcd.io/flux/migration/timetable/)
Additional context
Competor of ArgoCD in GitOps battle.

Sorry, it is already exist, just with a name of Flux. My bad :)
Please ignore the request.


Fails to start after update to v1.2

Shows two cryptic error messages one after another:

I've tried removing corresponding .ini file, made no difference.
OS: Win10 1809 x64
For now I've downgraded to 1.0.

I'm getting the same thing.
OS: 20H2

Thanks, see https://www.msys2.org/news/#2021-03-25-temporarily-broken-msys2-launcher-package


Swap out material makeStyles for tss-react makeStyles

This pull request swaps out makeStyles imported from material UI and replaces it with makeStyles from the tss-react package.
This should improve performance and reduce or eliminate slowdown of the app over time.
makeStyles is left over from MUI V4 and apparently has problems with memory leaks and slow performance.
tss-react provides an almost drop in replacement and a script for automatically updating the code.
I'd like to test this build more to make sure there are no unintended side-effects or issues with the layout, but I think it should be merged before we do any live shifts (we only have training planned for now so that gives some time).
A temporary demo build with the changes: https://dev.d43cb9esdfjwv.amplifyapp.com/

@joetooker95 @RezTy-BBW when you next have some time can you please load the demo and play around with it a bit? I can't see any problems but would like more eyes on it if anything looks wrong or breaks.

Codecov Report

Merging #127 (16018a8) into master (7914304) will decrease coverage by 0.06%.
The diff coverage is 60.82%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##           master     #127      +/-   ##
==========================================
- Coverage   58.92%   58.86%   -0.06%
==========================================
  Files         298      298
  Lines        9825     9811      -14
  Branches     2483     2481       -2
==========================================
- Hits         5789     5775      -14
- Misses       3670     3671       +1
+ Partials      366      365       -1

Impacted Files
Coverage Δ

src/components/ContextMenus/UserContextMenu.js
0.00% <0.00%> (ø)

src/components/ContextMenus/VehicleContextMenu.js
0.00% <0.00%> (ø)

src/components/CustomizedDialogs.js
0.00% <0.00%> (ø)

src/components/UserCard.js
0.00% <0.00%> (ø)

src/components/UsersSelect.js
0.00% <0.00%> (ø)

src/navigation/Components/ExpandableTaskFilter.js
0.00% <0.00%> (ø)

src/navigation/MainWindow.js
0.00% <0.00%> (ø)

src/navigation/MenuMainContainer.js
0.00% <0.00%> (ø)

src/navigation/MobileNavigationDrawer.js
0.00% <0.00%> (ø)

...nControl/Components/AdminAddRiderResponsibility.js
0.00% <0.00%> (ø)

... and 73 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

I'm going to merge this now with an aim to do more testing and eventually push it into production ahead of the trial sessions. Since I'd rather if any problems crop up it would be during testing rather than live.


Include site credential during development

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question

I am trying to implement an extractor for Microsoft Stream, which requires users to log in to access any video. Is it possible to pass the username-password pair and/or the .netrc file to the extractor during development? I have tried the following:

Defining a .netrc file without the --netrc argument
Defining a _netrc file without the --netrc argument
Defining a .netrc file with the --netrc argument
Defining a _netrc file with the --netrc argument
Defining the credential with the --username and --password arguments

A workaround I can think of it to hard-code a testing credential in NewSiteIE._get_login_info() during development and remove it before pushing it GitHub. Am I missing something in the documentation?
I am developing the extractor on my Windows 10 laptop running Python 3.7.6, based on commit https://github.com/ytdl-org/youtube-dl/commit/049c0486bbd57a9bb5fb5a6a5eeff82fd4ac03ff
Many thanks!
Output of defining .netrc or _netrc file without netrc argument
PS D:\Users\user\Code\youtube-dl> python test/test_download.py TestDownload.test_MicrosoftStream
[microsoftstream] c883c6a5-9895-4900-9a35-62f4b5d506c9: Downloading webpage
ERROR: This video is only available for registered users. Use --username and --password or --netrc to provide account credentials.
Traceback (most recent call last):
  File "D:\Users\user\Code\youtube-dl\youtube_dl\YoutubeDL.py", line 797, in extract_info
    ie_result = ie.extract(url)
  File "D:\Users\user\Code\youtube-dl\youtube_dl\extractor\common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "D:\Users\user\Code\youtube-dl\youtube_dl\extractor\microsoftstream.py", line 135, in _real_extract
    return self.raise_login_required()
  File "D:\Users\user\Code\youtube-dl\youtube_dl\extractor\common.py", line 936, in raise_login_required
    expected=True)
youtube_dl.utils.ExtractorError: This video is only available for registered users. Use --username and --password or --netrc to provide account credentials.

E
======================================================================
ERROR: test_MicrosoftStream (__main__.TestDownload):
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\Users\user\Code\youtube-dl\youtube_dl\YoutubeDL.py", line 797, in extract_info
    ie_result = ie.extract(url)
  File "D:\Users\user\Code\youtube-dl\youtube_dl\extractor\common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "D:\Users\user\Code\youtube-dl\youtube_dl\extractor\microsoftstream.py", line 135, in _real_extract
    return self.raise_login_required()
  File "D:\Users\user\Code\youtube-dl\youtube_dl\extractor\common.py", line 936, in raise_login_required
    expected=True)
youtube_dl.utils.ExtractorError: This video is only available for registered users. Use --username and --password or --netrc to provide account credentials.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test/test_download.py", line 159, in test_template
    force_generic_extractor=params.get('force_generic_extractor', False))
  File "D:\Users\user\Code\youtube-dl\youtube_dl\YoutubeDL.py", line 820, in extract_info
    self.report_error(compat_str(e), e.format_traceback())
  File "D:\Users\user\Code\youtube-dl\youtube_dl\YoutubeDL.py", line 625, in report_error
    self.trouble(error_message, tb)
  File "D:\Users\user\Code\youtube-dl\youtube_dl\YoutubeDL.py", line 595, in trouble
    raise DownloadError(message, exc_info)
youtube_dl.utils.DownloadError: ERROR: This video is only available for registered users. Use --username and --password or --netrc to provide account credentials.

----------------------------------------------------------------------
Ran 1 test in 1.163s

FAILED (errors=1)

Defining a _netrc or .netrc file with the --netrc argument
PS D:\Users\user\Code\youtube-dl> python test/test_download.py --netrc TestDownload.test_MicrosoftStream
usage: test_download.py [-h] [-v] [-q] [--locals] [-f] [-c] [-b]
                        [-k TESTNAMEPATTERNS]
                        [tests [tests ...]]
test_download.py: error: unrecognized arguments: --netrc

Defining the username-password pair with the --username and --password arguments
PS D:\Users\user\Code\youtube-dl> python test/test_download.py --username [username] --password [password] TestDownload.test_MicrosoftStream
usage: test_download.py [-h] [-v] [-q] [--locals] [-f] [-c] [-b]
                        [-k TESTNAMEPATTERNS]
                        [tests [tests ...]]
test_download.py: error: unrecognized arguments: --username --password [password] TestDownload.test_MicrosoftStream

https://github.com/ytdl-org/youtube-dl/blob/049c0486bbd57a9bb5fb5a6a5eeff82fd4ac03ff/youtube_dl/YoutubeDL.py#L143-L144
in test's params.


Improve handling of NodeNotAvailableToDeploy error

When tfchain returns NodeNotAvailableToDeploy error when attempting to create a contract, the user is presented with a pretty unhelpful dump. For example:

There are four cases where this error is fired:

Node is standby and user tries to deploy a shared workload
Node is "dedicated" (has an additional fee set) and user tries to deploy a shared workload
Someone else has rented the node and user tries to deploy a shared workload
Someone else has rented the node and the user tries to rent the node as dedicated

I think the UI should be able to prevent the user from attempting these actions in the first place. Specifically I noticed that case 2 is possible in the dashboard right now.
So I'd like to see two things:

[ ] Validation that the node is eligible to deploy to/rent in all cases mentioned above. Stop the user if not
[ ] In case the error happens to fire anyway, print a message that explains the possible cases. Send the error dump to the logs instead

Issue updated:

handled first two cases.
but we have this UnavailableNodeError not the NodeNotAvailableToDeploy

the third case is already handled: Someone else has rented the node and user tries to deploy a shared workload

the fourth one is not clear Someone else has rented the node and the user tries to rent the node as dedicated
the reserve button is hidden if the node is rented.

@scottyeager can you confirm the error and explain the fourth case ?

Hi @0oM4R,
I was listing all four cases whereby tfchain might return the NodeNotAvailableToDeploy error, just to be sure we considered them all. Seems sdk-ts doesn't mirror the error types from tfchain which is okay.
Regarding case four, I see what you mean. Again, I was just enumerating all possible cases from the perspective of tfchain. What I was suggesting overall though is that even if these actions should be blocked by the UI, it might still be possible that some corner case or regression results in the user encountering the error anyway.
So that's why I was suggesting to catch this error and print a more human readable message, but I think it's good enough if we can just prevent the user from trying these action in the UI under normal circumstances.

@scottyeager Can you please mention the network that you faced NodeNotAvailableToDeploy?

@scottyeager any update?


KAFKA-12866: Avoid root access to Zookeeper

https://issues.apache.org/jira/browse/KAFKA-12866
The broker shouldn't assume create access to the chroot. There are
deployement scenarios where the chroot is already created is the only
znode which the broker can access.
To test this, we can use a ZK integration test, and configure zookeeper in the same way the issue is reproduced.

Create the chroot
Set free access to the chroot
Lock down access to the root znode
Try to connect the KafkaZkClient

It should be a separate ZooKeeperTestHarness to avoid leaving the ACL changes made to ZK root visible to other tests.
Rejected alternatives

Expect NoAuth in KafkaZkClient.createRecursive and assume NoAuth as success.
Create new configuration to set createChrootIfNecessary = false instead of the current non configurable default value of true.

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@omkreddy can you have a look at this one?

cc @rondagostino

Good catch @soarez, and thanks for the PR!  Test failed without the fix and passed with it.  Thanks again.


ecctl GA

Description
ecctl will be GA soon 🎉 This is a list to track the tasks we need to finish.
Done

[x] Move all APIs from ecctl to cloud-sdk-go https://github.com/elastic/ecctl/issues/275
[x] Refactor platform APIs to require Region parameter https://github.com/elastic/cloud-sdk-go/issues/129
[x] Change ecctl platform stack command and subcommands to ecctl stack for parity with the API https://github.com/elastic/ecctl/pull/329
[x] Ability for deployment template APIs to use the deployment format. https://github.com/elastic/cloud-sdk-go/issues/159 https://github.com/elastic/ecctl/pull/332
[x] Update client/models to MS39 and update user update API https://github.com/elastic/cloud-sdk-go/issues/160
[x] Update client/models to MS41 https://github.com/elastic/cloud-sdk-go/pull/167 @karencfv
[x] Flag based deployment create https://github.com/elastic/ecctl/issues/334 @karencfv #341 (The PR has been merged but the issue about deployment template ID availability needs to be solved)

[x] Resource Get @karencfv https://github.com/elastic/cloud-sdk-go/pull/170

[x] Add custom ecctl headers (https://github.com/elastic/ecctl/issues/333) @marclop
[x] Make sure Enterprise Search is supported in all commands it should be.

[x] Vacate
[x] flag-based Deployment create https://github.com/elastic/ecctl/pull/341 https://github.com/elastic/cloud-sdk-go/pull/168
[x] Various mentions of resourcekinds @karencfv https://github.com/elastic/ecctl/pull/342 https://github.com/elastic/cloud-sdk-go/pull/170

[x] Use deployment templates new APIs instead of the old platform API ones. Also replace old platform deployment-template command and subcommands or mark them as deprecated @marclop elastic/cloud-sdk-go#171 and #343.
[x] Make sure our documentation in ecctl and cloud-sdk-go is up to date with recent changes @karencfv https://github.com/elastic/ecctl/pull/347
[x] Add --generate-update-payload to ecctl deployment show command (#355 and elastic/cloud-sdk-go#181)
[x] Move the deptemplateapi.Get API calls to deptemplateapi.List with the instance filter for depresource.NewPayload (cloud-sdk-go). @marclop (elastic/cloud-sdk-go#178) (#348)
[x] Change topology element "name" to "node_type" (elastic/cloud-sdk-go#181 and #356) @karencfv
[x] Unify ecctl deployment create size unit types to gb (#357) @karencfv
~- [ ] Flag based deployment update https://github.com/elastic/ecctl/issues/225~
[x] Write up the GA changelog @karencfv https://github.com/elastic/ecctl/pull/350

@marclop @Kushmaro please feel free to add anything you think I might be missing here :)

cc @nrichers

Heads up 👉 https://github.com/elastic/cloud/issues/62498

All items completed 🎉  ecctl release issue -> https://github.com/elastic/ecctl/issues/349


[Suggestion] Option to output framework bundles

I know you don't want to have any ties with Xcode (and that's very understandable), but frameworks are built into Swift itself (swiftc -F <framework path>), so it would make sense to support them.
Building a framework does not require the use of xcodebuild (though you probably know this already). For reference, here's what a Swift framework generally looks like:
<framework>.framework
├── Headers -> Versions/Current/Headers
├── Modules -> Versions/Current/Modules
├── Resources -> Versions/Current/Resources
├── <framework> -> Versions/Current/<framework>
└── Versions
    ├── A
    │   ├── Headers
    │   │   ├── <framework>-Swift.h
    │   │   └── <framework>.h
    │   ├── Modules
    │   │   ├── <framework>.swiftmodule
    │   │   │   ├── x86_64.swiftdoc
    │   │   │   └── x86_64.swiftmodule
    │   │   └── module.modulemap
    │   ├── Resources
    │   │   └── Info.plist
    │   └── <framework>
    └── Current -> A

The implementation of this turns out to be surprisingly trivial. swiftc already has build flags to output .swiftdoc & .swiftmodule (-emit-module), framework headers (-emit-objc-header), and the framework executable itself (-emit-library without the .dylib extension).
Anyway, I think Conche is great but its difficult to use it when it (in my understanding) only outputs executables. Allowing it to output frameworks would make it usable in not only projects that currently use Carthage/Cocoapods-rome, but also iOS, Mac, WatchOS, and TVOS applications!
Let me know if you think it's worth trying :)

Anyway, I think Conche is great but its difficult to use it when it (in my understanding) only outputs executables.

It outputs both Swift modules and libraries. But the main idea is that you won't be using them outside of Conche. This is merely an implementation detail users do not need to worry about. Ideally in the future you would be able to build a variety of applications directly from Conche. Currently only command line tools and tests are supported but I'd like to see the following:

Linux QT Application
Linux X11 Application, etc
Windows GUI Application
OS X GUI Application
iOS Application
watchOS Application
tvOS Application

I have intentions of writing either a plugin or built-in support for building and exporting frameworks to use directly with Xcode or to provide binary distribution on GitHub releases.
I don't think it makes sense to become the default format because it will be OS X specific. Conche is designed to work on other platforms like Linux and Windows once Swift becomes open-source. Which is the main reason I've not been staying away from tying this to Xcode in any way. Since Xcode itself won't be available on other platforms.

Well, for me I don't always use Xcode but I still use the -F option to use frameworks (this allows me to use Cocoapods-Rome and Carthage interchangeably). Personally I came upon this specific issue with Conche when I wanted to use Stencil but I had issues with Cocoapods. It makes sense that you would want to target as many platforms & applications as possible, so I don't think you should have framework building built-in.
Anyway, I think writing a plugin for this would suit my needs. I'm willing to do it - what's the plugin system for Conche look like (does it exist yet)? Thanks for getting back to me.

The plugin system is currently undefined. The only thing that Conche supports for plugins is adding subcommands. You simply add a subcommand to your PATH similar to how git works. So, conche foo sub-command will look up conchs-foo in PATH. I have been working on a conche-brew plugin which allows you to easily create Homebrew formula to install your project as the first plugin/example plugin.
Let me have a think about how to design how the framework support will work and get back to you. It was one of the things I was going to tackle next.
As for using conche libraries, you can use the -I and -L flag to add import search path and library search path to build things against libraries and modules. The Conche Makefile is a good example of this, it includes commands to build Conche with it's dependencies in the same way Conche would build these (since we can't use Conche to build Conche).
Example:
$ swiftc -I .conche/modules -L .conche/lib

I'd love to talk to you about some of your projects, do you happen to be in the iOS Folks/iOS Developers Slack or on IRC?

Sure - take your time. I'm on the swift-lang slack - feel free to pm me!

Closing out this issue as Conche is deprecated for the Swift Package Manager (SPM). Instead you can use SPM (https://github.com/Conche/Conche/commit/78708a9556b00d602de4c3e518a7f201b55a519b).


Get backup keys

I'll DM people most concerned about security and propose hours of the night / day when right hand door will be closed, and people need keys

@MelissaNyomi did you create copies of the mail keys and right-hand keys to hand out to people in the mean-time? I saw some hanging by the side of the right-hand door (Apt 4B).

Since we now have the August smartlock, we'll leave this issue open to track getting copies of the August smartlock deadbolt key and the mailbox keys, put in the safe.

we now have 6 backup keys, one of them is in the lockbox by default. Thanks everyone!


cmd/go: "go list -f '{{.Stale}}'" stack overflow with cyclic imports

What version of Go are you using (go version)?
go version go1.10.3 linux/amd64
Does this issue reproduce with the latest release?
Yes. We also saw this with 1.10.2.
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/jwebb/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/jwebb/gocode"
GORACE=""
GOROOT="/home/jwebb/opt/go"
GOTMPDIR=""
GOTOOLDIR="/home/jwebb/opt/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build138291515=/tmp/go-build -gno-record-gcc-switches"

What did you do?
This appears to be triggered by any cyclic import, but only with use of the {{.Stale}} template, e.g.:
#!/bin/bash

set -ex

export GOPATH="$PWD"
mkdir -p src/testorg/pkg{1,2}

cat > src/testorg/pkg1/pkg1.go <<EOF
package pkg1

import "testorg/pkg2"
EOF

cat > src/testorg/pkg2/pkg2.go <<EOF
package pkg2

import "testorg/pkg1"
EOF

go list -f '{{.Stale}}' testorg/...

What did you expect to see?
An error message about the cyclic import, but no crash.
What did you see instead?

This issue cannot be reproduced on go1.12.2.
$ go version
go version go1.12.2 windows/amd64
$ ls $GOPATH/src
github.com/  golang.org/  google.golang.org/  rsc.io/  testorg/
$ go list -f '{{ .Stale }}' testorg/...
can't load package: import cycle not allowed
package testorg/pkg1
        imports testorg/pkg2
        imports testorg/pkg1
true
$ ls -R $GOPATH/src/testorg/
/c/Users/***/Documents/Google/src/testorg/:
pkg1/  pkg2/

/c/Users/***/Documents/Google/src/testorg/pkg1:
pkg1.go

/c/Users/***/Documents/Google/src/testorg/pkg2:
pkg2.go

The description above is placing files in $GOPATH/src/src but this is not creating an issue either as src is appended to GOPATH. Issue seems solved.

We got a report via Slack of what seems to be the same crash on Go 1.15.7, with the following cycle in the stack trace:
https://github.com/golang/go/blob/e8e7facfaa47bf21007c0a1c679debba52ec3ea0/src/cmd/go/internal/work/action.go#L371
https://github.com/golang/go/blob/e8e7facfaa47bf21007c0a1c679debba52ec3ea0/src/cmd/go/internal/work/action.go#L404
https://github.com/golang/go/blob/e8e7facfaa47bf21007c0a1c679debba52ec3ea0/src/cmd/go/internal/work/action.go#L414
Like the original report — and like #43279 — the top of the stack at the time of the crash was in the fmt package via (*Builder).NewObjdir. It seems that this bug is still present.

I'm intrigued by the condition that is supposed to guard against import cycles here:
https://github.com/golang/go/blob/e8e7facfaa47bf21007c0a1c679debba52ec3ea0/src/cmd/go/internal/work/action.go#L412
Perhaps p.Error is starting out as an import cycle error, butt somehow being overwritten with some error for which p.Error.IsImportCycle is false?
CC @jayconrod @matloob

I ran into this when analyzing some gVisor code. In particular the package gvisor.dev/gvisor/pkg/sync will trigger the issue. It appears to be caused by two packages being defined in the same directory (here sync and seqatomic), causing p.Error to be populated with a MultiplePackageError, while also containing an import loop (seqatomic imports sync).
Because p.Error != nil and p.Error.IsImportCycle != true we get stuck in the CompileAction loop. This is obviously a very weird situation, and I'm honestly not really sure what the correct solution is. It seems like probably reusePackage should either be setting IsImportCycle when it detects a loop, and p.Error is already set, or it should stomp the existing p.Error and overwrite with the import loop error, since that is likely to be the more useful error, but my familiarity with this area of the codebase is pretty limited, so there might be a good reason not to do that.

Reproduced at gvisor.dev/gvisor@ab488702a by running go list -compiled -e.
Thank you!

Threw together a quick CL with what I imagine is the simplest solution to this problem, feel free to ignore if you think there is a better approach.

@gopherbot please consider this for backport to 1.16 and 1.15


Mention network plugins in “Kubernetes Components”

I was reading this page to learn about an addon that the installation page mentions as indispensable, i.e. the CNI addon. Strangely it isn't even mentioned on the page.

/retitle Mention network plugins in “Kubernetes Components”
It does make sense to mention network plugins as an example of an add-on.
/triage accepted
/language en
/priority backlog

/remove-lifecycle rotten

/reopen
This is still a valid issue.

/lifecycle frozen

Page to be modified: https://kubernetes.io/docs/concepts/overview/components/
What needs to be added: A section about Network Plugins under Addons
Where can you find more information about Network Plugins on our docs:

https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Does that sound right? If yes, we can open this up for contributions as a good-first-issue, I think.

/assign


How to apply the xxx.pt file completed in projector.py to apply_factor.py?

Hi！
We added the parameter of channel_multiplier and got a xxx.pt file in projector.py. Can this file be used in apply_factor.py? I tried to use it as a factor file, but it appeared:
File "apply_factor.py" in , line 57
eigvec = torch.load(args.factor)["eigvec"]. to (args.device)
KeyError: "eigvec"
Is this the wrong way to use it?
thank you very much!

You can replace latent in https://github.com/rosinality/stylegan2-pytorch/blob/master/apply_factor.py#L65 to the latent you got from projector.py. You need to do closed form factorization using https://github.com/rosinality/stylegan2-pytorch/blob/master/closed_form_factorization.py and get the factor file before to use apply_factor.py.

You can replace latent in https://github.com/rosinality/stylegan2-pytorch/blob/master/apply_factor.py#L65 to the latent you got from projector.py. You need to do closed form factorization using https://github.com/rosinality/stylegan2-pytorch/blob/master/closed_form_factorization.py and get the factor file before to use apply_factor.py.

Yes, you have told us in the documentation that we need to get factor.pt first, and random samples can be edited at will, very successful and perfect. But where should the xxx.pt obtained from projector.py be arranged in apply_factor.py?
Should I add or modify the code in apply_factor.py?
L31 parser.add_argument("--pjpt", type=str, default=None, help="projector pt")
L58 pjpt = torch.load(args.pjpt)
L60 g.load_state_dict(pjpt["g_ema"], strict=False)？
L65 latent = g.get_latent(latent)？

You can load xxx.pt and use 'latent' in it instead of https://github.com/rosinality/stylegan2-pytorch/blob/master/apply_factor.py#L65.

You can load xxx.pt and use 'latent' in it instead of https://github.com/rosinality/stylegan2-pytorch/blob/master/apply_factor.py#L65.

But how can the latent load it without modifying this line of code?
Although ckpt.pt, factor.pt, and xxx.pt are all pt files, the usage is completely different.
It is difficult for me to find the correct code format to replace latent.
Could you give me more tips?
Thank you！

You can just use it like latent = torch.load('xxx.pt')[INPUT_FILE_NAME]['latent']


Extension: extraEnvironmentVariables parameter does not work as expected

Observations
Works great:
extraEnvironmentVariables: 'EXCON_DEBUG=1'
Does not work (= does not do anything):

extraEnvironmentVariables: 'EXCON_DEBUG=1;GIT_AUTHOR_EMAIL=dependabot@example.org;GIT_AUTHOR_NAME=dependabot'
(seems like all three variables are ignored)

extraEnvironmentVariables: 'GIT_AUTHOR_NAME=dependabot;'
(does not change the git author name)

Could you confirm the input name?
Seems like you're using excludeRequirementsToUnlock instead of extraEnvironmentVariables

@mburumaxwell Sorry for the confusion! I fixed the auto-correct typo and now the EXCON_DEBUG=1 does get recognized, but the GIT_AUTHOR_NAME has not effect (not sure about GIT_AUTHOR_EMAIL as I'm not sure if it's displayed on Azure Repos web anywhere)

@NenoLoje you should use DEPENDABOT_AUTHOR_EMAIL and DEPENDABOT_AUTHOR_NAME as indicated in the docs.
The variables you are using were renamed in version 0.12.0, see release notes

@NenoLoje you should use DEPENDABOT_AUTHOR_EMAIL and DEPENDABOT_AUTHOR_NAME as indicated in the docs.
The variables you are using were renamed in version 0.12.0, see release notes

I can confirm it works as expected using these variable names. Thanks!


Add custom probe port

Since Helm 2.14, there is a new cmdline flag to specify a custom probe port - defaults to 44135
This introduces a new environment variable HELM_TILLER_PROBE_PORT to set a custom probe port
Note that we check if the new flag is exposed before using it

thanks for the PR, can you also bump the plugin version

sure, done

great, thanks for the quick merge!

any time


CRC file uploaded to FTP instead of CSV

When i try to write a dataframe to FTP as CSV, the crc.csv file is the one that is uploaded to FTP!
Here is the console output sample :
18/02/11 11:32:36 INFO DefaultSource: Copying C:\Users\aarafeh\AppData\Local\Temp\spark_sftp_connection_temp778.part-00000-6c9f54e2-34b2-42f1-bc91-d99a70a9fcb4-c000.csv.crc to /J28446_Engage/Test/testfile.csv
18/02/11 11:32:38 INFO SFTPClient: Copying files from C:\Users\aarafeh\AppData\Local\Temp\spark_sftp_connection_temp778.part-00000-6c9f54e2-34b2-42f1-bc91-d99a70a9fcb4-c000.csv.crc to /J28446_Engage/Test/testfile.csv
18/02/11 11:32:39 INFO SFTPClient: Copied files successfully...

What does the crc.csv file contain? Does it contain the values present in Dataframe?
Also please send us the code snippet of you job

@samuel-pt, it is csv.crc file, it is always generated with any csv file, it is binary file, it seems for file validation, i hope if there is a way to suppress that file, but it is always generated and always the one that is uploaded to FTP instead of the csv file, here is sample of my code attached, i just try to convert data coming from oracle to csv and upload to FTP.
Code.txt

@aarafeh2017  - I've pushed a fix to this issue. Could you please pull the source, build and run your code with the built spark-package?

@samuel-pt , Thank you!  it is working fine now.


Action center

Description of the new feature / enhancement
A new fluent action center replacement for windows 10 it will have fast respond time.
Scenario when this would be used?
It can be used for music play/pause ,wifi, Bluetooth , etc
Supporting information
No response

Windows 11 has an action center which is fluent.
If you have feedaback for the Windows action center please use the
Feedback Hub.


Fixes #840 - removes truthy from tests

Fixes #840 - removes truthy from tests.
Changes

Changes toBeTruthy() to toBe( true ) in events tests.

Removals

Disables tests for landing page events, since we don't currently have events.

Testing

gulp build && gulp test:acceptance --sauce=false, should pass and have two pending tests.

Review

@KimberlyMunoz
@sebworks
@jimmynotjim

:+1: Passes with and without sauce.


"mean of empty slice" error during ENL computation

Just got this error:
S1_NRB\metadata\extract.py:596: RuntimeWarning: Mean of empty slice
  _mean = np.nanmean(blocks, axis=(1, 3))
numpy\lib\nanfunctions.py:1872: RuntimeWarning: Degrees of freedom <= 0 for slice.
  var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
S1A_IW_GRDH_1SDV_20230101T183417_20230101T183446_046594_05957D_40AA.xml

Thanks for reporting this, @johntruckenbrodt! I wouldn't consider this a bug as the calculation of blockwise ENL still works as intended and nodata areas are correctly filled with np.nan. This tile, for example, is not fully covered and produces the same warnings:

(High ENL values as this is processed from Stripmap mode)
The current implementation is not perfect but it does the job while still being quite performant. I have worked on possible improvements yesterday, including the usage of numpy stride_tricks (e.g., using a solution such as skimage.util.view_as_blocks) and simple for-loops accelerated by numba. Both directions are not easy to do right and might create new problems.
I have not come to a good conclusion but I might as well just miss something obvious? At the moment I would consider to just silence these particular warnings and leave the implementation as is. What do you think?

Hi @maawoo. Thanks for looking into this and explaining the details. If you see a way of getting around the warning with a test condition that would of course be better but just silencing the warning will also do. No need to spend more time on this.

I just had another idea for a test condition but that didn't work. I'll just silence them.
The behavior is expected and mentioned in the docstrings of various nan-functions of numpy (e.g., numpy.nanmean: "For all-NaN slices, NaN is returned and a RuntimeWarning is raised." ). Furthermore, here is more context from a scipy developer.


Error using sample

Hi,
Installed pyairtable a few days ago and have tried on and off to connect to my environment using the code sample from the docs page
import os
from pyairtable import Api
api = Api(os.environ['AIRTABLE_API_KEY'])
table = api.table('appExampleBaseId', 'tblExampleTableId')
print (table.all())

and i always get the following error. I have tried various different things to get it to work and have been unsuccessful.
Traceback (most recent call last):
File "Pathtofile\pyairtableTesting.py", line 2, in
from pyairtable import Api
File "C:\miniforge3\envs\main37\lib\site-packages\pyairtable_init_.py", line 3, in
from .api import Api, Base, Table
File "C:\miniforge3\envs\main37\lib\site-packages\pyairtable\api_init_.py", line 1, in
from .api import Api
File "C:\miniforge3\envs\main37\lib\site-packages\pyairtable\api\api.py", line 223
if not (offset := response.get(offset_field)):
^
SyntaxError: invalid syntax
Am I missing something?
Thanks in advance,
Matt

It looks like you are running Python 3.7, which reached end-of-life in June 2023. If upgrading to a supported version of Python is not possible, you will need to pin your project's dependencies to the 1.x version of this library, with a version specifier like pyairtable~=1.5 or pyairtable>=1.5,<2.0

Thanks so much. Can't believe I missed that. Everything is working as expected now.
Matt


Add Vue.isServer as global api

Now we can only access the instance of $isServer, in some cases it is inconvenient.
If this feature is supposed to be implemented I would like to submit a pull request.

Maybe we can use Vue.prototype.$isServer


fail faster when steam doesn't connect

I was able to finally catch the "Could not Connect to Steam" error in action.  It does not loop indefinitely without restart.  However, it takes about 4 minutes for WaitForGameReady and then CheckIfStuck to finally decide that the game needs to be restarted.  This could all be avoided if WaitForGameReady returned failure if it was never ReadGameStarted.
PS - OpenIC never calculates elapsed time after running WaitForGameReady and ResetServerCall.  It probably should, but 30s isn't enough at that point.

Thanks for providing the information for the issue. Reworked how this was fixed.
See commit [here].(https://github.com/mikebaldi/Idle-Champions/commit/de6c39cec1f1bfb479ee6add7bda16d684558e6b)

Thanks for providing the information for the issue. Reworked how this was fixed. See commit here.

commit looks fine, but think of the poor potato!
(https://github.com/mikebaldi/Idle-Champions/blob/main/AddOns/IC_BrivGemFarm_Potato/IC_BrivGemFarm_Functions.ahk#L4 isn't updated)

Potato has now been thought of.


Support tmpfs mounts without requiring privileged mode

@portertech @coderanger for review
This allows mounting tmpfs inside of a docker container, using docker's "--tmpfs" flag.
My use case is that I want to be able to mount tmpfs without needed to run in privileged mode.
In particular, tmpfs is useful with the overlayfs driver where unix domain sockets won't work on overlayfs at all. This workaround allows you to make the usual suspects for unix domain sockets to be tmpfs.

Looks good to me, thanky!

Awesome! Who controls releases? What's the schedule like
On Thursday, 9 June 2016, Noah Kantrowitz<EMAIL_ADDRESS>wrote:

Merged #212 https://github.com/test-kitchen/kitchen-docker/pull/212.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/test-kitchen/kitchen-docker/pull/212#event-687747120,
or mute the thread
https://github.com/notifications/unsubscribe/AAlwd8SUKxn10Czm5T3ygTAwxig4k31Tks5qKHEmgaJpZM4IyPt4
.

I do, and it will probably be a week or two.

cool, i'll just put the SHA in my gemfile for the time being.
On Thu, Jun 9, 2016 at 4:08 PM, Noah Kantrowitz<EMAIL_ADDRESS>wrote:

I do, and it will probably be a week or two.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/test-kitchen/kitchen-docker/pull/212#issuecomment-225011192,
or mute the thread
https://github.com/notifications/unsubscribe/AAlwd1FH3CrNLM_eBHNpT_WVywRw0ZHsks5qKHLRgaJpZM4IyPt4
.

@coderanger any update on release? Sorry to ping

Nothing this second, master needs some tweaks before it can be released because I want to rework a feature before its in the wild.
On June 20, 2016 at 1:55:36 PM PDT, Dale Hamel<EMAIL_ADDRESS>wrote:@coderanger any update on release? Sorry to ping  —You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

awesome, i'll keep my eyes open.
thanks!
On Mon, Jun 20, 2016 at 5:10 PM, Noah Kantrowitz<EMAIL_ADDRESS>wrote:

Nothing this second, master needs some tweaks before it can be released
because I want to rework a feature before its in the wild.
On June 20, 2016 at 1:55:36 PM PDT, Dale Hamel<EMAIL_ADDRESS>wrote:@coderanger any update on release? Sorry to ping —You are receiving
this because you were mentioned.Reply to this email directly, view it on
GitHub, or mute the thread.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/test-kitchen/kitchen-docker/pull/212#issuecomment-227270483,
or mute the thread
https://github.com/notifications/unsubscribe/AAlwd0ySTrsM-Pc_4I6kxg78WvuSlmXhks5qNwG5gaJpZM4IyPt4
.

So I want to retroactively unmerge this in favor of a single run_options config to support arbitrary docker run command line options so we don't have to keep adding one-off config options as Docker changes. You should be able to do the same thing with a config like this:
driver:
  name: docker
  run_options:
    tmpfs:
    - /run/lock
    - /whatever

Does that seem okay?

I was thinking the same thing actually.
I think it's a good idea
On Wednesday, 22 June 2016, Noah Kantrowitz<EMAIL_ADDRESS>wrote:

So I want to retroactively unmerge this in favor of a single run_options
config to support arbitrary docker run command line options so we don't
have to keep adding one-off config options as Docker changes. You should be
able to do the same thing with a config like this:
driver:
name: docker
run_options:
tmpfs:
- /run/lock
- /whatever
Does that seem okay?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/test-kitchen/kitchen-docker/pull/212#issuecomment-227892298,
or mute the thread
https://github.com/notifications/unsubscribe/AAlwd2e8B8RQJseef4xsfgPBdWWzblbiks5qObItgaJpZM4IyPt4
.


baetyl-879: Add unit test for init-container

Codecov Report

Merging #404 (bc9693e) into master (af07ae6) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #404      +/-   ##
==========================================
- Coverage   65.59%   65.53%   -0.07%
==========================================
  Files          91       91
  Lines        6513     6513
==========================================
- Hits         4272     4268       -4
- Misses       1633     1635       +2
- Partials      608      610       +2

Impacted Files
Coverage Δ

common/string.go
80.00% <0.00%> (-20.00%)
:arrow_down:

plugin/link/httplink/httplink.go
67.85% <0.00%> (-3.58%)
:arrow_down:

Continue to review full report at Codecov.

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


Feature Request: Generic Notification for Compliments Module

Context
I recently got a request for my Moonphase module to integrate with the compliments module so that users can define compliments to appear during certain moonphases.
Requested Feature
I noticed that there's already some code to enable this for the current weather in the compliments.js module and was wondering if there was any interest in expanding this to be more flexible/generic with module provided compliments.
This would allow any module to send a notification that would be picked up by the compliments module without needing to explicitly define a new unique notification in compliments.js whenever someone wants to integrate.
If that doesn't sound like a good idea, I'd could also take a stab at a CURRENT_MOONPHASE notification handler that behaves similarly to the CURRENTWEATHER_TYPE would also enable the requested feature from my module :slightly_smiling_face:.
If this seems like a good idea, let me know and I can take a stab at an implementation.
Idea/Details
I think a generic notification like COMPLIMENT_CONTEXT who's payload (in combination with the notification's sender) can be used to look in the compliments config file for module specifics would allow for this flexibility.
The payload for the notification would be fairly simple and have one or more key/value pairs which could be used to map to the config file using a pattern like:
{
    compliments: {
        <notification sender>: {
            <payload key>: {
                <payload value>: [ ...compliments... ]
            }
        }
    }
}

So for example - a COMPLIMENT_CONTEXT notification for the current moonphase would simply look like:
{
    phase: "full"
}

Using the sender argument from notificationReceived, we would look for a config that looks something like this:
{
    compliments: {
        MMM-MoonPhase: {
            phase: {
                full: [ "The moon tonight is as bright as your future!" ],
                first-quarter: [ "The moon tonight is the same shape as your smile" ]
            }
        }
    }
}

These context payloads could be stored/updated in a similar way that the currentWeatherType is in the existing code, just using an object instead of a string.

Maybe I'm wrong but I don't think the team will want to make this kind of change.
Simply because the third party module is not officially part of MagicMirror (made by a user and not by the MM² team)
I think more, in your case, use the existing (currentWeatherType) rather than making an object and check the sender because in all cases it will be added automatically
This is just my point of view but what does @rejas think?

i don't think a more generic notification is a bad thing really.  BUT, I don't like the proposal. we shouldn't need unique by source module restrictions/
just the key and list of potential strings associated with that key

Maybe I'm wrong but I don't think the team will want to make this kind of change. Simply because the third party module is not officially part of MagicMirror (made by a user and not by the MM² team)
I think more, in your case, use the existing (currentWeatherType) rather than making an object and check the sender because in all cases it will be added automatically
This is just my point of view but what does @rejas think?
Note: However, you can code it and propose a PR ;)

Hijacking currentWeatherType would definitely work, but would cause a "competition" of sorts between the two modules should the user want both weather and moonphase compliments - Moonphase would overwrite current weather and vice versa. If one module updates at a much slower interval than the other, there's a good chance you would only ever see the compliments from the most frequently updating module.

i don't think a more generic notification is a bad thing really. BUT, I don't like the proposal. we shouldn't need unique by source module restrictions/
just the key and list of potential strings associated with that key

Hmm that's fair. The sender shouldn't "own" the property since that kind of defeats the point of it being generic. I agree with this - the json body should probably look more like:
{
    compliments: {
        moonphase-full: [ "The moon tonight is as bright as your future!" ],
        moonphase-first-quarter: [ "The moon tonight is the same shape as your smile" ]
    }
}

and the notification is just whatever the generic notification identifier is, and the key in your case moonphase - full.

and the notification is just whatever the generic notification identifier is, and the key in your case moonphase - full.

Yes that's right.
Thinking a bit more about this, I think I would implement it as something along the lines of:
Notification: COMPLIMENT_CONTEXT
Payload:
{
  moonphase: "full"
}

Compliments config:
{
    compliments: {
        moonphase: {
            full: [ "The moon tonight is as bright as your future!" ],
            first-quarter: [ "The moon tonight is the same shape as your smile" ]
        }
    }
}

compliments.js:
An object that contains any of the payload keys the module receives from COMPLIMENT_CONTEXT:
this.contextState = {
  moonphase: "first-quarter",
  // ... And other provided values
}

Which is used to inform the compliments available:
foreach(const [key, value] in Object.entries(this.contextState)) {
	if (this.config.compliments[key] && this.config.compliments[key][value] ) {
		Array.prototype.push.apply(compliments, this.config.compliments[key][value]);
	}
}

Obligatory I have not run this code disclaimer :slightly_smiling_face:

I think that unnecessarily complicates it and makes it back towards module specific notifications rather than strings So I'm against this modification this way again

Maybe I'm misunderstanding what you meant with your comment. My understanding (using moonphases as an example) was that we would do something like:
Notification: CURRENT_CONTEXT
Payload: "moonphase-full"
Which could work, but when the moonphase changes we wouldn't be able to easily remove old moonphase out of wherever we store it. We would just be getting a new phase like moonphase-first-quarter, which wouldn't indicate that moonphase-full no longer applies.
Having the payload be an object with a moonphase key allows any module to send a payload object that has that key, but also lets the code go to our this.contextState object and just update the moonphase key with the new value.
Regardless - I agree that this adds some complexity, which it sounds like the team wants to avoid. If that's the case, I'm more than happy to close the request :slightly_smiling_face:

the sending module decides when that 'moonphase-full' notice gets alerted to the user.(note that is can be an array of strings too) the compliments module combines then selects random.
there is one full phase every month.. what day is not determined in the config...  so you can post all 4 of them waxing/waning, full and nothing..   and post a notification whenever...  the 'message' is hard coded in the compliments config.. so no other module will interfere, cause they don't know what your module is sending..

Yes this is my understanding as well, but my comment is concerned solely with how we structure the config and payload, not how the compliments module works.
What I'm saying is that if the payload was a string, we have to store it in compliments.js so the module knows to incorporate the related config.compliments key into the available pool of compliments. But compliments - specifically weather based ones - don't stay available forever; they go away when the weather changes. So we have to remove it as well at some point.
Say we got a moonphase-full followed by a moonphase-waning_gib at some point after the first notification.
To know we have to replace moonphase-full with moonphase-waning_gib, we would need to:

split the string on something we trust all modules send in their payloads (a - in our case),
find something common that links the two payloads (in this case, probably "moonphase", but maybe also "MoonPhase" and "moon_phase"?),
look to see if any previous payloads that have that key exist in compliments.js's payload history,
see if the trailing string values have changed, and
if they have replace them with our new value so we don't get full moon compliments when it's a waning gibbous.

Which is a bunch of steps and code to basically:

Identify a key
Replace it's value

Which sounds like the perfect fit for an object.

But this is all debate over implementation. I guess to refocus things - Is there a non-implementation related reason that this feature should or should not be added? Totally fine if that reason is "I don't like it", I just want to get some answers to bring back to my module's issue author.

well the notification takes two things

The keyword to identify what kind of notification it is. Note that this is broadcast to every module in the system so it's the ID of what to do with the data
the data.  as you want to have selectable types of notifications moon full moon waning whatever and you want to message that goes along with it then in the config you would have to have that key and the data hard coded or you would need to pass it in as part of the message but that's not the way compliments works

So in the config you would have the keyword Moon face full and then the array of choices of messages to display when that keyword is detected that array could be only one element but
so then you're module sends the notification with custom alert or whatever the string is on the left and then the ID of the message that you configured moonphase full. The definition never goes away it's there forever and tell you somebody edits and restarts magic mirror
but then there could be the other kind that says the notification data is an object which has a key with data along with it so the key could be moon phase full and then some custom message that you want to send and maybe it's a replacement of a variable in the configured string. but it's not sending module specific.
I don't think we want to get into validating senders. and I don't think we want a heavy rewrite of the functionality that picks the messages Right now it adds a bunch of messages to the array and then decides whether it's going to walk it next next next next next or whether it's going to randomize select one out of the list that were built concatenated collected

I think we're having two different conversations.
I've made a copy (fork kind of?) of the compliments component here with the changes I've talked about so I can have something for my issue reporter if they want it.
Feel free to check it out/add it here if you like it. Hopefully it adds some clarity.


How do you change discord rpc?

What is your question?
how do i change discord rpc to my mod??

source code only

https://www.youtube.com/watch?v=KKH_xRJbEYw

source code only

says who?
changePresence(details:String, state:String, ?smallImageKey:String, ?hasStartTimestamp:Bool, ?endTimestamp:Float)
Found on line 2306 of FunkinLua.hx,

oh right, I forgot about that

like this? runHaxeCode changePresence(details:String, state:String, ?smallImageKey:String, ?hasStartTimestamp:Bool, ?endTimestamp:Float)

no, not like that

like this? runHaxeCode changePresence(details:String, state:String, ?smallImageKey:String, ?hasStartTimestamp:Bool, ?endTimestamp:Float)

Its a Lua function...
runHaxeCode is not needed


Only deny warnings in CI.

We already pass --deny warnings to clippy.

Still passes with RUSTFLAGS applied to everything, so should be good to go.


Update docker cpu tutorial

Describes more accurately how to run predictions locally, avoiding the creation of issues like the ones below:
https://github.com/idealo/image-super-resolution/issues/163
https://github.com/idealo/image-super-resolution/issues/166
https://github.com/idealo/image-super-resolution/issues/172
https://github.com/idealo/image-super-resolution/issues/175

Long time coming, thanks

Super. Glad to help. I still can't merge the PR even though it's approved. Is there something else I need to do?

Long time coming, thanks

Super. Glad to help. I still can't merge the PR even though it's approved. Is there something else I need to do?

No, you need permissions. As I left the company I also do not have them at the moment, I'm waiting for it and then I'll merge :)

Long time coming, thanks

Super. Glad to help. I still can't merge the PR even though it's approved. Is there something else I need to do?

No, you need permissions. As I left the company I also do not have them at the moment, I'm waiting for it and then I'll merge :)

That's great! Thank you


Tooltip position is inverted if we open user avatar, close the avatar and hover on copy to clipboard for contact

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
open any report
Click on user avatar to open user details
hover and click on 'copy to clipboard' besides user contact
Click on user avatar to open avatar in preview
Zoom in on the avatar
Close the avatar preview
Hover again on 'copy to clipboard' besides user contact to observe that tooltip position is inverted.

Expected Result:
App should not invert tooltip position for copy to clipboard tooltip
Actual Result:
App inverts tooltip position for copy to clipboard tooltip when we open user avatar in preview, zoom in and close the preview.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Version Number: 1.3.34-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/9eed21b6-bc0e-420a-ab42-aacad7d612d7
https://github.com/Expensify/App/assets/43996225/0dbcd3b9-d101-42fc-8cb0-be29f024655d
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1687763166967749
View all open jobs on GitHub

I am not sure why this is a bug. In both cases the tooltip is perfectly readable and associated with the copy to clipboard icon clearly. The fact that the tooltip appears on top of the mouse vs. bottom seems trivial.

Ok confirmed that it is not "inverted" but rather we want to show it on top to keep the UI consistent.

I wouldn't call it "inverted", but responsive. It adjusts to the height of the screen, which is perfectly fine.

Yea, I agree. I am still conflicted that this doesn't feel like a bug. Asked @mananjadhav for his opinion

I think we shouldn't do anything here. Tooltips can open on either direction, and it adjusts the position based on the height, pointer in the viewport, items focused around the hovered object. So we can't really say it has to be uniform on every location. I can see no alignment issues too between the content, the arrow and the bubble.
@anmurali  I think we should just close this one.


Allow resizing

Added --playground-preview-size CSS custom property to control the initial size of the RHS preview panel in <playground-ide>. The LHS editor will take up all additional space. Defaults to 30%.

Added resizable property/attribute which allows users to click and drag in the space between the LHS editor and RHS preview of <playground-ide> to change their relative sizes.

Try it out at https://polymerlabs.github.io/playground-elements/?resizable=y

Also:

Fix some invalid module import paths.
TypeScript decorator runtime is now imported from tslib instead of inlined.
Fix reload button not respecting --playground-preview-toolbar-foreground-color.
Prepare v0.1.1 release.

Fixes https://github.com/PolymerLabs/playground-elements/issues/60
Fixes https://github.com/PolymerLabs/playground-elements/issues/62

this is amazing like omg

Also fixed the reload button color issue.


fix: revert ssh config refactor

SUMMARY

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@hughhhh Could you add a description to the PR explaining why you are reverting the change?


Optimizing main loop

Filters map now only gets updated if there is a newer version of the config instead of every update loop.

Looks good and thank you :)


libx11 1.6.4

Will have to retry this one after #235 is merged.

help2man failed to build: https://travis-ci.org/Linuxbrew/homebrew-xorg/builds/189813979#L2217-L2220
checking whether the C compiler works... no
configure: error: in `/tmp/help2man-20170107-26851-ftgiv0/help2man-1.47.4':
configure: error: C compiler cannot create executables
See `config.log' for more details
READ THIS: https://github.com/Linuxbrew/brew/blob/master/docs/Troubleshooting.md#troubleshooting

However, other than that Travis seems fine.

Circle timed out, but other than that it seems fine.


Additional inline html issues

Kevin, thanks for all the updates, a lot of them have worked great, the fix for the inline html worked....partially. If the html is multi line we run into the quote issue again:
HTTPS [shape=egg;label=<

HTTPS

>;]
LoadBalancer [shape=diamond;label="<

LoadBalancer

<IP_ADDRESS>/24

";]

I relaxed the html detection a bit. I was a bit to strict in my regex. now if the first line contains a table tag, it should use the html syntax. Changes were merged into master with https://github.com/KevinMarquette/PSGraph/pull/16
Published to PSGallery, release <IP_ADDRESS>


'Assigning IP addresses based on topology'

It is a documentation issue.
I have read doc in the page https://docs.projectcalico.org/v3.8/networking/assigning-ip-addresses-topology and in:
Prerequisites
I see:
This feature requires Calico for networking in etcd mode.
But according to Lance Robson in the slack channel, it is not true since calico 3.6.
Can you please fix documentation?

Thanks for reporting this, would you like to submit a PR and help us get this fixed?

Fixed in newer versions of the doc.


CI: Ensure OpenShift coverage

The CI coverage will be done for OpenShift only for now as secrets can't be shared across different forks in GitHub (k8s).