Design the apps list page

Description
Design the apps list page.
Acceptance Criteria
App { String id, String name, String homepageUrl, Array ?icons }

[x] Must contain a list of all the apps
[x] Each app item should contain the name, icon, url, last used, access scopes, used X times
[x] A CTA to remove the app

Same criteria applied on the devices page, we can reuse the components for everything on this page.
The only difference is that if we remove an app, it will be "permanently removed" and never appears on the page, unless the user uses it again. So, in this case, we'll never have any "greyed out" card.


Using pathSeparator instead of ;

@dwightguth please review.

lgtm. Merge if tests pass.

Jenkins retest this please

Tests passed this time. I guess it was a problem in jenkins the last time.


Zanega Browser

Does this occur consistently?
Repro steps:

Action: staticWebApps.activate
Error type: string
Error Message: Timed out waiting for authentication provider to register
Version: 0.12.2
OS: undefined
OS Release: 5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Mobile Safari/537.36
Product: Visual Studio Code
Product Version: 1.82.2
Language: ar-eg

Does this reproduce consistently?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Production-grade docker image

What I'm trying to achieve
I'm having some issues creating a production-grade docker image that makes the dashboard available under /dashboard/ - all sub components should also load from here /dashboard/dashboard.js ...etc
If someone got it already running like this I would be very interested. If more people are interested I can also add it with a pull request.
Describe a proposed solution
My dockerfile for react apps works great like this normally:
# build environment
ARG APP_MOUNT_URI
ARG API_URI
ARG STATIC_URL
FROM node:12.2.0-alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package*.json /app/
RUN npm install
COPY . /app

RUN npm run build

# production environment
FROM nginx:1.16.0-alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
COPY --from=build /app/build/ /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

unfortunately the dashboard is available under /dashboard, but still tries to load all components directly from /
Screenshots or mockups

Can show us the nginx configuration you made/are using? And the values you set for the API_...
Maybe alias might fix the issue (http://nginx.org/en/docs/http/ngx_http_core_module.html#alias).
Or maybe APP_MOUNT_URI could be set to / and then you tell nginx to load the dashboard on /dashboard.
It's hard to tell without more information. Let us know!

Thank you for the answer. I got now a solution, that is working also for links like /dashboard/taxes but just for some minutes - afterwards you need to come back to /dashboard or you get forwarded to the nginx standard page. I couldn't make it with a multistage dockerfile, so I decided to build the app locally and load it into the nginx container.
STATIC_URL=/dashboard/ APP_MOUNT_URI=/dashboard/ npm run build
Dockerfile:
# production environment
FROM nginx:1.16.0-alpine
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
COPY ./build/ /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

nginx.conf:
server {

  listen 80;

  location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    try_files $uri $uri/ /index.html;
  }

  error_page   500 502 503 504  /50x.html;

  location = /50x.html {
    root   /usr/share/nginx/html;
  }

}

It's not really the best solution, but working for now. What would you recommend to change?


Dynamic SubLayer Reorder Sample

I've added dynamic sublayer reorder sample. It helps user to use drag drop functionality on their map applications.

@salihyalcin Thanks for providing this sample, on first take it seems like a very useful sample.  I will give this a full review after you address the couple of minor updates I will respond back to you to better integrate your sample with the repo.

Due to ramadan feast, my commits delayed. Now you can check changes.

What about this sample's last status? Will this sample be added to current samples ?

@salihyalcin We will review for including. Thanks for updating based on my first limited review, more to come.

@salihyalcin Can you take another look at your PR, I am not able to get it to run.  First issue had to do with java.lang.illegalStateException: You need to use a Theme.AppCompat I fixed that by updated your styles.xml file:
<style name="AppTheme"<EMAIL_ADDRESS>
But now I am getting issues with a ClassCastException on line 31.
Please take another look and provide fixes so the app runs.  I think this is a very nice sample and will try to include if you can get it running again and after a code review.

@doneill I've made some fixes. Now app will run.

@salihyalcin I have reviewed your updates and tested your sample.  I am keen to merge, but am missing a README.md file.  Can you provide one that details how to use the app and any programmatic features you would like to share?  Please look at other samples to get an idea of the type of content we require.

I've provided README.md file :+1: If you want, you can merge ^^

Thanks @salihyalcin I will review, thanks for your effort and updates.

Thanks @salihyalcin There are some minor things I may address but overall this is a very good sample.  Thanks for you efforts to contribute to our samples and your patience in going through the review process. Welcome as an official contributor!

Thanks for this opportunity. I'm so proud of to be as an official contributor :)


OpenPGP: Switch on integrity protection by default

Greetings from the 7th. OpenPGP Summit in Geneva!
This PR enables integrity protection for OpenPGP messages by default. It can of course by disabled by calling dataEncryptorBuilder.setWithIntegrityProtection(false).
Generating messages without integrity protection has been discouraged for a while now, so I thought it is about time.

Agreed, merged.


cluster::guild_edit_member throws Target user is not connected to voice

Git commit reference
7e61fdcb02b5f7a021cf3fcdd10e8c6134d61a96
Describe the bug
when calling cluster::guild_edit_member, discord tells

Target user is not connected to voice

To Reproduce
call the method and pass a member who is not connected to voice
Expected behavior
edits the member (e.g. changes the nickname).
Additional context
seems to be the mute and deaf json params that causes this issue because they're set even if the member is not in voice.

Yeah, i found this bug and reported this in the discord, trying something right now, testing if it worked.

Okay so, my guess is that the issue that the mute and deaf are always true and false no matter what. These are nullable parameters. If you don't want to change the user state in the voice channel then these have to be null. Which they are never.


Fixed bugs in mpl colorbar arrows and Image.range

In fixing a bug in the colorbars (https://github.com/ioam/holoviews/issues/1109) I found a bug in handling partially bounded Dimension.range settings, e.g.:
hv.Image(np.array([[0, 1], [2, 3]]).redim(z=dict(range=(None, 2))).range('z')

Would report (0, 3) when all our other Elements respect explicitly set ranges. I'll probably open another PR to add an argument to the range method to ignore the soft_range and range on the Dimension. Knowing the actual data range is perhaps more useful and we should consider returning that by default and only returning Dimension.range when requested, which all the plotting code could do.

Tests have passed. Ready to merge?

Yes, ready to merge, I'll open the related issue now.


python312Packages.bellows: 0.39.1 -> 0.40.2

Diff: https://github.com/zigpy/bellows/compare/refs/tags/0.39.1...0.40.2
Changelog: https://github.com/zigpy/bellows/releases/tag/0.40.2
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

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

12 packages failed to build:

home-assistant-component-tests.homeassistant_green
home-assistant-component-tests.homeassistant_hardware
home-assistant-component-tests.homeassistant_sky_connect
home-assistant-component-tests.homeassistant_yellow
home-assistant-component-tests.otbr
home-assistant-component-tests.zha
python311Packages.universal-silabs-flasher
python311Packages.universal-silabs-flasher.dist
python312Packages.universal-silabs-flasher
python312Packages.universal-silabs-flasher.dist
python312Packages.zha
python312Packages.zha.dist

6 packages built:

python311Packages.bellows
python311Packages.bellows.dist
python312Packages.bellows
python312Packages.bellows.dist
zigpy-cli
zigpy-cli.dist

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

18 packages built:

home-assistant-component-tests.homeassistant_green
home-assistant-component-tests.homeassistant_hardware
home-assistant-component-tests.homeassistant_sky_connect
home-assistant-component-tests.homeassistant_yellow
home-assistant-component-tests.otbr
home-assistant-component-tests.zha
python311Packages.bellows
python311Packages.bellows.dist
python311Packages.universal-silabs-flasher
python311Packages.universal-silabs-flasher.dist
python312Packages.bellows
python312Packages.bellows.dist
python312Packages.universal-silabs-flasher
python312Packages.universal-silabs-flasher.dist
python312Packages.zha
python312Packages.zha.dist
zigpy-cli
zigpy-cli.dist


feature: add AzVolumeAttachment garbage collection and instant clean up

add garbage collection to azvolumeattachment controller
add instant clean up using pv monitoring to azvolume controller
add test cases

What type of PR is this?
/kind feature

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[x] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build 794928225

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 58.3%

Totals

Change from base Build 793378352:
0.0%

Covered Lines:
2202

Relevant Lines:
3777

💛  - Coveralls


(doc) Fixed broken links to scm, issue tracker, and mailing list page.

To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.

[x] I hereby declare this contribution to be licenced under the Apache License Version 2.0, January 2004

Thanks for merging!


Show icon for precision damage

Seems this also has some bugfixes and UI niceties as well, like skipping unnecessary () and something regarding better crit display of crits.


Error: Storybook preview hooks can only be called inside decorators and story functions

I got the following error in v2.0.4 or later when switching locale with Next.js.
Storybook preview hooks can only be called inside decorators and story functions.
Error: Storybook preview hooks can only be called inside decorators and story functions.
    at invalidHooksError (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:698:5553)
    at useStoryContext (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:700:2227)
    at useGlobals (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:700:2914)
    at c (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:75238:528)
    at hookified (http://localhost:6006/sb-preview/runtime.js:7:17226)
    at http://localhost:6006/sb-preview/runtime.js:34:1451
    at http://localhost:6006/sb-preview/runtime.js:34:1912
    at renderWithHooks (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:55765:18)
    at updateFunctionComponent (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:59043:20)
    at beginWork (http://localhost:6006/vendors-node_modules_babel_runtime_helpers_esm_defineProperty_js-node_modules_storybook_nextj-5100d7.iframe.bundle.js:61056:16)

It works fine in v2.0.3.
Is there any workaround for this?
versions
  "dependencies": {
    "@types/node": "20.4.1",
    "@types/react": "18.2.14",
    "@types/react-dom": "18.2.6",
    "eslint": "8.44.0",
    "eslint-config-next": "13.4.9",
    "i18next": "^23.2.8",
    "next": "13.4.9",
    "next-i18next": "^14.0.0",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-i18next": "^13.0.2",
    "typescript": "5.1.6"
  },
  "devDependencies": {
    "@storybook/nextjs": "^7.0.26",
    "storybook": "^7.0.26",
    "storybook-react-i18next": "^2.0.6"
  }

npm -v

9.5.1

node -v

v18.16.0

Minimum reproduction

https://github.com/k1350/storybook-react-i18next_sample

I have the same issue.
k1350 did you find any solution?

I downgraded storybook-react-i18next to v2.0.3.

Ok, I see, thanks.
I ended up with this manual integration without addon just with decorator and it works.

The issue seems to be with the function call story(context) vs the component <Story />. I will change this and release soon.

This is a strange one. When I use story(context) there's no error. When I use <Story {...context /> I get the error you see.
I've changed the useState in the decorator to properly use the @storybook/client-api one instead of React.
I have released it as 2.0.8. Please let me know if this fixes the issue for you.


Feature Request: USG (Pro) Temperature

Just looked around to add some USG Environment Stats (Fan,  Temperature) to the dashboard but cant find them in the database. Controller gives them in GUI so i think they should be available in the API (4 times temperature).
Same for Lan2 traffic stats @USG-Pro
If you tell me what kind of logs u need i can provide them to you.

Were you able to find any temperature readings in the API output? I've been unable to figure it out..


fix: stop modals from closing if clicks happen outside of the modal. …

…Move sponsor form handler to LandingPage.js
Stop modal from closing if click outside form

Great  addition!


Make beprof working with numpy 1.8

Numpy 1.8 is shipped by default in Ubuntu 14.04 LTS, we should support it

Example session with docker image containing Ubuntu 14.04 with few packages installed (check: https://hub.docker.com/r/grzanka/pyqt_ubuntu_testing/~/dockerfile/)
# grzanka at gajewski-dell in ~ [14:11:47]
→ docker run --rm -it grzanka/pyqt_ubuntu_testing /bin/bash
test@540b1fde5037:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.4 LTS
Release:	14.04
Codename:	trusty
test@540b1fde5037:~$ pip3 freeze
Pillow==2.3.0
chardet==2.2.1
colorama==0.2.5
decorator==3.4.0
html5lib==0.999
matplotlib==1.3.1
nose==1.3.1
numpy==1.8.2
pydicom==0.9.9
pyparsing==2.0.1
python-dateutil==2.0
pytz==2012c
requests==2.2.1
scipy==0.13.3
six==1.5.2
tornado==3.1.1
urllib3==1.7.1
wheel==0.24.0
test@540b1fde5037:~$ python3 -V
Python 3.4.3
test@540b1fde5037:~$ python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.version.version
'1.8.2'
>>> import scipy as sp
>>> sp.version.version
'0.13.3'
>>>
test@540b1fde5037:~$ pip3 install -i https://testpypi.python.org/pypi beprof==0.post0.dev1511465204600 --user
Downloading/unpacking beprof==0.post0.dev1511465204600
  Downloading beprof-0.post0.dev1511465204600-py2.py3-none-any.whl
Downloading/unpacking numpy>=1.10.4 (from beprof==0.post0.dev1511465204600)
  Could not find a version that satisfies the requirement numpy>=1.10.4 (from beprof==0.post0.dev1511465204600) (from versions: 1.9.3, 1.9.3)
  Some externally hosted files were ignored (use --allow-external to allow).
Cleaning up...
No distributions matching the version for numpy>=1.10.4 (from beprof==0.post0.dev1511465204600)
Storing debug log for failure in /home/test/.pip/pip.log

Ok, I downloaded docker ubuntu:14.04, here is my 'short-log':

apt-get install python python-pip git
pip install 'numpy==1.8'
pip install --no-deps git+https://github.com/DataMedSci/beprof.git

root@d86d0c732e10:/# pip freeze
argparse==1.2.1
beprof==0.post.dev1821480948560
chardet==2.0.1
colorama==0.2.5
html5lib==0.999
numpy==1.8.0
requests==2.2.1
six==1.5.2
urllib3==1.7.1
versioneer==0.17
wheel==0.24.0
wsgiref==0.1.2

When I open Python shell and try some imports/creating new beprof objects - everything works fine.
Also pip tried to download new version of numpy:
root@d86d0c732e10:/# pip install --upgrade numpy
Downloading/unpacking numpy from https://pypi.python.org/packages/16/f5/b432f028134dd30cfbf6f21b8264a9938e5e0f75204e72453af08d67eb0b/numpy-1.11.2.tar.gz#md5=03bd7927c314c43780271bf1ab795ebc
  Downloading numpy-1.11.2.tar.gz (4.2MB): 143kB downloaded
Cleaning up...
Operation cancelled by user

Try to get Ubuntu 14.04 and numpy installed via apt. Then install beprof without deps. Check if it is working (by running tests).

@grzanka server version in virtual machine will do?

I'm downloading this one 64-bit PC (AMD64) server install image from http://releases.ubuntu.com/14.04/

Isn't it easier via docker ?

I did the previous one with docker pull ubuntu:14.04... I'm sorry, I thought You meant to get typical Ubuntu iso.

You can get it via docker, but install numpy via apt-get and then beprof via pip in such way it won't automatically suck new numpy

I previously did pip install --no-deps git+https://github.com/DataMedSci/beprof.git and it ignored numpy dep.

root@73d5354e1a4a:/# apt-get install python-numpy=1.8.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version '1.8.0' for 'python-numpy' was not found

apt-get update && apt-get search numpy

or apt-cache search numpy

It is here, but only in newer versions :(
root@73d5354e1a4a:/# apt-cache search numpy
python-numpy - Numerical Python adds a fast array facility to the Python language

Oooor... yep apt-get install python-numpy got 1.8.2

root@73d5354e1a4a:/# pip install setuptools versioneer
Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/lib/python2.7/dist-packages
Downloading/unpacking versioneer
  Downloading versioneer-0.17-py2.py3-none-any.whl
Installing collected packages: versioneer
Successfully installed versioneer
Cleaning up...
root@73d5354e1a4a:/# pip install --no-deps git+https://github.com/DataMedSci/beprof.git
Downloading/unpacking git+https://github.com/DataMedSci/beprof.git
  Cloning https://github.com/DataMedSci/beprof.git to /tmp/pip-lsxyJA-build
  Running setup.py (path:/tmp/pip-lsxyJA-build/setup.py) egg_info for package from git+https://github.com/DataMedSci/beprof.git

    warning: no previously-included files found matching '.gitkeep'
    warning: no previously-included files found matching '.gitconfig'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files found matching '.travis.yml'
    warning: no previously-included files found matching 'appveyor.yml'
    no previously-included directories found matching '.travis'
    no previously-included directories found matching 'install_deps.sh'
Installing collected packages: beprof
  Running setup.py install for beprof
    UPDATING build/lib.linux-x86_64-2.7/beprof/_version.py
    set build/lib.linux-x86_64-2.7/beprof/_version.py to '0.post.dev182'

    warning: no previously-included files found matching '.gitkeep'
    warning: no previously-included files found matching '.gitconfig'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files found matching '.travis.yml'
    warning: no previously-included files found matching 'appveyor.yml'
    no previously-included directories found matching '.travis'
    no previously-included directories found matching 'install_deps.sh'
Successfully installed beprof
Cleaning up...

Installation works, great, but what about beprof tests ?

@grzanka I was away for some time, sorry.
root@73d5354e1a4a:/usr/local/lib/python2.7/dist-packages/beprof# python -m doctest -v curvepy
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/doctest.py", line 2817, in <module>
    sys.exit(_test())
  File "/usr/lib/python2.7/doctest.py", line 2810, in _test
    failures, _ = testfile(filename, module_relative=False)
  File "/usr/lib/python2.7/doctest.py", line 2010, in testfile
    text, filename = _load_testfile(filename, package, module_relative)
  File "/usr/lib/python2.7/doctest.py", line 219, in _load_testfile
    with open(filename) as f:
IOError: [Errno 2] No such file or directory: 'curvepy'
root@73d5354e1a4a:/usr/local/lib/python2.7/dist-packages/beprof# python -m doctest -v functions.py
Trying:
    print(medfilt(np.array([1., 15., 1., 1., 1.]), 3))
Expecting:
    [ 1.  1.  1.  1.  1.]
ok
Trying:
    print(medfilt(np.array([15., 1., 1., 1., 1.]), 3))
Expecting:
    [ 15.   1.   1.   1.   1.]
ok
2 items had no tests:
    functions
    functions.subtract
1 items passed all tests:
   2 tests in functions.medfilt
2 tests in 3 items.
2 passed and 0 failed.
Test passed.
root@73d5354e1a4a:/usr/local/lib/python2.7/dist-packages/beprof# python -m doctest -v curve.py
Trying:
    print(Curve([[0,0], [5, 5], [10, 0]])            .change_domain([1, 2, 8, 9]).y)
Expecting:
    [ 1.  2.  2.  1.]
**********************************************************************
File "curve.py", line 97, in curve.Curve.change_domain
Failed example:
    print(Curve([[0,0], [5, 5], [10, 0]])            .change_domain([1, 2, 8, 9]).y)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest curve.Curve.change_domain[0]>", line 1, in <module>
        print(Curve([[0,0], [5, 5], [10, 0]])            .change_domain([1, 2, 8, 9]).y)
      File "curve.py", line 116, in change_domain
        obj = self.__class__(np.stack((domain, y), axis=1), **self.__dict__['metadata'])
    AttributeError: 'module' object has no attribute 'stack'
Trying:
    Curve([[0, 0], [2, 2], [4, 4]]).evaluate_at_x([1, 2 ,3])
Expecting:
    array([ 1.,  2.,  3.])
ok
Trying:
    Curve([[0, 0], [2, 2], [4, 4]]).evaluate_at_x(            [-1, 1, 2 ,3, 5], 100)
Expecting:
    array([ 100.,    1.,    2.,    3.,  100.])
ok
Trying:
    print(Curve([[0,0], [5, 5], [10, 0]]).rebinned(1, 0).x)
Expecting:
    [  0.   1.   2.   3.   4.   5.   6.   7.   8.   9.  10.]
**********************************************************************
File "curve.py", line 129, in curve.Curve.rebinned
Failed example:
    print(Curve([[0,0], [5, 5], [10, 0]]).rebinned(1, 0).x)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest curve.Curve.rebinned[0]>", line 1, in <module>
        print(Curve([[0,0], [5, 5], [10, 0]]).rebinned(1, 0).x)
      File "curve.py", line 155, in rebinned
        return self.change_domain(domain)
      File "curve.py", line 116, in change_domain
        obj = self.__class__(np.stack((domain, y), axis=1), **self.__dict__['metadata'])
    AttributeError: 'module' object has no attribute 'stack'
Trying:
    Curve([[0, 0], [1, 1], [2, 2], [3, 1]]).subtract(            Curve([[-1, 1], [5, 1]])) is None
Expecting:
    True
ok
Trying:
    Curve([[0, 0], [1, 1], [2, 2], [3, 1]]).subtract(            Curve([[-1, 1], [5, 1]]), new_obj=True).y
Expecting:
    DataSet([-1.,  0.,  1.,  0.])
**********************************************************************
File "curve.py", line 196, in curve.Curve.subtract
Failed example:
    Curve([[0, 0], [1, 1], [2, 2], [3, 1]]).subtract(            Curve([[-1, 1], [5, 1]]), new_obj=True).y
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest curve.Curve.subtract[1]>", line 1, in <module>
        Curve([[0, 0], [1, 1], [2, 2], [3, 1]]).subtract(            Curve([[-1, 1], [5, 1]]), new_obj=True).y
      File "curve.py", line 226, in subtract
        return functions.subtract(self, curve2.change_domain(self.x))
      File "curve.py", line 116, in change_domain
        obj = self.__class__(np.stack((domain, y), axis=1), **self.__dict__['metadata'])
    AttributeError: 'module' object has no attribute 'stack'
Trying:
    Curve([[0, 0], [1, 1], [2, 2], [3, 1]]).subtract(            Curve([[1, -1], [2, -1]]), new_obj=True) is None
Expecting:
    True
No handlers could be found for logger "curve"
ok
12 items had no tests:
    curve
    curve.Curve
    curve.Curve.__array_finalize__
    curve.Curve.__new__
    curve.Curve.__str__
    curve.Curve.rescale
    curve.Curve.smooth
    curve.Curve.x
    curve.Curve.y
    curve.Curve.y_at_x
    curve.DataSet
    curve.main
1 items passed all tests:
   2 tests in curve.Curve.evaluate_at_x
**********************************************************************
3 items had failures:
   1 of   1 in curve.Curve.change_domain
   1 of   1 in curve.Curve.rebinned
   1 of   3 in curve.Curve.subtract
7 tests in 16 items.
4 passed and 3 failed.
***Test Failed*** 3 failures.
root@73d5354e1a4a:/usr/local/lib/python2.7/dist-packages/beprof# python -m doctest -v profile.py
Trying:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(5.))
Expecting:
    0.0
**********************************************************************
File "profile.py", line 42, in profile.Profile.x_at_y
Failed example:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(5.))
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest profile.Profile.x_at_y[0]>", line 1, in <module>
        float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(5.))
      File "profile.py", line 20, in __new__
        new = super().__new__(cls, input_array, **meta)
    TypeError: super() takes at least 1 argument (0 given)
Trying:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(10.))
Expecting:
    0.1
**********************************************************************
File "profile.py", line 47, in profile.Profile.x_at_y
Failed example:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(10.))
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest profile.Profile.x_at_y[1]>", line 1, in <module>
        float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(10.))
      File "profile.py", line 20, in __new__
        new = super().__new__(cls, input_array, **meta)
    TypeError: super() takes at least 1 argument (0 given)
Trying:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(10., reverse=True))
Expecting:
    0.3
**********************************************************************
File "profile.py", line 52, in profile.Profile.x_at_y
Failed example:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(10., reverse=True))
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest profile.Profile.x_at_y[2]>", line 1, in <module>
        float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(10., reverse=True))
      File "profile.py", line 20, in __new__
        new = super().__new__(cls, input_array, **meta)
    TypeError: super() takes at least 1 argument (0 given)
Trying:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(7.5))
Expecting:
    0.05
**********************************************************************
File "profile.py", line 56, in profile.Profile.x_at_y
Failed example:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(7.5))
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest profile.Profile.x_at_y[3]>", line 1, in <module>
        float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(7.5))
      File "profile.py", line 20, in __new__
        new = super().__new__(cls, input_array, **meta)
    TypeError: super() takes at least 1 argument (0 given)
Trying:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(2.0))
Expecting:
    nan
**********************************************************************
File "profile.py", line 60, in profile.Profile.x_at_y
Failed example:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(2.0))
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest profile.Profile.x_at_y[4]>", line 1, in <module>
        float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(2.0))
      File "profile.py", line 20, in __new__
        new = super().__new__(cls, input_array, **meta)
    TypeError: super() takes at least 1 argument (0 given)
Trying:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(22.0))
Expecting:
    nan
**********************************************************************
File "profile.py", line 64, in profile.Profile.x_at_y
Failed example:
    float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(22.0))
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/doctest.py", line 1315, in __run
        compileflags, 1) in test.globs
      File "<doctest profile.Profile.x_at_y[5]>", line 1, in <module>
        float(Profile([[0.0, 5.0], [0.1, 10.0], [0.2, 20.0], [0.3, 10.0]])            .x_at_y(22.0))
      File "profile.py", line 20, in __new__
        new = super().__new__(cls, input_array, **meta)
    TypeError: super() takes at least 1 argument (0 given)
9 items had no tests:
    profile
    profile.Profile
    profile.Profile.__array_finalize__
    profile.Profile.__new__
    profile.Profile.__str__
    profile.Profile.fwhm
    profile.Profile.normalize
    profile.Profile.width
    profile.main
**********************************************************************
1 items had failures:
   6 of   6 in profile.Profile.x_at_y
6 tests in 10 items.
0 passed and 6 failed.
***Test Failed*** 6 failures.

Python 2.7 doctests fail... but only some errors may be caused by numpy e.g.
File "curve.py", line 116, in change_domain
        obj = self.__class__(np.stack((domain, y), axis=1), **self.__dict__['metadata'])
    AttributeError: 'module' object has no attribute 'stack'

Something is still wrong with logger, there is also a issue with super() but i probably have it covered in #99 on branch ant6/beprof#feature/19-unit-testing.

Check in which numpy version np.stack was introduced. Maybe it can replaced with something other.

https://github.com/numpy/numpy/blob/v1.11.0/numpy/core/shape_base.py#L282-L350
1.10
http://stackoverflow.com/questions/35517954/numpy-module-object-has-no-attribute-stack -> so we can just 'take' it from numpy code https://github.com/numpy/numpy/blob/f4cc58c80df5202a743bddd514a3485d5e4ec5a4/numpy/core/shape_base.py#L290
But I don't know if this is a good idea :/

Bad idea. Start with getting understanding.
Do you know what np.stack is doing ?
Check 1.8.1 user guide and find a method doing similar job: https://docs.scipy.org/doc/numpy-1.8.1/user/index.html

I remember it was something with hstack, dstack and vstack - those appered earlier in code, and they exist in numpy 1.8. Maybe we could use them and possibly solve the issue?

Good idea, but start with understanding first.

I think stack(arrays, axis=1) should do the same as np.concatenate(arrays, axis=1) or hstack(arrays).

>>> a = np.array((1,2,3))
>>> b = np.array((4,5,6))
>>> np.stack((a,b), axis=1) == np.dstack((a,b))
array([[[ True,  True],
        [ True,  True],
        [ True,  True]]], dtype=bool)

Another thing (there are no tests after such installation):
root@73d5354e1a4a:~# updatedb
root@73d5354e1a4a:~# locate curve.py
/usr/local/lib/python2.7/dist-packages/beprof/curve.py
/usr/local/lib/python2.7/dist-packages/beprof/curve.pyc
root@73d5354e1a4a:~# locate profile.py
/usr/lib/python2.7/profile.py
/usr/lib/python2.7/profile.pyc
/usr/lib/python3.4/profile.py
/usr/local/lib/python2.7/dist-packages/beprof/profile.py
/usr/local/lib/python2.7/dist-packages/beprof/profile.pyc
root@73d5354e1a4a:~# locate test_profile.py
root@73d5354e1a4a:~# locate test_curve.py
root@73d5354e1a4a:~#

And I looked into beprof*.whl generated locally and there were no test either :(

Maybe we should package tests with data_files https://docs.python.org/2/distutils/setupscript.html#installing-additional-files ?

dstack looks OK.
Speaking of tests inclusion - make a separate issue on that and check first how other maintainers of big packages are doing that.

Ok, sure. As for super() calls I'll download source code from my other branch and check if it still appears.

@grzanka after downloading version from #99 all doctests in profile.py pass. Only curve.py fails (logger and call to stack as in logs above above).

Great, time to make a PR

@grzanka It's mixed with tests - can I make one bigger PR with some new tests, stack->dstack and fixed super() call?

sure

as long as you drop a line of comment explaining the code - why not ?


Decode latin1 (ISO-8859-1)

Add param "decode" value are: "utf-8" (default) or "ISO-8859-1"

I think this should be handled externally by something like iconv-lite, Node bindings to iconv or native iconv if part of a pipeline.

But I'll add an example to the readme for future reference! 😃


Fix when creating ManyToManyRelation

This should fix problem when inserting multiple relations into same table.
E.g. table: (orgId, locationId, channelId, userId) with data [{orgId, locationId}, {orgId, channelId}, {orgId, userId}], previously it would pulled keys only from first object/model which would cause $propKey function to filter out all other objects.

Coverage remained the same at 96.989% when pulling 5b9053eaf6ea0bd144d0e68f151666302babe86f on sbuljac:master into e6f35581862281a80575835277a0cba481eb89b6 on Vincit:master.


Fine tuning only biases

Hello, I was wondering what the easiest way to fine tune only the biases (not the weights) of a transformer would be with ktrain? Like what they propose here: https://arxiv.org/abs/2106.10199.
Thanks in advance!

Hello:  If you look at the code for the paper, they use the requires_grad flag in PyTorch to perform the relevant gradient deactivations.  You could do something similar in TensorFlow (e.g., stop_gradient).  But, you'll need to go to the TF documentation (and perhaps the transformers and tensorflow discussion forums) for more information.


provisioners: add reconfiguring of PID limit

Describe what this PR does
The container runtime CRI-O limits the number of PIDs to 1024 by
default. When many PVCs are requested at the same time, it is possible
for the provisioner to start too many threads (or go routines) and
executing 'rbd' commands can start to fail. In case a go routine can not
get started, the process panics.
The PID limit can be changed by passing an argument to kubelet, but this
will affect all pids running on a host. Changing the parameters to
kubelet is also not a very elegant solution.
Instead, the provisioner pod can change the configuration itself. The
pod is running in privileged mode and can write to /sys/fs/cgroup where
the limit is configured.
With this change, the limit is configured to 'max', just as if there is
no limit at all. The logs of the csi-rbdplugin in the provisioner pod
will reflect the change it makes when starting the service:
$ oc -n rook-ceph logs -c csi-rbdplugin csi-rbdplugin-provisioner-0
..
I0726 13:59:19.737678       1 cephcsi.go:127] Initial PID limit is set to 1024
I0726 13:59:19.737746       1 cephcsi.go:136] Reconfigured PID limit to -1 (max)
..

It is possible to pass a different limit on the commandline of the
cephcsi executable. The following flag has been added:
--pidlimit=<int>       the PID limit to configure through cgroups

This accepts special values -1 (max) and 0 (default, do not
reconfigure). Other integers will be the limit that gets configured in
cgroups.
Fixes: #516

@nixpanic PLease check the travis failure. Thanks for the PR

Tests have passed after minor modifications.
Please review @humblec @Madhu-1. Thanks!

@nixpanic will be on this soon :) .

rebased on master and resolved merge conflicts.

@ekuric can you please share the test result ?

We have test result from @ekuric. Here it is :

Issue not visible with image that has adapted --pidlimit @nixpanic @humblec @Madhu-1

With this proof merging this PR!! Thanks all.

@nixpanic Thanks for the fix, this helps a lot :+1:

@nixpanic can you make the changes in helm  chat and templates in 1.14+ for pid limit

adding DNM label to fix helm chat and 1.14 templates

On Thu, Aug 08, 2019 at 05:45:30AM -0700, Madhu Rajanna wrote:

@nixpanic can you make the changes in helm  chat and templates in 1.14+ for pid limit

Done!

It seems some travis runs have timed out. Can the tests be re-triggered?

@obnoxxx this PR need rebase sent msg to @nixpanic on slack for rebasing
we recently fixed CI issue

Yeah, CI issue is temporarily fixed and we are asking PR rebase on PRs which are in merge queue. @obnoxxx

There seem to be more issues here. This one didn't even run, as it seems.

Restarted the CI . Lets see what happens now :)


Request to be added as a WP MicroProfiler New Contributor

Jean-Louis Monteiro
<EMAIL_ADDRESS>If you need help on the editor part of things, feel free to also add me in that group

Thank you for choosing to become the 47 MP WordPress Content Contributor @jeanouii!


Device Linking Sequence Number Issues

Possible issue with linking; same discarded packet without linked thing that happened with the RTU before fixes were made. See #530.

[Thu Aug 15 23:25:59 2024] [  3540086.21] [RENDER] main UI draw took 1604ms
[Thu Aug 15 23:37:57 2024] [WRN] pkt_session(70): PKT KEEP_ALIVE round trip time > 750ms (678607ms)
[Thu Aug 15 23:37:57 2024] [  3540803.68] [COMMS] supervisor server timeout
[Thu Aug 15 23:37:57 2024] [DBG] discarding non-link SCADA_MGMT packet before linked
[Thu Aug 15 23:37:57 2024] [DBG] discarding pocket API packet before linked to supervisor
[Thu Aug 15 23:37:57 2024] [  3540804.18] [COMMS] attempting to connect to configured supervisor on channel 16240
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6214
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6215
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6216
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6217
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6218
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6219
[Thu Aug 15 23:37:57 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6220
[Thu Aug 15 23:37:58 2024] [DBG] discarding pocket API packet before linked to supervisor
[Thu Aug 15 23:37:58 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6221
[Thu Aug 15 23:37:58 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6222
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6223
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6224
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6225
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6226
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6227
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6228
[Thu Aug 15 23:37:59 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6229
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6230
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6231
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6232
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6233
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6234
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6235
[Thu Aug 15 23:38:00 2024] [DBG] discarding pocket API packet before linked to supervisor
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6236
[Thu Aug 15 23:38:00 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6237
[Thu Aug 15 23:38:01 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6238
[Thu Aug 15 23:38:01 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6239
[Thu Aug 15 23:38:01 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6240
[Thu Aug 15 23:38:01 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6241
[Thu Aug 15 23:38:01 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6242
[Thu Aug 15 23:38:02 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6243
[Thu Aug 15 23:38:02 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6244
[Thu Aug 15 23:38:02 2024] [WRN] sequence out-of-order: last =<PHONE_NUMBER>6339, new =<PHONE_NUMBER>6245
[Thu Aug 15 23:38:02 2024] [DBG] API: watchdog closing session PKT [70] (@7)...

[Thu Aug 15 23:38:05 2024] [  3540811.34] [RENDER] main UI draw took 1524ms
[Thu Aug 15 23:38:06 2024] [DBG] pkt_session(71): handler received unsupported SCADA_MGMT packet type 0
[Thu Aug 15 23:38:09 2024] [DBG] pkt_session(71): handler received unsupported SCADA_MGMT packet type 0
[Thu Aug 15 23:38:11 2024] [DBG] pkt_session(71): handler received unsupported SCADA_MGMT packet type 0


Tests for Telegram Bot for Time Management

Student, group: Антунович Павел, 3530901/90203
URL: https://github.com/AntunovichPYU/TODO-bot
Git approach: git-flow

`+


[BUG] I can't run fp8 with pipeline parallel

Hi, I am trying to use fp8 with TransformerEngine.  I am using a version of GPT-Neox repo, which uses deepspeed.
I can get fp8 to run in my MLPs with model parallel, but when I use pipeline parallel, it gets hung up with no errors, it's just frozen once it tries to train (and goes into the DeepSpeed library call).
I was wondering if anyone else ran into this issue.  Thanks!

Hi @exnx - can you share your output so we can see where it is hung?  As well as your DeepSpeed config and any more clear repo steps you have?

Hello!  Sure, I put the error outputs and config (from wandb) in Google Docs.  Let me know if this helpful or if you need more info.  Thanks so much!!!


Add support for generating pointers as x-nullable

Describe the PR
With this change, pointers inside a struct are automatically generated with the x-nullable extension
New CLI flag: --nullablePointers

Pointers in structs are generated with x-nullable: true
If the schema contains a single $ref, like this:

my_field:
  $ref: "#/definitions/api.Child"
  x-nullable: true

it will be generated like this instead:
my_field:
  allOf:
    $ref: "#/definitions/api.Child"
  x-nullable: true

This ensures the result can then be converted to OpenAPI 3.0 without losing the nullable field (using: https://converter.swagger.io). See: https://stackoverflow.com/a/48114924
I'm willing to make some improvements if you have any suggestions, I'm not sure I made the change correctly as it just fits my use case for now :)
Relation issue
none
Additional context
I want to generate x-nullable on my pointers but I don't want to annotate all my fields with extensions:x-nullable. I think it makes sense to allow generating the x-nullable by default for all pointers.

I recommend you to open an issue before implementing anything.

@ubogdan haha sorry about that, I actually forked to add the feature for my team (we currently use the fork) and decided to try to upstream afterwards
I can still open an issue if you prefer and want to discuss some things, and if you have any feedback I'll be glad to make the changes

I don't have any issue adding this improvement to the code; right now, I don't see its usage.


[CloudSync] Update CloudSync code as per new Design

Signed-off-by: Nitu Gupta<EMAIL_ADDRESS>Description
The cloudsync Code is modified as per the new design. In this PR, URLData, SubscriptionInfo, MQTTClient have been updated as per the new design
Fixes # (#535)
Type of change

[X] Code cleanup/refactoring

How Has This Been Tested?
1.MQTT mosquitto broker is configured to be running in the AWS endpoint.
2. The edge orchestration is build and run using following command with option CLOUD_SYNC set to true
docker run -it -d --privileged --network="host" --name edge-orchestration -e CLOUD_SYNC=true -v /var/edge-orchestration/:/var/edge-orchestration/:rw -v /var/run/docker.sock:/var/run/docker.sock:rw -v /proc/:/process/:ro  lfedge/edge-home-orchestration-go:latest
be6431aa1e87ea03f3045826aaae13638f4e97a4fa51e9fd47586501e3cf7a1e

Call subscribe api for topic Design

curl --location --request POST 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/subscribe' \
--header 'Content-Type: text/plain' \
--data-raw '{
    "appid": "com.samsung.app1",
    "topic": "Design",
    "url" : "ec2-3-86-91-72.compute-1.amazonaws.com"
}'

The output obtained is
{"Message":"Successfully subscribed to the topic Design"}

Call the Publish API

curl --location --request POST 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/publish' \
--header 'Content-Type: text/plain' \
--data-raw '{
    "appid": "com.samsung.app2",
    "topic": "Design",
    "url" : "ec2-3-86-91-72.compute-1.amazonaws.com",
    "payload" : "Test message for testing"
}'

The output obtained is
{"Message":"Data published successfully to Cloudtcp://ec2-3-86-91-72.compute1.amazonaws.com:1883", "RemoteTargetInfo":"","ServiceName":""}

Call the getsubscribeddata API using curl

curl --location --request GET 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/getsubscribedata/ec2-3-86-91-72.compute-1.amazonaws.com/Design/com.samsung.app1'

The output obtained is
{"Message":"Test message for testing"}

Test Configuration*:

OS type & version: (Ubuntu 20.04)
Hardware: (x86-64)
Edge Orchestration Release: (v1.1.1)

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

subscribedData is not updated as per new design since the url is not available directly, so will update it in next PR

Managing clientID in the subscription list is not working properly. Please see the log below.
REQUEST
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app1",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribet25kim@t25kim:~$
t25kim@t25kim:~$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app2",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app3",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/publish' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app2",
    "topic": "home",
    "url" : "localhost",
    "payload": "test"
}'
{"Message":"Data published successfully to Cloudtcp://localhost:1883","RemoteTargetInfo":"","ServiceName":""}
$ curl --location --request GET 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/getsubscribedata/localhost/home/app3'
{"Message":"Client is not subscribed to the topic home"}

LOG of the edge orchestration container
INFO[2022-04-13T23:10:19Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:19Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:19Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:19Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:19Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
WARN[2022-04-13T23:10:19Z]mqttconnection.go:60 onConnectionLost [MQTTConnectionMgr] Connection to the client is disconnected
INFO[2022-04-13T23:10:19Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
INFO[2022-04-13T23:10:19Z]mqttconnection.go:112 StartMQTTClient [MQTTConnectionMgr] The broker istcp://localhost:1883
INFO[2022-04-13T23:10:19Z]mqttconnection.go:41 Connect [MQTTConnectionMgr] MQTT Connected
INFO[2022-04-13T23:10:19Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:19Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:20Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:20Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1]

INFO[2022-04-13T23:10:20Z]route.go:130 func1 From [<IP_ADDRESS>:58436] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.016338801s
INFO[2022-04-13T23:10:32Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:32Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:32Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:32Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:32Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:32Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:32Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:33Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:33Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1 app1]

INFO[2022-04-13T23:10:33Z]route.go:130 func1 From [<IP_ADDRESS>:58438] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.003441426s
INFO[2022-04-13T23:10:39Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:39Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:39Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:39Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:39Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:39Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:39Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:40Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:40Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1 app1 app1]

INFO[2022-04-13T23:10:40Z]route.go:130 func1 From [<IP_ADDRESS>:58442] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.003498311s
INFO[2022-04-13T23:10:51Z]externalhandler.go:394 APIV1RequestCloudSyncmgrPublish [RestExternalInterface] APIV1RequestCloudSyncmgrPublish
INFO[2022-04-13T23:10:51Z]orchestrationapi.go:135 RequestCloudSyncPublish [RequestCloudSync]Requesting cloud sync publish
INFO[2022-04-13T23:10:51Z]cloudsync.go:89 RequestPublish [cloudsyncmgr] Publishing the data to the cloud
INFO[2022-04-13T23:10:51Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:51Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:51Z]mqttconnection.go:129 Publish [MQTTConnectionMgr] Publishing the data to cloud
INFO[2022-04-13T23:10:51Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:52Z]route.go:130 func1 From [<IP_ADDRESS>:58444] POST /api/v1/orchestration/cloudsyncmgr/publish APIV1RequestCloudSyncmgrPublish 1.001224123s

INFO[2022-04-13T23:11:11Z]externalhandler.go:561 APIV1RequestCloudSyncmgrGetSubscribedData [RestExternalInterface] APIV1RequestCloudSyncmgrGetSubscribedData
INFO[2022-04-13T23:11:11Z]orchestrationapi.go:147 RequestSubscribedData [RequestCloudSync]Requesting SubscribedData
INFO[2022-04-13T23:11:11Z]cloudsync.go:166 RequestSubscribedData [cloudsyncmgr] Requesting the data for home
INFO[2022-04-13T23:11:11Z]route.go:130 func1 From [<IP_ADDRESS>:58446] GET /api/v1/orchestration/cloudsyncmgr/getsubscribedata/localhost/home/app3 APIV1RequestCloudSyncmgrGetSubscribedData 174.505µs

Thanks for the great contribution! Let me take a closer look at this PR and give you my review. One thing in mind is that a client (or an app) sends a request with appid, however the code in edge orchestration is clientID. Why don't we choose one between the words?

Yes, Makes sense, Thanks for suggesting. I would suggest then to  keep ClientID as Edge-Orchestration as fixed and we shall be using term appids to distinguish between the apps . Please let me know your thougths on same

Managing clientID in the subscription list is not working properly. Please see the log below.
REQUEST
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app1",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribet25kim@t25kim:~$
t25kim@t25kim:~$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app2",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app3",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/publish' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app2",
    "topic": "home",
    "url" : "localhost",
    "payload": "test"
}'
{"Message":"Data published successfully to Cloudtcp://localhost:1883","RemoteTargetInfo":"","ServiceName":""}
$ curl --location --request GET 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/getsubscribedata/localhost/home/app3'
{"Message":"Client is not subscribed to the topic home"}

LOG of the edge orchestration container
INFO[2022-04-13T23:10:19Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:19Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:19Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:19Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:19Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
WARN[2022-04-13T23:10:19Z]mqttconnection.go:60 onConnectionLost [MQTTConnectionMgr] Connection to the client is disconnected
INFO[2022-04-13T23:10:19Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
INFO[2022-04-13T23:10:19Z]mqttconnection.go:112 StartMQTTClient [MQTTConnectionMgr] The broker istcp://localhost:1883
INFO[2022-04-13T23:10:19Z]mqttconnection.go:41 Connect [MQTTConnectionMgr] MQTT Connected
INFO[2022-04-13T23:10:19Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:19Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:20Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:20Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1]

INFO[2022-04-13T23:10:20Z]route.go:130 func1 From [<IP_ADDRESS>:58436] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.016338801s
INFO[2022-04-13T23:10:32Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:32Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:32Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:32Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:32Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:32Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:32Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:33Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:33Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1 app1]

INFO[2022-04-13T23:10:33Z]route.go:130 func1 From [<IP_ADDRESS>:58438] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.003441426s
INFO[2022-04-13T23:10:39Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:39Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:39Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:39Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:39Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:39Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:39Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:40Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:40Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1 app1 app1]

INFO[2022-04-13T23:10:40Z]route.go:130 func1 From [<IP_ADDRESS>:58442] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.003498311s
INFO[2022-04-13T23:10:51Z]externalhandler.go:394 APIV1RequestCloudSyncmgrPublish [RestExternalInterface] APIV1RequestCloudSyncmgrPublish
INFO[2022-04-13T23:10:51Z]orchestrationapi.go:135 RequestCloudSyncPublish [RequestCloudSync]Requesting cloud sync publish
INFO[2022-04-13T23:10:51Z]cloudsync.go:89 RequestPublish [cloudsyncmgr] Publishing the data to the cloud
INFO[2022-04-13T23:10:51Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:51Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:51Z]mqttconnection.go:129 Publish [MQTTConnectionMgr] Publishing the data to cloud
INFO[2022-04-13T23:10:51Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:52Z]route.go:130 func1 From [<IP_ADDRESS>:58444] POST /api/v1/orchestration/cloudsyncmgr/publish APIV1RequestCloudSyncmgrPublish 1.001224123s

INFO[2022-04-13T23:11:11Z]externalhandler.go:561 APIV1RequestCloudSyncmgrGetSubscribedData [RestExternalInterface] APIV1RequestCloudSyncmgrGetSubscribedData
INFO[2022-04-13T23:11:11Z]orchestrationapi.go:147 RequestSubscribedData [RequestCloudSync]Requesting SubscribedData
INFO[2022-04-13T23:11:11Z]cloudsync.go:166 RequestSubscribedData [cloudsyncmgr] Requesting the data for home
INFO[2022-04-13T23:11:11Z]route.go:130 func1 From [<IP_ADDRESS>:58446] GET /api/v1/orchestration/cloudsyncmgr/getsubscribedata/localhost/home/app3 APIV1RequestCloudSyncmgrGetSubscribedData 174.505µs

curl --location --request POST 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/publish'
--header 'Content-Type: text/plain'
--data-raw '{
"appid": "app10",
"topic": "Design",
"url" : "ec2-44-202-51-196.compute-1.amazonaws.com",
"payload" : "Test message for testing"
}'
{"Message":"Data published successfully to Cloudtcp://ec2-44-202-51-196.compute-1.amazonaws.com:1883", "RemoteTargetInfo":"","ServiceName":""}
curl --location --request POST 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/subscribe'
--header 'Content-Type: text/plain'
--data-raw '{
"appid": "app71",
"topic": "Design",
"url" : "ec2-44-202-51-196.compute-1.amazonaws.com"
}'
{"Message":"Successfully subscribed to the topic Design"}
INFO[2022-04-18T09:52:12Z]externalhandler.go:394 APIV1RequestCloudSyncmgrPublish [RestExternalInterface] APIV1RequestCloudSyncmgrPublish
INFO[2022-04-18T09:52:12Z]orchestrationapi.go:135 RequestCloudSyncPublish [RequestCloudSync]Requesting cloud sync publish
INFO[2022-04-18T09:52:12Z]cloudsync.go:89 RequestPublish [cloudsyncmgr] Publishing the data to the cloud
INFO[2022-04-18T09:52:12Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-18T09:52:12Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
WARN[2022-04-18T09:52:12Z]mqttconnection.go:60 onConnectionLost [MQTTConnectionMgr] Connection to the client is disconnected
INFO[2022-04-18T09:52:12Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
INFO[2022-04-18T09:52:12Z]mqttconnection.go:112 StartMQTTClient [MQTTConnectionMgr] The broker istcp://ec2-44-202-51-196.compute-1.amazonaws.com:1883
INFO[2022-04-18T09:52:12Z]mqttconnection.go:41 Connect [MQTTConnectionMgr] MQTT Connected
INFO[2022-04-18T09:52:12Z]mqttconnection.go:130 Publish [MQTTConnectionMgr] Publishing the data to cloud
INFO[2022-04-18T09:52:13Z]route.go:130 func1 From [<IP_ADDRESS>:46312] POST /api/v1/orchestration/cloudsyncmgr/publish APIV1RequestCloudSyncmgrPublish 1.486627587s

Managing clientID in the subscription list is not working properly. Please see the log below.
REQUEST
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app1",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribet25kim@t25kim:~$
t25kim@t25kim:~$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app2",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/subscribe' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app3",
    "topic": "home",
    "url" : "localhost"
}'
{"Message":"Successfully subscribed to the topic home"}
$ curl --location --request POST 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/publish' --header 'Content-Type: text/plain' --data-raw '{
    "appid": "app2",
    "topic": "home",
    "url" : "localhost",
    "payload": "test"
}'
{"Message":"Data published successfully to Cloudtcp://localhost:1883","RemoteTargetInfo":"","ServiceName":""}
$ curl --location --request GET 'http://localhost:56001/api/v1/orchestration/cloudsyncmgr/getsubscribedata/localhost/home/app3'
{"Message":"Client is not subscribed to the topic home"}

LOG of the edge orchestration container
INFO[2022-04-13T23:10:19Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:19Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:19Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:19Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:19Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
WARN[2022-04-13T23:10:19Z]mqttconnection.go:60 onConnectionLost [MQTTConnectionMgr] Connection to the client is disconnected
INFO[2022-04-13T23:10:19Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
INFO[2022-04-13T23:10:19Z]mqttconnection.go:112 StartMQTTClient [MQTTConnectionMgr] The broker istcp://localhost:1883
INFO[2022-04-13T23:10:19Z]mqttconnection.go:41 Connect [MQTTConnectionMgr] MQTT Connected
INFO[2022-04-13T23:10:19Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:19Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:20Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:20Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1]

INFO[2022-04-13T23:10:20Z]route.go:130 func1 From [<IP_ADDRESS>:58436] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.016338801s
INFO[2022-04-13T23:10:32Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:32Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:32Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:32Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:32Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:32Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:32Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:33Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:33Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1 app1]

INFO[2022-04-13T23:10:33Z]route.go:130 func1 From [<IP_ADDRESS>:58438] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.003441426s
INFO[2022-04-13T23:10:39Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-13T23:10:39Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-13T23:10:39Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to localhost
INFO[2022-04-13T23:10:39Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:39Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:39Z]mqttconnection.go:150 Subscribe [MQTTConnectionMgr] Subscribing to home
INFO[2022-04-13T23:10:39Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:40Z]mqttconfig.go:116 addSubscribeClient [MQTTConnectionMgr] app1
INFO[2022-04-13T23:10:40Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app1 app1 app1]

INFO[2022-04-13T23:10:40Z]route.go:130 func1 From [<IP_ADDRESS>:58442] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.003498311s
INFO[2022-04-13T23:10:51Z]externalhandler.go:394 APIV1RequestCloudSyncmgrPublish [RestExternalInterface] APIV1RequestCloudSyncmgrPublish
INFO[2022-04-13T23:10:51Z]orchestrationapi.go:135 RequestCloudSyncPublish [RequestCloudSync]Requesting cloud sync publish
INFO[2022-04-13T23:10:51Z]cloudsync.go:89 RequestPublish [cloudsyncmgr] Publishing the data to the cloud
INFO[2022-04-13T23:10:51Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-13T23:10:51Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-13T23:10:51Z]mqttconnection.go:129 Publish [MQTTConnectionMgr] Publishing the data to cloud
INFO[2022-04-13T23:10:51Z]mqttconnection.go:144 func1 [MQTTConnectionMgr] Topic home registered.. test is the payload
INFO[2022-04-13T23:10:52Z]route.go:130 func1 From [<IP_ADDRESS>:58444] POST /api/v1/orchestration/cloudsyncmgr/publish APIV1RequestCloudSyncmgrPublish 1.001224123s

INFO[2022-04-13T23:11:11Z]externalhandler.go:561 APIV1RequestCloudSyncmgrGetSubscribedData [RestExternalInterface] APIV1RequestCloudSyncmgrGetSubscribedData
INFO[2022-04-13T23:11:11Z]orchestrationapi.go:147 RequestSubscribedData [RequestCloudSync]Requesting SubscribedData
INFO[2022-04-13T23:11:11Z]cloudsync.go:166 RequestSubscribedData [cloudsyncmgr] Requesting the data for home
INFO[2022-04-13T23:11:11Z]route.go:130 func1 From [<IP_ADDRESS>:58446] GET /api/v1/orchestration/cloudsyncmgr/getsubscribedata/localhost/home/app3 APIV1RequestCloudSyncmgrGetSubscribedData 174.505µs

curl --location --request POST 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/subscribe'
--header 'Content-Type: text/plain'
--data-raw '{
"appid": "app71",
"topic": "Design",
"url" : "ec2-44-202-51-196.compute-1.amazonaws.com"
}'
{"Message":"Successfully subscribed to the topic Design"}
curl --location --request POST 'http://<IP_ADDRESS>:56001/api/v1/orchestration/cloudsyncmgr/subscribe'
--header 'Content-Type: text/plain'
--data-raw '{
"appid": "app81",
"topic": "Design",
"url" : "ec2-44-202-51-196.compute-1.amazonaws.com"
}'
{"Message":"Successfully subscribed to the topic Design"}
INFO[2022-04-18T09:56:56Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-18T09:56:56Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-18T09:56:56Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to ec2-44-202-51-196.compute-1.amazonaws.com
INFO[2022-04-18T09:56:56Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-18T09:56:56Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
WARN[2022-04-18T09:56:56Z]mqttconnection.go:60 onConnectionLost [MQTTConnectionMgr] Connection to the client is disconnected
INFO[2022-04-18T09:56:56Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
INFO[2022-04-18T09:56:56Z]mqttconnection.go:112 StartMQTTClient [MQTTConnectionMgr] The broker istcp://ec2-44-202-51-196.compute-1.amazonaws.com:1883
INFO[2022-04-18T09:56:56Z]mqttconnection.go:41 Connect [MQTTConnectionMgr] MQTT Connected
INFO[2022-04-18T09:56:56Z]mqttconnection.go:151 Subscribe [MQTTConnectionMgr] Subscribing to Design
INFO[2022-04-18T09:56:57Z]mqttconnection.go:145 func1 [MQTTConnectionMgr] Topic Design registered.. Test message for testing is the payload
INFO[2022-04-18T09:56:57Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app71]
INFO[2022-04-18T09:56:57Z]route.go:130 func1 From [<IP_ADDRESS>:46316] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.710675946s
INFO[2022-04-18T09:56:56Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-18T09:56:56Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-18T09:56:56Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to ec2-44-202-51-196.compute-1.amazonaws.com
INFO[2022-04-18T09:56:56Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-18T09:56:56Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
WARN[2022-04-18T09:56:56Z]mqttconnection.go:60 onConnectionLost [MQTTConnectionMgr] Connection to the client is disconnected
INFO[2022-04-18T09:56:56Z]mqttconnection.go:53 onConnect Running MQTT.OnConnectHandler
INFO[2022-04-18T09:56:56Z]mqttconnection.go:112 StartMQTTClient [MQTTConnectionMgr] The broker istcp://ec2-44-202-51-196.compute-1.amazonaws.com:1883
INFO[2022-04-18T09:56:56Z]mqttconnection.go:41 Connect [MQTTConnectionMgr] MQTT Connected
INFO[2022-04-18T09:56:56Z]mqttconnection.go:151 Subscribe [MQTTConnectionMgr] Subscribing to Design
INFO[2022-04-18T09:56:57Z]mqttconnection.go:145 func1 [MQTTConnectionMgr] Topic Design registered.. Test message for testing is the payload
INFO[2022-04-18T09:56:57Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app71]
INFO[2022-04-18T09:56:57Z]route.go:130 func1 From [<IP_ADDRESS>:46316] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.710675946s
INFO[2022-04-18T09:57:35Z]externalhandler.go:481 APIV1RequestCloudSyncmgrSubscribe [RestExternalInterface] APIV1RequestCloudSyncmgrSubscribe
INFO[2022-04-18T09:57:35Z]orchestrationapi.go:141 RequestCloudSyncSubscribe [RequestCloudSync]Requesting cloud sync subscribe
INFO[2022-04-18T09:57:35Z]cloudsync.go:128 RequestSubscribe [cloudsyncmgr] Subscribing the data to ec2-44-202-51-196.compute-1.amazonaws.com
INFO[2022-04-18T09:57:35Z]mqttconnection.go:84 StartMQTTClient [MQTTConnectionMgr] Starting the MQTT Client
INFO[2022-04-18T09:57:35Z]mqttconnection.go:88 StartMQTTClient [MQTTConnectionMgr] Client is already connected
INFO[2022-04-18T09:57:35Z]mqttconnection.go:151 Subscribe [MQTTConnectionMgr] Subscribing to Design
INFO[2022-04-18T09:57:35Z]mqttconnection.go:145 func1 [MQTTConnectionMgr] Topic Design registered.. Test message for testing is the payload
INFO[2022-04-18T09:57:36Z]mqttconfig.go:118 addSubscribeClient [MQTTConnectionMgr] [app71 app81]
INFO[2022-04-18T09:57:36Z]route.go:130 func1 From [<IP_ADDRESS>:46318] POST /api/v1/orchestration/cloudsyncmgr/subscribe APIV1RequestCloudSyncmgrSubscribe 1.231351113s
INFO[2022-04-18T09:57:47Z]discovery.go:860 activeDiscovery [discoverymgr] activeDiscovery!!!


Encounter TypeError: can only concatenate str (not "list") to str when running this on macOS

Env:

Machine: Macbook pro M2
OS: Sonoma 14.5
Python: 3.11
keyboardsounds: 5.7.7 (just installed with pip install keyboardsounds few minutes ago, didn't configure anything)

What happened?
I was trying to run the keyboardsounds with kbs start, then I encountered the following error:
kbs start
Traceback (most recent call last):
  File "/opt/homebrew/bin/kbs", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/homebrew/lib/python3.11/site-packages/keyboardsounds/main.py", line 59, in main
    (
TypeError: can only concatenate str (not "list") to str

My idea:

After reading the source code and debugging, I found that the error occurred because win_messages is a list if the OS is not Windows. After changing win_messages = [] in line 47 to win_messages = "", the program works.

Thanks for reporting this! You can feel free to make a pull request with the changes (if you'd like), or I can update it sometime in the next week.


Wrong version in version variable in init.py V0.4.1

Hello,
The variable version in init.py refer to the wrong version of the product.
https://github.com/vertica/VerticaPy/blob/0.4.1/verticapy/__init__.py#L49

Hi Fernande

The issue is addressed in version 0.5.0.


statefulset.{podS,s}ecurityContext do not work as expected

The statefulset.podSecurityContext and statefulset.securityContext fields have not work as one would expect for quite sometime. In the conversion to go, we preserved this behavior (and introduced other issues #1413).
The broken semantics are (roughly): podSecurityContext and securityContext are intermixed and partially applied (FSGroup, FSChangePolicy, RunAsUser, RunAsGroup, AllowPrivilegeEscalation, RunAsNonRoot) to all SecurityContexts and some PodSecurityContexts.
This is clearly less than ideal as:

Users can't set all fields
It's unclear which fields propagate where
It may be surprising that values under statefulset are magically propagated everywhere.
PodSecurityContext's (eg on Jobs) can't be controlled.

This has left us in a bit of a bind as the most ideal field names are taken.
I'm currently leaning towards:

add securityContext and podSecurityContext to the root values with no defaults.
add explicit fields the remaining security contexts following the statefulset.template pattern. e.g. post_install_job.template.securityContext

If any of these fields are provided, statefulset.podSecurityContext and statefulset.securityContext will be ignored. Then in a few releases, we'll remove these fields entirely.
JIRA Link: K8S-309

A large chunk of this has been fixed in https://github.com/redpanda-data/helm-charts/pull/1477 by deprecating these fields in favor of a the podTemplate fields.
We'll need to add support for setting the security context(s) of init containers and side cars before full closing this out.


Invalid syntax when reflection is used with error_on_unknown_keys

Tracked this to from_json at read.hpp:2449
If I'm using glz::ex::read_json(...), I got this:
before calling parse_object_key (line 2536): it = '"seconds": 10, "more": {"another": 5}}'
after calling parse_object_key (line 2536) it = ': 10, "more": {"another": 5}}'
with glz::ex::read<glz::opts { .error_on_unknown_keys = false }>(...):
before calling parse_object_key (line 2536): it = '"seconds": 10, "more": {"another": 5}}'
after calling parse_object_key (line 2536) it = '": 10, "more": {"another": 5}}' <- extra " before :
Then it will fail in parse_object_entry_sep, at the match<':'>.
#include <glaze/glaze.hpp>
struct P {
    uint64_t seconds { 5 };
    glz::raw_json more;
};
static_assert(glz::detail::reflectable<P>);
void test() {
    P p;
    glz::ex::read_json(p, R"({"seconds": 10, "more": {"another": 5}})");
    glz::ex::read<glz::opts { .error_on_unknown_keys = false }>(p, R"({"seconds": 10, "more": {"another": 5}})");
}

I see that this only happened with the latest release (1.9.1), but on the main branch it was fixed (probably here: 96c0e558777f7304836f60e32bc40a8fb0263f7e). This can be closed, I will just wait for the next release.


Add flutter fragment in iOS native screen

I am planning to switch my native app in android and ios to flutter and I want to do this gradually. It's mentioned in the doc how to do Android fragment integration. I am not sure if we can do the same in iOS since it's not mentioned in the doc

Hi @jamil-tlbwork
Just next to the Android section, you can find Integrate a Flutter module into your iOS project

Flutter Fragment equivalent for iOS would be this
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you

Hey @TahaTesser , thanks for replying
I mean by fragment integration is all screen is managed by native iOS and there is a flutter widget as part of it
like this in android

@jamil-tlbwork
The fragment is native to Android, there is no equivalent for IOS, you need to add a single Flutter screen.


On Mocking function toHaveBeenCalledTimes() always returns 0

My Component
import React from "react";
import { withRouter } from "react-router-dom";
import { Icon } from "antd";

const handleGoBack = (history, returnPath) => {
  if (returnPath) {
    history.push(returnPath);
  } else {
    history.goBack();
  }
};

const GoBack = ({ history, returnPath }) => (
  <span onClick={() => handleGoBack(history, returnPath)} style={{ cursor: "pointer" }}>
    <Icon type="arrow-left" />
  </span>
);

export default withRouter(GoBack);

Test
import React from "react";
import { shallow, mount } from "enzyme";
import GoBack from "./GoBack";
import { BrowserRouter as Router } from "react-router-dom";

const returnPath = "/manage-rfq";

describe("GoBack", () => {
  let wrapper;
  const history = {
    goBack: jest.fn(),
    push: jest.fn()
  };

  it("should not push in history", () => {
    wrapper = mount(
      <Router>
        <GoBack />
      </Router>
    );
    wrapper.simulate("click");
  // this returns 0 although that method is getting called`
    expect(history.goBack).toHaveBeenCalledTimes(1);
  });

});

Error:
● GoBack › should not push in history

    expect(jest.fn()).toHaveBeenCalledTimes(expected)

    Expected number of calls: 1
    Received number of calls: 0

      29 |     wrapper.simulate("click");
    > 31 |     expect(history.goBack).toHaveBeenCalledTimes(1);
         |                            ^
      32 |   });

You don't pass history as a prop to your component. How do you expect to get there? I needs to be injected somehow.
Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions. You'll find more on Jest docs help page. Thank you :)


Dynamic text override for mj-includes

We use a modular setup with building emails, each section that makes up a module is in it's own file. Things like headers etc are great being able to pull in an include and not have to see massive blocks of code. What I would like to be able to do is to have a dynamic text section in the includes file which would allow me to override the text in the main file without pulling in the whole module.
For example:
Say in your module there is a block of text that is a placeholder. I'd like to be able to put a mj-dynamic or something within the text or image and then be able to override that within the include.
In the include file:
<mj-text mj-dynamic-class="headingUpdate" mj-class="heading">This is the old heading</mj-text>
Then in the main file pulling that block in.
<mj-include path="image-left-normal-stack.mjml"><mj-dynamic-class"headingUpdate">New heading</mj-dynamic>
If there is no mj-dynamic the page pulls through whatever was set as the text or image.
Why would I want this? This would stop users from getting confused with the code, would make editing the copy in modules easier and would allow people with very limited coding update the modules without breaking anything.

From what I understand what you want is a templating language. We don't plan to add any templating features in MJML, because:

the role of MJML is making the responsive email part easier, and we want to stick to that
adding templating features would complexify the code base a lot
there are a lot of tools that already handle that very well (handlebars, pugjs, etc)

However you can totally use a templating language with MJML!


[flutter_plugin_tools] Allow overriding breaking change check

Adds the ability to override the current prohibition against breaking changes to platform interfaces with a justification (following a set pattern, which will be documented in the wiki) in the PR description. This fixes the incorrect hard limit that's currently in place, but ensures that there is enough extra process that:

PR authors won't be able to change major versions without realizing that it's strongly discouraged and prominently explaining why they believe it's necessary, and
PR reviewers are much less likely to miss in review that a strongly discouraged change is being made.

Fixes https://github.com/flutter/flutter/issues/85391
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the relevant style guides and ran the auto-formatter. (Note that unlike the flutter/flutter repo, the flutter/plugins repo does use dart format.)
[x] I signed the CLA.
[x] The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
[x] I listed at least one issue that this PR fixes in the description above.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
[x] I updated CHANGELOG.md to add a description of the change.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test exempt.
[x] All existing and new tests are passing.

I would have loved to be able to override even more the version number (to jump from 0.2.0 to 0.6.0 :P) but this is more to the point, and keeps the processes saner. 🚀

I was keeping that use case in mind while writing this; it would be relatively straightforward to extend this to cover that if we find another time where we feel that we need it.


[20.09] gdal_2: add patch for CVE-2019-17546

Motivation for this change
https://github.com/NixOS/nixpkgs/issues/90807
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Thanks. This is on my radar - I'm currently working on the gdal 2.4.4 situation and we generally try to get master fixed before stable...

Thanks. This is on my radar - I'm currently working on the gdal 2.4.4 situation and we generally try to get master fixed before stable...


Client side hydration works in development but fails in production

Version
2.5.9
Reproduction link
https://github.com/iloginow/vue-base-template
Steps to reproduce

Install the template:

vue init iloginow/vue-base-template my-debug
cd my-debug
npm install

Run the dev-server and make sure the app works just fine:

npm run dev

Build for production and run to see client-side hydration fail:

npm run build
npm start

What is expected?
The app is expected to behave the same way in production as it does in the development environment.
What is actually happening?
The app works perfectly on dev-server but in production, it appears to be totally dead as client-side hydration somehow fails.

I decided to build my own Vue SSR template that I could use for my projects. It's partially based on this example. Everything was fine and worked as expected. And it still does on the dev-server) But when I'd built the app for production I suddenly discovered that it was totally dead. I got no errors, no warnings, no other signs that could point out the direction where I should search for the answers whatsoever... And it's just blowing my mind!
I'm not sure if it's a Vue bug really... It's probably not, it might be something else...  I just don't know. I spent so much time trying to solve this... But found nothing, and I feel pretty helpless. So any help would be appreciated!

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server, gitter or StackOverflow.

If it turns out to be a bug and you manage to boil it down to only the necessary, open an issue again with it 🙂


Better cleaning method

Hello!
In cleaning method in database_cleaner/lib/database_cleaner/generic/base.rb you have:
def cleaning(&block)
  start
  yield
  clean
end

There is recommendation in factory_girl_rails gem on adding linting like this:
begin
  DatabaseCleaner.start
  FactoryGirl.lint
ensure
  DatabaseCleaner.clean
end

So I thought that it would be nice to define cleaning method in that style for better error tolerance and for database to be cleaned anyway after partly executed yield:
def cleaning(&block)
  begin
    start
    yield
  ensure
    clean
  end
end

@etagwerker Want to close this since #311 was merged?

Sure, thank you)


⚠ Bofrost.at has degraded performance

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

HTTP code: 200
Response time: 1067 ms

Resolved: Bofrost.at performance has improved in 9ec02e9 after 6 minutes.


Add Clock (AOSP Deskclock)

Add support for Android Deskclock (AOSP Clock app)
Icon:

Icon seems to be broken...

@patrykmichalik Apologies for the ping, but if you have any clue on how to fix this, I'd greatly appreciate your insight. It just shows up as blank.

Nope... :(

Fixed!

Thanks for your interest in contributing! The dynamic clock icon that you see when using Lawnicons is part of Lawnchair. The same applies to the dynamic calendar icon. To link the com.android.deskclock package to this icon, please open a pull request in the Lawnchair repository. Here’s a link to the relevant file: https://github.com/LawnchairLauncher/lawnchair/blob/12.1-dev/lawnchair/res/xml/grayscale_icon_map.xml. Cheers!

Ty. That's actually why I kept this PR as a draft, but I guess I could open a new one ^^;

I closed this PR because itʼs impossible to move a PR from one repository to another. The only solution available here is to open a new PR in the Lawnchair repository, which youʼre more than welcome to do!


gaussian function in the standard math library

see https://en.wikipedia.org/wiki/Gaussian_function

solved by https://github.com/ReMobidyc/ReMobidyc/pull/268


Support 1.7.0 (Final)

1.7.0 (Final) was recently released: https://github.com/Syncplay/syncplay/releases/tag/v1.7.0
One of the most important changes was adding room permanence option to the server. New server arguments were introduced:
--rooms-db-file [file]
Enables room persistence. Path is to where a database file should be loaded/create where room data will be written to and read from. This will enable rooms to persist without watchers and through restarts. Will not work if using --isolate-rooms.

--permanent-rooms-file [file]
Specifies a list of rooms that will still be listed even if their playlist is empty. Path is to where a text file with one room per line. This will require persistent rooms to be enabled.

I suppose it would also require mounting a host folder as a volume.

Can you support last stable version ? Or this project isn't maintained ?

Sorry, I've been a little distracted. I'll try and get this updated to 1.7.0 this week.


package-request: asbru-cm

Please add this tool to the repository, It's so useful to have all the connections in one place!
https://github.com/asbru-cm/asbru-cm
Thanks

What tools do you need to manage with it?

Done, please check and provide feedback!


Seconds input can be dynamic

Update https://github.com/codinasion/program/blob/master/program/convert-seconds-to-hours/convert-seconds-to-hours.r to accept dynamic input

Seconds input can be dynamic
Originally posted by @brundabharadwaj in https://github.com/codinasion/program/pull/6937#pullrequestreview-1357826150

!assign


YOLO v3/v4

🚀 Feature
Add YOLO v3/v4 Object detection model

Hi @ydcjeff, I've had in my plans to add these models for long but still haven't had the time to do so
Would you be interested in working together in this?

Sure, I am interested in this. But, there are some questions about YOLO v3 I don't understand.
Shall I start with YOLO v3?

Shall I start with YOLO v3?

I think that's the best way to start yeah, and also, start exploring some dedicated implementations on github (like we have for [efficientdet](Shall I start with YOLO v3?))
I also want to learn more about it, so we can take this together. Are you in our Discord group?

Okay, I will start with YOLO v3. I will be joining discord.

at least YOLOv3 will be covered by the mmdet integration.


Classloading crash without Chickens [2.0.7]

https://paste.dimdev.org/ufudujuhar.mccrash
Apologies for the VanillaFix crashlog, but it appears that the most recent update is somehow not behind a "don't do this if Chickens isn't installed" wall, as it's attempting to classload something that doesn't exist.
Good luck with figuring it out! Especially as I see the changelog spoke about CraftTweaker integration.

While this is a valid issue (because previous versions worked without Chickens), the CT integration in the changelog is specifically for Chickens' own ContentTweaker integration, so don't get your hopes up.

That's fine, I was just running off the fact that it still says "optional dependency" for Chickens. I don't care about CraftTweaker interaction, I just understand that getting an optional dependency to work with CraftTweaker can be confusing.

Was coming to report this. If you are going to require Chickens going forward, it needs to be set up as a dependency, and it would be nice if you would fork it and have two versions. Not every pack maker wants to allow infinite farmable resources that Chickens has, but enjoys the features of Roost for vanilla chicken farming.

Fixed in 2.0.8


How to cut the gxfr when I have captured a frame

I want this effect that I know a bug in this frame such as a hang problem, but I do not know which draw causing  it. So, I must cut the frame to reduce number of draws in the frame, and replay the new gfxr file, but I do not know how to do this way.
Only I can get is a json file, and modify it, but how can I replay the json??

Trimming down to draw call granularity is not supported (yet) by GFXR. Also replaying the json file is not supported (yet) either.
You can trim down to queue submission level though using the GFXRECON_CAPTURE_QUEUE_SUBMITS option. Have you tried that?
Also when replaying you can use the --sync option, which will insert a QueueWaitIdle after every queue submission, effectively serializing queue submissions.
If there's only one queue submission in that frame then I don't think there's something out of the box that you can use.

okay, there’s a long way to go...

Thanks for your use of the project and bringing a reasonable use case to our attention. This is not quite an actual issue as phrased: it is more like a question asking for support. Perhaps the title and description can be rephrased into a specific issue that captures a task that we would want to pursue or you might want to contribute and then this could be reopened.

OK, thank you for your answer, looking forward to your new features.


Fix typo

I have not tested anything, but this was clearly a typo. Should doctests not have caught this?

Codecov Report

Merging #771 (f19345d) into dev (2b8d578) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #771   +/-   ##
=======================================
  Coverage   85.92%   85.92%
=======================================
  Files          36       36
  Lines        3460     3460
=======================================
  Hits         2973     2973
  Misses        487      487

Impacted Files
Coverage Δ

src/composition/models/pipelines.jl
99.42% <ø> (ø)

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 2b8d578...f19345d. Read the comment docs.