Listen to other data types

BotMan should be able to listen for other data types, such as images, audio, location or generic attachments.
Proposed API
// Images
$botman->receivesImages(function($bot) {
   $data = $bot->getMessage()->getImages();
});

// Videos
$botman->receivesVideos(function($bot) {
   $data = $bot->getMessage()->getVideos();
});

// Audio
$botman->receivesAudio(function($bot) {
   $data = $bot->getMessage()->getAudio();
});

// Location
$botman->receivesLocation(function($bot) {
   $data = $bot->getMessage()->getLocations();
});

// Generic
$botman->receivesAttachments(function($bot) {
   $data = $bot->getMessage()->getAttachments();
});

Necessary Steps:
Images

[X] Telegram Driver
[X] Slack RTM Driver
[X] Facebook Driver
[ ] MS Bot Framework Driver
[ ] WeChat Driver
[ ] HipChat Driver

Videos

[X] Telegram Driver
[X] Slack RTM Driver
[X] Facebook Driver
[ ] MS Bot Framework Driver
[ ] WeChat Driver
[ ] HipChat Driver

Audio

[X] Telegram Driver
[X] Slack RTM Driver
[X] Facebook Driver ( @christophrumpel )
[ ] MS Bot Framework Driver
[ ] WeChat Driver
[ ] HipChat Driver

Location

[X] Telegram Driver
[X] Facebook Driver ( @christophrumpel )
[ ] MS Bot Framework Driver
[ ] WeChat Driver
[ ] HipChat Driver

Generic

[X] Telegram Driver
[X] Slack RTM Driver
[X] Facebook Driver ( @christophrumpel )
[ ] MS Bot Framework Driver
[ ] WeChat Driver
[ ] HipChat Driver

Related issue: #169

The branch for this feature is: https://github.com/mpociot/botman/tree/hear-other-data-types-issue-215
Any help is greatly appreciated

I can start with the Facebook Audio Driver.

need recievesContact.
Telegram has KeyboardButton with param request_contact. Can't hear on contacts
@mpociot

@mpociot I will start working on Telegram

Just noticed we need this vor videos too right? @mpociot can you update the dropdown list here?

@christophrumpel yeah, you're right. I updated the list

Have you thought about how this would work in a Conversation ??

That's how you would access it from a conversation:
$this->ask('How are you doing?', function($answer) {
    $images = $answer->getMessage()->getImages();
});

@ahmedash95 are you still working on Telegram? I could do some of them too. I like to see these features merged soon :-)

@christophrumpel Hi Chris , unfortunately I couldn't start it until now, you can start on it and maybe we talk later and co-operate together.

Ok thx @ahmedash95 , sounds great.  I started with Telegram Video and Audio.

Did the Telegram Video driver, now working on the Telegram Audio driver

I just looked into the Slack integration and noticed that Slack only supports receiving images, audio, etc. through the RTM API.

Yeah I did too, you just get the text :-( guess it would be still possible to detect the file URL and type. But not very beautiful.

So, still MS Bot Framework Driver, WeChat and HipChat missing. Maybe I can checkout MS, anyone willing to help with the others?

@christophrumpel Hi chris .. do you need any help with telegram ? I have a free time this weekend and could work on something with you ?

Hey, nice of you but Telegram is already finished 😉  On the top is a list with missing ones. Maybe you can do one of them?

Good job man 👍 .

so uhhm, how do you access the image url or fileid ?
I wish you could add method for accessing values from the raw message received.
My developement is stuck here, am on telegram btw.

@kenkit you can get the image ur like mentioned above:

// Images
$botman->receivesImages(function($bot) {
   $data = $bot->getMessage()->getImages();
});

The data is an array of images.

@mpociot so just the HipChat drivers are now missing right?

Yes 🎉

Hi Guys....I'm trying to listen for locations but I am not receiving the locations callback.
These are my methods..
//Requesting for Location
$this->bot->reply($message, [
'message' => [
'quick_replies' => json_encode([
[
'content_type' => 'location'
]
])
]
]);
$botman->receivesLocation(function($bot,$location) {
//This never gets called.
$lat = $location->getLatitude();
$lng = $location->getLongitude();
echo $lat;
});
$botman->hears('{text}', function (BotMan $bot,$text,$data) {
    $bot_user= $bot->getUser();

});

how can i make botman to hear from another input ???
for example i wrote another piece of code that detect errors and make a json from each one.
i want to make botman hear them and when get one start a conversation with the user.
thanks :)


[WIP] Add strategy base contract

Based on branch add-l2-deposit-contract.

Force pushed to discard stale commit.


CORE Beta: error related with ulong and JsonParser

Serenity.Caching > Get > Deserialize > JSON.Parse(value)
JsonReaderException: JSON integer<PHONE_NUMBER>2929518570 is too large or small for an Int64. Path '', line 1, position 20.
Serenity.JSON.Parse(string input) in Json.cs, line 25
Update Newtonsof.Json(9.0.1) to newest version:
https://stackoverflow.com/questions/42690640/deserialization-of-ulong-failing-for-net-core

Thanks, i'll update packages including Newtonsoft.Json soon

Newtonsoft.Json is updated to latest, thanks.


Add support for ConversationSummaryMemory class

Instead of limiting the memory of the conversation, it uses the LLM to generate a summary of it

https://python.langchain.com/en/latest/reference/modules/memory.html?highlight=ConversationSummaryMemory#langchain.memory.ConversationSummaryMemory

here's the latest link: https://python.langchain.com/docs/modules/memory/how_to/summary_buffer

👋🏼 I'm going to grab this one! Any thoughts on just copy pasting the default summarize prompt? some other suggestion?

Awesome! In the Python project, they have a prompt.py file with all the default prompts related to memory, but I think is better to have each prompt in the file where it is used so that it is easier to find. What's your opinion?

I felt the same 👍🏼  So i'll do that way. Thanks! @davidmigloz


it tag doesn't admit single quotes in description

I tried to write single quotes in the it tag as description and that resulted in Empty test suite. It doesn't matter if you use expekt, hamkrest or any other, the assert is reached because you can debug it but it will never be taken part as a test
Working example:
class SingleQuoteTest: Spek({

    describe("a simple test") {
        it("should not be b") {
            "b".should.be.equal("b")
        }
    }
})

Empty test suite example (notice the shouldn't):
class SingleQuoteTest: Spek({

    describe("a simple test") {
        it("shouldn't be b") {
            "b".should.be.equal("b")
        }
    }
})

Similar to https://github.com/raniejade/spek-idea-plugin/issues/18. Currently issue tracking for the idea plugin is a different repo. Going to release v0.3.0 of the plugin anytime this week (just doing some testing). Fix is already at master, closing this issue.


Update pom.xml

Describe what this PR does / why we need it
upgrade nacos client version to 1.1.4
Does this pull request fix one issue?
fix dependency #1017
Describe how you did it
Describe how to verify it
Special notes for reviews

hi, thanks for your contribution and please don't create pr repeatedly, thanks.


[Disboard reminder] lock setup

For the lock command add a sub command like role [mention/id] as some servers have member roles so locking the everyone role wont lock the chanel
so the end comand would look like this
[p]bumpreminder lock role {id}

If your server permission requires a role-specific override to send messages in a channel, then your server permissions have been configured tediously and inefficiently. I will not be adding support for this as the better option is to create the proper server permissions.


Get coverage back

Increase coverage by filtering classes that won't make sense to test. Removed all POJOs classes, and most of all removed CFApi test, as these test rely on mocking cf-java-client lib ("Don't mock type you don't own!")

@arnaudruffin you can go mock yourself :-1:


Update screenshot to display new WinUI logo

Since WinUIs logo was refreshed, this change should also be displayed in the screenshot of the nuget list.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 716795b6-2bcc-8ff5-f999-5e1de88a04e0
Version Independent ID: 590dd55a-a259-e6dc-972e-531dda080cd9
Content: NuGet package list for the Windows UI Library - Windows UWP applications
Content Source: winrt-related-src/toolkits/winui/nuget-packages.md
Product: uwp
Technology: winrt-reference
GitHub Login: @mijacobs
Microsoft Alias: mijacobs

Great suggestion! We just updated the screenshot.


Added AWS EC2 platform extension loader in Load_Platform_Extension job

Updated Load_Platform_Extension job to load EC2 extensions:

Checks for cf template in platform extension repo
Uses AWS CLI on the slave to create a cf using default parameters provided to Jenkins
Adds a xip.io proxy service to nginx which redirects to Apache HTTPD

Added an additional job to load platform extensions in collections from a JSON file as follows: https://raw.githubusercontent.com/dsingh07/adop-collections/master/sample_platform_extension_collection.json

LGTM.


fix M5core2 example

When attempting to compile the M5Core2_ENVⅢ example, the library could not be referenced.
It did not seem to have been updated, so we changed it.
Please check it.

Thank you.


Drop CBC: https://www.kb.cert.org/vuls/id/958563

SSH CBC modes are highly insecure: https://www.kb.cert.org/vuls/id/958563
Every modern implementation of SSH supports AES128-CTR, so I think it's wise to use only it.

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

@daniel-beck maybe to be considered for security purpose ?

The change IMHO makes sense, but I'm not sure how much risk it implies

Needs feedback from @jenkinsci/code-reviewers

+1 for me

+1 from me.

👍 from me. CC @jenkinsci-cert/cert-members

Those ciphers are disabled by default in ssh for OpenSSH 7.2, (release notes). They were already disabled in sshd daemon.
+1 for me too.


pe-js installation fails on windows

I'm submitting a ...
[ ] bug report
[ ] feature request
[ ] question about the decisions made in the repository
[X ] question about how to use this project

Summary
When I try to install pe-js on windows using yarn install pe-js, I get the below error:
Output: node-pre-gyp info it worked if it ends with ok node-pre-gyp info using<EMAIL_ADDRESS>node-pre-gyp info using<EMAIL_ADDRESS>| win32 | x64 node-pre-gyp WARN Using request for node-pre-gyp https download node-pre-gyp info check checked for<EMAIL_ADDRESS>(not found) node-pre-gyp http GET https://github.com/mattrglobal/node-bbs-signatures/releases/download/0.12.0/node-v83-win32-x64.tar.gz node-pre-gyp http 404 https://github.com/mattrglobal/node-bbs-signatures/releases/download/0.12.0/node-v83-win32-x64.tar.gz node-pre-gyp ERR! install error node-pre-gyp ERR! stack Error: 404 status code downloading tarball https://github.com/mattrglobal/node-bbs-signatures/releases/download/0.12.0/node-v83-win32-x64.tar.gz node-pre-gyp ERR! stack     at Request.<anonymous> (C:\MyDrive\Blockchain-Garage\VC_Workspace\Sources\WickedScan_Source\agency\server\src\lib\node_modules\node-pre-gyp\lib\install.js:142:27) node-pre-gyp ERR! stack     at Request.emit (events.js:327:22) node-pre-gyp ERR! stack     at Request.onRequestResponse (C:\MyDrive\Blockchain-Garage\VC_Workspace\Sources\WickedScan_Source\agency\server\src\lib\node_modules\request\request.js:1059:10) node-pre-gyp ERR! stack     at ClientRequest.emit (events.js:315:20) node-pre-gyp ERR! stack     at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:641:27) node-pre-gyp ERR! stack     at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17) node-pre-gyp ERR! stack     at TLSSocket.socketOnData (_http_client.js:509:22) node-pre-gyp ERR! stack     at TLSSocket.emit (events.js:315:20) node-pre-gyp ERR! stack     at addChunk (internal/streams/readable.js:309:12) node-pre-gyp ERR! stack     at readableAddChunk (internal/streams/readable.js:284:9) node-pre-gyp ERR! System Windows_NT 10.0.19043 node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\MyDrive\\Blockchain-Garage\\VC_Workspace\\Sources\\WickedScan_Source\\agency\\server\\src\\lib\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build=false" node-pre-gyp ERR! cwd C:\MyDrive\Blockchain-Garage\VC_Workspace\Sources\WickedScan_Source\agency\server\src\lib\node_modules\@mattrglobal\node-bbs-signatures node-pre-gyp ERR! node -v v14.15.4 node-pre-gyp ERR! node-pre-gyp -v v0.17.0 node-pre-gyp ERR! not ok 404 status code downloading tarball https://github.com/mattrglobal/node-bbs-signatures/releases/download/0.12.0/node-v83-win32-x64.tar.gz

When I try looked the repo https://github.com/mattrglobal/node-bbs-signatures/releases/download/0.12.0/, there was no tarball available for windows. Will this is available anytime soon? If not, could you suggest an alternative?

Other information (e.g. detailed explanation, stack traces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.)

Hi @Veerendra-b , thanks for the bugreport. Just letting you know we will be looking into this.
It is odd, because PE-JS should not be linking to any signature suite at all. PE-JS only has (or should have) something like 2 or 3 dependencies on purpose.

One thin I noticed in your command.
yarn install pe-js
This should be
yarn install @sphereon/pe-js
Are you sure that the BBS dependencies are not coming from your project's package.json?

Our dependencies are basically autogenereated typescript models from an OpenAPI spec and schema libs
"dependencies": {
    "@sphereon/pe-models": "0.0.5",
    "ajv": "^8.6.3",
    "ajv-formats": "^2.1.1",
    "jsonpath": "^1.1.1",
    "nanoid": "^3.1.25"
  },

So the most logical issue is that the dependency is coming from your own project

@nklomp thank you for your response. We realized the issue was with in our own project. We enabled code for BBS+ and pe-js together, when we saw this error. Since pe-js changes were more recent for us we assumed it was issue with pe-js.
Thank you for clarifying.

Sure np and thanks for the response


Question on limitations - nested documentation projects

Hello,
The documentation on Limitations states that "In an included mkdocs.yml, you cannot have !include. It is only supported in the root mkdocs.yml".
I would like to know if this is a design decision or a limitation that could be addressed in the future?

@dellagustin-sap Hello! It is only a design decision. In the initial version, this was working and there wasn't an issue but after using it for a while we realized it added a ton of complexity when trying to traverse the documentation. At Spotify at least we haven't had the need to have "nested" documentation inside of a "nested" mkdocs.yml.
I would ask you: do you really need this? When we asked ourselves this, it was a no :)

I'll mark it as wontfix for now, but will leave the issue open in case there's some perspective you have that'll change the decision :)

Hi, thank you for your quick reply, I'll try to add some thoughts in the near future.


Manually triggered listener throws error even if catched

Version
2.6.10
Reproduction link
https://codesandbox.io/s/button-that-awaits-async-click-listener-in-vuejs-m3hz1
Steps to reproduce

Open the codebox.io console window
Click the button in the demo panel and observe the console

What is expected?
The error should not be thrown. No warning message should be emitted.
What is actually happening?
Error is thrown and a warning message is emitted.

The important code can be found in /components/VButton.vue on line 36 and following

It may look confusing in this specific situation, but the error handling is added at App level since that's where it would be called usually via the @click event listener but we cannot predict that the listener is going to get called inside the component so we wrap the method call to make sure we can trace the errors. If we don't wrap it, your code would work but it would not trace errors for most users.
One way to get around this is by passing the method as a prop


Date editor

For navDate - probably NOT a date picker because of the historical nature of the dates.
(duplicated note)
navDate is a plain literal XSD date string. We can just have a string field with a validator. A date picker would probably be less useful because the dates could be years (or hundreds of years) ago.
Possible:

The above is modelled on:
<input type="date" />

and
<input type="time" />

Additionally in the code the property editor has guards to ensure the value remains valid: https://github.com/digirati-co-uk/iiif-manifest-editor/blob/1837b8408f58bec294b801196487614bb3985640/manifest-editor/src/editor-api/NavDateEditor.ts


Fix for:  Issue 238 - Bug: Batch Update with Inheritance

All the changes I did. Hopefully I did this pull request/forking right... I've never played with this part of Git Hub before.

Oh damn... 160 file modified ;)
I will look at it this week
Best Regards,
Jonathan

Yea it might have been a bit of an interesting project.

Hello @novamxd ,
I have started to investigate it. I made some quick test and it seems to work very fine.
There is some additional code that I will add since some people will want to use the features like this:
int intRowsAffected2 = tcContext.Inheritance_TPC_Animals.Update(i => new Inheritance_TPC_Dog()
{
	ColumnInt = 1
});

Most context normally doesn't have a DbSet for Inheritance_TPC_Dogs
I will probably have to split the EF5|EF6 code from EF Core as a one point, there is not enough thing similar and it make it very hard to maintain.
Time is currently heavily missing but I hope to be able to complete the integration before the end of the month.
Best Regards,
Jonathan

Hey @JonathanMagnan ,
Ok, so long as you don't remove the ability to delete from the sub classes then that works. Realistically speaking I don't know why someone would use TPC if they're not going to reference the sub-classes, as that's the point. Being a DBA I can say that if they wanted the approach you're speaking of, they're likely to go down the TPH route instead, which is already supported with the update I made.
Also did you want a hand splitting up the EF5/6 and Core libraries? I was pretty tempted to do that as part of this update but figured it would just complicate the update.
Regards

Hello @novamxd ,
You might be very surprised with all kind of context I have viewed so far ;)
A lot of people doesn't reference sub-classes (and some are not even aware they could do it), so that's for sure something that need to be supported.
Thank a lot of your help proposition, I believe for this one, it's better I try to do it by merging some of your work to make sure I understand all the code you added, that will make it easier to support it later.
Best Regards,
Jonathan

Hey @JonathanMagnan ,
Do they reference sub-classes with TPC or TPH? Like I said, using the base class with TPH makes sense and I've seen lots of examples for that. To use that with TPC would seem strange, but again, so long as the batch functions work with the sub-classes, I honestly am indifferent.
As for the update and splitting, I agree that getting familiar with the update is the best approach. But if after you finish the merge you want a hand splitting up the libraries, just let me know.
Regards

To make it short, people do everything in every possible way that you may never think ;)

I am using Asp.net mvc and doing operation like e.g.
DbContext.Tasks
.Where(t => t.StatusId == 1)
.Update(t => new Task { StatusId = 2 });
I am using Entityframework.Plus library for audit but update is not working other than this new insertion is working fine.  I am overriding savechanges()

@JonathanMagnan Is there still progress on this? Having the same problem here...

Should already be fixed in https://entityframework-extensions.net/
DeleteFromQuery and UpdateFromQuery are free (which is the same as Batch Delete and Batch Update here), but be careful, otherwise features are paid.
There is currently no short term plan to make a fix on EF Plus at this moment.

Thanks, did work :-)


color-scheme and  font changes

1.changes in the color scheme and font...

please resolve conflicts

fork again to do your changes


Changed image views user interaction to true

Do we need to do this for all images? What about doing this here
By doing something like
if result.view is UIImageView {
    result.view.isUserInteractionEnabled = true
}


Event firing between library project and main project with different applicationId

I am firing EventBus messages between the main application and the library project. Also they have different applicationId specified in the build.gradle file.
I getting "No subscribers registered for event class" messages. Is the above mentioned scenario not possible?

@greenrobot why would it be IPC, if main application and library project (module) it depends on are on same process? there is only one app running. It should be like module to module communication and possible


Accessing snapshot crashes iOS every time, Editor eventually

Please fill in the following fields:
Unity editor version: 2019.2.17f1
Firebase Unity SDK version: 6.13
Source you installed the SDK (.unitypackage or Unity Package Manager): .unitypackage
Firebase plugins in use (Auth, Database, etc.): Database, Storage, Auth, Analytics
Additional SDKs you are using (Facebook, AdMob, etc.): None
Platform you are using the Unity editor on (Mac, Windows, or Linux): Mac
Platform you are targeting (iOS, Android, and/or desktop): iOS
Scripting Runtime (Mono, and/or IL2CPP):IL2CPP
Please describe the issue here:
This isn't for every snapshot, this is for an operation whereas I iterate over a snapshot of keys and get snapshots for those keys. Everything is async, running through Action callback. The crash seems to occur wherever the snapshot is accessed after whatever bug occurs, doesn't matter if its snapshot.HasChild, snapshot.Child().Value, or snapshot.Child().Exists.
`Obtained 6 stack frames.
#0  0x00000159763274 in firebase::database::internal::GetVariantValue(firebase::Variant const*)
#1  0x0000015975f888 in firebase::database::internal::VariantGetChild(firebase::Variant const*, firebase::Path const&)
#2  0x0000015974898a in firebase::database::internal::DataSnapshotInternal::HasChild(char const*) const
#3  0x000001596fdbb0 in Firebase_Database_CSharp_InternalDataSnapshot_HasChild__SWIG_0
#4  0x00000154419c33 in  (wrapper managed-to-native) Firebase.Database.Internal.DatabaseInternalPINVOKE:InternalDataSnapshot_HasChild__SWIG_0 (System.Runtime.InteropServices.HandleRef,string) {0x7fd9358a6970} + 0x163 (0x154419ad0 0x154419db9) [0x17941bc80 - Unity Child Domain]
#5  0x007fd933934500 in (Unknown)
Launching bug reporter'
What's the issue repro rate? (eg 100%, 1/5 etc)
100% on iOS

Hi @aidanwolf,
It looks like somehow the DataSnapshot is getting corrupted and passing garbage data around, which eventually causes the crash. I'm not sure what would be causing that though, so it would be helpful if we had a reproduction case. Can you show me a minimal, verifiable example that triggers this crash?

Hi @aidanwolf,
It looks like somehow the DataSnapshot is getting corrupted and passing garbage data around, which eventually causes the crash. I'm not sure what would be causing that though, so it would be helpful if we had a reproduction case. Can you show me a minimal, verifiable example that triggers this crash?

Hi Alexames!
I have discovered the source of the issue. If enumerating through a snapshot's children and attempting to access the enumerated child value later with any arbitrary delay, there's a chance it will have Nulled out. Not sure why it's doing this, but it definitely seems to be a bug.
Bad Code
public void SnapshotReader (DataSnapshot snapshot) {
foreach (var MyParent in snapshot.Child("parents").Children) {
                    foreach (var MyObject in MyParent) {
                             StartCoroutine(WaitRandom(MyObject));
                    }
          }
}

public IEnumerator WaitRandom (DataSnapshot MyObject) {
       yield return new WaitForSeconds(Mathf.Random(0.5f,3f));
       Debug.Log(MyObject.GetRawJsonValue());
}

Working code
public void SnapshotReader (DataSnapshot snapshot) {
foreach (var MyParent in snapshot.Child("parents").Children) {
                    foreach (var MyObject in MyParent) {
StartCoroutine(WaitRandom(snapshot.Child("parents").Child(MyParents.Key).Child(MyObject.Key));
                    }
          }
}

Hi @aidanwolf ,
Thanks for doing all this legwork! Would you mind throwing a quick example together built on the quickstart? I'll be able to throw that right into a bug report to start taking a look at the issue.
Thanks!
--Patrick

This will be fixed with the 8.1.0 release


Unknown fragrance code ''

Unknown fragrance code '' is being logged and asked that I open an issue.
We currently only have one diffuser installed. Slot 1 Fragrance is correctly being reported. Slot 2 Fragrance says "Fragrance code:" Seems like the warning may be due to the lack of fragrance in slot 2.
Thanks for the integration! It's working great. :)

Thanks for that! The app doesn't let you remove a fragrance without installing a new one so that's a scenario I didn't even consider haha.

This should be handled with v0.1.7

What service! I'll pull it in soon and let you know if any other issues crop up. Thanks!


added env_sample file

Title and Issue number

Title: Addition of .env_sample file in server
Issue No.: #113
Close #113

Screenshots/Video (mandatory)
updated server folder

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas.
[ ] I have created a helpful and easy-to-understand README.md if it's a new page/tech stack.
[X] I have gone through the contributing.md file before contributing.

Additional context (Mandatory): I have added all the necessary env variable to .env_sample file if any further changes required please let me know.
Are you contributing under any Open-source programme?

[X] I'm a GSSOC-EXT contributor
[X] I'm a HACKTOBERFEST contributor

Ya sure and thankyou for merging

Ya sure and thankyou for merging


the FlatList refreshing is always loading show in styled.SafeAreaView

this could be a bug?
Here's how I use it
import styled from 'styled-components/native'
import { FlatList } from 'react-native'

const PageView = styled.SafeAreaView`
	flex: 1;
	background-color: #F8FAFC;
`

render() {
  return (
   <PageView>
	<FlatList
	  data={data}
          renderItem={this._renderItem}
          onRefresh={this._onRefresh}
	  refreshing={refreshing}
        />
  </PageView>
  )
}

Let's setState({ refreshing: true}) first,  then
whether refreshing is true or false， the loading view alway show

on ios

https://github.com/facebook/react-native/issues/5839


Investigate usage of Dart Code Metrics

Investigate whether the usage of the Dart code metrics package would be beneficial, refs
https://pub.dev/packages/dart_code_metrics
https://medium.com/wriketechclub/improving-code-quality-with-dart-code-metrics-430a5e3e316d

Package updated merged on PR #6


Add tree test cases for deletion and insertion

What this PR does / why we need it?
Any background context you want to provide?
What are the relevant tickets?

Fixes #
Checklist

[ ] Added relevant tests or not required
[ ] Didn't break anything

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

Continuing from #611


not starting

Hi! Thank you for sharing.
Is that still current? Should it be working?
I cannot get the webserver running.
Thank You!

Hi
Yes this is still working.
Mark Becker<EMAIL_ADDRESS>schrieb am So., 19. Apr. 2020, 01:24:

Hi! Thank you for sharing.
Is that still current? Should it be working?
I cannot get the webserver running.
Thank You!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dbweb-ch/ioBroker.rtspStream/issues/6, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANUGWCVZ7LEBCFZDWMW7IE3RNIZBPANCNFSM4MLROUGA
.

Thank you for your reply. Could you giva me a hint where i would find logs to debug why there is no webserver starting / answering on the definded port? Best regards!

(index):5 The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
WebAudioOut @ (index):5
Player @ (index):1
(anonymous) @ (index):6
(index):1 WebSocket connection to 'ws://<IP_ADDRESS>:554/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

What does the ioBroker log say?
There should be several entrys at "info"-Loglevel which tells "Start stream on"
Also you need to make sure to set "StartStream" to true in ioBroker.

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[5]: configuration: --prefix=/usr --extra-version=0ubuntu<IP_ADDRESS> --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[4]: built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[2]: Copyright (c) 2000-2019 the FFmpeg developers

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[1]: ffmpeg version 3.4.6-0ubuntu<IP_ADDRESS>

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[0]: port: 554 }

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[0]: address: '::',

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[0]: syscall: 'listen',

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[0]: errno: 'EADDRINUSE',

host.iobroker
2020-04-20 21:34:56.980
error
Caught by controller[0]: code: 'EADDRINUSE',

Am i getting it wrong? I am using TcpPort 554 on 2 streams as they are default port for rtsp an 2 different ports as webserver port.

I get it up and running with 2 instances. That also fine :) Thank you for this adapter!

No you need to use different port for 2 streams. This is not the port of
your stream but the port of the stream for the websocket, so this does not
have to be the same as your camera uses.


Support referencing and mounting local Bundle content

Right now the Bundle API only supports referencing a spec.Image container image, which gets pulled down through CRI and unpacked at runtime. It would be nice to be able to support configuring a Bundle to source local cluster contents, e.g. a mounted ConfigMap or PVC filesystem path, so we can avoid having to build/push a scratch-based container image.
Example Bundle YAML manifest outlined in the e2e strawman:
kind: Bundle
metadata:
  name: plumbus-operator.v0.9.3
spec:
  class: deppy.resolveset
  refs:
  - file://content
  volumeMounts:
  - mountPath: /content
    configMap:
      name: local
      namespace: plumbus

We could introduce a spec.Source/spec.Refs field to the Bundle API where we only have a single supported source, which is the image source provider, and build out support for referencing local Kubernetes resource for Bundle content.

Moving this as 0.1 candidate.

A couple of things I was thinking about locally when playing around with this yesterday:

Updating the spec.Image field to be spec.Source and ensuring all source types have a valid prefix, e.g. docker://... or image://... for container images, file://... for anything mountable in k8s, s3://... and whether that's a surprising from a UX perspective.
How does the provisioner behave when there's updates to the underlying PVC/ConfigMap that's referenced in the spec.Source key? Do we setup something like a fsnotify watcher, or does this come back full circle to the Bundle immutability conversation? My current thinking is that I'd like to be able to declaratively make changes to my Bundle's source-of-truth (e.g. a ConfigMap/PVC in this case) and see the provisioner propagate those changes. Do I need to create another Bundle in order to enable that use case? That seems like it waters down the value proposition but maybe I'm thinking about this in the wrong way.
How does the provisioner handle flapping between source types? Does this wrap back into the Bundle immutability conversation, or do we need a somewhat first-class way of ensuring Bundles that declare a certain source type cannot be changed after creation?
It feels like we need validation for when the spec.Source: file://... key is present to ensure that the spec.VolumeMounts configuration is also present for how the e2e strawman outlined in the Bundle API.
Do we support updating the volume mounts specified for a Bundle?

cc @joelanford in case you have any thoughts as well. I think this is a natural "next big feature" in my mind once we shore up the plain/v0 provisioner, so it would be nice to get consensus on a direction, get feedback, and then re-assess whether this was the right approach as we lean towards GA status.

valid prefix

I think the trouble with a prefix-based approach is that there's an assumption that the configuration for sourcing the source is applicable to all source prefixes.

My current thinking is that I'd like to be able to declaratively make changes to my Bundle's source-of-truth (e.g. a ConfigMap/PVC in this case) and see the provisioner propagate those changes

Conceptually, I keep thinking of putting an image tag in a pod spec. The pod controller doesn't monitor for changes to the tag's SHA. Once a pod's image is resolved to a SHA, that's it. That pod is forever running an image with what SHA. You want a new SHA? Re-spin the pod.
I think of BundleInstance as a Pod, and the Bundle as the pod.spec.image. The bundle updates its content when its underlying source of truth changes, but that doesn't propagate to a running BundleInstance.
In the case of deployments/replicasets and stateful sets, there's a higher level controller managing pods. So if something deletes one of those managed pods, those controllers will create a new one. And in that case, the new pod could pick up a new image SHA.
I think that same sort of architecture will exist on top of BundleInstance.

How does the provisioner handle flapping between source types? Does this wrap back into the Bundle immutability conversation, or do we need a somewhat first-class way of ensuring Bundles that declare a certain source type cannot be changed after creation?

I might be missing something, but if we end up saying bundles are mutable, why would we care about the source type changing?

It feels like we need validation for when the spec.Source: file://... key is present to ensure that the spec.VolumeMounts configuration is also present for how the e2e strawman outlined in the Bundle API.

This gets back to my first point about the issue with prefix-based sources. It seems like it would be easier:

to validate a source union type, that has file subtype with configuration specific to that source (volumeMounts)
for a user of the API to understand. In the union type case volumeMounts is a required field in the file field. In the prefixed source case, its an optional field, but its required if the prefix of spec.source is file://. Oh and it's complete inert if the prefix of spec.source is anything else. That's the exact problem we have with the CatalogSource API.

IMO, this:
spec:
  source:
    file: #exactly one of source.* fields required
      path: /content # required
      volumeMounts: # required
      - mountPath: /content
        configMap:
          name: local
          namespace: plumbus

is more ergonomic than:
spec:
  class: deppy.resolveset
  refs:
  - file://content
  volumeMounts: # required when refs prefixed with "file://", ignored otherwise
  - mountPath: /content
    configMap:
      name: local
      namespace: plumbus

Do we support updating the volume mounts specified for a Bundle?

IMO, that depends on where we end up on the design for bundle immutability and propagation to bundle instances.

Should we roll out this kind of functionality over time, e.g. support mounting ConfigMaps, then PVCs, etc.?

I think we need to assume that we'll need to expand the set of supported sources over time, so I think the important thing to get right at the beginning is the extensibility of the API. We need the API to support introducing new sources in a backwards compatible way.

I might be missing something, but if we end up saying bundles are mutable, why would we care about the source type changing?

I guess my mind was wandering to the pitfalls associated with supporting something like a series of storage backend configurations in the API, and changing the storage type after installation can result in unintended consequences. It's also entirely possible we don't have

I guess another question I have thinking about this some more: what does the Bundle sourcing process look like when the source-of-truth is the on-cluster representation? There's no need to pull down remote container images, so I'd guess the sourcing process is more-or-less verifying that the referenced volume mount(s) exist, and each local resource is in the correct format, and we'll handle translating that information in a way that the plain+v0 provisioner can manage.
How does our current storage backend (a series of object/metadata ConfigMaps) for the plain+v0 provisioner scale out when there's already a ConfigMap volume mount being specified in a Bundle resource? We could keep the current pattern of mounting these specified volume mounts in the Bundle unpack Pod, and delegate the combination of resources to the unpacking component, and the result is an encoded YAML stream that can be obtained in the Pod's log sub-resource, and the provisioner creates object/metadata ConfigMap(s) using that YAML stream.
I guess the value-add there is being able to combine and reference multiple resources, and resources of different GVKs, etc? I would then point the plain.v0 provisioner to a ConfigMap that contains some YAML documents, and a PVC that might have some YAML documents, and the provisioner just handles the rest? But I'm also having a hard time envisioning that use case being valuable outside of disconnected environments.

I think the more powerful use case is being able to point the plain.v0 provisioner to a git repository, and having the provisioner handle sourcing the Bundle contents that are listed in the ./manifests directory.

+1, so let's make that the second source type we support and continue punting (for now) on the on-cluster sources?

Yeah I think that would be my preference now. I'll create a follow-up ticket that addresses that use case.

This seems like a potential 0.5 headline feature. Moving to the 0.5 milestone so we can groom later.

After issue triage, this would be valuable for dev experience and getting content onto a cluster quickly. May be related to deppy work but it's still TBD.
Moving out of 0.5 for further grooming.

Local sourcing in the context of deppy:

Resolution provides a set of IDs to the client
For each ID, create a BI that manages other BIs (Resolveset Bundle)
Local sourcing (via a configmap) would enable this feature

@exdx The design looks good.  May I prototype this?

I was looking into doing it this sprint -- why don't we pair on it together?

Design doc -- https://hackmd.io/pChFoobdQNOW911zRK6L6Q


⚠ Mobitopup has degraded performance

In 1fddab0, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 3979 ms

Resolved: Mobitopup performance has improved in f1241b9.


Contradiction between paper and code

Dear Sir,
In the paper, it is mentioned that "Our work
focuses on learning scene flow directly from point clouds, without any dependence on RGB images or assumptions on
rigidity and camera motions". However, in the code for training using flying things 3D, you are clearly using RGB color information of point clouds to construct feature maps. Isn't that the same as using RGB images? Please correct me if I'm wrong.
Best Regards,

Hi, you can try this by setting all RGB values to (0,0,0) and can still get similar results. This means our method does not rely on RGB values.

Hi, thanks a lot for the reply. Just another doubt, in the function sample_and_group, if the flag use_xyz is set to true, we have : new_points = tf.concat([grouped_xyz, grouped_points], axis=-1) # (batch_size, npoint, nample, 3+channel). To use XYZ values only, instead of setting (R,G,B) = (0,0,0), I was instead doing new_points = grouped_xyz which gives me significantly different results. I can't figure out why this creates that much of a difference as I was grouping X,Y,Z coordinates without the concatenated (R,G,B) = (0,0,0) values. Can you please help me with this?


etcd watcher can enter endless loop

It is possible for a kvstore watcher to enter an endless loop:
level=warning msg="Unable to list keys before starting watcher" error="grpc: the client connection is closing" prefix=foo revision=0 watcher=store-foo-watcher

reList:
        for {
                res, err := e.client.Get(ctx.Background(), w.prefix, client.WithPrefix(),
                        client.WithRev(lastRev), client.WithSerializable())
                if err != nil {
                        scopedLog.WithField(fieldRev, lastRev).WithError(err).Warn("Unable to list keys before starting watcher")
                        continue
                }

Fixed in master


Implementation

More API calls following soon.

I will only add import and export api, the rest is not available without worksaround and multiple api calls. Import is already done. Export will follow later that day.

Yes, sure. Only add the functions that you need. The rest can be added later.
Remember that the API client should reflect methods on the API server. Not common use cases. So multiple API calls for one function should never be needed.

@Nyholm Ready for review

Awesome. I'll merge this now and register styleCI and packagist etc.

https://packagist.org/packages/friendsofapi/phraseapp
Thank you @prolic


Adding ability to delay instrumentation on startup

Adding the ability to delay instrumentation and do that on the background during or after app initialization.
The delay includes the loading of the IndyBootstrapDispatcher class, so to avoid loading CallSite on startup.

:broken_heart: Build Failed

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Build Cause: Pull request #1594 opened

Start Time: 2020-12-28T16:40:09.406+0000

Duration: 8 min 22 sec

Steps errors
Expand to view the steps failures

mvn install

Took 1 min 20 sec . View more details on here
Description: ./mvnw clean install -DskipTests=true -Dmaven.javadoc.skip=true

Log output
Expand to view the last 100 lines of log output

[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-hibernate-search-plugin-common .. SUCCESS [  0.684 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-hibernate-search-plugin-5_x ..... SUCCESS [  1.540 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-hibernate-search-plugin-6_x ..... SUCCESS [  1.373 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-es-restclient-plugin ............ SUCCESS [  0.381 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-es-restclient-plugin-common ..... SUCCESS [  0.923 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-es-restclient-plugin-5_6 ........ SUCCESS [  1.050 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-es-restclient-plugin-6_4 ........ SUCCESS [  1.045 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-grpc ............................ SUCCESS [  1.751 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-grpc-plugin ..................... SUCCESS [  1.728 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-kafka-plugin .................... SUCCESS [  0.380 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-kafka-base-plugin ............... SUCCESS [  0.843 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-kafka-headers-plugin ............ SUCCESS [  1.114 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-mongoclient-plugin .............. SUCCESS [  1.129 s]
[2020-12-28T16:48:27.387Z] [INFO] co.elastic.apm:apm-okhttp-plugin ................... SUCCESS [  0.742 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-opentracing-plugin .............. SUCCESS [  0.570 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-profiling-plugin ................ SUCCESS [  1.514 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-rabbitmq ........................ SUCCESS [  0.398 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-rabbitmq-plugin ................. SUCCESS [  1.158 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-servlet-plugin .................. SUCCESS [  1.410 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-log-correlation-plugin .......... SUCCESS [  0.924 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-micrometer-plugin ............... SUCCESS [  1.095 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-log-shipper-plugin .............. SUCCESS [  1.242 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-spring-resttemplate ............. SUCCESS [  0.401 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-spring-resttemplate-plugin ...... SUCCESS [  0.849 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-spring-webmvc-plugin ............ SUCCESS [  1.442 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-urlconnection-plugin ............ SUCCESS [  0.675 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-scheduled-annotation-plugin ..... SUCCESS [  0.693 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-quartz-job-plugin ............... SUCCESS [  0.827 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-process-plugin .................. SUCCESS [  0.662 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-dubbo-plugin .................... SUCCESS [  0.545 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-scala-concurrent-plugin ......... FAILURE [  7.113 s]
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:elastic-apm-agent ................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-agent-benchmarks ................ SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-spring-resttemplate-test ........ SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-es-restclient-plugin-7_1 ........ SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-jms-spring-plugin ............... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-jedis-2-tests ................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-jedis-3-tests ................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-lettuce-3-tests ................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-grpc-test-1.6.1 ................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-rabbitmq-test-3 ................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-rabbitmq-test-4 ................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-opentracing ..................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:integration-tests ................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:simple-webapp ....................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:jsf-app ............................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:jsf-app-dependent ................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:jsf-app-standalone .................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:cdi-app ............................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:cdi-app-dependent ................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:cdi-app-standalone .................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:soap-test ........................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:apm-agent-attach .................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:application-server-integration-tests  SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:spring-boot-1-5 ..................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:spring-boot-2 ....................... SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:spring-boot-2-base .................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:spring-boot-2-jetty ................. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:spring-boot-2-tomcat ................ SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:spring-boot-2-undertow .............. SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] co.elastic.apm:external-plugin-test ................ SKIPPED
[2020-12-28T16:48:27.388Z] [INFO] ------------------------------------------------------------------------
[2020-12-28T16:48:27.388Z] [INFO] BUILD FAILURE
[2020-12-28T16:48:27.388Z] [INFO] ------------------------------------------------------------------------
[2020-12-28T16:48:27.388Z] [INFO] Total time:  01:18 min
[2020-12-28T16:48:27.388Z] [INFO] Finished at: 2020-12-28T16:48:27Z
[2020-12-28T16:48:27.388Z] [INFO] ------------------------------------------------------------------------
[2020-12-28T16:48:27.388Z] [ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:4.3.1:testCompile (scala-test-compile) on project apm-scala-concurrent-plugin: Execution scala-test-compile of goal net.alchim31.maven:scala-maven-plugin:4.3.1:testCompile failed. CompileFailed -> [Help 1]
[2020-12-28T16:48:27.388Z] [ERROR]
[2020-12-28T16:48:27.388Z] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[2020-12-28T16:48:27.388Z] [ERROR] Re-run Maven using the -X switch to enable full debug logging.
[2020-12-28T16:48:27.388Z] [ERROR]
[2020-12-28T16:48:27.388Z] [ERROR] For more information about the errors and possible solutions, please read the following articles:
[2020-12-28T16:48:27.388Z] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
[2020-12-28T16:48:27.388Z] [ERROR]
[2020-12-28T16:48:27.388Z] [ERROR] After correcting the problems, you can resume the build with the command
[2020-12-28T16:48:27.388Z] [ERROR]   mvn <args> -rf :apm-scala-concurrent-plugin
[2020-12-28T16:48:28.747Z] Stage "Tests" skipped due to earlier failure(s)
[2020-12-28T16:48:28.951Z] Stage "Unit Tests" skipped due to earlier failure(s)
[2020-12-28T16:48:28.964Z] Stage "Smoke Tests 01" skipped due to earlier failure(s)
[2020-12-28T16:48:28.977Z] Stage "Smoke Tests 02" skipped due to earlier failure(s)
[2020-12-28T16:48:28.990Z] Stage "Benchmarks" skipped due to earlier failure(s)
[2020-12-28T16:48:29.002Z] Stage "Javadoc" skipped due to earlier failure(s)
[2020-12-28T16:48:29.172Z] Failed in branch Unit Tests
[2020-12-28T16:48:29.182Z] Failed in branch Smoke Tests 01
[2020-12-28T16:48:29.191Z] Failed in branch Smoke Tests 02
[2020-12-28T16:48:29.200Z] Failed in branch Benchmarks
[2020-12-28T16:48:29.208Z] Failed in branch Javadoc
[2020-12-28T16:48:29.715Z] Stage "Integration Tests" skipped due to earlier failure(s)
[2020-12-28T16:48:29.807Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-12-28T16:48:29.950Z] Stage "AfterRelease" skipped due to earlier failure(s)
[2020-12-28T16:48:30.280Z] Running on Jenkins in /var/lib/jenkins/workspace/_java_apm-agent-java-mbp_PR-1594
[2020-12-28T16:48:30.432Z] [INFO] getVaultSecret: Getting secrets
[2020-12-28T16:48:30.682Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-12-28T16:48:31.588Z] + chmod 755 generate-build-data.sh
[2020-12-28T16:48:31.588Z] + ./generate-build-data.sh https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1594/ https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1594/runs/1 FAILURE 501910
[2020-12-28T16:48:32.139Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1594/runs/1/steps/?limit=10000 -o steps-info.json
[2020-12-28T16:48:32.690Z] INFO: curl https://apm-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/apm-agent-java/apm-agent-java-mbp/PR-1594/runs/1/tests/?status=FAILED -o tests-errors.json
[2020-12-28T16:48:32.690Z] Retry 1/3 exited 22, retrying in 1 seconds...
[2020-12-28T16:48:34.034Z] Retry 2/3 exited 22, retrying in 2 seconds...

Codecov Report

Merging #1594 (f655c21) into master (65e243d) will decrease coverage by 0.08%.
The diff coverage is 18.36%.

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

This delay in instrumentation on startup did not prove to be a proper solution for the collection of Java 7 crashes reported through #1583.
I did multiple tests with zulu-7.0.285-linux that without any setting crashes within one minute.
Some attempts with the default 2 sec delay allowed the JVM to run without crashing, however, the agent seized to send any type of event within one minute. Since there is no crash log, it's tough to know exactly what happened.
In other cases, the crash did occur even with the delayed instrumentation - hs_err_pid2392037.log.
Trying to increase the delay in instrumentation to 100 seconds (using the delay_instrumentation config) only postponed the crash - hs_err_pid2393447.log.
The only consistent solution so far is the compilation exclusion setting: -XX:CompileCommand=exclude,java.lang.invoke.LambdaForm*::*.

@elastic/apm-agent-java this ability to delay the initiation of instrumentation did not prove to solve the CallTree compilation crash. Would we like to have this capability still - configurable, hidden, disabled (noop) by default?

@elastic/apm-agent-java this ability to delay the initiation of instrumentation did not prove to solve the CallTree compilation crash. Would we like to have this capability still - configurable, hidden, disabled (noop) by default?

There isn't much extra complexity added here, and I can see at least two relevant use-cases:

future-proofing: work-around for not-yet-known similar issues that we had with Tomcat (we really don't know if and when it might happen)
support: having an extra option to delay instrumentation in order to help debugging a support case

There isn't much extra complexity added here, and I can see at least two relevant use-cases:

future-proofing: work-around for not-yet-known similar issues that we had with Tomcat (we really don't know if and when it might happen)
support: having an extra option to delay instrumentation in order to help debugging a support case

Closes #1583

Closes #1583


Fix lmul for vsext and vzext

The way I read the following lines in the spec is that for vsext.vf4 or vzext.vf4 source eew (=sew/4=16) and emul (=lmul/4=1/2) are smaller than the destination eew (=sew=64) and emul (=lmul=2).

The EEW of the source is 1/2, 1/4, or 1/8 of SEW, while EMUL of the source is (EEW/SEW)*LMUL. The destination has EEW equal to SEW and EMUL equal to LMUL.

Fixed #26

Ah yes, it's the other way around, sorry. But I think my original proposal still is the correct fix -- vdEMUL is for vd, c.LMUL1 is for vs2.

Oh no wait, sorry, the vdEMUL is indeed wrongly calculated.

Thanks for the feedback!


Upgrade doctrine/inflector to ^2.0.

好的，我今天改一下

[This message is created by hyperf-bot]
[APPROVAL NOTIFIER] This pull-request is APPROVED
This pull-request has been approved by: huangzhhui


RANGER-5018: checkstyle complince updates - agents-audit

What changes were proposed in this pull request?
Updated agents-audit module sources to comply with the checkstyle requirements (from RANGER-5017).
How was this patch tested?
Build with unit tests completed successfully.

Updated PR is at https://github.com/apache/ranger/pull/439


Better handling of required spaces.

Checklist:

[x ] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the main branch of freeCodeCamp.
[x ] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

I was unclear if I should propagate this change to the corresponding file in other languages as well.
Frankly, there are several errors link this in this group of challenges.  I'd be happy to fix them all together if that would be more desirable.

Or maybe this is a good place to use the CSSHelper
see this comment for more infos
https://github.com/freeCodeCamp/freeCodeCamp/issues/43264#issuecomment-904627150

As #43982 changing this challenge, and using CSSHelp for that, was merged, I'm going to close this PR.
Thank you and happy coding.


Fix creation of v4's into buffers

https://github.com/AthenasEngineering/Koala/blob/36e44869d5a8c372c593b6e8cc5b18c19552bcbe/src/uuid.js#L19

Fixed as of https://github.com/AthenasEngineering/Koala/commit/2995223b08b3a605c0c5747fa5fc1b03b23fffec


Adding the --minify flag to the amplifyPush helper script

** Please describe which feature you have a question about? **
Our CloudFormation stack is now too large, so we have to use the --minify flag when we run amplify push from the CLI.
See: #3520
The amplifyPush script does not allow me to add the --minify flag, how can I work around this?

Looks like you want to run amplify push --minify using the amplifyPush script.
Could you clarify how you're currently using the amplifyPush script?
Also if you feel it could be improved or have suggestions we are open to pull requests!

I'm using the default amplify.yaml in the Amplify Console,
version: 0.7
backend:
  phases:
    build:
      commands:
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
        #- npm test --watchAll=false
    build:
      commands:
        - npm run build

Is there any way that I can add --minify using this .yaml directly? Or could you point me in the right direction on the amplifyPush script? I'm not sure where I would put the --minify flag.

Any comment on this? This has completely bricked our use of Amplify Console. I would prefer to keep using Amplify Console instead of building out a custom CI/CD pipeline.

@blazinaj Sorry for the delayed response. The solution for now, would be to have your own version of amplifyPush.sh script, where you would add the amplify push --minify command flag upon the initialization call(init_env). Let me know if this works.

How do I run my own shell script in the amplify.yml file in the console?

@blazinaj You can commit your version of amplifyPush.sh file (adding the amplify push --minify command at the end of the init_env function) into your root directory. Then the command section in amplify.yml will run your script with the command you have amplifyPush --simple

That worked perfectly. Thank you for the detailed answer. For anyone interested, here is the full script
#!/usr/bin/env bash
set -e
IFS='|'

help_output () {
    echo "usage: amplify-push <--environment|-e <name>> <--simple|-s>"
    echo "  --environment  The name of the Amplify environment to use"
    echo "  --simple  Optional simple flag auto-includes stack info from env cache"
    exit 1
}

init_env () {
    ENV=$1
    AMPLIFY=$2
    PROVIDERS=$3
    CODEGEN=$4
    AWSCONFIG=$5
    CATEGORIES=$6

    echo "# Start initializing Amplify environment: ${ENV}"
    if [[ -z ${STACKINFO} ]];
    then
        echo "# Initializing new Amplify environment: ${ENV} (amplify init)"
        [[ -z ${CATEGORIES} ]] && amplify init --amplify ${AMPLIFY} --providers ${PROVIDERS} --codegen ${CODEGEN} --yes --minify || amplify init --amplify ${AMPLIFY} --providers ${PROVIDERS} --codegen ${CODEGEN} --categories ${CATEGORIES} --yes --minify
        echo "# Environment ${ENV} details:"
        amplify env get --name ${ENV}
    else
        echo "STACKINFO="${STACKINFO}
        echo "# Importing Amplify environment: ${ENV} (amplify env import)"
        amplify env import --name ${ENV} --config "${STACKINFO}" --awsInfo ${AWSCONFIG} --yes;
        echo "# Initializing existing Amplify environment: ${ENV} (amplify init)"
        [[ -z ${CATEGORIES} ]] && amplify init --amplify ${AMPLIFY} --providers ${PROVIDERS} --codegen ${CODEGEN} --yes --minify || amplify init --amplify ${AMPLIFY} --providers ${PROVIDERS} --codegen ${CODEGEN} --categories ${CATEGORIES} --yes --minify
        echo "# Environment ${ENV} details:"
        amplify env get --name ${ENV}
    fi
    echo "# Done initializing Amplify environment: ${ENV}"
}

ENV=""
IS_SIMPLE=false
POSITIONAL=()
while [[ $# -gt 0 ]]
    do
    key="$1"
    case ${key} in
        -e|--environment)
        ENV=$2
        shift
        ;;
        -r|--region)
        REGION=$2
        shift
        ;;
        -s|--simple)
        IS_SIMPLE=true
        shift
        ;;
        *)
        POSITIONAL+=("$1")
        shift
        ;;
    esac
done
set -- "${POSITIONAL[@]}"

# if no provided environment name, use default env variable, then user override
if [[ ${ENV} = "" ]];
then
    ENV=${AWS_BRANCH}
fi

if [[ ${USER_BRANCH} != "" ]];
then
    ENV=${USER_BRANCH}
fi

# strip slashes, limit to 10 chars
ENV=$(echo ${ENV} | sed 's;\\;;g' | sed 's;\/;;g' | cut -c -10)

# Check valid environment name
if [[ -z ${ENV} || "${ENV}" =~ [^a-zA-Z0-9\-]+ ]] ; then help_output ; fi

AWSCONFIG="{\
\"configLevel\":\"project\",\
\"useProfile\":true,\
\"profileName\":\"default\",\
\"AmplifyAppId\":\"${AWS_APP_ID}\"\
}"
AMPLIFY="{\
\"envName\":\"${ENV}\",\
\"appId\":\"${AWS_APP_ID}\"\
}"
PROVIDERS="{\
\"awscloudformation\":${AWSCONFIG}\
}"
CODEGEN="{\
\"generateCode\":false,\
\"generateDocs\":false\
}"
CATEGORIES=""
if [[ -z ${AMPLIFY_FACEBOOK_CLIENT_ID} && -z ${AMPLIFY_GOOGLE_CLIENT_ID} && -z ${AMPLIFY_AMAZON_CLIENT_ID} ]]; then
    CATEGORIES=""
else
    AUTHCONFIG="{\
    \"facebookAppIdUserPool\":\"${AMPLIFY_FACEBOOK_CLIENT_ID}\",\
    \"facebookAppSecretUserPool\":\"${AMPLIFY_FACEBOOK_CLIENT_SECRET}\",\
    \"googleAppIdUserPool\":\"${AMPLIFY_GOOGLE_CLIENT_ID}\",\
    \"googleAppSecretUserPool\":\"${AMPLIFY_GOOGLE_CLIENT_SECRET}\",\
    \"amazonAppIdUserPool\":\"${AMPLIFY_AMAZON_CLIENT_ID}\",\
    \"amazonAppSecretUserPool\":\"${AMPLIFY_AMAZON_CLIENT_SECRET}\"\
    }"
    CATEGORIES="{\
    \"auth\":$AUTHCONFIG\
    }"
fi
# Handle old or new config file based on simple flag
if [[ ${IS_SIMPLE} ]];
then
    echo "# Getting Amplify CLI Cloud-Formation stack info from environment cache"
    export STACKINFO="$(envCache --get stackInfo)"
    init_env ${ENV} ${AMPLIFY} ${PROVIDERS} ${CODEGEN} ${AWSCONFIG} ${CATEGORIES}
    echo "# Store Amplify CLI Cloud-Formation stack info in environment cache"
    STACKINFO="$(amplify env get --json --name ${ENV})"
    envCache --set stackInfo ${STACKINFO}
    echo "STACKINFO="${STACKINFO}
else
    # old config file, above steps performed outside of this script
    init_env ${ENV} ${AMPLIFY} ${PROVIDERS} ${CODEGEN} ${AWSCONFIG} ${CATEGORIES}
fi

Thanks @blazinaj. How were you able to create a clone of the amplifyPush.sh file (myAmplifyPush.sh in your root directory), step 1? Are you using a custom image?

We are using a React SPA, so I just copy and pasted the file into the root. (at the same level as src, public, build, node_modules, and amplify folders). Then just pushed to the git branch that Amplify Console is watching.

@blairtaylor It is still the default image. By default, when we detect a backend environment in an app, we add the amplifyPush --simple command in amplify.yml, which executes our version of amplifyPush.sh file.
What we have done here is to override the default behavior by changing the build command to look at your version of the file 😊

@blazinaj @abhi7cr Got it. Thanks.
So the modified build command would look this this, correct?
backend:
phases:
build:
commands:
- '# Execute Amplify CLI with the custom helper script'
- chmod u+x myAmplifyPush.sh
- ./myAmplifyPush.sh --simple --minify

You wouldn’t need the --minify flag when you are executing the script, since we are not adding a new option. We are just changing the init calls to append minify flag.

@abhi7cr Thanks. I see that now.

@abhi7cr Thanks.
I have implemented and all seems to be working. Is there a way to view the source for the generated policy files to see the difference that the minification has made in the overall size?

Is there a PR / issue I can follow on this? Just because there's a hacky workaround doesn't mean the issue is resolved. Not to mention the author opened another issue related to this that the only solution was to move out of using Amplify Console @abhi7cr

+1


[COM-303] remove unknown params from payload

👏 :gg: on first "real code" PR 😄

Codecov Report

Merging #190 into master will increase coverage by 0.54%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #190      +/-   ##
==========================================
+ Coverage   85.63%   86.18%   +0.54%
==========================================
  Files          19       19
  Lines         529      550      +21
  Branches       86       89       +3
==========================================
+ Hits          453      474      +21
  Misses         45       45
  Partials       31       31

Impacted Files
Coverage Δ

src/client/analytics.ts
87.12% <100%> (+1.05%)
:arrow_up:

src/client/measurementProtocolMapper.ts
97.5% <100%> (+0.94%)
:arrow_up:

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 795e8d9...431cb96. Read the comment docs.


[Bug]: client.get_collection() is not working on 0.3.23

What happened?
My client .get_collection() was giving me errors. Reverted back to 0.3.21 and it worked ..

Versions
0.3.23
Relevant log output
No response

@joezein this looks like mismatched versions - https://github.com/chroma-core/chroma/issues/573 - can you confirm?
we will handle version pinning between client and backend better in the future

closing (stale), lmk if it would be helpful to re-open


Consent/Permission Matching Bug: “User.Read” vs “openid profile email”

The Administrator has granted admin consent respective given permission for “User.Read” (https://graph.microsoft.com/User.Read) but the application on-behalf of the user requests permission for scope “openid profile email” (https://login.microsoftonline.com//oauth2/v2.0/authorize?response_type=id_token&redirect_uri=...&client_id=...&scope=openid profile email&response_mode=form_post&nonce=…&state=…  ), these 2 scopes do not match and the User should be shown the permission dialog where he can give consent for “openid profile email” but no dialog is shown. On the other hand, if no “User.Read” admin consent is given, then the Open Identity Provider asks for consent “openid profile email” AND when checking in Azure-Portal/Enterprise-Application/My-Application/Permissions/User-Consent then all 3 consents are listed correctly.
(I’m not sure whether this is a product/implementation bug or whether this exception should be highlighted in the documentation: “Microsoft identity platform UserInfo endpoint”: https://learn.microsoft.com/en-us/azure/active-directory/develop/userinfo )

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 0b8f22d9-e4a8-5a4a-6fcc-4616a77d073f
Version Independent ID: 6970fe1c-5661-e3e0-c6ec-460a9d390c1f
Content: Microsoft identity platform UserInfo endpoint - Microsoft Entra
Content Source: articles/active-directory/develop/userinfo.md
Service: active-directory
Sub-service: develop
GitHub Login: @nickludwig
Microsoft Alias: ludwignick

@becke-ch-s0-v1
Thanks for your feedback! We will investigate and update as appropriate.

@becke-ch-s0-v1
I'm going to assign this to the document author so they can take a look at it accordingly.
@nickludwig
Can you please check and add your comments on this doc update request as applicable.

@nickludwig can you maybe give some feedback?

Hey @becke-ch-s0-v1 - apologies for the delay, I'm in the middle of working on a system for getting some other folks on my team involved in answering questions here. Hoping to have a response to this (and the other issue you opened) soon.

#reassign:elijahola

Hello @becke-ch-s0-v1 ! Just saw your original message and I want to make sure I am understanding the problem you're running into, so we can find a solution that helps. The expected behavior you mention is consent for "Open ID, profile, email" needed to be requested even if "User.Read" permission is granted to an application via UserInfo endpoint.
So we're trying to define the consent to data via "User.Read" separately from the consent given to scopes requesting "OpenID, profile, email" for consistency?
If I am not understanding properly, help me better understand.

Hi @elijahola . It's a long time since I've opened this issue but I think we have the same understanding (as far as I can remember).
The admin consent/permission “User.Read” that has been granted to the application, is different from the permission/scope “openid profile email” that the application is actually requesting (browser debug mode): https://login.microsoftonline.com//oauth2/v2.0/authorize?response_type=id_token&redirect_uri=...&client_id=...&scope=openid profile email&response_mode=form_post&nonce=…&state=…
These scopes “User.Read” and “openid profile email” do not match and therefore I should get presented the consent/permission dialog in the browser.
PS: If on the other hand no admin consent/permission is granted then I get presented the consent/permission dialog in the browser and when I grant these permissions: “openid profile email” AND when checking in Azure-Portal/Enterprise-Application/My-Application/Permissions/User-Consent then all 3 consents “openid profile email” are listed correctly.

Hi @becke-ch-s0-v1 ! I am following up with internal experts on the topic and will let you know my findings asap. Thank you for being patient and bringing this to our attention.

Thank you for being patient on this case @becke-ch-s0-v1 ! In Azure AD, it is assumed that if any delegated permission has been granted, then either the user (on behalf of themselves) or an admin (on behalf of all users) agreed to also release profile details about the user (openid, email, profile) about the user. This is the reason why the user consent prompt should always be including a line about the user’s profile, and a line about offline access (“Maintain access to data…”), even if neither of those were explicitly requested.
This isn’t well-documented today. Our team in this focus area is aware and they are working towards improvements there.

Hi @elijahola , Thank you for your feedback. It's a long time but I think a part of the question was in other words - what is the difference between the 2 scope "sets": "User.Read" vs "openid profile email". Is "openid profile email" a subset respective contained in "User.Read"?
It would be good to know which scopes are contained in respective a subset of which other scopes.

Openid, profile, and email scopes are OpenID Connect scopes. Whereas, User.read is used to request access to read a user's profile information through MSGraph API. Each scope has its specific purpose, and they are not granted as subsets of each other. The consent process for each scope is handled independently, and users can grant or deny access to scopes separately. In this case, they are granted because of admin consent grants access to all scopes. Not because one is a subset of the other.

@becke-ch-s0-v1
The OpenID scopes have the following behavior, when included in a sign-in request:

openid: Indicates this is an OpenID Connect sign-in, and requests an ID token
profile: Indicates the requested ID token should include basic user profile details. Can only be used with openid.
email: Indicates the requested ID token should include the user's email address. Can only be used with openid.
offline_access: Indicates a request for a refresh token.

what is the difference between the 2 scope "sets": "User.Read" vs "openid profile email"

User.Read is a delegated permission to Microsoft Graph. It allows making API requests to Microsoft Graph to GET /v1.0/me.

Is "openid profile email" a subset respective contained in "User.Read"?

As previously mentioned by @elijahola, consent for any scope includes consent for all four of the OpenID Connect scopes, regardless of whether they were explicitly requested by the app, or whether or not this is explicitly recorded. So, in terms of what data can be accessed by the app, yes, you could say that openid, profile and email are effectively a subset (i.e. "included in") any scope, including User.Read.
Some "regular" scopes do allow access to a subset of the data allowed by other scopes. For example, the Microsoft Graph scopes User.Read and User.ReadBasic.All are each subsets of User.Read.All, which in turn is a subset of User.ReadWrite.All. There is currently no documentation that explicitly indicates which scopes allow access to a subset of data of other scopes.

Thank you very much for the detailed answer. I didn't know that "consent for any scope includes consent for all four of the OpenID Connect scopes". Is that AAD specific or part of the OAuth specification and as well valid for other OAuth providers?
Am 4. Aug. 2023, 11:30, um 11:30, Philippe Signoret @.***> schrieb:

@becke-ch-s0-v1
The OpenID scopes have the following behavior, when included in a
sign-in request:

openid: Indicates this is an OpenID Connect sign-in, and requests
an ID token
profile: Indicates the requested ID token should include basic user
profile details. Can only be used with openid.
email: Indicates the requested ID token should include the user's
email address. Can only be used with openid.
offline_access: Indicates a request for a refresh token.

what is the difference between the 2 scope "sets": "User.Read" vs
"openid profile email"

User.Read is a delegated permission to Microsoft Graph. It allows
making API requests to Microsoft Graph to GET /v1.0/me.

Is "openid profile email" a subset respective contained in
"User.Read"?

As previously mentioned by @elijahola, consent for any scope includes
consent for all four of the OpenID Connect scopes, regardless of
whether they were explicitly requested by the app, or whether or not
this is explicitly recorded. So, in terms of what data can be accessed
by the app, yes, you could say that openid, profile and email are
effectively a subset (i.e. "included in") any scope, including
User.Read.
Some "regular" scopes do allow access to a subset of the data allowed
by other scopes. For example, the Microsoft Graph scopes User.Read
and User.ReadBasic.All are each subsets of User.Read.All, which in
turn is a subset of User.ReadWrite.All. There is currently no
documentation that explicitly indicates which scopes allow access to a
subset of data of other scopes.
--
Reply to this email directly or view it on GitHub:
https://github.com/MicrosoftDocs/azure-docs/issues/101648#issuecomment-1665315573
You are receiving this because you were mentioned.
Message ID:
@.***>

OAuth 2.0 does not specify the behavior or contents (other than general formatting) of the scope parameter. OpenID Connect defines openid, profile, email, and offline_access scope values (among others). There is a lot of room for implementation differences across OpenID providers, so you should assume the behavior I've described above is specific to Microsoft Entra (fka Azure AD).

#reassign: @psignoret

#please-close


Adaptive lighting based on sensor instead of sun

Hi, I find the sunrise/set source not very accurate for having adaptive lighting. Sometimes it's very dark outside even after sunrise, or way before sunset, I would love the ability to have an alternative source to adapt to, and also be able to control the adaptivity curve somehow.
Thank you for your awesome plugin!

I want to add my 2 cents to this. Until this is implemented within this great integration, I've created an automation that works similarly.
- id: adaptive_lighting_office
  alias: Adaptive lighting - Office
  mode: restart
  variables:
    illuminance_entity: 'sensor.light_sensors_illuminance_max_average_1_hour'
    continuous_adjustment: true

    minimal_illuminance: 5
    maximal_illuminance: 4000

    minimal_brightness: 10
    maximal_brightness: 128

    color_temp_adjustment: true
    minimal_color_temp: 350
    maximal_color_temp: 250
  trigger:
    - platform: state
      entity_id: light.office
      from: 'off'
      to: 'on'
    - platform: homeassistant
      event: start
  condition:
    - condition: state
      entity_id: light.office
      state: 'on'
  action:
    repeat:
      sequence:
        - service: light.turn_on
          target:
            entity_id: light.office
          data:
            brightness: >-
              {% set illuminance  = states(illuminance_entity) | int(0) %}
              {% set input_start  = minimal_illuminance | int(0) %}
              {% set input_end    = maximal_illuminance | int(0) %}
              {% set output_start = minimal_brightness | int(0) %}
              {% set output_end   = maximal_brightness | int(0) %}

              {{ [[(illuminance - input_start) / (input_end - input_start) * (output_end - output_start) + output_start, output_end] | min, output_start] | max }}
            # Inspired from: https://community.home-assistant.io/t/template-entity-to-guess-the-outside-colour-temperature/402510
            color_temp: >-
              {% if (color_temp_adjustment | default(false)) %}
                {{ [ [ (1000000/(4791.67 - 3290.66/(1 + 0.222 * [ [ 0, state_attr('sun.sun', 'elevation') ] | max, 90 ] | min**0.81)))|int, (maximal_color_temp|int(0)) ] | max, (minimal_color_temp|int(0)) ] | min }}
              {% else %}
                {{ state_attr('light.office', color_temp) }}
              {% endif %}
            transition: "{{ (iif(repeat.first, 1, 3) | int(0)) }}"
        - wait_for_trigger:
            - platform: state
              entity_id: sensor.light_sensors_illuminance_max_average_1_hour
            - platform: state
              entity_id: light.office
              to: 'off'
          timeout:
            minutes: 15
          continue_on_timeout: true
        - delay:
            minutes: 1
      until:
        or:
          - condition: template
            value_template: "{{ (continuous_adjustment | default(false)) == false }}"
          - condition: template
            value_template: "{{ (states(illuminance_entity) | int(0)) <= (minimal_illuminance | int(0)) }}"
          - condition: state
            entity_id: light.office
            state: 'off'
          - condition: state
            entity_id: light.office
            state: 'unavailable'
            for:
              minutes: 1

This is not as good or efficient as this integration, but IMHO this is a start. And can be useful for someone who encounters this issue.
I also tried converting the automation above into a Blueprint, but it seems HA handles those a little differently. Because I had a massive memory leak last time I tried it.

I have a sensor measuring the light color/temperature and brightness outside. Would be nice to be able to use it's data to control the lights.

Hi, I find the sunrise/set source not very accurate for having adaptive lighting. Sometimes it's very dark outside even after sunrise, or way before sunset, I would love the ability to have an alternative source to adapt to, and also be able to control the adaptivity curve somehow.
Thank you for your awesome plugin!

You can do all of this already by modifying sunset_time, min_sunset_time, max_sunrise_time, sunrise_time, sunset_offset and sunrise_offset
Once we finish #443, would that be enough for y'all to use an automation/script to update from your brightness sensor?

Once we finish https://github.com/basnijholt/adaptive-lighting/pull/443, would that be enough for y'all to use an automation/script to update from your brightness sensor?

I'm sorry. I've looked at the PR, but I'm unsure how this would work. Can you explain how this would work?
And would you please re-open this issue, as it is not (yet) completed.

@alex3305 See the v2 roadmap, this issue has been closed so new discussions can all happen in the main thread, and to reduce clutter/duplicates in our open issues. You are welcome to continue posting here.
In the current build, you can already do most of what you've asked for. Just modify your sunrise/sunset variables in your adaptive-lighting configuration. see the readme
if you still need help please ask!

I do not understand how changing the sunsrise/sunset variable solves anything, it will not make it work with the value from a sensor?
For example: there are a lot of clouds, how will it react to those and dim the lights?  The sensor outputs rgb, kelvin and brightness values. When you make the light use those, then the lights inside your home are even more natural.

Once #443 is implemented you'll be able to

I still think this issue was closed prematurely because the suggested changes were not implemented with #443. Having to use service calls with automation(s) to use external sensor data sounds pretty convoluted at best. Adaptive Lighting should IMHO just include a reference to an entity_id that is used for calculating light brightness. I will just wait before using this (very good!) integration until that is actually implemented.


Make Graham Scan in Python PEP8 compliant

Woops forgot to comment. I checked these changes against the official styleguide and it looks great. So I approve this PR.


Uncaught Exception when notify url accessed directly.

When you do something like this in notify url script:
namespace Midtrans;
require_once dirname(__FILE__) . '/../Midtrans.php';
Config::$isProduction = false;
Config::$serverKey = '<your serverkey>';
$notif = new Notification();

Then this notify url accessed directly or not contained the correct format it will cause error:
"Uncaught Exception: Midtrans API is returning API error. HTTP status code: 404 API response: .... in /midtrans-php/Midtrans/ApiRequestor.php on line 167"
Isn't the correct way of handling this is returning false or returning null to $notif? So developer can easily check wheter the notification returned the correct data.

Hi @erikdemarco thank you for asking. Notification class/function helper, and Expect to accepted HTTP request POST only.  Then pass through transaction_id from a POST request to status function. You can also use status to build your own notification handling.
But your feedback is valid, will put this as our backlog and release it in the next release.
Thank you


How to Migrate table Schema

Hi @zhiephie, right now this project is a little bit hard to install, some changes would be needed to a complete fork to work.
For exeperimental use, when migrating the tables, you need to use the command:
php artisan migrator

instead of migrate, since it's using a 3rd part package for namespaces migrations (https://github.com/artesaos/migrator)

Thanks @hernandev


how to install this?

can you write some notes on how to install this?

pip install ansible-runner-http


Added 'invert_up_down_command' for RFLink cover devices like the KAKU ASUN-650

Breaking Change:
The new property is optional, it does not break the existing code.
Description:
This pull request partially addresses issue #10810. I've added a property named 'invert_up_down_command' that inverts the up/down command being sent to RFLink. I was not able to  come up with something decent regarding the 'STOP' command for ASUN-650 devices. I think it is best to hide the stop button for these devices.
Related issue (if applicable): fixes #10810
Pull request in home-assistant.io with documentation (if applicable): home-assistant/home-assistant.io#9167
Example entry for configuration.yaml (if applicable):
cover rflink:
  - platform: rflink
    device_defaults:
      fire_event: false
    devices:
      newkaku_00000001_d:
        name: livingroom
        invert_up_down_command: true
      newkaku_00000001_e:
        name: master_bedroom
        invert_up_down_command: true
      newkaku_00000001_e:
        name: master_bedroom

Checklist:

[x] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly (example).
[ ] New dependencies have been added to requirements in the manifest (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hi @fmartens,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

How does your implementation react to the remote keystrokes?

Initial situation, the covers are open according to the 'States' page.
Sending the OFF command using the remote control (AYCT-102) sets the state immediately to closed.
Pausing half way by repeating the close command does not change the state (ASUN-650 does not provide feedback).
The covers open when sending the ON via the remote control and the state changes to open immediately.

So, the status is correct. You need to send an OFF command to the ASUN-650 to close it and an ON command to open it.

I noticed, by readingthe circleci test results, that I am missing CONF_INVERT_UP_DOWN_COMMAND in cover.py, it should be added to:
from . import (     CONF_ALIASES, CONF_DEVICE_DEFAULTS, CONF_DEVICES, CONF_FIRE_EVENT,     CONF_GROUP, CONF_GROUP_ALIASES, CONF_NOGROUP_ALIASES,     CONF_SIGNAL_REPETITIONS, DEVICE_DEFAULTS_SCHEMA, RflinkCommand)
Is there a way to address this or do I need to withdraw my pull request? Reason for asking is that I am not a Github expert.

Personally, I do not like anything to modify the behavior in __init__.py.
IMO would be better an implementation like the one with the rflink.light component, something like:

Create a new cover class, for example InvertedRflinkCover (not sure if RflinkCover can be extended like this) :

class InvertedRflinkCover(RflinkCover):
    """Rflink cover with inverted open/close commands"""

    def async_close_cover(self, **kwargs):
        """Turn the device close."""
        return self._async_handle_command("open_cover")

    def async_open_cover(self, **kwargs):
        """Turn the device open."""
        return self._async_handle_command("close_cover")

Define a new CONF_TYPE attribute that handle the cover type. For example, CONF_TYPE could be standard (the default one) or inverted (for now, but could be extended in the future).

Modify devices_from_config to initiallice the device according to configuration, f.e:

def devices_from_config(domain_config):
    """Parse configuration and add Rflink cover devices."""
    devices = []
    for device_id, config in domain_config[CONF_DEVICES].items():
        # Determine which kind of entity to create
        if CONF_TYPE in config:
            # Remove type from config to not pass it as and argument to entity
            # instantiation
            entity_type = config.pop(CONF_TYPE)

        entity_class = entity_class_for_type(entity_type)
        device_config = dict(domain_config[CONF_DEVICE_DEFAULTS], **config)
        device = entity_class(device_id, **device_config)
        devices.append(device)

    return devices

and
def entity_class_for_type(entity_type):
    """Translate entity type to entity class.

    Async friendly.
    """
    entity_device_mapping = {
        # default cover implementation
        TYPE_STANDAR: RflinkCover,
        # cover with open/close commands inverted
        TYPE_INVERTED: InvertedRflinkCover,
    }

    return entity_device_mapping.get(entity_type, RflinkCover)

(take as an example, the exposed code has not been tested or validated)

I am not a Python expert but I can give it a shot.

I am not a Python expert but I can give it a shot.

Great.
Complying with code analysis and tests can be complicated. I can try to help you if you need help, but I'm not an expert in Python either (^.^')
Being able to launch the tests locally helps a lot, but setting up the work environment (without knowledge of Python) can be painful.

@javicalle, thank you for your advise. I will try to contact you when I need some assistance. And yes, I do agree with your opinion, it looks way better. My solution is a quick fix that works well for my environment but it may harm other parts of the rflink component in the future.

Do I need to close this pull request?

I think that it is better to close this PR and open a new one. You can refer to this PR from the new one.

@javicalle, I am struggling with the states. I'm working on your suggested implementation and it kind of works. States are properly reported when using the remote control but states are not properly reported when using HA. I need to implement 2 additional elif statements to properly set the state. I only need to swap the command, not the state:
`elif command == 'close_cover':
cmd = 'DOWN'
self._state = False
elif command == 'open_cover':
cmd = 'UP'
self._state = True
elif command == 'close_inverted_cover':
cmd = 'UP'
self._state = False
elif command == 'open_inverted_cover':
cmd = 'DOWN'
self._state = True`
Is the code above something you can live with or do you have a suggestion?

You would be so kind to generate traces for the 2 situations:

operating the remote control
operating through HA

To activate the traces you can do it from the configuration, by adding (ie) + restart:
logger:
  default: error
  logs:
    rflink: debug
    homeassistant.components.rflink: debug
    custom_components.rflink: debug

or from the services screen invoking the logger.set_level service passing:
{
    "rflink": "debug",
    "homeassistant.components.rflink": "debug",
    "custom_components.rflink": "debug"
}

I recommend that you disable it when you finish it since it can be very verbose.
You should get traces of the following type

remote control:

2019-04-15 19:57:16 DEBUG (MainThread) [rflink.protocol] received data: 20; C9; Debug; RTS P1; ad2f04c731e53
2019-04-15 19:57:16 DEBUG (MainThread) [rflink.protocol] received data: f; 20; CA; RTS; ID = 654321; SWITCH = 0
2019-04-15 19:57:16 DEBUG (MainThread) [rflink.protocol] received data: 1; CMD = UP;
2019-04-15 19:57:16 DEBUG (MainThread) [rflink.protocol] got packet: 20; CA; RTS; ID = 654321; SWITCH = 01; CMD = UP;
2019-04-15 19:57:16 DEBUG (MainThread) [rflink.protocol] decoded packet: {'node': 'gateway', 'protocol': 'rts', 'id': '654321', 'switch' : '01', 'command': 'up'}
2019-04-15 19:57:16 DEBUG (MainThread) [rflink.protocol] got event: {'id': 'rts_654321_01', 'command': 'up'}

HA:

2019-04-15 19:57:25 DEBUG (MainThread) [custom_components.rflink] Sending command: UP to Rflink device: RTS_123456_0
2019-04-15 19:57:25 DEBUG (MainThread) [rflink.protocol] sending command: {'protocol': 'RTS', 'id': '123456', 'switch': '0', 'command' : 'UP'}
2019-04-15 19:57:25 DEBUG (MainThread) [rflink.protocol] writing data: '10; RTS; 123456; 0; UP; \ r \ n '

elif command == 'close_inverted_cover':
cmd = 'UP'
self._state = False
elif command == 'open_inverted_cover':
cmd = 'DOWN'
self._state = True

It is not a good solution.
Something similar happens with binary_sensor and surely with some switch device. It would end up generating multiplied code difficult to maintain.
The problem of the incosistent state was already to be expected and that is why I asked you before how your system reacts to diferent inputs.
Let me check the traces generated by your installation and will see the best way to deal with it.

  My remote is sending the ON/OFF commands. It's sending the ON command to raise the cover (up) and it sends the OFF command to lower (down) the cover.
I will also think about a better solution but I don't want to mess up the existing code. I'm struggling with the part in RflinkCommand.
Thanks for your feedback.

My remote is sending the ON/OFF commands. It's sending the ON command to raise the cover (up) and it sends the OFF command to lower (down) the cover.

Maybe our approach is not the correct one. Maybe for KAKU covers is needed to send ON/OFF commands (like the remote) instead UP/DOWN. Or maybe there is a bug in RFLink implementation. Your traces would be a great help.
Anyway, I have another implementation for inverted covers:
class InvertedRflinkCover(RflinkCover):
    """Rflink cover that has inverted open/close commands."""

    async def _async_send_command(self, cmd, repetitions):
        """Will invert only the OPEN/CLOSE commands."""
        _LOGGER.debug(
            "Getting command: %s for Rflink device: %s", cmd, self._device_id)
        if cmd == 'DOWN':
            cmmnd = 'UP'
        elif cmd == 'UP':
            cmmnd = 'DOWN'
        else:
            cmmnd = cmd

        await super()._async_send_command(cmmnd, repetitions)

@fmartens, would you be kind enough to test how it reacts now to the events from the remote and from the HA?

Maybe we can follow the discussion at issue #10810 to get more feedback, do you agree?

@javicalle I have an holiday coming up where I can fiddle with the system. Your solution looks nice and I can see where you would like to go, even with my limited knowledge of Python.
I do agree, lets continue the discussion in the bug #10810.


Update Wiki examples

From<EMAIL_ADDRESS>on June 28, 2011 15:28:32
What steps will reproduce the problem? 1.  Have the "import" statements in your code.
2.  Or put the class in front of the action (i.e. PowerMock.replay(...))
3.  Or both #1 & #2 Please provide any additional information below. I am new to PowerMock and thought the documentation was pretty good on it.  But when I went to use it my code wouldn't function correctly.  Because both PowerMock and EasyMock share some of the same names it is hard to discern when you are using what with these static methods.
An example page is: https://code.google.com/p/powermock/wiki/MockStatic An "expect" from EasyMock is used, but the "replay"/"verify" are done through PowerMock.  Thanks
Original issue: http://code.google.com/p/powermock/issues/detail?id=334

From<EMAIL_ADDRESS>on June 28, 2011 12:10:59
This might be able to be discarded.  Did not look at the quick summary: that it references which is being used (i.e. PowerMock.replay).  It would be nice if it was in both the summary and the code though?

From<EMAIL_ADDRESS>on August 21, 2011 14:35:00
Yeah maybe it's a bit confusing. Perhaps you could help out? I think all the wiki pages are checked into subversion. Then it would be possible to create a patch.
Status: Accepted
Labels: -Type-Defect -Priority-Medium Type-Task Priority-Low


remove dependabot

Description of the change:
Removes dependabot.yml from this repo to prevent Dependabot from making PRs in this repo.
Motivation for the change:
Dependabot changes will all be handled upstream and will be synced here. Dependabot does not need to be enabled on this repository.
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

/cc @jmrodri

/retest

/lgtm
/approved

merging this without QE, Docs and PX acks because this is just an internal maintenance item.


Per display mode config does not work

I have kwmc config display 1 mode monocle in my config. Display 1 does not use monocle mode, it must be manually set.
Possibly related to #360

Works fine for me, do you get any config errors?

I can't seem to reproduce the issue now. It happened after kwm recovered from a crash a couple times. I tried to "fake" it with kwmc quit but it works correctly in that scenario.
Closing for now.


About the dataset

Hello! Your work is excellent and has inspired and helped me a lot. However, this dataset seems to be too large, can you block it up and provide download links separately?

Hi there! Yes, I will start uploading individual sets today and hopefully you will be able to download them then.

Many thanks!

One more problem, I'm doing a large-factor super-resolution study, so I need some paired images with resolution of 3232 and 512512 to accomplish 16x super-resolution. I had been training and testing on synthetic data, and now I was eager to test my algorithms using real-world data. But I find that the data you publish seems to have been downsampled by a factor of four for NAIP. So can you provide NAIP data before downsampling? I would appreciate it if you can, and I will indicate the source of data in my research!

Ah, I see. I do have the original resolution NAIP data. It is obviously much larger than the downsampled version. Are you looking to train on this data or just test? If just test, I can quickly upload the val/test sets in full resolution.

Yes, in reality, I only need the validation set(8192 images). If possible, you can directly send the data to my email<PHONE_NUMBER>@qq.com). Once again, express my gratitude for your open-source work!

Okay, awesome. I have uploaded the validation set in full resolution here. The directory structure is the same as the low-res version, except for all images are nested under '2019' and '2020' because the NAIP API recently changed and the image uuids are not the same as before.
And the urban train set is currently being uploaded as three parts. The first part is ready, here.
Could you try downloading both of these to 1) make sure the validation set is how you expect it and 2) confirm that the new size of the training set chunks is small enough for you to download successfully?

Okay, awesome. I have uploaded the validation set in full resolution here. The directory structure is the same as the low-res version (naip/{image_uuid}/{zoom17_tile}/rgb.png), except for the image_uuid is now just '2019' or '2020' because the NAIP API recently changed the format in which files are downloaded.
And the urban train set is currently being uploaded as three parts. The first part is ready, here.
Could you try downloading both of these to 1) make sure the validation set is how you expect it and 2) confirm that the new size of the training set chunks is small enough for you to download successfully?

Thank you very much, I can now download and use the validation and training sets as normal!