How can I continue ranging/monitoring when the app is in background or app is closed?

I am working with estimote beacon demo app(Android) & created one virtual beacon with the estimote iOS app. It's working fine when the activity is in the foreground - I can see the beacon in the list.
The problem is when the activity (where I started ranging/monitoring) gets destroyed, beaconManager stops working as in onDestroy method I disconnected beaconManager. It totally hurts the purpose of using beacon in the first place - as we expect the app can sense a beacon even if the app is closed or app is in background(in activity stack of Android). The proper scenario would be - we want the user gets notified to something if the app is installed & if he comes into the range of a beacon.
Do you think it is possible? Perhaps with android Service?

is this fixed in version 0.13.0 ?? Because is happening the same to me. App stop monitoring when the system kill it.

Hey @danieltigse
Here are some docs describing how to handle monitoring after system kills your app:
https://github.com/Estimote/Android-SDK/blob/master/DOC_monitoring_after_restart.md
Tell me if that helps - if not, we will proceed further and take a deeper look into this problem.

It doesn't helps. Maybe this could work only when the phone is rebooted but the problem is when the system kills the app because of low memory. You should have a service running in background or maybe an option to decide if the developer want a the service running forever or not.

I have a similar problem :(
I looked at Android Configs > Developer > In Execution and when the app is in foreground or background (not killed), the BeaconService is in "services in execution" and works fine. But when I kill the app (remove from task manager) the BeaconService is moved to "services in cache" and the app/android stops the background monitoring.
I tried to manage the BeaconManager.setBackgroundScanPeriod() for test, but without success :(
Does anyone knows how to "stuck" the service in "services in execution"? Or maybe if this is an Android behavior, how can I handle this?

@pawelDylag any solution to this perhaps?

The link you added above is broken... :)

Hey guys!
We are moving to the new version of our SDK, called ProximitySDK. It's currently in ALPHA stage, but will support background monitoring. I encourage you to read this topic on our forums.
Also, the alpha version of our new sdk is available on proximity-sdk branch.
Consider using the new SDK, because we made lots of upgrades to scanning mechanism, and it will work also in the background. You can read more in the links I provided you above.
Cheers!

@pawelDylag thanks! Does background refers also to the scenario where the user kills the app?

@oferRounds  Yes, but it needs to be done regarding the official Android guidelines - we allow to run your scanning in the background (using foreground service), but you need to provide a notification object. Read more here.

Cool! Will read.
Also, one more question please: are there any plans to add an SDK for React Native?

@oferRounds Not for now. Fortunately, we got more and more requests for SDK supporting React Native, and we will probably consider doing something about it. Yet, probably not this year.

Got you, thanks!

Hi @pawelDylag
Reading on Android docs I see on Running a service in the foreground, it says:

A foreground service must provide a notification for the status bar, which is placed under the Ongoing heading. This means that the notification cannot be dismissed unless the service is either stopped or removed from the foreground.

I am new to Android (coming from iOS) - but If I understand right, this kind of banner/notification is kind of not pleasant to the user (a banner which is "stuck" there). Isn’t there a nicer way to workaround it, and still follow Android guidelines? (Something similar to iOS where the app is registered in the OS for the Beacon, and then woken app when the device enters the region)
I am building an app which allow companies/employees to automatically track their time at work.

Hey @oferRounds
I won't agree with the statement, that the notification is unpleasant. It informs the user, that something is doing heavy task in the background. Like Spotify music player, downloading progress, screen recording, etc. Our beacon scanning is using BLE, which somehow drains the battery, and Android will easily kill it, unless you show an explicit notification. In my personal opinion, this solution is great, because you, as a user, know exactly what is happening under the hood. You can modify the notification though - add buttons to stop scanning, or change the text. Read more here.
This may seem a little bit odd to a person coming from the land of iOS, but this is how Android does stuff :)
There are some possibilities to register beacon scanning in OS, but this is not very reliable, and won't work with our proximity algorithms. Maybe in the future we will incorporate this mechanism to work with our stack, but this is to be decided.

@pawelDylag - thanks for the detailed answer!
Two questions:

Form your experience, solution like this also not feasible? https://stackoverflow.com/questions/30222409/android-broadcast-receiver-bluetooth-events-catching
Meaning the system, can also kill it?

My concern is that compering to Spotify, for example, where the user chose to play the song - therefore it’s easy for him to understand – in our case — clock work — this will be harder for him to understand the justification. Your thoughts?

In iOS - I’m interested only in mentoring, is this also not reliable?

Hi @pawelDylag
I’m trying to integrate the alpha sdk, buf facing an issue. Probably because I’m coming from iOS...
I followed your example and there is this line:
notification = NotificationCreator().create(this)
What is the NotificationCreator? I couldn’t find it. I’m writing in Java.

Hey! @oferRounds

The broadcast receiver, according to your stackoverflow link, is the solution if you want to know only if bluetooth was turned on or off. This will trigger your app then, but does not contain scan results. So is useless for your case.
You can always use startWithSimpleScanner that doesn't require notification to show, but the scanning will probably be killed after the user exits from your app.
NotificationCreator is an object that handles proper notification creation. Old Android versions require simple Notification object to be created. Since Android version 8.0, you need to declare an NotificationChannel for your app. Read more here.
Our NotificationCreator is a custom object, that was only included in our example app. It's not included in our SDK, so you should create one on your own, or copy our solution from example app.

Happy coding!

Oh, and by the way - if you got any more questions, please create a thread on our forums. It will be easier for me to track it.

@pawelDylag
Thanks again for the detailed answer!
If I have another issue, I will post in the forum, but for now, just to end this, 2 following questions:

Will the notification be shown also when the user just moved the app to the background (and not killed it via the app switcher)?
This service, how much does it effect the battery and what exactly does it do? (i.e., it’s not that clear to me, as in iOS the app just signs up with the OS to get awaken when the exact beacon is detected, and no extra work is need to be done by the app)

@pawelDylag - getting this crash after integrating the alpha version... Could you have a look?
http://crashes.to/s/a46eb54e694

Hi @oferRounds,
At the first glance it looks like such crash may occur when application is
attempting to initialize our sdk while Bluetooth is disabled on the device.
In such case Android api returns null as a Bluetooth Adapter instance. It
appears we are not handling this situation properly :(.
We'll investigate it further and let you know when you can expect new sdk
version with fix included - stay tuned :)
Regards
Wojtek
On Sun, Nov 12, 2017, 5:18 PM Ofer Morag<EMAIL_ADDRESS>wrote:

@pawelDylag https://github.com/paweldylag - getting this crash after
integrating the alpha version... Could you have a look?
http://crashes.to/s/a46eb54e694
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Estimote/Android-SDK/issues/62#issuecomment-343748273,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJ2g-cFrlMYZdSSPoEqIsyNxh07_oyylks5s1xphgaJpZM4CL3an
.


How to specify ffmpeg's path for workers

Hi, I would like to know the right way to specify the ffmpeg path to avoid repeated downloading after the temp folder is cleaned.
I saw the answer in this issue, but it didn't work for me to set a env variable NEXRENDER_FFMPEG before starting workers.
Thank you!

If NEXRENDER_FFMPEG is set, it should prefer an executable you provide as a path in that var, rather then downloading and using the preconfigured one.

I found this work for released binary workers, I was using the npm-downloaded worker before.
Thank you!


Issue on custom label socialMedia

Hi, i tried to set custom socialmedia, but label not set, is set such us AIM.
SocialMedia social = SocialMedia(IDController.value.text);
social.label = SocialMediaLabel.custom;
social.customLabel = 'com.linkmeeasy.profile';

i found in phone (android) as an AIM and loose customlabel.

Hi @cor277 I'm not sure I understand the question. What is the problem exactly? Can you post more code, and/or screenshots to explain the issue?

Closing for inactivity, feel free to reopen.


lib.d.ts HTMLTableElement, HTMLTableSectionElement, and HTMLTableRowElement

A couple of html table related methods in lib.d.ts return HTMLElement, but they could return a more precise type:

HTMLTableElement.insertRow should return HTMLTableRowElement instead of HTMLElement
HTMLTableElement.createTHead should return HTMLTableSectionElement instead of HTMLElement
HTMLTableElement.createTBody should return HTMLTableSectionElement instead of HTMLElement
HTMLTableElement.createTFoot should return HTMLTableSectionElement instead of HTMLElement
HTMLTableElement.createCaption should return HTMLTableCaptionElement instead of HTMLElement
HTMLTableSectionElement.insertRow should return HTMLTableRowElement instead of HTMLElement
HTMLTableRowElement.insertCell should return HTMLTableCellElement instead of HTMLElement

How about also HTMLTableElement cells and rows property return a new generic type HTMLCollectionOf where cells is HTMLCollectionOf and rows is HTMLCollectionOf

Seems like this didn't make v1.6. Is it possible to get a milestone update?

@zhengbli is working on releasing the script that generates the typings file. it should come out shortly, and with that we should be able to take PRs for features like this one. putting it on @zhengbli for now.

The HTMLTableElement.rows is not only HTMLTableRowElement, it also contains headers and other types spec, the same goes for HTMLTableRowElement.cells.

I have a PR fixing this at https://github.com/Microsoft/TSJS-lib-generator/pull/24
If you want to take a look @mhegazy @sockfish


Issue with Validation Reports and New UDMI Version - named "state.out"

Hi Team,
I am facing an issue with validation reports using the new UDMI version. I encountered the following "state.out" error message. Could you please assist me in resolving this?
Payload Sent from the controller:
{
"version": "1",
"timestamp": "2023-08-21T08:47:52.470Z",
"system": {
"serial_no": "",
"last_config": "2022-06-02T09:00:43Z",
"operational": true,
"hardware": {
"make": "LLBMS",
"model": "Exhaust Fans",
"sku": "",
"rev": ""
},
"software": {
"firmware": "",
"os": ""
}
}
}
Validation Report at State.out
{
"timestamp" : "2023-08-21T11:39:58Z",
"version" : "1.4.1",
"sub_folder" : "update"
"sub_type" : "state",
"status" : {
"message" : "missing pointset subblock",
"detail" : "state_update: missing pointset subblock",
"category" : "validation.device.schema",
"timestamp" : "2023-08-21T11:39:58Z",
"level" : 500
},
"errors" : [ {
"message" : "missing pointset subblock",
"detail" : "state_update: missing pointset subblock",
"category" : "validation.device.schema",
"timestamp" : "2023-08-21T11:39:58Z",
"level" : 500
} ]
}

Hello,
The error here is that the devices metadata here has a pointset, therefore it is required that the state message also includes the pointset blocks with the points the device is publishing data for. If the device does not have data points, then either add an emptoy pointsetblock or remove the pointset block from the metadata.json file.
This is not new UDMI behaviour, there was a bug in one version of  the UDMI validator which did not raise this error

@noursaidi Hi Thanks for the Reply i will look into it and get back to you


Unique aliases aren't working

The equality check between what's already in the box and what's available seems to be broken

Actually this is a problem with the display of box contents ... it isn't obvious that the box contains more objects than are being shown (leading me to think that the alias selection was filtering out items that weren't in the box, when actually they were).


sphinx builds locally but not via github action

Describe the bug
A clear and concise description of what the bug is. If possible, please submit a Minimal Reproducible Example.
After starting my repository, sphinx-build docs/source docs/build works locally on my machine (in my conda environement) but when pushing I get import errors. For instance:
Extension error (sphinx.ext.autosummary):
Handler <function process_generate_options at 0x7fecb6b64cc0> for event 'builder-inited' threw an exception (exception: no module named image_tools.registration.masked_phase_correlation)
Error: Process completed with exit code 2.

It's not a typo or naming error, any import from my repo (image_tools) fails, as if sphinx was running from an environment before installing the package. Do I need to add steps to configure?
To Reproduce
Please enter full details of how to reproduce this bug.
Run the cookiecutter and push to main
Expected behaviour
A clear and concise description of what you expected to happen.
Successful build

Hi @ablot, thanks for raising this!
I think I've encountered something like this before. Here is what I think is happening:
When GitHub actions build the docs, they do it in a separate environment in which they install the requirements that are specific to the docs, i.e. those defined in docs/requirements.txt. Your own package, and its requirements (the ones defined in pyproject.toml) are not automatically installed during this process.
To solve your issue, you'd have to add -e .  to the docs/requirements.txt file (see example). This will fore the relevant GitHub Actions to also install your own package (from the repo source) in the environment in which the docs are built.
Please do let me know if this solution works for you. If yes, we will make sure to adjust the README or even include -e .  in docs/requirements.txt by default.

Indeed! Success ✅

@adamltyson what do you think about including -e . to the docs/requirements.txt file by default?

I didn't know you could do this, but if it works, sounds good. Would be worth documenting it though in case it causes any unforeseen issues.

Agreed. In theory, you don't need it if your are not building API docs, but I guess most people will be using it in this way.


Expose message.type to 'message'

[ ] All tests pass
[ ] I have run npm run gen-doc

(haven't run any as it was a trivial fix directly from the github interface; I'd be highly surprised if things don't work out)
Description
expose message.type to the 'message' event, the checks are being done already either way
References
Closes #409

Superseded by commit 49df0c6e0233124a9a24bae23e4ca93773a4f69a.


Add toIndexed() and toKeyed()

To convert between objects <-> arrays and between Maps <-> Lists

Released in https://github.com/blueflag/unmutable/releases/tag/v0.29.0


TODO: Add navigation menu

When you're in a nested page, the "go back" button doesn't take you back to the index.
The user should have a fast way of getting back to the index, as well as having a shortcut to another nested page without introducing additional page transitions unnecessarily.

Nav menu added to UI


Package request: DisplayCAL and ArgyllCMS

Would it be possible to add DisplayCAL and ArgyllCMS? Both are open source as I know. ArgyllCMS is a requirement for DisplayCAL.

yes, please. would be a big help over here.

Dup of https://github.com/lukesampson/scoop-extras/pull/2173


Animations not working on MacOS

Hi,
I'm really excited with this extension and try to get it to work on my Macbook (Ventura 13.6.2) but the animations simply are not happening. The transitions stay just like they were without extension.
I've tried:

Both injection extensions (while having only one at a time installed)
Reinstalling this extension
Restarting VSCode
"Install Animations" command
"Reload "Custom CSS and JS" command

When I do "Animations: Open Custom CSS, it is empty.
I also get the "Your VSCode is corrupted" warning message.
VSCode:
Version: 1.86.1 (Universal)
Commit: 31c37ee8f63491495ac49e43b8544550fbae4533
Date: 2024-02-07T09:09:01.236Z
Electron: 27.2.3
ElectronBuildId: 26495564
Chromium: 118.0.5993.159
Node.js: 18.17.1
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 22.6.0
Is there some more information I can provide or something I can try?
Cheers

Thank you for making an issue, it seems custom css and js is not working currently even for me when I just tested now. The other install option Apc does work. You can switch to that by using the command Animations: Change Install Method.

Thank you for providing what you tried. I just tested it on my mac (Sonoma 14.2.1) and it appears to be working with Animations: Install Animations.
Could you check your `Preferences: Open User Settings (JSON)" for this:
 "vscode_custom_css.imports": [
    "file:///Users/bgk/.vscode/extensions/brandonkirbyson.vscode-animations-2.0.1/dist/updateHandler.js"
  ],

Also, seems pointless but trying Animations: Install Animations a few times in a row might be a good test.
Also, the "Your Code installation appears to be corrupt. Please reinstall." is expected because the editor is altered to allow animations. And the custom css file should be empty because that is where you can make your own animations.

Thx for your suggestions!
I do have this line in the settings.json and the file referenced does exist as well.
I tried running "Animations: Install Animations" a few times in a row with both injection extensions but still no luck.
I will try with the new MacOS version once I've updated it.

Updated to new MacOS Version, nothing changed.
However, after disabling all extensions and reenabling one by one I found that enabling VSCode Neovim breaks the animations.
Now I don't know why it breaks the animations and if this is something to be addressed here or in the Neovim extension.

Ok, I will look into it later. When you have Vscode Neovim enabled, do no animations work at all because I could definitely understand that extension messing up a few but some animations should still work, like the command palette animation for example.

Same issue here. Tried to install the fix-checksums plugin but it doesn't work.

With the neovim extension no animations work at all.


New release?

I see that the latest commit to this repository (as of today) was 12 days ago, but the latest release is from March 2016.
Could you cut a new release and upload to Github?

@oogali the original author of this code, @amfranz, doesn't have the time anymore to maintain this. So far, I have merged all contributions living in forks into this repository, but there is still more work to do before it can be used alongside Terraform 0.10.x.
For the time being, help is welcome to compile it from source, test it and fix bugs.

@oogali I have spent the day setting up to produce Github releases via Travis CI.
Here are some new binaries: v0.2.0


FAB - Save the world - After leaving the room " Expensify dot org/ Teacher's unite", option " I am a teacher should reappear

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

Action Performed:

Fab -> save the world -> I am a teacher
Enter Name and email
now it should redirect to room "Expensify.org/ Teacher's unite"
go to details of the room and leave the room.
Go to Fab button again -> save the world . Notice this time " I am a teacher " option is not shown.

Expected Result:
user might leave the room ( Expensify.org/ Teacher's unite) accidentally. Thus, " I am a teacher" option should be shown in save the world page. So that one can join the room again.
Actual Result:
After leaving room Expensify.org/ Teacher's unite , " I am a teacher option " disappears
Workaround:
Unknown
Platforms:

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

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

Version Number: 1.3.62-4
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/152c29e8-1444-4981-8ec5-55289357218e
https://github.com/Expensify/App/assets/115492554/f28801e3-850f-4811-b49f-99bcb51ed720
Expensify/Expensify Issue URL:
Issue reported by: @ashimsharma10
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p16934030597274790
View all open jobs on GitHub

Issue is not reproducible in Production
https://github.com/Expensify/App/assets/115492554/862e45ab-79c1-4406-98ea-e0a629702fe2

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Issue is not reproducible in Production
Recording.1433.mp4

@izarutskaya you have not done step 4 from above. In this production video.

@ashimsharma10 Sorry, I can't reproduce this issue anymore in build v1.3.63-0. Production the same.
https://github.com/Expensify/App/assets/115492554/1a1c7c71-d053-4ffe-9e0c-2651aa5b9848
https://github.com/Expensify/App/assets/115492554/62966848-1f79-46f9-8e5b-b542b43646e6

I can't reproduce this issue either. But we do hide the "I am a teacher" button once the teacher has joined the policy. Closing!

@ashimsharma10 Sorry, I can't reproduce this issue anymore in build v1.3.63-0. Production the same.
Recording.1441.mp4
Recording.1440.mp4

@izarutskaya This time step 1 is done incorrectly. reproducible step is: First fill in' I am a teacher' and then leave the room. In your videos, you did ' I know a teacher'.
asking in #open-source, if its a intended behaviour.

@ashimsharma10 I can't leave the room
https://github.com/Expensify/App/assets/115492554/85aafea3-eb66-4879-97f9-e6550cf2a9b6

leaving room option is at, #teacher-unite room.
Apologies for the trouble. I think I didn't write the Action steps properly before.
Let me explain again.
( Rather than Bug, I guess it might be feature request)
I'm saying is that once you leave the 'teacher-unite policy' room, there is no feature to again join the community as 'I am a teacher'. I mean if someone leaves room accidentally, then he can't do ' I am teacher ' again.

fab button -> save the world -> 'I KNOW A TEACHER' -> fill the form -> lets do this
Now , fab button -> save the world -> 'I Am A TEACHER' -> fill the form -> lets do this
go to # teacher-unite -> settings-> leave room.
Now go to fab button -> save the world
Notice that after leaving the room, option ' I am a teacher' doesn't reappear.

I think someone from internal better see this. And its not a deploy blocker.
@izarutskaya Thank you for looking again.

Reproducible step is: First fill in' I am a teacher' and then leave the room

Steps from "I am a teacher" will allow you to join the policy, once you join, we remove the "I am a teacher" button to prevent trying to join the policy multiple times. Leaving the public room has no effect on the "I am a teacher" button.


Strange behaviour of h3SetToMultiPolygon()

I used this method in Java: public List<List<List<Vector2D>>> h3SetToMultiPolygon(Collection<Long> h3, boolean geoJson)
long hexagonId = core.geoToH3(40.7128, 74.0060, 5);
List<Long> hexagonIds = core.kRing(hexagonId, 2);
hexagonIds.removeAll(core.kRing(hexagonId, 1));
hexagonIds.add(hexagonId);
List<List<List<Vector2D>>> polygons = h3Core.h3SetToMultiPolygon(hexagonIds, true);

So basically I should get 2 polygons (one is a 'core' hexagon w/o holes, the other is a set of hexagons whose distance from 'core' hexagon is 2 with a hole). Here's what (pic) I received instead.
Here you can see the order is strange (I did receive only 1 polygon which has 1 outline and 2 holes, and the outline itself is arr[1] (not arr[0])).
What's wrong with my code or this method?
UPD: I found this in docs: At present, if the set of hexagons is not contiguous, this function will return a single polygon with multiple outer loops. The correct GeoJSON output should only have one outer loop per polygon. It appears that most GeoJSON consumers are fine with the first input format, but it's less correct than the second format. The function may be updated to produce multiple polygons in the future.
Could you specify what you meant by the first input format, but it's less correct than the second format?

The "first input format" here means putting all outlines and holes in a single polygon. I think the "second format" would be the format you expect, with two polygons, and the outline ordered before the holes. There's an open issue (#53) to change this in the core library.

Thanks, so basically I should wait until #53 get solved ('the 1st format' will be replaced with 'the 2nd one' or there'll be a method to get 'the 2nd format'), right?

Yes - the signature of the method doesn't change, so our intent is to simply output the proper format instead of the current format.


Logout endpoint fails to delete jwt cookie and displays error message

Currently the logout endpoint doesn't seems to be wonky in 2 ways:

The "Neither cookies nor..." error message is displayed even when jwt cookies (normal or w/ refresh) are set.
The endpoint is unsuccessful in removing the existing jwt cookie. As far as I can tell, this is because reponse.logout() is setting different secure/httponly params compared to login - which means the browser doesn't seem to want to delete/remove the existing cookie.

Fixes in pull: https://github.com/jazzband/dj-rest-auth/pull/208

Fixed in #208

Fixed in #208


[iOS] SPXPushAudioInputStream doesn't work

I write a class named MSAudioStream inherited from SPXPushAudioInputStream
and call the method   -(void)write:(NSData*)data in a thread,
like this: [self write:data];
the data is read from microphone  and I'm sure data is OK because I save these data in a WAV file( 16K,16bits) and the wav file is OK.
here is part of my code:
MSAudioStream* stream = [ MSAudioStream new];
SPXAudioConfiguration* audioCfg = [[ SPXAudioConfiguration alloc] initWithStreamInput: stream ];
SPXSpeechConfiguration* speechCfg = [[ SPXSpeechConfiguration alloc] initWithSub.....

For SPXPushAudioInputStream, you do not need to create your own class. Instead, you just need to read data from source and directly write data to stream. Please refer to #74 for some code samples. We are working on more samples for audio input streams.
Thanks,

Thanks you very much! It works well

SPXAudioConfiguration* weatherAudioSource = [[SPXAudioConfiguration alloc] initWithWavFileInput:weatherFile];
I received the weatherAudioSource is always nil in this HelloWorld Demo

@p710041025 : Please check that the path to the audio file is valid (NSLog(@"weatherFile path: %@", weatherFile);, and that the file is present. If the problems remain, please open a new issue.


cmake build - check directory existance before copy_directory

Starting with cmake version 3.12 the cmake -E copy_directory
command fails if the source directory does not exist. This results
in a build failure. This fix checks the existance of the
source directory before the copy_directory command ist started.
Closes: #10368
Describe possible alternatives
I could not find a cmake only way without the use of shell script to achieve this

Weird bug. Let me see if there's a way to do this without putting shell script into a custom command. Portability might be an issue.

I have changed the commit according to your idea - it works!


gt seg error

WHy do i get this error
when i use HTC detector with semantic head
File "/opt/conda/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/kaggle/working/mmdetection/mmdet/datasets/custom.py", line 194, in __getitem__
    data = self.prepare_train_img(idx)
  File "/kaggle/working/mmdetection/mmdet/datasets/custom.py", line 217, in prepare_train_img
    return self.pipeline(results)
  File "/kaggle/working/mmdetection/mmdet/datasets/pipelines/compose.py", line 40, in __call__
    data = t(data)
  File "/kaggle/working/mmdetection/mmdet/datasets/pipelines/formating.py", line 318, in __call__
    data[key] = results[key]
KeyError: 'gt_semantic_seg'

how do i set the annotation for this in Coco.

You add set gt_semantic_seg in the keys of Collect module. See example here


$watchCollection is not triggered on multiple select

I had an issue with
$scope.$watchCollection 'selectedCollection', ->

not being triggered on
ng-model='selectedCollection'

It turns out this is not bug in select2, but rather issue with how ng-model and isolated scope work.
What fixed it for me was:
$scope.params.selectedCollection = {}
$scope.$watchCollection 'params.selectedCollection', ->

and
ng-model='params.selectedCollection'

ui-select2 is deprecated, you should consider using https://github.com/angular-ui/ui-select instead. It is very unlikely that this project will be updated from now on.


Evacuation message still shows the wrong message for winning team.

If the winning team did not prevent the losing team from evacing, this message still shows.

Happens to me as well


Include paths seem to have changed in latest Julia master

I have Julia compiled from the latest master on OS X, and the libraries and headers are not in the place that Interfaces.jl is expecting them to be when building. I had to make some modifications to build.jl to get it working. Not sure if the locations have just changed, or if this is somehow because of my local environment, but here is the changeset:
https://github.com/Rory-Finnegan/Interfaces.jl/compare/master...tmlbl:master

I seem to have an issue with this as well, with latest version of Interface.jl master
julia> Pkg.build("Interfaces")
INFO: Building Interfaces
In file included from /usr/include/features.h:389:0,
                 from /usr/include/stdlib.h:24,
                 from /usr/bin/../include/julia/libsupport.h:8,
                 from /usr/bin/../include/julia/julia.h:12,
                 from /local/home/fredrikb/.julia/v0.5/Interfaces/deps/src/mutable_union.h:4,
                 from /local/home/fredrikb/.julia/v0.5/Interfaces/deps/src/mutable_union.c:1:
/usr/include/gnu/stubs.h:10:27: fatal error: gnu/stubs-64.h: No such file or directory
compilation terminated.
====================================================================[ ERROR: Interfaces ]=====================================================================

LoadError: failed process: Process(`gcc -c -Wall -Werror -fPIC -I/usr/bin/../include/julia /local/home/fredrikb/.julia/v0.5/Interfaces/deps/src/mutable_union.c -o /local/home/fredrikb/.julia/v0.5/Interfaces/deps/usr/lib/mutable_union.o`, ProcessExited(1)) [1]
while loading /local/home/fredrikb/.julia/v0.5/Interfaces/deps/build.jl, in expression starting on line 13

==============================================================================================================================================================

=======================================================================[ BUILD ERRORS ]=======================================================================

WARNING: Interfaces had build errors.

 - packages with build errors remain installed in /local/home/fredrikb/.julia/v0.5
 - build the package(s) and all dependencies with `Pkg.build("Interfaces")`
 - build a single package by running its `deps/build.jl` script

==============================================================================================================================================================

julia> versioninfo()
Julia Version 0.5.0
Commit 3c9d753* (2016-09-19 18:14 UTC)
Platform Info:
  System: Linux (x86_64-redhat-linux)
  CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
  WORD_SIZE: 64
  BLAS: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblasp.so.0
  LIBM: libopenlibm
  LLVM: libLLVM-3.7.1 (ORCJIT, haswell)

See https://github.com/Rory-Finnegan/Interfaces.jl/issues/6#issuecomment-199406824


Add support for Rosa non sts

SDCICD-1086
This enables Rosa non sts cluster testing. The current iteration requires the AWS Credentials to use the osdCCSAdmin account.

/lgtm


Pubsub: Raise ValueError for message bytesize too big for batch

@jonparrott PTAL, thanks.

@chemelnucfin the CI failure here seems unrelated, so feel free to merge - but, could you send a follow-up PR to fix that?

@dpebot merge on green


Documentation: Update README

GitHub Issue: n/a
What does this Pull Request do?
Updates the README.
What's new?
Updates to the README file:

Added FITS web service URL
Clarified that OpenJDK is used

Interested parties
@Islandora-CLAW/committers

Thanks @fkleon


More dependency problems

Yes I am on a Mac as I reported earlier.
So I deleted the fink hierarchy and took /sw/bin out of my path. That allowed got npm to install again but now I have problems installing Locker.
papas-macintosh:Locker steven$ npm install
npm WARN<EMAIL_ADDRESS>package.json: bugs['web'] should probably be bugs['url']
npm WARN<EMAIL_ADDRESS>package.json: bugs['web'] should probably be bugs['url']
npm WARN<EMAIL_ADDRESS>package.json: bugs['web'] should probably be bugs['url']
npm WARN<EMAIL_ADDRESS>package.json: bugs['web'] should probably be bugs['url']
npm WARN<EMAIL_ADDRESS>package.json: bugs['web'] should probably be bugs['url']
npm WARN<EMAIL_ADDRESS>package.json: bugs['web'] should probably be bugs['url']
npm ERR! error installing<EMAIL_ADDRESS>Error: version not found: 1.0.1 : bitly/1.0.1
npm ERR! error installing<EMAIL_ADDRESS>   at Request._callback (/usr/local/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:180:12)
npm ERR! error installing<EMAIL_ADDRESS>   at Request.callback (/usr/local/lib/node_modules/npm/node_modules/request/main.js:99:22)
npm ERR! error installing<EMAIL_ADDRESS>   at Request. (/usr/local/lib/node_modules/npm/node_modules/request/main.js:361:18)
npm ERR! error installing<EMAIL_ADDRESS>   at Request.emit (events.js:64:17)
npm ERR! error installing<EMAIL_ADDRESS>   at IncomingMessage. (/usr/local/lib/node_modules/npm/node_modules/request/main.js:327:16)
npm ERR! error installing<EMAIL_ADDRESS>   at IncomingMessage.emit (events.js:81:20)
npm ERR! error installing<EMAIL_ADDRESS>   at HTTPParser.onMessageComplete (http.js:133:23)
npm ERR! error installing<EMAIL_ADDRESS>   at CleartextStream.ondata (http.js:1227:22)
npm ERR! error installing<EMAIL_ADDRESS>   at CleartextStream._push (tls.js:303:27)
npm ERR! error installing<EMAIL_ADDRESS>   at SecurePair.cycle (tls.js:574:20)
npm ERR! Error: version not found: 1.0.1 : bitly/1.0.1
npm ERR!     at Request._callback (/usr/local/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:180:12)
npm ERR!     at Request.callback (/usr/local/lib/node_modules/npm/node_modules/request/main.js:99:22)
npm ERR!     at Request. (/usr/local/lib/node_modules/npm/node_modules/request/main.js:361:18)
npm ERR!     at Request.emit (events.js:64:17)
npm ERR!     at IncomingMessage. (/usr/local/lib/node_modules/npm/node_modules/request/main.js:327:16)
npm ERR!     at IncomingMessage.emit (events.js:81:20)
npm ERR!     at HTTPParser.onMessageComplete (http.js:133:23)
npm ERR!     at CleartextStream.ondata (http.js:1227:22)
npm ERR!     at CleartextStream._push (tls.js:303:27)
npm ERR!     at SecurePair.cycle (tls.js:574:20)
npm ERR! Report this entire log at:
npm ERR!     http://github.com/isaacs/npm/issues
npm ERR! or email it to:
npm ERR<EMAIL_ADDRESS>npm ERR!
npm ERR! System Darwin 11.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/steven/Locker
npm ERR! node -v v0.4.9
npm ERR! npm -v 1.0.106
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/steven/Locker/npm-debug.log
npm not ok

The lockerProject took out the dependency for unshortener because it is not used anymore. Unfortunately now npm install fails when trying to install CLucene. npm reports this as a problem with CLucene. Should I track down the CLucene web site and move this problem report there? I suspect this is related to the recent Macintosh xCode upgrade which changes the version of gcc4.2 which is installed by default. It is now the llvm version. That change has apparently broken a bunch of open source tools and apps on the Macintosh. Maybe it is time for me to get Windows working in a VM on my Mac ;-(. Is it npm or the package script that is responsible for choosing which gcc version to use to build the package? In general what is the split between responsibilities between npm and the package specific scripts? Is it possible to extract what npm does so I can test the CLucene build without npm? Who maintains the clucene package interface to npm?  Sorry for all the pestering questions. The nice thing about a package manager is that it hides all those nitty gritty details about dependencies etc. The bad thing about package managers is that it hides the nitty grity details needed to debug problems when installs don't work.
Here npm error log.
Checking for library clucene-core        : 'configure' finished successfully (0.497s)
Waf: Entering directory /Users/steven/Locker/node_modules/daemon/build' [1/2] cxx: src/daemon.cc -> build/Release/src/daemon_1.o yes  'configure' finished successfully (2.238s) Waf: Entering directory /Users/steven/Locker/node_modules/clucene/build'
[1/2] cxx: src/clucene_bindings.cpp -> build/Release/src/clucene_bindings_1.o
[2/2] cxx_link: build/Release/src/daemon_1.o -> build/Release/daemon.node
Waf: Leaving directory /Users/steven/Locker/node_modules/daemon/build' 'build' finished successfully (2.882s) ../src/clucene_bindings.cpp: In static member function ‘static v8::Handle<v8::Value> Lucene::AddDocumentAsync(const v8::Arguments&)’: ../src/clucene_bindings.cpp:286: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’ ../src/clucene_bindings.cpp:286: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’ ../src/clucene_bindings.cpp: In static member function ‘static v8::Handle<v8::Value> Lucene::DeleteDocumentAsync(const v8::Arguments&)’: ../src/clucene_bindings.cpp:431: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’ ../src/clucene_bindings.cpp:431: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’ ../src/clucene_bindings.cpp: In static member function ‘static v8::Handle<v8::Value> Lucene::DeleteDocumentsByTypeAsync(const v8::Arguments&)’: ../src/clucene_bindings.cpp:530: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’ ../src/clucene_bindings.cpp:530: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’ ../src/clucene_bindings.cpp: In static member function ‘static v8::Handle<v8::Value> Lucene::SearchAsync(const v8::Arguments&)’: ../src/clucene_bindings.cpp:642: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’ ../src/clucene_bindings.cpp:642: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’ ../src/clucene_bindings.cpp: In static member function ‘static v8::Handle<v8::Value> Lucene::OptimizeAsync(const v8::Arguments&)’: ../src/clucene_bindings.cpp:774: error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’ ../src/clucene_bindings.cpp:774: error:   initializing argument 1 of ‘eio_req* eio_custom(void (*)(eio_req*), int, int (*)(eio_req*), void*)’ Waf: Leaving directory /Users/steven/Locker/node_modules/clucene/build'
Build failed:  -> task failed (err #1):
{task: cxx clucene_bindings.cpp -> clucene_bindings_1.o}
npm ERR! error installing<EMAIL_ADDRESS>Error<EMAIL_ADDRESS>install: node-waf configure build
npm ERR! error installing<EMAIL_ADDRESS>sh "-c" "node-waf configure build" failed with 1
npm ERR! error installing<EMAIL_ADDRESS>   at ChildProcess. (/usr/local/lib/node_modules/npm/lib/utils/exec.js:49:20)
npm ERR! error installing<EMAIL_ADDRESS>   at ChildProcess.emit (events.js:67:17)
npm ERR! error installing<EMAIL_ADDRESS>   at ChildProcess.onexit (child_process.js:192:12)
npm ERR<EMAIL_ADDRESS>install: node-waf configure build
npm ERR! sh "-c" "node-waf configure build" failed with 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the clucene package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-waf configure build
npm ERR! You can get their info via:
npm ERR!     npm owner ls clucene
npm ERR! There is likely additional logging output above.
npm ERR!
npm ERR! System Darwin 11.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/steven/Locker
npm ERR! node -v v0.4.9
npm ERR! npm -v 1.0.106
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/steven/Locker/npm-debug.log
npm not ok

The error message is trying to tell you what's wrong.

npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the clucene package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls clucene
npm ERR! There is likely additional logging output above.

I think I said that in my comment. I was asking for additional information.
I'm really not trying to be a pain. I did read the error message carefully
before I commented. You seem to be suggesting I missed it. Sometimes
messages like this are right and sometimes they misdiagnose. It is hard to
guess which if you don't have experience working with the developers. As an
innocent bystander who never heard of node or npm before a couple of days
ago I'm just trying to understand enough details to hopefully give me a
little more leverage when I go to the CLucene maintainers. I have spent a
lot of time trying to debug this series of issues. I am not asking
questions because I am too lazy to do the footwork and want you to do it
for me. There are three development teams here: npm, the lockerProject that
created the package.json file and the CLucene team. It is easy for the end
user to get lost in finger pointing between teams like these.
On Mon, Nov 28, 2011 at 12:01 PM, Isaac Z. Schlueter wrote:

The error message is trying to tell you what's wrong.

npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the clucene package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-waf configure build
npm ERR! You can get their info via:
npm ERR! npm owner ls clucene
npm ERR! There is likely additional logging output above.

Reply to this email directly or view it on GitHub:
https://github.com/isaacs/npm/issues/1797#issuecomment-2901650

Sorry, I didn't mean to imply that you hadn't investigated.  You just asked a lot of questions in your post, and I don't really have the answer to most of them.
npm is doing what it's told.  The lockerProject package said that it needs CLucene.  So, it goes out and fetches CLucene.  The CLucene package says, "Run this command: node-waf configure build", so npm does it.  When it does that, the command responds with a non-zero error code, indicating that it failed. So, npm says, "CLucene told me to do this thing, and I tried to do it, but it failed, so I'm exiting like I'm supposed to."
This is the first time I've ever seen the CLucene build output, or even heard of this package.  But, from the output, my best guess would be that error: invalid conversion from ‘int (*)(eio_req*)’ to ‘void (*)(eio_req*)’ is indicating a package that was developed for node 0.4 and can't compile against node 0.6.
If the CLucene package had an "engines":{ "node": "0.4" } statement, then npm would have known this failure ahead of time, and told you that it could not find a suitable version prior to running the build command.
Try emailing erictj, or posting a bug.
$ npm owner ls clucene
erictj<EMAIL_ADDRESS>
$ npm view clucene bugs.url
http://github.com/erictj/node-clucene/issues

Isaac,
Thanks. I was fishing for just this kind of information. I'm frankly more
suspicious of the lockerProject dependencies because they have changed a
bunch of them recently (last couple of days) and I don't think changes to
that project get much testing, especially from a clean workstation. They
seem to be in early beta release mode. Their blog doesn't mention version
numbers. When you download you seem to get the latest development release.
I don't want to pester the clucene maintainer if it is really a
lockerProject problem so I'm trying to get a handle on what lockerProject
might have done to confuse the clucene install. I'm not at my machine but
I'm pretty sure locker requires node 0.4 so it is possible there are some
cross dependency problems. And always the big recent change in gcc version
on the Macintosh lurks as a possible culprit.
Anyway the node compatibility question gives me something to look for.
Thanks again.
-steve
On Mon, Nov 28, 2011 at 2:28 PM, Isaac Z. Schlueter <
<EMAIL_ADDRESS>
wrote:

Sorry, I didn't mean to imply that you hadn't investigated.  You just
asked a lot of questions in your post, and I don't really have the answer
to most of them.
npm is doing what it's told.  The lockerProject package said that it needs
CLucene.  So, it goes out and fetches CLucene.  The CLucene package says,
"Run this command: node-waf configure build", so npm does it.  When it
does that, the command responds with a non-zero error code, indicating that
it failed. So, npm says, "CLucene told me to do this thing, and I tried to
do it, but it failed, so I'm exiting like I'm supposed to."
This is the first time I've ever seen the CLucene build output, or even
heard of this package.  But, from the output, my best guess would be that
error: invalid conversion from int (*)(eio_req*) to void (*)(eio_req*) is indicating a package that was developed for node 0.4 and
can't compile against node 0.6.
If the CLucene package had an "engines":{ "node": "0.4" } statement,
then npm would have known this failure ahead of time, and told you that it
could not find a suitable version prior to running the build command.
Try emailing erictj, or posting a bug.
$ npm owner ls clucene
erictj<EMAIL_ADDRESS>
$ npm view clucene bugs.url
http://github.com/erictj/node-clucene/issues

Reply to this email directly or view it on GitHub:
https://github.com/isaacs/npm/issues/1797#issuecomment-2905803


Update transformPartition.js

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Hi @mateuspok, thanks for your merge request. I understand you want to use the transformation for more than one log source. Please check out the FAQ for How can I use the sample application for multiple Amazon CloudFront distributions? to achieve the same.


Flask-Migrate cant find Flask application

Description
When i migrated to Connexion for my flask api, using the flask factory pattern, i adapted my create_app() to implement the FlaskApp from Connexion. The api runs fine, including the swagger ui.
But when i try to use flask-migrate it cant find the flask 'app' anymore.
I think it has something to do The create_app return. When i return the  connexion FlaskApp , the application works and the swagger ui works. but Flask-Migrate cant find the 'app' and returns the error

Error: Failed to find Flask application or factory in module 'wsgi'. Use 'wsgi:name' to specify one.

When i return FlaskApp.app instead, Flask-Migrate does 'work' (migration script creator doesnt find any of the models so it wants to drop them all) , but the api / swagger ui does not work anymore.
Expected behaviour
Both connexion/swagger and flask-migrate work as intended
Actual behaviour
Flask-Migrate functionality broken
Steps to reproduce
My wsgi.py
from application import create_app
import os
from dotenv import load_dotenv
import socket

load_dotenv()
env = os.environ.get('ENV')
print('-------------------------------------------------------------')
print('The environment is {e}'.format(e=env))
print('-------------------------------------------------------------')

if not env:
    raise Exception('ENV is not set')

app = create_app()

which calls my  __ init __.py
import os
from dotenv import load_dotenv
from connexion import FlaskApp
from connexion.middleware import MiddlewarePosition
from starlette.middleware.cors import CORSMiddleware
from flask_marshmallow import Marshmallow
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
from flask_caching import Cache

load_dotenv()
env = os.environ.get('ENV')

db = SQLAlchemy()
migrate = Migrate()
ma = Marshmallow()
cache = Cache()

def create_app():
    connexion_flask_app = FlaskApp(__name__)
    connexion_flask_app.add_middleware(
        CORSMiddleware,
        position=MiddlewarePosition.BEFORE_EXCEPTION,
        allow_origins=["*"],
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"],
    )
    connexion_flask_app.add_api("openapi.yaml")
    app = connexion_flask_app.app
    config_name = 'config.{e}Config'.format(e=env.capitalize())
    app.config.from_object(config_name)

    # Initialize Plugins
    db.init_app(app)
    migrate.init_app(app, db)

    ma.init_app(app)
    cache.init_app(app)

    return connexion_flask_app

running Flask-migrate in project root with
flask db migrate -m "testing"
returns

Error: Failed to find Flask application or factory in module 'wsgi'. Use 'wsgi:name' to specify one.
Usage: flask [OPTIONS] COMMAND [ARGS]...
Try 'flask --help' for help.
Error: No such command 'db'.

Additional info:
Output of the commands:

python --version Python 3.11.6
pip show connexion Version: 3.0.5
pip show flask: Version: 3.0.0
pip show flask-migrate: Version: 4.0.5

Hi @Elthas17,
To run connexion, you need to target the connexion app (connexion_flask_app in your code).
To run flask-migrate, you need to target the flask app (app or connexion_flask_app.app in your code).
You'll probably need to return both from your factory function, or target them explicitly.
I'm not familiar with flask-migrate, so not sure what the issue with the models is, but it might be because connexion only registers the apis/blueprints and routes on the application at startup. If you can demonstrate that this is indeed the underlying issue, we can expose this functionality via a method so you can manually trigger it before startup.

@Elthas17, I am running into the same problem. Curious to know if you got it working.

I also face the same problem! any solution?


Add the possibility to indicate the devfile odo dev -f devfile-redis.yaml

/kind feature
Which functionality do you think we should add?
The possibility to indicate in the CLI which DevFile to use with a cli like odo dev -f devfile-redis.yaml
Why is this needed?
I would like to have multiple DevFile depending on which case I'm working with. ATM I'm working with Eclipse Che and ODO depending if I work with my own computer or if I need to work on the go. Due to this, I tend to have multiple DevFile (like 5 or 6) that are cut for different use case. I would like to have an arg that let me select the DevFile to use like odo dev -f devfile-redis.yaml. That would allow me to launch my env with a redis cluster and not my default DevFile who only include a single redis node and a huge container including all I need to work.

Thanks for this request, @batleforc. This seems quite similar to the user story depicted in https://github.com/redhat-developer/odo/issues/6600
/triage duplicate

Thak's @rm3l, do I close my issue ? i will watch closely the other issue

Thank @rm3l, do I close my issue ? i will watch closely the other issue

Closing in favor of https://github.com/redhat-developer/odo/issues/6600
/close not-planned
/triage duplicate


how to set port when Deploying into a servlet container？

Deploying into a servlet container, default 8080，how to use java set port

If you're deploying into a servlet container WireMock will use the container's port.
BTW, please post questions to the mailing list unless you're logging a bug or feature request.


Adding IM turbo manifests

What this PR does / why we need it:
Include IM turbo manifests.
Which issue(s) this PR fixes:
Fixes # https://github.ibm.com/IBMPrivateCloud/roadmap/issues/64918

please keep folder names all lowercase

Done.


Support to Semantic Release

[ ] I'd be willing to implement this feature

Description
This is by far the best python monorepo solution that exists out there. However, the automation to release a package by updating the package versions and then publishing to a repo is not supported.
Motivation
It will automate the last piece that I think this plugin is missing: release
Suggested Implementation
I would suggest to use this: https://python-semantic-release.readthedocs.io/en/latest/ So it can detects the next version of each package.

@xavidop thanks for the suggestion, I've never used python-semantic-release before, so I need to do some research, I'll let you know when I have some to discuss about this issue.

Perfect! If you need more information please let me know!

@xavidop I've raised an issue in the python-semantic-release https://github.com/python-semantic-release/python-semantic-release/issues/614, this feature is required for us to use the semantic release considering the local dependencies.
Let's see what they think about the suggestion.

@lucasvieirasilva that sounds fantastic!
I've implemented this junky bash script that detects the packages that were modified and bumps the version:
#!/bin/bash

commit_message=$(git log -1 --pretty=%B)
files_changed=$(git diff HEAD^ --name-only )
changes=false

if [[ $commit_message == *"chore(publish):"* ]]; then
  echo "No changes to publish"
  exit 0
fi

# Bump version of all packages
for i in **/*/pyproject.toml; do
  pacakge_folder=$(dirname $i)
  package_name=$(basename $pacakge_folder)

  if [[ $files_changed == *"$package_name"* ]]; then
    echo "Publishing $pacakge_folder"
    cd $pacakge_folder
    poetry version minor
    cd ../../
    changes=true
  fi
done

# Commit and push
if [[ $changes == true ]]; then
  git add .
  git commit -m "chore(publish): bump version"
  git push origin master
fi

# Create tag
for i in **/*/pyproject.toml; do
  pacakge_folder=$(dirname $i)
  package_name=$(basename $pacakge_folder)
  if [[ $files_changed == *"$package_name"* ]]; then
    cd $pacakge_folder
    # tag format<EMAIL_ADDRESS>    tag="@voiceflow/$package_name@$(poetry version | awk '{print $2}')"
    echo "Creating tag $tag"
    git tag -a "$tag" -m "chore(publish): Publishing new version $tag [skip ci]"
    cd ../../
  fi
done

# Push to master
if [[ $changes == true ]]; then
  git push origin master --tags
  git push --tags
fi

The tag version format is the same that uses lerna or turborepo: @/@, for example<EMAIL_ADDRESS>

@xavidop nice, let's hope they agree with the suggestion, so you don't need to use this script anymore!

NX now has a release that allows us to create Git releases using semantics. However, I was only able to update the 'package.json' version for now. It would be great to have an implementation to update the 'pyproject.toml' file instead. More here versioning-and-releasing-packages-in-a-monorepo

I recently experimented a little bit with the Nx release feature and it seems very immature yet, I've also recently implemented an automated release process using this plugin with release-it package.
I'm gonna leave here some references from my implementation:
Repository: vm-x-ai-sdk
Project's release-it config: packages/python/.release-it.js
Project's Nx target: packages/python/project.json
NPM packages: package.json#1 and package.json#2
Plus
GitHub Actions
and I've used GitHub actions: .github/workflows/release.yml
By default, the github token can't push commits on branches that have branch protection rules configured, so, I resolved that by performing the following actions:

creating a GitHub app with the following permissions:

actions: read/write
checks: read/write
commit statuses: read/write
contents: read/write
issues: read/write
metadata: read
pull requests: read/write

And I've also created a private key for this app:
Here is some reference: https://docs.github.com/en/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps

Created two organization secrets:

SEMANTIC_RELEASE_APP_ID
SEMANTIC_RELEASE_PRIVATE_KEY

On the branch protection rules / Protect matching branches / Allow specified actors to bypass required pull requests, select the github app that I've created.

Like this:

Hope that help you guys!!

A significant portion of my monorepo is written in Rust and we use monodon as our nx plugin for Rust. It would be amazing if you integrated the native "Nx release" feature with your plugin so that people don't have to make significant changes to their CI/CD to use your plugin. I would be willing to collaborate. See this for an example impl.

I found a stupid-simple solution to my problem. I can add the following to my project.json files then run nx run-many --projects=tag:type:python -t set-python-version --args="$NEW_VERSION" where $NEW_VERSION is the updated version, given to me by nx release.
  "tags": ["type:python"],
  "targets": {
    "set-python-version": {
      "executor": "@nxlv/python:run-commands",
      "options": {
        "command": "poetry version",
        "cwd": "apps/project_name"
      }
    },
   ...
}


Add Macro Processing

For macro processing, we will be creating a new builder called MacroProcessor.  It will handle processing and storing an individual macro.  One requirement is that for each of the parameters defined, we will replace it with {i} where i is the position of the parameter.  This will ensure that when we load the macro, we can find and replace each individual line and its values.  We will also store the name of the macro in a hash map called macroName where the key is the string and the value is the MacroProcessor.
The MacroProcessor is going to implement a define arguments(String[]) where the number , an addLine(String) method where new lines will be added to the definition of the macro (and any parameters will be replaced), and a getLines() : Queue method where the entire definition of the macro is stored.
When each builder finds a macro call, it will define the given arguments, get the queue with each line, and then send it back through its own processString method.


[Feature Request]

Would it be possible to change save settings such that .png is the default file format instead of .bmp?

Yes. You can change it here: https://github.com/hongquanli/octopi-research/blob/master/software/control/_def.py (line 15). You also copy that class definition into the configuration txt file, which will override the definition in the _def.py file.

configuration_platereader.txt


Issue importing Flasgger in Flask via Pycharm

@bhanuteja2001 Using pycharm, the best way to install packages is using the Python interpreter.
In some cases the project is connected to a different virtual environment than expected

@bhanuteja2001 Using pycharm, the best way to install packages is using the Python interpreter.
In some cases the project is connected to a different virtual environment than expected

@arendondiosa Thanks it works!!


💡 [FEATURE] - Creating a website for the repo

Idea Contribution

[X] I have read all the feature request issues.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Explain feature request
I would like a create a website for the whole repo so it can deployed and would be more useful for the students
Explain your solution
No response
Any alternative approaches/features
No response
Additional Context
No response

@jfmartinz it would be great if you assign me this issue

Somene is already working on it, and hes using SSG and API #166. What are your tech stack? I am not really sure when it is going to completed

I want to create a full stack website
using basic html css and bootstrap
or i can use node if you want me to

@jfmartinz it's resources so i can make a basic website till then

Yea. I think the website needs a lot of improvements so it needs a lot of issues to be resolve and improve the experience for the eusers, just stand by.

Sure

@jfmartinz thanks


AAD Login will not work from Azure section

Sign into Azure and browse to a server where you're added as an AAD admin
Expand and choose AAD auth in the connection dialog
Click to connect.

Expected:

Connection is successful
Actual:
Get Login failed for user '.'.

Note: If I do the same thing fro the servers view (manually entering server name) it works fine so long as firewall is opened up.

This now fails in a different way - connection seems to succeed, but expanding the tree times out.


Can't install using Python 3.11

pip basically does not found the latest versions when using python 3.11... (it only reaches until 0.0.27)
python3.10 -m pip index versions redis-om
WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
redis-om (0.1.1)
Available versions: 0.1.1, 0.1.0, 0.0.27, 0.0.26, 0.0.25, 0.0.24, 0.0.23, 0.0.22, 0.0.21, 0.0.20, 0.0.19, 0.0.18, 0.0.17, 0.0.16, 0.0.15, 0.0.14, 0.0.13, 0.0.12, 0.0.11, 0.0.10, 0.0.9, 0.0.8, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3

python3.11 -m pip index versions redis-om
WARNING: pip index is currently an experimental command. It may be removed/changed in a future release without prior warning.
redis-om (0.0.27)
Available versions: 0.0.27, 0.0.26, 0.0.25, 0.0.24, 0.0.23, 0.0.22, 0.0.21, 0.0.20, 0.0.19, 0.0.18, 0.0.17, 0.0.16, 0.0.15, 0.0.14, 0.0.13, 0.0.12, 0.0.11, 0.0.10, 0.0.9, 0.0.8, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3

Note: I found that all unit tests are running under python3.9.16

@dvora-h Is there a chance of releasing #446 anytime soon? Like 1.1.2 maintenance release?

I released version 0.1.2 with this fix


Saved file contains just the string 'null'

Open Threat Dragon Desktop
File | New model
Add model title
Save button
Save “MyFile” (file is ok at this point)
File | Close
File | Save

Open MyFile.json

Expected result

File contains an empty model
Opening the file shows an empty model

Actual result

File contains just the string 'null'
Opening the file spins indefinately

Hello Richard - thanks for the issue report.
When I reach step 7 File | Save the app asks me for a file location to save to - this is as expected.  Is tihs what you see? Are you selecting MyFile.json as the save location?
When you do File | Close the current model object is set to null, so if yo save it over your existing file, that would result in the file containing null. Have I reproduced it incorrectly?

This is fixed in the latest release v0.1.27


Agent checks port availability when starting job

Have the agent check if a port is available from the perspective of the
host. Before this the agent was only checking if the port hadn't been allocated by itself.
This is racy, but better than nothing.

@gimaker @rohansingh

@danielnorberg

:+1:

:+1:


Question: How to configure Sleuth with Zipkin over RabbitMQ

I would like to send spans through a RabbitMQ to Zipkin. Therefore I use the Zipkin distribution jar (zipkin-server-2.8.4-exec.jar) and deploy it to Cloud Foundry with these manifest arguments:
  services:
    - elasticsearch-zipkin
    - rabbitmq-zipkin
  env:
    RABBIT_URI: ${vcap.services.rabbitmq-zipkin.credentials.uri}

In the producer app with sleuth, I add the following dependencies:
    compile('org.springframework.boot:spring-boot-starter-amqp')
    compile('org.springframework.cloud:spring-cloud-starter-zipkin')
    compile('org.springframework.amqp:spring-rabbit')

Note that the first one is used to send other messages to another application through RMQ and the last one is just to debug as it's included in the first one.
The used Cloud and Boot versions are Finchley.RC2 and 2.0.2.RELEASE.
Finally, I add the following properties to application.yml:
  sleuth:
    sampler:
      probability: 1.0
    messaging:
      enabled: true
      rabbit:
        enabled: true
        remote-service-name: rabbitmq-zipkin
  zipkin:
    sender:
      type: rabbit
    service:
      name: myapp

Note the remote-service-name corresponds to the service name in Cloud Foundry.
When both apps are started, I see that zipkin-server auto-creates the queue named 'zipkin'. Also, log-files from the sleuth-app look like this:
2018-06-07T15:58:11.42+0200 [APP/PROC/WEB/0] OUT 2018-06-07 13:58:11.421  INFO [myapp,f21e0ded48255245,f21e0ded48255245,true] 8 --- [pool-5-thread-1] o.s.a.r.c.CachingConnectionFactory       : Created new connection: SpringAMQP#404913f6:0/SimpleConnection@6beb433f [delegate=amqp://Y342KiwcvGv34ruq@<IP_ADDRESS>:5672/9437a9a6-597c-4e94-b4d7-6cb85a2ab647, localPort= 53618]

Unfortunately, I never see the span written to RMQ, the queue named 'zipkin' remains empty.
Is there anything I missed to configure? What are possible ways to debug it?

Here you have a very simple example of 2 apps using rabbitmq as a sender of spans - https://github.com/openzipkin/sleuth-webmvc-example/tree/rabbitmq-sender

Hi Marcin, thanks for the quick reply. I tried the repo and those examples are really helpful. Unfortunately, branch add-rabbit-tracing is currently not working. However, I see that there might be a misunderstanding: Is it possible to trace rabbitmq-messages between frontend and backend and send those traces through rabbitmq to the zipkin-server? I'm a bit confused because in this commit Adrian enables rabbit-tracing but switches spring.zipkin.sender.type to web.

I care to disagree. It's working - our ci jobs pass. Maybe you refer to issues with python. You have to use python 2 to run the scripts.
There are two things. Instrumenting rabbit and using rabbit to send spans. Can you precisely say what you're asking about? Anyways, both instrumenting rabbit template and sending spans via rabbit works fine

I was trying the script on a clean host, so my local Maven repo was empty at that time. Now even add-rabbit-tracing works, I guess a snapshot was assumed in the local repo that wasn't initially there.
I would like to have both :-)

Both messages and spans shall be sent to the same RabbitMQ service - in their respective queue of course. I wasn't able to combine the two examples to accomplish that but I'll try again later if you say that this use-case should be working fine.

I'll try to update the code to support such a case

I can't make it more explicit than that. https://github.com/openzipkin/sleuth-webmvc-example/commit/289c6bfabdd361ff9d82c2f52823fdd784afa5ef

No matter what I do, it just can't stop working ;)

Dang, I really appreciate your effort and I am able to reproduce your results locally but as soon as I push the apps to Cloud Foundry I don't see any traffic in the queue 'zipkin', so there's nothing published. For zipkin-server (the deployed jar), I set RABBIT_URI: ${vcap.services.rabbitmq-zipkin.credentials.uri} to pick up credentials from the bound service. Is there anything I need to do for the sleuth-apps? Publishing other messages works fine, so Spring generally seems to be able to make use of the bound service.
I'm sorry for the circumstances but I'm out of ideas for this one. :(

For Sleuth apps just bind the services. Sleuth reuses the connection factory you have.

Alright, good to know :-)
I went ahead and saw that the Zipkin Sender is declared in ZipkinRabbitSenderConfiguration.class as follows:
@Value("${spring.zipkin.rabbitmq.queue:zipkin}")
private String queue;

@Bean Sender rabbitSender(CachingConnectionFactory connectionFactory, RabbitProperties config) {
	return RabbitMQSender.newBuilder()
			.connectionFactory(connectionFactory.getRabbitConnectionFactory())
			.queue(this.queue)
			.addresses(config.determineAddresses())
			.build();
}

To check which address is taken into account, I created a custom configuration and print the connection details upon starting the application:
@Value("${spring.zipkin.rabbitmq.queue:zipkin}")
private String queue;

@Autowired RabbitProperties config;
@Autowired CachingConnectionFactory connectionFactory;

@PostConstruct
void printConnectionConfig() {
    log.info("connectionFactory={}, queue={}, addresses={}",
            connectionFactory.getRabbitConnectionFactory(),
            this.queue,
            config.determineAddresses());
}

During deployment to Cloud Foundry, I read these log messages:
2018-06-08 17:34:00 [APP/PROC/WEB/0] OUT 2018-06-08 15:34:00.344 " INFO [producer,,,,]" 10 --- [ main] com.example.producer.BeanConfiguration : connectionFactory=com.rabbitmq.client.ConnectionFactory@2e3967ea, queue=zipkin, addresses=localhost:5672
2018-06-08 17:34:00 [APP/PROC/WEB/0] OUT 2018-06-08 15:34:00.417 " INFO [producer,,,,]" 10 --- [ main] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [rabbitmq-node-0.service.consul, rabbitmq-node-1.service.consul, rabbitmq-node-2.service.consul]
2018-06-08 17:34:00 [APP/PROC/WEB/0] OUT 2018-06-08 15:34:00.485 " INFO [producer,,,,]" 10 --- [ main] o.s.a.r.c.CachingConnectionFactory : Created new connection: SpringAMQP#4ed51109:0/SimpleConnection@1a942c18 [delegate=amqp://myuser@<IP_ADDRESS>:5672/9437a9a6-597c-4e94-b4d7-6cb85a2ab647, localPort= 45840]

Connecting to the instance via SSH (cf ssh application-name) tells me that port 5672 isn't open:
vcap@instance-id:~$ netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
<..>
tcp        0      0 instance-id:45840 <IP_ADDRESS>:amqp     ESTABLISHED

so localhost:5672 might be a wrong address to connect to RabbitMQ?
Adding the following dependencies unfortunately doesn't help either:
compile 'org.springframework.boot:spring-boot-starter-cloud-connectors'
compile 'org.springframework.cloud:spring-cloud-starter-cloudfoundry'

Is there anything else I can check? I would be interested in providing you logs of Sleuth writing whether it tries to send Spans to RMQ and if so, whether it succeeds or not.
Apologies for the long write-up I just want to include all details pointing to a possible solution.

@adriancole @shakuzen sth wrong with rabbitmq, cloud foundry and Sleuth connection factories.

Looks like it is successfully creating connections to me. localhost isn't being used. You can see from the log Created new connection the URI being used (because you're setting URI, not ADDRESSES). So unfortunately we still don't have enough information to know why spans aren't being published to the zipkin queue.
Are you saying the same application is publishing other messages to RabbitMQ successfully?
I'm typing on my phone so sorry for the brievity. I can try to help diagnose more later, but it may be easiest to do that on Gitter.

Are you saying the same application is publishing other messages to RabbitMQ successfully?

Yes, exactly:

I appreciate your offer and joined your gitter. So if you find some time, I'd be more than happy to discuss it there.

I also have the same problem and the workaround provided in Gitter has helped me to solve it until the permanent solution is in place. For the benefit of others here is the workaround.
Explicitly configure spring.rabbitmq.addresses property to point to the credentials of the bounded RabbitMQ service. For example, if the bounded service is called rabbitmq the following configuration will work:
spring.rabbitmq.addresses=${vcap.services.rabbitmq.credentials.uri}

For other's reference, the conversation on Gitter starts here: https://gitter.im/spring-cloud/spring-cloud-sleuth?at=5b1e13a0ffd8896fe91c44c4
I believe we determined this issue only happens when using Spring Cloud Connectors to configure the RabbitMQ client in your application from the bound service. If you set spring.rabbitmq.addresses then Spring Boot (instead of Spring Cloud Connectors) will setup the necessary RabbitMQ client and everything should work.
@marcingrzejszczak I think we can use this issue to fix the reporter auto-configuration when Spring Cloud Connectors is used, or document that Spring Cloud Connectors doesn't work with the RabbitMQ reporter.

Hi fellas.
I readded this issue and explored the example project to guide my adventure to build a POC to demonstrate a trace with spring cloud sleuth integratted with RabbitMQ and Zipkin.
After some days readding and adjusting thousen and thousen of Spring's version, i finnaly found compatibillity to run a fully traced application with 3 simple microservices.
Here's the result, hope be usefull for someone: https://github.com/vagner-nascimento/poc-zipkin-service/tree/adding-rabbitmq
OBS.: Builded with Gradle   <3    _    /,,/

Closing due to age of the question. If you would like us to look at this issue, please comment and we will look at re-opening the issue.


Closing windows doesn't seem to work

Pressing super+w (which should close a window), does not work. I get the following error:
2015-01-06T15:15:43.372Z - info: Launching airwm-command: 'CloseWindow'.

/home/niels/Development/FP project/AirWM/lib/airwm.js:93
			closeWindowHandler(ev.child);
                      ^
ReferenceError: ev is not defined
    at /home/niels/Development/FP project/AirWM/lib/airwm.js:93:23
    at /home/niels/Development/FP project/AirWM/lib/airwm.js:135:6
    at XClient.<anonymous> (/home/niels/Development/FP project/AirWM/lib/airwm.js:172:3)
    at XClient.emit (events.js:67:17)
    at ReadFixedRequest.callback (/home/niels/Development/FP project/AirWM/node_modules/x11/lib/xcore.js:480:28)
    at ReadFixedRequest.execute (/home/niels/Development/FP project/AirWM/node_modules/x11/lib/unpackstream.js:41:10)
    at UnpackStream.resume (/home/niels/Development/FP project/AirWM/node_modules/x11/lib/unpackstream.js:165:30)
    at UnpackStream.write (/home/niels/Development/FP project/AirWM/node_modules/x11/lib/unpackstream.js:102:10)
    at Socket.<anonymous> (/home/niels/Development/FP project/AirWM/node_modules/x11/lib/xcore.js:58:21)
    at Socket.emit (events.js:67:17)
    at Pipe.onread (net.js:347:14)

Fixed in #46.


Battery level 0% in Home application[Bug]

I have successfully integrated a Heimann smoke sensor with zigbee2mqtt and this package in my homebridge. The Heimann smoke sensor is a supported device in the zigbee2mqtt database. However, I found that the battery level was shown as 0% in my Apple Home app. As this sensor does actually report its battery level I decided to have a look at the zigbee2mqtt log to check the name of the parameter. I found that this sensor reports its battery level with 'battery_level' instead of 'battery'. Is this why I cannot read out the battery level? And; how can I fix this?
I am currently using the latest version of homebridge, homebridge-z2m, and zigbee2mqtt.

I'm currently working on a new version of the plugin, which should solve these kind of nuances between devices, by using the information provided by zigbee2mqtt (a new API was added recently to get this kind of information).
I try to put updates on this in #18
As for this particular issue, it can be solved by extending the implementation of the BatteryServiceWrapper in platformAccessory.ts.
However, this code will all be replaced in the version I'm working on, so I personally would rather spent time on the new version than patching the "old" code.

I see! Thanks for your quick reply. So, basically you just say I should wait for the new release without changing anything myself.
Then I have another question: will the new release be just a simple update with
npm i -g homebridge-z2m@latest?
Will there be any compatibility issues or can't you tell yet?
Thanks in advance.

Once it is released, it should be able to update it that way.
In terms of compatibility issues, so far I think it will be possible to keep the configuration side of things the same.
Next to that the plugin will probably "remove" all accessories created by the previous version and recreate them (if they are not ignored by the configuration of course).
For a lot of devices, I think this won't be an issue, since the unique identifier will still be based on the IEEE address of the actual device, so I don't expect any configuration to be lost there.
For some services the name might slightly change (especially devices that have multiple endpoints, i.e. a relay/dimmer module with multiple channels), which might lead to the user having to reassign these to the correct rooms and automations.
Unfortunately there isn't a whole lot I can do about that (except for adding a lot of exceptions to the code, to work around this, but I'd rather not do that).
As mentioned in the README, the plugin still is a work in progress, so changes are to be expected.
I do think that this will be a one time thing, because I don't expect the plugins mechanism to change yet another time.

Ok, thanks for your response! It is all clear for me. I think it's a great plugin and therefore I am very happy to be able to use it.
Do you have an expectation on when you will update your code on github?

Most of the work I do on the new version is on the z2m-exposes branch.
My goal is still to have some kind of release before the end of the year, so people can start trying it out and I can gather feedback.

That's great news!!! I will then also try to do some testing with it.
I think it will also be good for the zigbee2mqtt platform then to do some testing with sensors which are not listed yet. I have some sensors I work with which I can also test. Will you also be adding other types of sensors or not?

Eventually I will, but I'm first focusing on the stuff that is supported in the latest release of the plugin.
If you have specific devices you would like to see support for, don't hesitate to open up an issue requesting it.
That way I know way I can take it into consideration when starting to expand the list of supported devices.

@jos149 I wrote the battery service support for the new version today and I figured I would have a look if this would solve this issue for your sensor.
Unfortunately, if I look at the fromZigbee converters, I can't seem to find one that uses battery_level instead of battery.
Also looking at the device mapping used by zigbee2mqtt, I can't seem to find a Heiman smoke sensor that does this.
Can you maybe tell me the exact model number?

It is the Heiman HS1SA which is indicated here as it reports battery but if I look in my Zigbee log it reports the battery level as battery_level. So, I guess that should also be the reason why it reports 0% in my Home app right? Tonight (I am (also?) Dutch) I will update to the newest version of your plugin to see if anything changed. I guess I am able to update to the newest version with the command I mentioned previously?
Sorry if I was not clear to you or I did get something wrong from what you said. I am a mechanical engineer so no expert in this subject, it is just a hobby haha.

I did not yet publish a new version, so nothing to try out just yet.
I'll double check the code of zigbee-herdsman-converters for this particular sensor.

I had another look, but all the code for the sensor you mention also indicates that it is using battery and not battery_level.
Can you maybe share your MQTT status message from the zigbee2mqtt/[FRIENDLY_NAME] topic for this sensor?
Which version of zigbee2mqtt are you using exactly?

Dec 14 20:44:35 homebridge npm[475]: Zigbee2MQTT:info  2020-12-14 20:44:35: MQTT publish: topic 'zigbee2mqtt/Smoke sensor', payload '{"ac_status":false,"battery":100,"battery_low":false,"enrolled":false,"linkq
My mistake, I now see that it is battery, However, I am almost sure it reported different before. Anyway, what would then be the reason I cannot see a percentage?

It might be that it had not been reported before. Once you've seen this message I would expect that it shows up.
If it doesn't, maybe it has to do with the space in the friendly name of the sensor (I've never tested it with spaces in the name).

I tried but without success.
I did however get a message from zigbee2mqtt which said: no converter available for 'smoke' and it did the same message for 'battery'.
I don't know if this helps...but it might

Sorry, @jos149, I forgot to reply to your message.
I think the log messages you are referring to aren't relevant and caused by the way the current version of the plugin constructs the message to the zigbee2mqtt/FRIENDLY_NAME/get topic. The future version of the plugin will probably no longer trigger these messages, although these messages don't do any harm.
Have you tried to run Homebridge in debug mode (-D)?
Maybe those logs will help more to figure out what's going on.

Hey, I have not yet been able to access my network with my homebridge server. So have not been able to run this in debug mode. I will reply again when I have done this.
Changing the friendly name didn't do anything for the battery status like I mentioned. Do you have any other tips on how I could resolve this? Isn't it weird my smoke sensor reports a battery level in the zigbee2mqtt log but it does not report it through homebridge?

[zigbee2mqtt] Publish to 'zigbee2mqtt/0x000d...../get': '{"battery":0,"smoke":0}'
so when starting homebridge I get this line in the initialization. It says battery 0, however, in the zigbee2mqtt I get the correct status. Is this useful information for you?
And btw, do the sensors get saved in the cachedAccessories file from homebridge? Or how does this work?

[zigbee2mqtt] Publish to 'zigbee2mqtt/0x000d...../get': '{"battery":0,"smoke":0}'
so when starting homebridge I get this line in the initialization. It says battery 0, however, in the zigbee2mqtt I get the correct status. Is this useful information for you?
And btw, do the sensors get saved in the cachedAccessories file from homebridge? Or how does this work?

[zigbee2mqtt] Publish to 'zigbee2mqtt/0x000d...../get': '{"battery":0,"smoke":0}'
So, when starting homebridge I get this line in the initialization. It says battery 0, however, in the zigbee2mqtt I get the correct status. Is this useful information for you?

This is the plugin trying to request data from zigbee2mqtt.
However, since it is a battery powered product, this will probably have no effect.
I reckon you are running v0.0.10 of this plugin?

And btw, do the sensors get saved in the cachedAccessories file from homebridge? Or how does this work?

Yes.

Another thing I noticed was that everytime restarting my homebridge server one smoke sensor is always high (it detects smoke). However, this is not true. I have to trigger it once for the notification to disappear. Any clue?

I don't have this particular smoke detector, but one from Xiaomi. I've never experienced this behavior with this sensor nor with my CO/gas sensors or water leak sensors. Maybe there's a difference in the configuration of zigbee2mqtt that can cause this.

[zigbee2mqtt] Publish to 'zigbee2mqtt/0x000d...../get': '{"battery":0,"smoke":0}'
So, when starting homebridge I get this line in the initialization. It says battery 0, however, in the zigbee2mqtt I get the correct status. Is this useful information for you?

This is the plugin trying to request data from zigbee2mqtt.
However, since it is a battery powered product, this will probably have no effect.
I reckon you are running v0.0.10 of this plugin?

And btw, do the sensors get saved in the cachedAccessories file from homebridge? Or how does this work?

Yes.

Another thing I noticed was that everytime restarting my homebridge server one smoke sensor is always high (it detects smoke). However, this is not true. I have to trigger it once for the notification to disappear. Any clue?

I don't have this particular smoke detector, but one from Xiaomi. I've never experienced this behavior with this sensor nor with my CO/gas sensors or water leak sensors. Maybe there's a difference in the configuration of zigbee2mqtt that can cause this.

This is the plugin trying to request data from zigbee2mqtt.
However, since it is a battery powered product, this will probably have no effect.
I reckon you are running v0.0.10 of this plugin? <

I don't understand what you are saying here. In the homebridge command it sends a 'get' request to the sensor and the received values are 0 and 0 for battery and smoke. This is how I at least read it. When I am just manually start zigbee2mqtt and read the received data I get something like battery = 80. So, my point is: I thought I had some useful information for you to work with because I found it strange that your plugin tries to 'get' values from the sensor and receives a 0 while the zigbee2mqtt gets a different value.

I don't have this particular smoke detector, but one from Xiaomi. I've never experienced this behavior with this sensor nor with my CO/gas sensors or water leak sensors. Maybe there's a difference in the configuration of zigbee2mqtt that can cause this. <

Somehow, after remaining 'true/high' for a while it has disappeared today. I will look at the log again.

This is the plugin trying to request data from zigbee2mqtt.
However, since it is a battery powered product, this will probably have no effect.
I reckon you are running v0.0.10 of this plugin? <

I don't understand what you are saying here. In the homebridge command it sends a 'get' request to the sensor and the received values are 0 and 0 for battery and smoke. This is how I at least read it. When I am just manually start zigbee2mqtt and read the received data I get something like battery = 80. So, my point is: I thought I had some useful information for you to work with because I found it strange that your plugin tries to 'get' values from the sensor and receives a 0 while the zigbee2mqtt gets a different value.

I don't have this particular smoke detector, but one from Xiaomi. I've never experienced this behavior with this sensor nor with my CO/gas sensors or water leak sensors. Maybe there's a difference in the configuration of zigbee2mqtt that can cause this. <

Somehow, after remaining 'true/high' for a while it has disappeared today. I will look at the log again.

In the homebridge command it sends a 'get' request to the sensor and the received values are 0 and 0 for battery and smoke. This is how I at least read it.

No, this is literally the message being send (published) to MQTT by the Homebridge plugin. It's not a message from zigbee2mqtt. For more information, I'd recommend to check the docs of zigbee2mqtt about the different MQTT topics/messages.

In the homebridge command it sends a 'get' request to the sensor and the received values are 0 and 0 for battery and smoke. This is how I at least read it.

No, this is literally the message being send (published) to MQTT by the Homebridge plugin. It's not a message from zigbee2mqtt. For more information, I'd recommend to check the docs of zigbee2mqtt about the different MQTT topics/messages.

@jos149 In case you are already running zigbee2mqtt v1.17.0 (or newer), I would suggest to give the latest release on the next channel a try.
See the docs on installation for more information.

@jos149 In case you are already running zigbee2mqtt v1.17.0 (or newer), I would suggest to give the latest release on the next channel a try.
See the docs on installation for more information.

Closing this issue due to inactivity.


Selected nodes lost on isolated component after rerender of the view

Repro:
import {run} from '@cycle/xstream-run'
import {div, button, makeDOMDriver} from '@cycle/dom'
import isolate from '@cycle/isolate'

function main(sources) {
  return {
    DOM: sources.DOM
      .select(`button`)
      .events(`click`)
      .mapTo(1)
      .fold(state => state + 1, 0)
      .map(state =>
        div(`.this-causes-rerender-${state}`, [
          button(`+`),
          state,
        ]),
      ),
  }
}

run(isolate(main), {
  DOM: makeDOMDriver(`#content`),
})

Clicks are stopped after reaching 2.

Webpackbin for ease or testing http://www.webpackbin.com/EJUrjQbLW

Thank you @kibin for the report and the test case

@staltz Removing the class name that is always changing on the div gives the 'expected' behavior. My best guess without really digging into this, is that the EventDelegator is not updating the isolated root each time properly.

Snabbdom identifies nodes by selector+key. So if selector changes, node is considered as new. The workaraund is to use {props: {className}} instead

@Hypnosphi is right. This issue is solved.

This issue is not only about dynamic classnames.
What about if you need to show loader instead of a component, while there is a request going on?
That’s the case with the

@kibin Would something like this work for you?
function Components (sources) {
  const someAction$ = sources.DOM.select(...).events(...)
  const request$ = someAction$.mapTo({url: '...'})

  const showLoader$ = xs.merge( request$.mapTo(true), source.HTTP.response$$.mapTo(false) )

  const view$ = showLoader$.map(x => x ? showLoadingPage() : showOtherPage() )

  return {DOM: view$, HTTP: request$}
}