Firebase stuff (and other configuration stuff)

I haven't used the firebase stuff yet, so I hope it works, but it doesn't seem to have broken it at least... I'm still working on the sign up stuff but I figured I should get the firebase configuration stuff into main so that other people can use it. The configuration stuff is only for Android. Also, the Neighbouri app should be visible from the Firebase console now.
There's also some extra configuration stuff I added to get the app working on pc in android studio (at least for my pc).
This branch is called "signup-stuff" but please ignore that, it doesn't have sign up stuff in it (and I don't want to keep messing with my branches anymore because I keep messing up my Android Studio configuration 😢 )

decided to add sign up stuff to this PR after all


CraftTweaker enhancements

May be useful methods to add for iteration.

Being able to remove IEntityDefinitions from CreatureTypeDefinitions.
Being able to create a blank Resistances container in AssignMobResistancesEvent if the mob is being assigned default resistances and you wish to change the resistances the mob receives.

Blank Resistances container not needed; updated wiki to outline potential issues with using default resistances with AssignMobResistancesEvent


dispatch test - usage limits and costs

Tool
Name: Dispatch
Query
Do calls made using dispatch test:

count towards usage limits
incur costs?

Thanks

@mr-sandy, the "test" command should not count toward usage limits/incur costs.


Navigating to a screen based on a state flag

Hey there, currently I'm trying to navigate to a screen based on a loggedIn flag in my ReactorKit Reactor State.
When this flag is set to true, I simply want to present the HomeViewController.
I am using the Coordinator pattern with the XCoordinator library to handle navigation.
My setup looks like so:
// MARK: Bindings
func bind(reactor: LoginViewReactor) {
 var counter = 0
    reactor.state.map { $0.loggedIn }
      .distinctUntilChanged()
      .filter { $0 }
      .subscribe(onNext: { [weak self] _ in
        log.verbose(counter)
        counter += 1
        self?.router?.trigger(.home, completion: {
          log.verbose("Triggered")
        }, onCompleted: {
          log.verbose("")
        })
      })
      .disposed(by: disposeBag)
}

This works, however, the block inside the subscribeOnNext is called twice, which means that the screen is displayed twice. Obviously, this is not what is expected as the screen should only be presented once.
I tried adding in .take(1) and takeLast(1) but that seems to do nothing.
When I log the counter variable, it returns 0 twice.
Likewise with the trigger inside the completion block.
The onCompleted is never called.
It's worth nothing that each time I update an input on the page, the state changes 4 times.

Okay so I found out the problem.
The issue was I had called the bind method manually when instantiating my class.
So my code looked like so:

      let reactor = LoginViewReactor(authenticator: .shared)
      let login = LoginViewController()
      login.router = unownedRouter
      login.reactor = reactor
      login.bind(reactor: reactor)

once I got rid of the bind manually, everything worked as expected. I can see now why the method was being called twice.


Fix a flaky failure in VM Agent e2e test "testExternalNode"

The failure occurs when the check is performed before the default route on the uplink is removed, then two interfaces are found, which leads to a mismatch with the expectation.
The fix is to introduce a retry when checking the VM network configurations, and and a check on the count of the default route before return.
Fix: #6147

/test-vm-e2e

/test-all
/test-vm-e2e

/test-vm-e2e

/test-vm-e2e

/test-vm-e2e
/test-all

/skip-conformance

@tnqn @luolanzone Thanks for reviewing and merging it. May I know if we need to back port it or not?

@tnqn @luolanzone Thanks for reviewing and merging it. May I know if we need to back port it or not?

We can backport to 1.14 and 1.15 if it helps stablize e2e tests.


Installation error

Description
Have tried to download Files from various sites (including microsoft store) and repeatedly get this error:
App installation failed with error message: error 0x80070005: Opening the package from location Files.Package_<IP_ADDRESS>_x64_ARM64_Sideload.msixbundle failed. (0x80070005)
Steps To Reproduce
Execute the install file
Steps to fix
Installation
Files Version
<IP_ADDRESS>_x64
Windows Version
Windows 11 Pro 10.0.22000 Build 22000
Relevant Assets/Logs
Cannot get to this as I am unable to even install the app

Your Windows install is outdated. Try update Windows and try again

Download the file from https://files.community/download and place it in a none restricted area like your desktop.
If that doesn't work try update Windows since your version is outdated.
If that doesn't work try running these in an admin CMD terminal then restart when there finished.
sfc /scannow
dism /online /cleanup-image /restorehealth

Thanks for your help.
I just checked, and Windows says its up to date.
[image: image.png]
Allan
On Sun, 1 Jan 2023 at 10:21, Josh-65 @.***> wrote:

Your Windows install is outdated. Try update Windows and try again
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1368384964,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNEBSYWWP4G5TDZA7S3WQE5CDANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Have done all of these and still get the same error.
Allan
On Sun, 1 Jan 2023 at 10:24, Josh-65 @.***> wrote:

Download the file from https://files.community/download and place it in a
none restricted area like your desktop.
If that doesn't work try update Windows since your version is outdated.
If that doesn't work try running these in an admin CMD terminal then
restart when there finished.
sfc /scannow
dism /online /cleanup-image /restorehealth
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1368385293,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNCCGDLCZHIW34IO52TWQE5LRANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Are you able to install other apps from the MS store?

Yes
On Sun, 01 Jan 2023, 11:04 Josh-65, @.***> wrote:

Are you able to install other apps from the MS store?
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1368392831,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNCEJLL4AVFFFIINVLTWQFCDPANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Are you installing from the appinstaller file?

I have tried to install from the Microsoft Store and the installer
Neither work unfortunately
On Sun, 01 Jan 2023, 17:17 yaira2, @.***> wrote:

Are you installing from the appinstaller file?
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1368467459,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNFADHSLG46NSSJMWI3WQGNXLANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Which installer?

The sideload at https://files.community/download
[image: image.png]
[image: image.png]
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 1 Jan 2023 at 19:04, yaira2 @.***> wrote:

Which installer?
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1368488091,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNHEMKBKCAB74VD6FT3WQG2ITANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

The msixbundle is the wrong installer, can you verify the file name?

Files.Package_<IP_ADDRESS>_x64_ARM64_Sideload
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Tue, 3 Jan 2023 at 03:02, yaira2 @.***> wrote:

The msixbundle is the wrong installer, can you verify the file name?
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1369301871,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNHWOCKGRIKCIUF46ATWQN3DTANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

That's not the installer from https://files.community/download. It should be Files.Stable.appinstaller

I managed to download the installer but not get this:
[image: image.png]
Allan
On Tue, 3 Jan 2023 at 06:09, yaira2 @.***> wrote:

That's not the installer from https://files.community/download. It should
be Files.Stable.appinstaller
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1369377854,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNBL5Z2E2SWI7BBNVDLWQOQ7HANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

You cant attach an image via email. You have to copy and paste the error message

The error message just says
This app can't run on your PC
To find a version for your PC, check with the software publisher
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 09:09, Josh-65 @.***> wrote:

You cant attach an image via email. You have to copy and paste the error
message
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374735627,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNC5AKMYOSKE3W5V4Q3WRJRZTANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

What's the name of the file you are running?

files-2.1.13-installer; from FileHippo.
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 09:25, Josh-65 @.***> wrote:

What's the name of the file you are running?
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374739587,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNF6WCYQRQCV42GWMX3WRJTWJANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

That's not the file you should be running and is outdated. Use the one from https://files.community/download called sideload or the MS store

I've tried that.
In the file save dialogue box, it is called Files.stable.
However, when it downloads, it appears names as the file I should have -
Files.stable.appinstaller
When I try to run it I get:
Cannot open app package
Reason:
An error occurred while accessing the file from the web. Please try
downloading and opening the file locally.
Allan
On Sun, 8 Jan 2023 at 09:29, Josh-65 @.***> wrote:

That's not the file you should be running and is outdated. Use the one
from https://files.community/download called sideload or the MS store
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374740462,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNC4CQJ26YWWORZQ7D3WRJUENANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Try right clicking the file, open properties and see if there is an unblock button.
If not unblock App installer from network access in any security programs you have running.

Never mind use the preview version listed on the site as the stable one seem to be broken

There is no unblock button.
I have temporarily turned off my security programs, and gone offline, and
get:
App Installer failed to retrieve app information. Either the network
connection has been lost or the server cannot be reached. (0x80072EE7)
Have gone back online, and disabled virus protection and get:
An error occurred while accessing the file from the web. Please try
downloading and opening the file locally.
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 09:38, Josh-65 @.***> wrote:

Try right clicking the file, open properties and see if there is an
unblock button.
If not unblock App installer from network access in any security programs
you have running.
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374742975,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNATFHEUB4OL74OGE3TWRJVILANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

I tried the preview version and get:
App installation failed with error message: error 0x80070005: Opening the
package from location Files.Package_<IP_ADDRESS>_x64_ARM64_Sideload.msixbundle
failed. (0x80070005)
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 09:40, Josh-65 @.***> wrote:

Never mind use the preview version listed on the site as the stable one
seem to be broken
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374743457,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNGK7HLJ4ODPKYSGKSDWRJVO7ANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

You can try

Open PowerShell as admin
Run this command Add-AppxPackage -AppInstallerFile https://cdn.files.community/files/preview/Files.Package.appinstaller

That seems to have downloaded the file.
Where on my PC do I find it?
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 10:01, Josh-65 @.***> wrote:

You can try

Open PowerShell as admin
Run this command Add-AppxPackage -AppInstallerFile
https://cdn.files.community/files/preview/Files.Package.appinstaller

—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374749227,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNFU4TPLE7DWYYTDXJDWRJX4BANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

You shouldn't download a file you should run the command in full in an admin PowerShell window.

OK, sorry, not familiar with that. Not sure how to do it.
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 10:27, Josh-65 @.***> wrote:

You shouldn't download a file you should run the command in full in an
admin PowerShell window.
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374757224,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNHRNF4DBER6RCNSFVTWRJ27VANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Type PowerShell in the start menu
Right click then run as administrator
copy and paste   Add-AppxPackage -AppInstallerFile https://cdn.files.community/files/preview/Files.Package.appinstaller
Then press enter.

Thanks, I did that part but nothing happened.
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 10:31, Josh-65 @.***> wrote:

Type PowerShell in the start menu
Right click then run as administrator
copy and paste Add-AppxPackage -AppInstallerFile
https://cdn.files.community/files/preview/Files.Package.appinstaller
Then press enter.
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374758265,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNEQGB3VY552BYUIS73WRJ3OFANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Have you check the app list in the start menu

Thanks. That now seems to have worked
Allan Glogauer
Producer
+27 (0)82 450 7151
@.***
On Sun, 8 Jan 2023 at 10:35, Josh-65 @.***> wrote:

Have you check the app list in the start menu
—
Reply to this email directly, view it on GitHub
https://github.com/files-community/Files/issues/10895#issuecomment-1374759404,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5A3HNHBTWB3UJNQLFG3MALWRJ34XANCNFSM6AAAAAATN7IEKE
.
You are receiving this because you authored the thread.Message ID:
@.***>


fix(SLES15 systemd) Have the postinstall script remove the sysv init file if it exists on a systemd enabled system

Proposed Change
Change the postinstall script to remove the sysv file on systems that don't need it.
Checklist

[ ] Changes are tested
[ ] CI has passed

Seems to be working great for SLES-15.


Add more context and hyperlinks for Open Source page

URLs are good, probably just reformat them so markdown renders as links and add some explanation

Added the OS project names.


Add support for lower()

Hey guys,
I didn't see esqueleto offer a lower function just yet, and I figured I could PR it in myself. Are there any examples of similar functions operating on the contents of the where clause (both left and right side) that I could model this after? Thank you.

Nevermind, figured it out, sent the PR.


Investigate SwiftShader for CI GFX Testing

Possible cross platform gpu/driver replacement for CI environments: https://github.com/google/swiftshader

Forked repo here.  The build time on this is long, so I'll create a release with artifacts at some point. Need to sort out issues with macOS (build fails with clang; I don't think we can use XCode for 'reasons'; arm64 build of project is based on host architecture (and you have to pay for Apple Silicon on GitHub), so we may have to fiddle with their cmake to produce a universal binary - need to look deeper).
Use is pretty slick. You can just rename the dll to vulkan-1.dll and place it next to your executable. To get validation layers working with it, I left the filename as is, and went through the sdk loader with VK_ICD_FILENAME pointing to the icd json (created from swiftshader build), which points to the dll. Something like this:
project
|  app.exe
|  vk_swifshader.dll
|  vk_swiftshader_icd.json

vk_swiftshader_icd.json:

{
    "file_format_version": "1.0.0",
    "ICD": {
      "library_path": "..\\vk_swiftshader.dll",
      "api_version": "1.0.5"
    }
}

Then launch with:
$env:VK_ICD_FILENAMES="vk_swiftshader_ics.json"; .\\app.exe

Did some more testing. Some features we use are not supported. Carelessly disabling them allows things to run, but the smoke test scene crashes. Obvisouly, features need to be sorted out correctly, but I was able to get GH agents to launch the sample with this.


Limiting custom hyperparameter ranges vs setting parameters for pipelines

Currently, we use pipeline_parameters in AutoMLSearch to both limit custom hyperparameter ranges and set parameters for pipelines (since a hyperparameter range with one value is equivalent to setting it to that value). This causes issues for cases such as DropColumn component, where we have a columns parameter which we want to set without setting the hyperparameter range.
Right now, we have IterativeAlgorithm hardcoded to handle this case in _transform_parameters. However, this is not a sustainable long term solution. #2091 took a stab at separating the two by introducing frozen_parameters which are always used and update the parameters before new pipelines are made, but I think it'd be best to take another look and clean up the distinction and logic between the two.
If we choose to separate the two further, it's worth noting that we have to handle the case where the user sets both and the two conflict. Ex: Hyperparameter range has {"a", "b"}, user sets parameter as "c".

Closing in favor of #2130


[Discussion] Layotto and Capa non-standard API.

@seeflood For practical use, we have added several sets of saas api for  layotto and capa  in the past, E.g:

native s3 api
simple crypto api
email api
sms api
phone api

an enhanced standard api, E.g:

pubsub delay_queue api

These apis are used in layotto api and capa api, maybe we can share our experience in api-sig firstly for discussion and publicity.
In order to better integrate with standard api in the future.

@kevinten10 now that we are restarting this initiative and making progress here, it will be great to have those discussions if you are still up for this. I am interested in high level APIs like email, but also in the s3 APIs, as we have some proposals for Dapr on that space too


[SUPPORT] Slow insert into COW tables with multi level partitions

Hi there,
I have a problem with writing when there are many partitions.
Data
The DataFrame i'm working with is pretty simple. It contains all the messages sent by the organizations.

message_id
timestamp
status
organization_id
year
month
day

bdabfa6f-2a3e-4c17-acd7-350227473ae4
2020-11-25T10:00:00Z
SENT
0b38bec3-15ac-4e57-9bb9-48d7de412ffa
2020
11
25

203d5495-9b5d-4003-b7f3-ab312a70db40
2020-11-25T11:00:00Z
SENT
75e498d4-c979-4a12-b8df-1051c7976d34
2020
11
24

09fa0543-cf5a-4e6b-9d16-ad14a8a7058a
2020-10-22T09:00:00Z
NOT_SENT
0b38bec3-15ac-4e57-9bb9-48d7de412ffa
2020
10
22

Previous Scenario (Good performance)
Writing was taking about a 40 seconds to write 100k rows when partitioning contained year, month and day only. But this kind of partitioning was not the best for my use case.
Partitions
year=2020/month=10/day=22
year=2020/month=11/day=24
year=2020/month=11/day=25

Current Scenario (Bad performance)
I changed partitioning to have organization_id before the other partitions. In this approach the writing time has increased considerably and now it takes about 5 minutes to write 100k rows. There are hundreds of organizations and each of them will have a partition per day.
Partitions

organization_id=0b38bec3-15ac-4e57-9bb9-48d7de412ffa/year=2020/month=10/day=22
organization_id=75e498d4-c979-4a12-b8df-1051c7976d34/year=2020/month=11/day=24
organization_id=0b38bec3-15ac-4e57-9bb9-48d7de412ffa/year=2020/month=11/day=25

Execution time

Configuration
Both approaches use the same configs. Some settings were based on the Tuning Guide.

Hudi Version = 0.5.2
Spark Version = 2.4.5

I changed the subject of this support issue because I already solved the problem I had before.

That's a picture of the time it takes to process the data with partitions by organization_id.

@ygordefraga : This could be coming from the increase in the number of partitions.
This could be related to https://github.com/apache/hudi/issues/2269#issuecomment-733299492
Also, note that since you increased the number of partition with the additional partitioning level, keeping the same number of executors wont be exactly apples-to-apples comparison.
Can you try 0.6.0 (which has incremental cleaning support) to see if you get better performance.
Please note that the next version of hudi will come with consolidated metadata which will remove the listing altogether.

Looks like balaji did beat me to it.  :)

@ygordefraga : This could be coming from the increase in the number of partitions.
This could be related to #2269 (comment)
Also, note that since you increased the number of partition with the additional partitioning level, keeping the same number of executors wont be exactly apples-to-apples comparison.
Can you try 0.6.0 (which has incremental cleaning support) to see if you get better performance.
Please note that the next version of hudi will come with consolidated metadata which will remove the listing altogether.

Does "hoodie.clean.automatic" available on hudi 0.5.2? And does clean make sense for COW tables when there is no upsert? (my case)? What cleaning does in this situation?
I tried Hudi 0.6, but I faced this issue and could not solve it. Any suggestion about that?

Please note that the next version of hudi will come with consolidated metadata which will remove the listing altogether.

What you mean with that?

Please note that the next version of hudi will come with consolidated metadata which will remove the listing altogether.
What do you mean with that?

Please note that the next version of hudi will come with consolidated metadata which will remove the listing altogether.

What do you mean with that?

Please note that the next version of hudi will come with consolidated metadata which will remove the listing altogether.

What do you mean with that?

The File listing improvements as mentioned in https://cwiki.apache.org/confluence/display/HUDI/RFC+-+15%3A+HUDI+File+Listing+and+Query+Planning+Improvements will be available in 0.7 release.

Regarding the bundle issue, the workaround posted should have worked. Another option is to try 0.5.3 which has the support too.

Regarding the bundle issue, the workaround posted should have worked. Another option is to try 0.5.3 which has the support too.

I'll try it again.

Writing got better after setting the hoodie.clean.automatic=false . I'll try hudi 0.6 (or 0.5.3), compare and post it here.

I used Hudi 0.5.3 and this are the results:

Thank you, guys!

I used Hudi 0.5.3 and the results were really good.

Thank you, guys!


[Logging v2] Collect RKE node logs on Windows on master

What kind of request is this:
QA
Steps to reproduce:

Validate rancher/rancher#32021 on master

Result:
testing done on v2.5.8-rc2: https://github.com/rancher/rancher/issues/32021#issuecomment-818301480
values yaml (Edit as YAML during Logging chart install)
We need to make sure additionalLoggingSources.rke.enabled is true
global.windows.enabled should be true
These values need fix on dashboard
rancher/rancher#2626

Closing this as testing on master is not required.


Update M02-Unit 3 Create and configure a virtual network gateway.md

Added M02 folder reference.
Module: 00
Lab/Demo: 00
Fixes # .
Changes proposed in this pull request:

Thank you this was fixed with another PR.


Activate SSL in Consumer when SASL is used

Hi. I didn't notice in my previous PR #4 that the connection flags are duplicated in the Consumer code.
The Producer seems to reuse the Admin client but not the Consumer.
This PR applies the same code to enable SSL when SASL is used.
Thanks,
Joan

Hi,
Thanks, my mistake as well for forgetting :-)
I hope to rework the whole client part at some point

Wonderful, thanks for being so reactive. I can introduce the extension to my team now. :)


MOTD

Hello,
I have read the documentation and am a really big fan of this project. Everything is well organized and well made. However there is one issue i ran into. I cant change the server motd. The documentation tells me that there should be a file called motd.txt, after looking in the config folder and ultimatecore folder i didnt find one. I tried to make one, however that did not work either. Pls help. (motd being the message you see below the server name, Welcom to the super awesome server is by default)

i found it just now! here it is:
your server\config\ultimatecore\modules\serverlist.conf

Netlighter is correct. Where in the documentation did you read this? So I can fix it.


Upgrade to ESLint 6.8.0

EDIT: See https://github.com/zulip/zulip-mobile/issues/4120#issuecomment-632911819, which will make much of these details obsolete — let's go for 6.8.0, instead of 6.1.0, if we can.

Upgrading ESLint to 6.1.0 is included in the RN v0.59.10 to v0.60.0 upgrade helper. I've tried doing this before and after the main upgrade commit, and I don't see anything new being flagged, so I think we can treat this as possible to do at any time. As with the Babel-related upgrades there, I haven't been able to trace this to a particular commit in template/package.json in the react-native repo. (🤔)
I think the version of eslint-config-airbnb we want is ~18.0.0. Both 18.0.0 and 18.0.1 list ESLint under peerDependencies as "^5.16.0 || ^6.1.0". (https://github.com/airbnb/javascript/blob/a204cdf38a3e67a405c191773456d18296a9b37b/packages/eslint-config-airbnb/package.json)
18.1.0 and above have ESLint under peerDependencies as "^5.16.0 || ^6.8.0". (https://github.com/airbnb/javascript/blob/a3355f90c4b52445dbe828fd4e71a7e7d12ef202/packages/eslint-config-airbnb/package.json)
Let's see if we can emulate 58cb26e75 and do the upgrade with a simple script; this is the most easily reproducible way to do it.
One thing that should help simplify things is to remove our direct dependency on eslint-config-airbnb-base. We don't ever import it ourselves, and eslint-config-airbnb already has it, since it's listed as a dependency by that package. It's never been listed there as a peerDependency, even as far back as v15.0.2 (https://github.com/airbnb/javascript/blob/c68fa632624f088b4bbe81192a50554b0c6af970/packages/eslint-config-airbnb/package.json), the version we were on when we added eslint-config-airbnb-base as a direct dependency, in 984f77157. 984f77157 didn't explain the addition, and the main focus of that commit was elsewhere, so it seems unlikely that it was well-considered.
Running rm -rf node_modules && yarn after removing eslint-config-airbnb-base gives no errors.

One diff to package.json that gets rm -rf node_modules && yarn working with no errors at all is this:
     "babel-eslint": "^10.0.2",
     "babel-plugin-transform-remove-console": "^6.9.4",
     "deep-freeze": "^0.0.1",
-    "eslint": "^5.16.0",
-    "eslint-config-airbnb": "^17.1.1",
-    "eslint-config-airbnb-base": "^13.2.0",
+    "eslint": "^6.1.0",
+    "eslint-config-airbnb": "^18.0.0",
     "eslint-config-prettier": "^6.0.0",
     "eslint-plugin-flowtype": "^3.9.0",
-    "eslint-plugin-import": "^2.18.1",
+    "eslint-plugin-import": "^2.18.2",
     "eslint-plugin-jest": "^22.11.1",
     "eslint-plugin-jsx-a11y": "^6.2.3",
     "eslint-plugin-prettier": "^3.1.0",
-    "eslint-plugin-react": "^7.14.2",
+    "eslint-plugin-react": "^7.14.3",
+    "eslint-plugin-react-hooks": "^1.7.0",
     "eslint-plugin-spellcheck": "0.0.14",
     "flow-bin": "^0.92.0",
     "flow-coverage-report": "^0.6.0",

But I got there by inspecting peerDependencies, etc., and it would be nicer to have this (or something similar) be the result of a script.

Actually, while on the phone with Greg the other day, it seems to make the most sense to just upgrade to the latest version of ESLint that we can! There are a few things that we use that don't yet support ESLint 7, like prettier-eslint, which is fine. But let's shoot for the latest minor version of ESLint 6.
From poking around a bit, one thing we'll need to await, to get guaranteed ESLint 6 support, is a new release of prettier-eslint, beyond 10.1.0. The need for that is explained at https://github.com/prettier/prettier-eslint/pull/338#issuecomment-632908721.

This bit from the top, at https://github.com/zulip/zulip-mobile/issues/4120#issue-622056646, still applies:

One thing that should help simplify things is to remove our direct dependency on eslint-config-airbnb-base. We don't ever import it ourselves, and eslint-config-airbnb already has it, since it's listed as a dependency by that package. It's never been listed there as a peerDependency, even as far back as v15.0.2 (https://github.com/airbnb/javascript/blob/c68fa632624f088b4bbe81192a50554b0c6af970/packages/eslint-config-airbnb/package.json), the version we were on when we added eslint-config-airbnb-base as a direct dependency, in 984f77157. 984f77157 didn't explain the addition, and the main focus of that commit was elsewhere, so it seems unlikely that it was well-considered.
Running rm -rf node_modules && yarn after removing eslint-config-airbnb-base gives no errors.

Reopening after #4223 .


Better documentation (esp. regarding dependency management)

As of now, I do so believe that S is probably the most well thought through stream/reactivity library of all. Still, I find the documentation/readme somewhat lacking. I feel that because the way S works is so unique, it needs some more detailed explanation to let people understand how exactly S works, to see that S is not making horses*** claims. One of the points I feel might really need improvement is the part about:

Automatic Dependencies - No manual (un)subscription to change events.  Dependencies in S are automatic and exact.

This really does sound too good/magical to be true, especially in this kind of library, if no further explanation is provided. I feel the documentation about:

When an S computation runs, S records what signals it references, thereby creating a live dependency graph of running code.  When data changes, S uses that graph to figure out what needs to be updated and in what order.

is insufficient to convince a casual reader that this actually works, its not a crackpot claim. Another part of the reason why I'm asking here is that even I myself am somewhat confused, and want a confirmation from you that my understanding is correct:

Certainly, no Javascript program is capable of dissecting other functions dynamically to determine their dependencies from their symbols/source/reflection/etc.
Even when a S computation runs, not every expression in the computation is necessarily evaluated, so not all dependencies can be captured
However! given that the function in question is sufficiently pure, then all dependencies in the function will either be evaluated on the first run, or be hidden behind a fork (if/while etc.)
If the condition of the fork is also a S node, then any computations hidden behind the fork would be reevaluated whenever the fork condition is also updated (ie whenever the code in the fork might possibly be evaluated)
Thus, automatic dependency detection actually works (lazily)!!

If I am correct, I think it is important for the reader to understand the (reasonable) assumptions S has put on the code given to S computations, and how it actually works. If there was anything I could help with, I'd be glad to as well!

Yep, you've got that correct.  It may be helpful to think that computations don't have dependencies, the values of computations have dependencies.  Even more specific is to say that the values of computations have invalidators.  If any of those invalidators changes, then the value is now invalid, and the computation needs to re-run to produce a new value with its own (potentially different) set of invalidators.
S is perfectly happy with code like:
let a = S.data(true),
    b = S(() => a() ? 1 : c()),
    c = S(() => a() ? b() : 2);

That looks like a circular dependency, but if we think in terms of values, it's not.  There are two possible scenarios:

when a() === true:  b() === 1 with invalidators [a]  c() === 1 with invalidators [a, b]
when a() === false:  b() === 2 with invalidators [a, c]  c() === 2 with invalidators [a]

(Anybody who wrote such code other than to prove a point should be shot, of course 😄 ).
I've got a series of three articles in mind to try and explain more of the reasoning behind S.  Standard API documentation doesn't really cut it, because it's not just what the functions are and what their signatures are, it's how they work together.
When I get that together, would you be willing to give it a read and give feedback?

@adamhaile Thanks for your through and quick reply! Sorry I wasn't able to reply, got caught straight in the middle of some projects. Yes, I would love to give you feedback! I appreciate your work a lot.

Please define exactly(maybe more verbose) the difference between S.freeze() and S.subclock(). Looks literally same in README

run to completion

If you look at the tests, you can see that freeze literally freezes the time during the closure, and flow resumes after the closure, wheras subclock creates a new time context, where multiple iterations in the inner clock are completed within the same instant from the outside. But yes, I totally agree the documentation kinda sucks here as well. I scratched my head around this for a while as well.

  My priority has been getting Surplus 0.5 out the door, which happened yesterday.  Working on a much longer README at the moment.

By the way (off topic), I stumbled upon this library today [1], that actually seems to do something similar to S.

I found cellx [2] in the past, also looks similar
[1] https://github.com/ds300/derivablejs
[2] https://github.com/Riim/cellx

BTW, thanks for the pointers to similar projects -- as you might guess I like looking at how others have approached the same/similar problem.  At a quick glance, derivableJS and cellx look a little more simplistic than S (but hey, obviously I'm biased :)).  They don't appear to be glitchless or have any strategy for automatic computation disposal or idempotent side-effects.  They look like the same reactive semantics as, say, Knockout.js.  I might be wrong though, looking forward to looking closer.  If nothing else, I'd like to bench them against S, since they both claim speed as a virtue.

Thanks @adamhaile for taking the time and effort to document. BTW I think your copyright notice is wrong, should at least show the first year of publication [1], which seems to be 2013 if I look through the git history. I would mark it as "© 2013-present ..."
I am still looking forward to your answer to adamhaile/surplus#57 (improve quantification of advantages).
[1] https://www.copyrightlaws.com/copyright-notice-year/

@adamhaile Looks like derivableJS had existing benchmarks comparing itself favorably to MobX. Someone added S.js implementations here: https://github.com/ds300/derivablejs/pull/119
S.js at the top of 2, derivableJS at the top of 3. I have no idea how meaningful these benchmarks are. I'd be interested to hear your opinion, Adam. What would be a meaningful benchmark?
Results here:
{
  "all_pairs": {
    "djs": {
      "hz": 23.329235170835332,
      "rme": 5.139300279358734,
      "samples": 42
    },
    "mobx": {
      "hz": 20.161756029674617,
      "rme": 9.519040687233975,
      "samples": 40
    },
    "s": {
      "hz": 12.949194746968802,
      "rme": 3.9628235271513734,
      "samples": 36
    }
  },
  "fan_out": {
    "djs": {
      "hz": 2.9515524020309365,
      "rme": 9.007185136851865,
      "samples": 12
    },
    "mobx": {
      "hz": 4.480957366220161,
      "rme": 5.526119661739351,
      "samples": 16
    },
    "s": {
      "hz": 32.30267526850888,
      "rme": 3.849298806201103,
      "samples": 44
    }
  },
  "many_atoms": {
    "djs": {
      "hz": 39.551516326685906,
      "rme": 1.5696587864441331,
      "samples": 53
    },
    "mobx": {
      "hz": 26.297220477710145,
      "rme": 1.9636966411820969,
      "samples": 47
    },
    "s": {
      "hz": 21.347110432908906,
      "rme": 2.2993178158955847,
      "samples": 39
    }
  },
  "single_atom": {
    "djs": {
      "hz":<PHONE_NUMBER>4383238,
      "rme": 0.5194058791225616,
      "samples": 76
    },
    "mobx": {
      "hz": 4.717643019338226,
      "rme": 2.498165318762352,
      "samples": 16
    },
    "s": {
      "hz": 76.57459554005035,
      "rme": 2.172949230203329,
      "samples": 65
    }
  },
  "waterfall": {
    "djs": {
      "hz": 10.619811066319105,
      "rme": 4.673745467714663,
      "samples": 31
    },
    "mobx": {
      "hz": 7.086785079649039,
      "rme": 4.3536772605938925,
      "samples": 22
    },
    "s": {
      "hz": 52.6638492691589,
      "rme": 3.6274318664631218,
      "samples": 67
    }
  }
}


Add missing commit status checks

Description
Changes proposed in this pull request:

...
...
...

Related issue(s)

/kind enhancement


Go driver missing from master

I've been building go code that imports the go driver as
import (
"github.com/influxdb/influxdb/client"
)
Which takes from the master repo. On the Jan 22, all the code disappeared from that directory and was replaced by what appears to be an incomplete, in development, replacement driver. Unfortunately this breaks any code that depends on it when someone wants to build from a clean development tree or updates their go src directory. I do understand that I could implement vendoring on my own code to snapshot a working version of the old code. I would have normally expected the development work to be carried out in a branch, but as this is not the case, any idea when the new driver will be complete or if there'll be a copy of the old code added to the tree which we can import from instead?
Dj

@codepope -- initial development of 0.9.0 is moving along, we should be finished shortly. If you would like to vendor the code, you can find it in 0.8.8 tag.

Ah, sorry about that, @codepope. This development cycle is a one off unicorn that won't be repeated again. You can find the old client here: https://github.com/influxdb/influxdb/tree/v0.8.8/client
Apologies for causing problems, I know how annoying that can be when one of your dependencies hoses your project.
0.9.0 coming soon!

Thanks @pauldix - would I be right in assuming it's worth vendoring the 0.8.8 code now as the 0.9.0 driver is going to have a different API?

That's right, the 0.9.0 API is making breaking changes.


fix: check-pr-title regex to include "BREAKING CHANGE" and add to PR checks

to be more consistent with semantic release standards
wasn't sure if this should trigger on edited as well, but people can always rerun the check fairly easily

:pencil: Description
:link: Related Issues

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


Feature/graph analysis metrics

This PR adds metrics to GeoGraph by defining a Metric dataclass. A Metric object is then returned when a metric is calculated; each metric calculation function accepts only a GeoGraph, so that you can calculate any metric by calling the get_metric method on any GeoGraph and passing only the name of the metric. The PR also changes Habitats and Components to be sub-classes of GeoGraph, so you can now have recursively nested HabitatGeoGraphs, each with a ComponentGeoGraph, and you can calculate metrics on all of them!
Other features:

A merge_classes function which can be used to avoid some extra lines when combining class labels in the dataframe.
Tested support for string class labels as well as integer ones.
An apply_to_habitats function which allows you to apply a GeoGraph method, like merge_nodes, to every HabitatGeoGraph attached to a GeoGraph in one go, assuming each application uses the same arguments.
Further speedup in add_habitat.
Improved get_graph_components function, which now supports optionally calculating the union polygons for each component (by default this is not done for a GeoGraph, but is done for a HabitatGeoGraph since habitats are often small enough that this is fairly cheap).
Habitat-specific saving and loading.
Implemented __eq__ for GeoGraphs which checks if the two GeoGraphs are isomorphic.
Similarly, you can compare Metric objects with < <= == >= > and they will work as you would expect by comparing the underlying values.
ComponentGeoGraphs support optionally adding an edge between every pair of nodes (each node represents a component in the original graph) with the distance between the node polygons as an edge attribute. This is very slow for any habitat with more than about 100 components, so is disabled by default, but it is necessary for the avg_component_isolation metric.

All points dealt with, time to merge! 🥳


Add sounds and sound manager

Closes mmcs-gd/pvd#13.
Overview
This pull request introduces a new audio management system. It categorizes sounds into SFX or music, potentially supports volume control. The implementation includes an AudioType enum for categorizing sounds and an AudioManager class to manage all sounds within a scene.
Example Usage

Initialization: Create an instance of AudioManager in your Phaser scene, providing a path to your audio assets.

this.audioManager = new AudioManager("../assets", this);

Preloading Sounds: In the scene's preload method, call audioManager.on_preload() to preload all added sounds.

function preload() {
    audioManager.on_preload();
}

Creating Sounds: In the scene's create method, call audioManager.on_create() to create sound instances.

function create() {
    audioManager.on_create();
}

Playing Sounds: Play a sound by its ID whenever needed.

audioManager.play('bullet_impact');

(Optional) Adding Sounds: Add sounds to the AudioManager, specifying the ID, asset paths, loop behavior, type, and base volume. The module already includes some built-in sounds.

audioManager.addSound('explosion', ['sfx/explosion.mp3', 'sfx/explosion.ogg'], false, AudioType.SFX, 0.75);
audioManager.addSound('background_music', ['sfx/music.mp3', 'sfx/music.ogg'], true, AudioType.Music, 0.5);

Awesome 👍


TapGestureRecognizer no longer working after a Translate animation

Hi,
The tap event of the TapGestureRecognizer is no longer fired after the view element has been translated somewhere else (still on the screen).
I rescale and move a view on the screen, but then the tap no longer works.
If I rescale only, the tap still works.
Thanks.
private void OnImageTapped(object sender, EventArgs e)
{
        image.ScaleXTo(60 / image.Width, 500);
        image.ScaleYTo(80 / image.Height, 500);
        image.TranslateTo(-image.X, -image.Y - mainGrid.Y, 500);
}

If I comment the TranslateTo line, then tap still works, but with the translation of the view, tap no longer works.
I tried to reattach the tap gesture programmatically but with no success.

Hi @eli191
This sounds like a product bug - I'd guess that the TapGestureRecognizer is still expecting the view to be in its original location on screen. I'd recommend logging a bug in the engineering repo. Thanks!

Hi,
I have the same problem as described in this issue. I translate an element and the Tapped event cannot be raised after that.
Do you have more information on this? Is this really a bug?


feat: Enhance date validation logic and add tests for timePrecision in DatePickerWidget2

Description
Problem
The DatePickerWidget2 component had incomplete date validation logic, allowing incorrect dates to be selected, and lacked comprehensive testing for time precision.
Root cause
The date validation logic did not accurately account for time precision, and the testing was limited, making it difficult to ensure the component's correctness.
Solution
This PR enhances the date validation logic in DatePickerWidget2 to provide better granularity checks based on the timePrecision property, and adds comprehensive tests to ensure correct date handling across boundaries for different timePrecision settings. This PR handles...

Enhanced date validation logic to accurately account for time precision.
Comprehensive testing to ensure correct date handling for all possible input combinations.

Fixes #37083
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test<EMAIL_ADDRESS>:mag: Cypress test results

[!IMPORTANT]
🟣 🟣 🟣 Your tests are running.
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/11681580775
Commit: d47896f50180232d6c434e5a4b06637ea4499afe
Workflow: PR Automation test suite
Tags: @tag.Datepicker
Spec: ``
Tue, 05 Nov 2024 09:49:15 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[x] No

Summary by CodeRabbit

New Features

Enhanced date validation logic in the DatePickerWidget2 for improved accuracy based on time precision.

Tests

Introduced comprehensive test cases for the isValidDate function, covering various scenarios related to time precision.

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true


rename crds to metallb-crds

Description of changes:
/ is invalid in Metadata name.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve
/lgtm


Core: change mapAttrsFlatten to mapAttrsToList

lib.misc.mapAttrsFlatten is deprecated and creates an evaluation warning. This changes it to use lib.attrsets.mapAttrsToList instead.

Moving this to another branch


getLatitude() and getLongitude() throws exception in main.java

When Localtion lastdata is null (because the Location service is not yet finished with the init process successfully, then
getLatitude() and getLongitude() throws exception in main.java
near line:
@171 and @176
https://github.com/ryanw3bb/unity-native-toolkit/blob/master/Android/app/src/main/java/com/secondfury/nativetoolkit/Main.java

I am also having this issue, would be good to have a fix. Currently throwing it an a try/catch.


Marantz NR1609 stop working after update to the latest Hassio core

Hello,
I'm not sure whether it could be related but yesterday my AV receiver (Marantz NR1609) works correctly, today I got notification about Hassio core update (I run docker version on RPi 3B+) so I made update of the Hassio core to latest version. From that time I was no longer able to use my Marantz NR1609. Only working HTTP request I foud was:
http://<IP_ADDRESS>:8080/goform/formMainZone_MainZoneXmlStatusLite.xml
Actually I running Home Assistant 0.105.5. In the logs I found 403 errors related to the denonavr calls like:
2020-02-19 19:59:18 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2020-02-19 19:59:18 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for shelly which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2020-02-19 19:59:36 WARNING (MainThread) [homeassistant.setup] Setup of recorder is taking over 10 seconds.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to POST command at end point /goform/AppCommand.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] End point /goform/AppCommand.xml on host <IP_ADDRESS> returned malformed XML.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Getting renamed and deleted sources failed.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Receiver sources list empty. Please check if device is powered on.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Missing status information from XML of Main for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to POST command at end point /goform/AppCommand.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] End point /goform/AppCommand.xml on host <IP_ADDRESS> returned malformed XML.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Getting renamed and deleted sources failed.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Receiver sources list empty. Please check if device is powered on.
2020-02-19 19:59:50 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-02-19 19:59:51 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-02-19 19:59:51 ERROR (SyncWorker_6) [DenonAVR] Missing status information from XML of Zone2 for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 19:59:51 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-02-19 19:59:51 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 19:59:51 ERROR (SyncWorker_6) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-02-19 19:59:53 WARNING (MainThread) [homeassistant.components.weather] Setup of weather platform met is taking over 10 seconds.
2020-02-19 20:00:06 ERROR (SyncWorker_14) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-02-19 20:00:06 ERROR (SyncWorker_14) [DenonAVR] Missing status information from XML of Zone2 for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 20:00:06 ERROR (SyncWorker_13) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-02-19 20:00:06 ERROR (SyncWorker_13) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 20:00:06 ERROR (SyncWorker_13) [DenonAVR] Missing status information from XML of Main for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 20:00:17 ERROR (SyncWorker_13) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-02-19 20:00:17 ERROR (SyncWorker_13) [DenonAVR] Missing status information from XML of Zone2 for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 20:00:17 ERROR (SyncWorker_18) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-02-19 20:00:17 ERROR (SyncWorker_18) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 20:00:17 ERROR (SyncWorker_18) [DenonAVR] Missing status information from XML of Main for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 20:00:28 ERROR (SyncWorker_5) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-02-19 20:00:28 ERROR (SyncWorker_5) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-02-19 20:00:28 ERROR (SyncWorker_5) [DenonAVR] Missing status information from XML of Main for: Power, InputFuncSelect, Mute, MasterVolume
2020-02-19 20:00:28 ERROR (SyncWorker_2) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
Any idea what could get wrong? There was no firmware update for my receiver. Only thing which was updated was HASSIO core.

@freakalis could you have a look at this issue please. This might be related to your pull request https://github.com/scarface-4711/denonavr/pull/115

I can confirm that I now have the same problem with Home Assistant 0.105.5 and Marantz NR1609.
I think the problem might be that NR 1609 should be using the "avr-x-2016" path as the admin api located at port 8080 and now it seems to be send requests to port 80.
Don't really know how to setup the extending logging to work correctly with HA. What do i need to add to my config se all that is logged in denonavr.py?
I tried adding this to my config
# Logging
logger:
  default: info
  logs:
    homeassistant.components.denonavr: debug

Got logging to work and found out that receiver type is just avr ant not avr-x-2016.
For other that might want to enable debug heres how i got it to work
# Logging
logger:
  default: info
  logs:
    DenonAVR: debug

2020-02-24 21:56:34 INFO (SyncWorker_0) [DenonAVR] Identified receiver type: 'avr' on port: '80'

Included the changes to home-assistant with pull request https://github.com/home-assistant/core/pull/32578

Hmm today I updated tp Home Assistant 0.107.1 and even if I install latest version of denovavr  via pip3 install denonavr the integration is broken for NR1609.

Hmm that‘s strange...
Could you please run this python script and upload the xml files with the responses from your receiver?

I'm not that strong in running/using python. is there a pip3 install command  for this script?

 I feel like new HASSIO 0.107.1 broke the functionality of denonavr integration. Also asuswrt doesn't work in latest version. Maybe new HASSIO version changed something in API... just some findings from last night. Maybe it helps.

same issue as of 107

Today I tried latest 0.107.5 and still the same issue:
2020-03-22 10:57:52 INFO (SyncWorker_15) [DenonAVR] Identified receiver type: 'avr' on port: '80'
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to POST command at end point /goform/AppCommand.xml
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] End point /goform/AppCommand.xml on host <IP_ADDRESS> returned malformed XML.
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Getting renamed and deleted sources failed.
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Receiver sources list empty. Please check if device is powered on.
2020-03-22 10:57:52 INFO (MainThread) [homeassistant.setup] Setting up onboarding
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-03-22 10:57:52 ERROR (SyncWorker_15) [DenonAVR] Missing status information from XML of Main for: Power, InputFuncSelect, Mute, MasterVolume
2020-03-22 10:57:53 INFO (CoAP) [pyShelly] Update id:376BA4 state:True stateValue:None values:None info_values:{'current_consumption': 40}
2020-03-22 10:57:53 INFO (CoAP) [pyShelly] Update id:376BA4 state:39.75 stateValue:None values:None info_values:None
2020-03-22 10:57:53 INFO (Thread-6) [pyShelly] Get status from 376BA4 Shelly Plug S - 376BA4
2020-03-22 10:57:53 INFO (SyncWorker_15) [DenonAVR] Identified receiver type: 'avr' on port: '80'
2020-03-22 10:57:53 INFO (Thread-6) [pyShelly] Update id:376BA4 state:True stateValue:None values:None info_values:{'current_consumption': 39, 'over_power': False, 'total_consumption': 8681}
2020-03-22 10:57:53 INFO (Thread-6) [pyShelly] Update id:376BA4 state:39.03 stateValue:None values:None info_values:{'total_consumption': 8681}
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to POST command at end point /goform/AppCommand.xml
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] End point /goform/AppCommand.xml on host <IP_ADDRESS> returned malformed XML.
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Getting renamed and deleted sources failed.
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Receiver sources list empty. Please check if device is powered on.
2020-03-22 10:57:53 INFO (MainThread) [homeassistant.setup] Setting up cast
2020-03-22 10:57:53 INFO (MainThread) [homeassistant.setup] Setup of domain cast took 0.0 seconds.
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Missing status information from XML of Zone2 for: Power, InputFuncSelect, Mute, MasterVolume
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXmlStatus.xml
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formMainZone_MainZoneXml.xml
2020-03-22 10:57:53 ERROR (SyncWorker_15) [DenonAVR] Host <IP_ADDRESS> returned HTTP status code 403 to GET request at end point /goform/formZone2_Zone2XmlStatus.xml
2020-03-22 10:57:53 INFO (SyncWorker_15) [homeassistant.components.denonavr.media_player] Denon receiver at host <IP_ADDRESS> initialized

One thing I have found. DEVICEINFO_COMMAPI_PATTERN has 2 values for pattern matching: 201 and 300. My device info request has 301, so probably latest FW update also this. Not sure if it helps to figure out what is wrong.

So finally I managed to fix it. I modified DEVICEINFO_COMMAPI_PATTERN directly in HASSIO components folder and added there additional patter found in my response (HTTP Status Code of /goform/Deviceinfo.xml: 200). The value I have added there was 0301.
So could somebody validate it and fix it, please?

Your change is included in this pull request https://github.com/home-assistant/core/pull/33169


unlink event on nonexistent files after moving file multiple times

Not sure if this is expected behavior.... To reproduce, run chokidar:
var chokidar = require('chokidar');
chokidar.watch('.', {ignoreInitial: true})
.on('all', function(event, path) {
  console.log('file event: ' + event + ',' + path);
});

Open a terminal to the watched directory and run these commands:
touch test
mv test test2
mv test2 test3
mv test3 test4

The output will look like this:
file event: add,test
file event: add,test2
file event: unlink,test
file event: add,test3
file event: unlink,test2
file event: unlink,test
file event: add,test4
file event: unlink,test3
file event: unlink,test
file event: unlink,test2

Notice that unlink is being called again on old moves. Running on node v0.10.36, Ubuntu 14.04.

Yep, reproduced. It's a bug (in fs.watch, but chokidar should be able to do something about it)


Update a single error only

👋  would it make sense to have a similar function to
Iodine.setErrorMessages({ same: `Field must be '[PARAM]'` });

where instead of replacing the whole set, it just replaces one?
probably something simple as
 /**
   * Replace or add a single error message.
   *
   **/
function setErrorMessage(key, message) {
  this.messages[key] = message
}

 setErrorMessage("email",  "Are you sure this is a valid email?")

Usecase: I just want to update one of them https://github.com/mattkingshott/iodine/blob/master/src/iodine.js#L52 but if I replace it, I have to add the rest of them.
I think the only way to achieve this now which is still legit way is Iodine.messages["email"] = "Are you sure this is a valid email?" but maybe you shouldn't be able to do it like in general 😄
Let me know if you think this is useful and I can fire up a PR. Codewise happy to use immutability/destruction if you prefer or browser support permits
Cheers

This looks like a good idea. Feel free to PR the singular setErrorMessage using the approach that feels best. 👍🏻


Generate basins - Add option to ignore isolated generated basins (with no connections to split nodes and/or boundaries)

added a separate function to remove isolated basins which is only performed if the option is set to True. the assign_unassigned_areas_to_basin_areas function is updated to update edges and nodes with a newly assigned basin and basin area


Fixed input button wrapper for transition compatibility

Disables transitions during style modifications
Fixes transparent button colors
Changed img wrapper to span

Thank you @klaslundberg!


How to debug myContext.Database.Migrate()?

When I try to run myContext.Database.Migrate() I get a file not found on the assembly I am working in.
I want to see what is going on because file not found does not make any sense.
I loaded the symbols and set the EFCore nuget packages in debug but it does not step in.
How do I debug from my own testproject into the migrate() method?

@GeertVL We're working on a better story for debugging with symbols. For now, probably the best way to get debugging to work is by cloning the repository and building from source.


REST API

I would like to start a gStore server listening to HTTP request. This would be really useful because other programs could query the database using HTTP. For example people could send a SPARQL query to example.org/sparql/query/ and get a JSON in return with the results. Right now, it only seems possible to query the server through the gclient via a local unix socket...

Yes, the server and client communicate with sockets now. However, http request is already in the TODO list of our work, which is supposed to be done in a month.


instead of having to delete /.cosmos-ui[-dev] all the time

we discussed having separate folders for each network to avoid conflicts (and frustration)

@faboweb @mappum do we still want to implement this?

Yes, I think this will make a lot of sense for when we support multiple
networks. Although it's not as much of a priority right now since we
haven't been breaking things by switching networks
On Dec 11, 2017 1:29 PM, "Jordan Bibla"<EMAIL_ADDRESS>wrote:

@faboweb https://github.com/faboweb @mappum https://github.com/mappum
do we still want to implement this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cosmos/cosmos-ui/issues/95#issuecomment-350813937,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYTzS9oBpymygThE8o-TaeUdLakNoSPks5s_XSWgaJpZM4Qno0I
.

Closing this in favor of opening a new ticket when we implement multiple networks.


TypeError: domNode.elm_event_node_ref is undefined

https://gist.github.com/colinmccabe/56abf3c8a602834401cac1933c38ba7f
The program above results in a TypeError: domNode.elm_event_node_ref is undefined exception on this line: https://github.com/elm-lang/virtual-dom/blob/1.0.0/src/Native/VirtualDom.js#L914
It has something to do with this code that returns either a div or a table from a case and then (pointlessly) feeds the result into Html.App.map.
view : Model -> Html.Html Msg
view model =
  let html =
    case model of
      [] ->
        Html.div [] [ Html.text "No items, displaying div with text" ]

      xs ->
        viewTable xs
  in
    Html.App.map (\_ -> NoOp) html

viewTable : Model -> Html.Html a
viewTable model =
  Html.table ...

Removing the case so that html is always a table or removing Html.App.map makes the exception go away.
Interestingly, virtual-dom successfully renders the table on the first tick, and the exception occurs on the second tick.

If you get rid of your elm-stuff/ and rebuild, you should see that it works now. Thanks for the report!

Hi,
I am sorry, but something along these lines still breaks for me in IE 11 in this line: https://github.com/elm-lang/virtual-dom/blob/1.1.1/src/Native/VirtualDom.js#L1306 (problem being an undefined elm_event_node_ref). A minimal breaking example can be found here: https://gist.github.com/noobymatze/9b80606ccc69ad05e9b368b31532cc03
Typing any two letters into the rendered input element will result in the mentioned exception and removing App.map and changing the resulting type to Html Msg will resolve that.
I am not sure about anything below IE 11, but IE Edge, Chrome, Firefox and even Safari 5.1.7 (on Windows) and Opera seem all to be working fine.

Please open a new issue about this!


tests: add render_template unit tests

What this PR does / why we need it:

It adds unit tests for the render_template function. These test cases cover all cases for non-mandatory fields in the VM template.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes # CNV-35424
Special notes for your reviewer:
Release note:

None

/approve
/lgtm


logging: use dash on config entry

We don't use underscores in config entries: a dash should rather be
used.

@bkueng ping


custom-property-pattern not compat with taiga vars

Into stylelint config contains rule custom-property-pattern, that dictate use only kebab case:
'custom-property-pattern': [
			'^([a-z][a-z0-9]*)(-[a-z0-9]+)*$',
			{
				message: 'Expected custom property name to be kebab-case',
			},
		],

But taiga ui contains vars like --tui-text_body-m, obviously not match that pattern,
may custom-property-pattern needs to reconfigure for allowing all taiga vars?

my fault, taige vars only in kebab, underscores only in calss names
https://taiga-ui.dev/next/typography


Does the groupBy doesn't works correctly with native orderBy filter?

Looks like when I trying to use native angular orderBy filter along with the groupBy filter the first doesn't  affect the result:
ng-repeat="(key, value) in collection | orderBy: '-OccurredOnDate' | groupBy: groupBy"
Any thoughts?
Thanks in advance

Hi @tavai89
PTAL on issue-26, and let me know if there's any questions.
Thanks.

Hi @a8m
Firstly, thank you a lot for your response. I have found the solution for my issue here:
https://github.com/a8m/angular-filter/issues/57
In the jsbin you have posted:
http://jsbin.com/hopowowodu/1/edit?html,js,output
The solution was:
ng-repeat="group in collection | groupBy: groupBy | toArray:true | orderBy: '-$key'"
since I wanted to order the groups, not the items in groups.
Thank you

Performance of toArray:true solution is bad with angular 1.4.8.
Do you have another/better solution in 2017 for me?


Added camel-ftp component integration test

Added a camel ftp integration test using testcontainers (used FixedHostPortGenericContainer and delfer/alpine-ftp-server image). For classloading reason, the container is started from the camel-ftp-test bundle and not from the RBC bundle.
In the test the file is created on the container and then copied to the target folder using camel route (from ftp to a file)

Will move it to the apache repository, so let's close it.


Can't get Option directly

I forced to do something like this:
let value: Option<_> = {
    if proto.has_value() {
        Some(proto.get_value())
    } else {
        None
    }
}

When wanted something like this:
let value: Option<_> = proto.get_option_value();

I'm hesitant to add more accessors

because generated code size matter
field in proto2 may have default values, get_value returns the default value (not just zero) when the value is not set
generally, people tend to switch to syntax = "proto3" nowadays (see below)

Also, backward compatibility is an issue.
If you have specific suggestions, go ahead, otherwise, I can suggest:

use syntax = "proto3", it makes all fields public
use expose_fields codegen option which makes fields public even when syntax = "proto2"


Feature: Show note back-links

This change adds back-links (links, which other notes have to the selected note in Joplin) to the graph UI.
To have an effect, in Graph UI -> Max degree of separation -> value needs to be set > 0.

Related: https://github.com/treymo/joplin-link-graph/issues/51

Force-pushed branch due to v1.1.5 changes. This single commit also makes the backlinks feature opt-in and create a corresponding menu entry.

Thanks so much for the contribution! You should definitely promote it on the Joplin forums once we get this released!
Sorry for refactoring stuff and causing some conflicts, you got me looking at the code again and found a few optimizations to speed the plugin up a little.

Thank you for creating this plugin! It's a staple in my plugins list and imo the best performing graph plugin.

I am just thinking, if we treat "show back-links" and "show link arrows" as separate menu entries. The arrows feature might be interesting as well when showing the complete graph with degree 0.

treat "show back-links" and "show link arrows" as separate menu entries

I like this idea! it can be done as a follow-up PR if we want.
Right now I want to figure out what's going on with #49, I can't reproduce this on my Mac or Linux machines

Right now I want to figure out what's going on with #49, I can't reproduce this on my Mac or Linux machines

I encountered a similar issue with the other graph plugin! But it never happened with this one.
Joplin v2.7.6 included some sort of API throttling, which had been reverted with 2.7.7. But this does not explain errors with 2.6.
Hard to say without some concrete case to reproduce... though hardware performance should not matter. I have a couple thousand notes running with Joplin on a virtual machine.


Update mix.lock to reflect the updated jose dependency

Mix.lock also needs to be updated for jose 1.6.0.

I'll rebase once #103 is merged so the build passes.

:+1:

@hassox Rebased and green.


[WIP] [F#] add failing twilio test

Add a failing test for https://github.com/Azure/azure-webjobs-sdk-script/issues/819

@lindydonna @fabiocav @christopheranderson Can you enable full CI on this please? Thanks

OK, the test is failing, that's good in this context.  I'll close this and we'll add the (hopefully passing) test to #893

Microsoft.Azure.WebJobs.Script.Tests.CSharpEndToEndTests.MobileTables aso failed in CI, but that appears unrelated, just a CI glitch

That test is known to fail every once in a while. It's on our radar to get it stable.


Salt-cloud feedback

After bootstrapping, on the discovery step, report the number of pending salt-cloud jobs, and any instances that failed to deploy.
Actual error messages cannot be fetched due to a failure in salt (see https://bugzilla.suse.com/show_bug.cgi?id=1087365 ), so we can only point at the logs for now.
BONUS: setup/discovery was performing a lot of work that's only used on JSON requests, and ignored on HTML requests; this caused measurable lag in rendering of setup/discovery.

 Salt-cloud feedback

after fixing travis I think it's mergable!

@MaximilianMeister can I ignore the codeclimate JS issues? I really don't want to make some even more complicated function to handle show/hide functions.

can I ignore the codeclimate JS issues?

Yes.

Hrm... I don't see where anything I added interferes with the "Proceed anyway" button... @MaximilianMeister , do you have any suggestions?

Hmm... I'm seeing the same failures on master branch, so I don't think it's me.

@bear454 I believe those issues with master were fixed, a rebase should let them pass...

@kiall... no, it's in https://github.com/kubic-project/velum/pull/505

Rebased on master, now that #505 is merged in.

Just to be clear; this needs to be merged to master, then re-submitted for release-3.0, then backported to release-2.1.

Tests pass now and @MaximilianMeister said it was mergeable and @vitoravelino that we could ignore the codeclimate, so merging..

@bear454 : Please create the backport PRs.


KAFKA-8238: Adding Number of messages/bytes read

This PR includes changes to count the number of messages/bytes read while loading offsets from TopicPartition.

@cmccabe I got all checks failed with error: No test results found.
Is it because of no test cases added?

looks like a Jenkins internal error:
07:08:39 /tmp/jenkins9083660932260514677.sh: line 4: /home/jenkins/tools/gradle/4.10.2/bin/gradle: No such file or directory

retest this please

retest this please

@cmccabe I re ran the tests. They have worked this time around. Thanks!

Hey there @vamossagar12, are you still working on this PR?

Hey there @vamossagar12, are you still working on this PR?

hey @stanislavkozlovski  I think I had made some final changes but couldn't get past the final review(I should have probably followed up again) . I see merge conflicts now in the file where I made the change. I can resolve them if you feel this can be reviewed.

Yeah, that'd be awesome!

@stanislavkozlovski , unfortunately the older branch of mine got corrupted. I have created a new PR here: https://github.com/apache/kafka/pull/9292

close this PR due to #9292


ionic2 cache busting and base href

I am wanting to use ionic to build an app for android, ios, and the browser so that there is one repo and easy maintenance. There is a couple of things that I will need to accomplish this and they both are build step features.
Does ionic 2 support cache busting for the browser?
Does ionic 2 support setting the base href for the browser also?
If no to any of the two above are they planned. For example angular cli supports both of these and works wonderfully.
If not I may just have to add an extra build step to modify the index.html once it finishes the ionic build to accomplish these two features myself although it will add development time.
Thanks!

Hello, thanks for using Ionic! Ionic 2 will work with cache busting and base href. These are standard features found on the web platform and will work with any web project (react, Angular 2, Ionic 2 etc etc). To add a base href you can add a base html tag to your index.html. For cache busting you can use any of the standard cache busting techniques, some of which are described here. Since this is more of a support question than a bug with ionic I am going to close this issue for now. Thanks again!

My question is specific to the build step not the features themselves.
Angular cli adds the versioning to the filenames directly in the build step.
I need to know if ionic implements a build step that adds a hash to the filenames not if I were to go in there and edit it myself. This needs to be automatic.
angular cli allows you to build the app with different base hrefs. I need to know if that is possible with ionic without touching the src Index.html.
I know how to implement these things but I believe these should be apart of the core build steps included with ionic cli.
Thanks

@jasekiw Hello, sorry for the misunderstanding! Cache busting by adding a hash to filenames is definitely something we can look into implementing. Also, handling of base hrefs is something we could also look into. Again, very sorry for misunderstanding the issue and closing it early. Thanks!

service worker generators should help in cache-busting. sometime back i tried sw-precache and it was working fine for cache busting.

@jasekiw,
At this time we have no plans of implementing that. Maybe in the future. Closing for now.
Thanks,
Dan

@danbucholtz I am running into an issue loading old js files with running Ionic 2 as a desktop app (which I know you are working on additional support for) and cache busting would help.

Since you guys are now promoting the PWA support for ionic, I think that the cache busting is one of the essential parts that is missing during the build process. Without a way to version your assets, the browser version of the app is useless, unless you tinker into the build process and modify it, so it can version the assets.

Also running into this issue.

Woo woo! Got cache busting working in ionic 2!!!
http://stackoverflow.com/questions/43415537/ionic-2-change-name-of-main-js-webpack-js-output-filename-setting/43429378#43429378

@jgw96 @danbucholtz there is an example @haydenbr made that should steer you guys on how you would do it for a quick feature release. Now that you guys are releasing desktop compatible components, now would be a good time to prioritize cache busting.

We're open to a well-tested PR.
Thanks,
Dan

Can anyone speak for this npm package? https://www.npmjs.com/package/ionic-cache-buster
Honestly a little afraid of hacking on the webpack configuration :worried:

@haydenbr Webpack Manifest Plugin does not generate manifes.json file with latest version of app-scripts.

Another vote for this feature. I'm deploying as an App but also as a PWA; hosted in AWS on S3 behind cloudfront with custom domain and ssl cert.
Without cache busting I will need to manually cache bust the js and css with one of the workarounds out there or manually on each release...

+1

@dalibor983 We're working on upgrading to ionic 3 and are running into this issue. If I find a fix, I will post a solution.

solution to problem reported by @dalibor983:
http://stackoverflow.com/questions/43415537/ionic-2-change-name-of-main-js-webpack-js-output-filename-setting/43429378#43429378
It's again a bit hackish, but it works for running locally and for production. We are in the process of updated our app to ionic 3, and this is probably the solve we will use in production. I think my new weekend project will be a PR for a non-hackish solution for cache busting.

I insist on the implementation of this feature. I currently work on a project that has lazy-loading implemented, which we have problems with the cache of the Chrome browser. The browser keeps the js in memory until it is manually deleted with SHIFT + F5 or with deleting the temp memory.

I don't think this is something that ionic or ionic scripts should tackle.
I spent some time to scratch the surface of Service Workers to understand how caching actually works. To me hashing doesn't solve this issue, since you also cache your index.html if you go full offline-first.
Therefore I used the Service Worker API to implemented a way to tell the user that there is a newer version available, if you're going for that instant page load experience.
You can also have a little slower experience, that checks your network first (more in the article below).
Then after it worked, I wrote the steps down in https://medium.com/@zwacky/pwa-create-a-new-update-available-notification-using-service-workers-18be9168d717.
It's currently unlisted and probably still WIP.

I am in the exact same boat as @acahinton, deploying a lazy load AOT compiled PWA to AWS CloudFront with SSL. Most devices don't have a ton of caching issues with the TTL set to 1 day but some definitely have caching issues (Android) and I'd like to turn the cache up further and force a reload only when necessary.
Without lazy loading enabled it is possible to work around this with just webpack but as soon as you start working with lazy loading the whole process breaks down and as referenced above there doesn't seem to be any workaround. Please revisit!

Same problem here. PWA + AOT = 💩 without caching. Really hard to debug and clients get crazy as they don't have the same versions as us. :(

There is an ionic twitter pwa project that seems to handle all we want really well:
https://github.com/shprink/ionic-angular-twitter-pwa
If you look in the build script
https://github.com/shprink/ionic-angular-twitter-pwa/blob/master/scripts/build.sh
# Generate our SW manifest
ngu-sw-manifest --out $BUILDFOLDER"ngsw-manifest.json" \
--dist $BUILDFOLDER

He is generating a ngsw-manifest.json where there are hashes for all files so the service worker knows the latest version. It seems he uses angular service worker toolkit and I have no experience with it yet.
Could be interesting to find out whats going on there because lazy loading is active and cache busting seems to work as far as I checked.

I'm really stuck on service workers being a viable solution for anyone who has to support all browsers (most notably mobile IOS). Mobile IOS doesn't support notifications, badges, etc due to service workers but I'm still trying to roll out the same functionality and have the cache busting work so service workers as a cache busting mechanism is a no go until Apple ups their game.
In the meantime, I am using a Webpack build, so I adapted the solution @haydenbr posted into my first Webpack plugin and it is working very well for me. As long as you're on a Webpack build it should be adaptable. The one thing you may need to tweak is which index files get included.
A quick explanation:

Only impacts production builds
Webpack now outputs files as including the chunkhash
After the build, your index file is updated so the original .js includes are replaced with the newly built files
I included the code for a node script cacheBustCss.js, which I run from BitBucket pipelines after the build and uglification because webpack hasn't generated the assets. Simply call node ./scripts/build/cacheBustCss.js after the prod build is complete.

I hope this helps someone else and hopefully people can make it better!
package.json:
"config": {
    "ionic_bundler": "webpack",
    "ionic_webpack": "./webpack.config.js",
    ...
  }

webpack.config.js:
const webpackConfig = require('@ionic/app-scripts/config/webpack.config');
const fs = require('fs');
const util = require('./scripts/build/util');

if (process.env.IONIC_ENV === 'prod') {
  webpackConfig.output.filename = '[name].[chunkhash].js';
  webpackConfig.plugins.push(
    new IndexFileUpdaterPlugin()
  );
}

function IndexFileUpdaterPlugin(options) { }

IndexFileUpdaterPlugin.prototype.apply = function(compiler) {
  compiler.plugin('done', function(stats) {
    let html = util.getIndexHtml();
    const fileType = 'js';
    html = util.appendOrOverwriteHashJsValues(html, 'main', util.getHashForFile('main', fileType));
    html = util.appendOrOverwriteHashJsValues(html, 'vendor', util.getHashForFile('vendor', fileType));
    util.writeIndexHtml(html);
  });
};

cacheBustCss.js:
const fs = require('fs');
const util = require('./util');

function doCssCacheBusting() {
  util.handleCssFileHashing();
  let html = util.getIndexHtml();
  const fileType = 'css';
  html = util.appendOrOverwriteHashCssValues(html, 'main', util.getHashForFile('main', fileType));
  util.writeIndexHtml(html);
}

doCssCacheBusting();

@nalmgren You saved my day. I've been looking around for the solution, but yours is perfect so far. Support lazy load as well.
Thanks !!!

This is what I'm using these days. I'm not using lazy loading though so I don't know whether or not it will support your needs in that case, but perhaps it could be extended to meet your needs.
https://gist.github.com/haydenbr/7df417a8678efc404c820c61b6ffdd24

@haydenbr
Thanks for sharing. Your solutions is great.
It's look like after ionic generate the result then only add the hashing into the file name.
This work without lazy load.

I have made small changes to the solution provided by @nalmgren , to work with Ionic 3.
Confirmed that it works with lazy loading. Here are all the steps:

Created your_app_root/webpack.config.js

const webpackConfig = require('@ionic/app-scripts/config/webpack.config');
const fs = require('fs');
const util = require('./scripts/build/util');

if (process.env.IONIC_ENV === 'prod') {
  webpackConfig.prod.output.filename = '[name].[chunkhash].js';
  webpackConfig.prod.plugins.push(
    new IndexFileUpdaterPlugin()
  );
}

function IndexFileUpdaterPlugin(options) { }

IndexFileUpdaterPlugin.prototype.apply = function(compiler) {
  compiler.plugin('done', function(stats) {
    let html = util.getIndexHtml();
    const fileType = 'js';
    html = util.appendOrOverwriteHashJsValues(html, 'main', util.getHashForFile('main', fileType));
    html = util.appendOrOverwriteHashJsValues(html, 'vendor', util.getHashForFile('vendor', fileType));
    util.writeIndexHtml(html);
  });
};

In you app root:

npm i md5 --save-dev

Create your_app_root/scripts/build folder and add the following files:

util.js
const md5 = require('md5');
const fs = require('fs');

const util = module.exports = {}

const wwwDirPath = 'www';
const buildDirPath = 'www/build';

/* This could likely be pulled from Webpack stats, but this'll do for now ... */
util.getHashForFile = function(fileName, fileType) {
  const result = fs.readdirSync(buildDirPath).filter(file => {
    return file.startsWith(fileName) && file.endsWith(fileType) && (file.indexOf('map') === -1)
  })[0];
  return result.split('.')[1];
}

util.appendOrOverwriteHashJsValues = function(indexString, chunkName, hash) {
  let match = '(<script src="build/' + chunkName + '.*.js"></script>)';
  let regexp = indexString.match(match)[0];
  const replace = '<script src="build/' + chunkName + '.' + hash + '.js"></script>';
  return indexString.replace(regexp, replace);
}

util.appendOrOverwriteHashCssValues = function(indexString, chunkName, hash) {
  let match = '(<link href="build/' + chunkName + '.*.css" rel="stylesheet">)';
  let regexp = indexString.match(match)[0];
  const replace = '<link href="build/' + chunkName + '.' + hash + '.css" rel="stylesheet">';
  return indexString.replace(regexp, replace);
}

util.handleCssFileHashing = function() {
  const md5 = getMD5ForMainCss();
  fs.renameSync(buildDir('main.css'), buildDir('main.' + md5 + '.css'));
}

util.getIndexHtml = function() {
  return fs.readFileSync(wwwDir('index.html')).toString();
}

util.writeIndexHtml = function(htmlString) {
  fs.writeFileSync(wwwDir('index.html'), htmlString);
}

getMD5ForMainCss = function() {
  const fileString = fs.readFileSync(buildDir('main.css')).toString();
  return md5(fileString);
}

buildDir = function(file) {
  return buildDirPath + '/' + file;
}

wwwDir = function(file) {
  return wwwDirPath + '/' + file;
}

cacheBustCss.js
const fs = require('fs');
const util = require('./util');

function doCssCacheBusting() {
  util.handleCssFileHashing();
  let html = util.getIndexHtml();
  const fileType = 'css';
  html = util.appendOrOverwriteHashCssValues(html, 'main', util.getHashForFile('main', fileType));
  util.writeIndexHtml(html);
}

doCssCacheBusting();

Then to build my PWA for production, in my I execute those commands in my app_root:
npm run build --prod --base-href /new/ --build-optimizer
node scripts/build/cacheBustCss.js

That's it

I extended @haydenbr solution to work with lazy loading:
https://gist.github.com/meirmsn/9b37d6c500654b9a487e0c0a72583ef2
Notes:

This solution adds hashes to: main.js, main.css, polyfills.js, vendor.js, as well as the chunks generated for lazy loading
I had similar setup as @nalmgren and @acahinton: ionic app hosted on S3 behind AWS CloudFront
I don't think it works with service workers (haven't tried, but highly doubt it would work)

So yes, this adds yet one more to the list of solutions :s, so hopefully the Ionic team brings a standard one in the near future :)

@danbucholtz It's been a long time since this issue closed.
Do Ionic Team still not having a plan to implement cache buster as a part of build process?
I'm waiting for this issue to be re-opened :)

Simplest solution that I can achieve:
https://forum.ionicframework.com/t/bundled-files-and-cache-busting-lazy-loading/109114/9

I've just moved my ionic project to ngx-rocket
Leaning on Angular Cli's build system would solve many problems (including this issue)

Ionic 4 will use Angular CLI to do all the work.

Does anyone know if this works with the latest version of Ionic?


python38Packages.authlib: 0.15.3 -> 0.15.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.authlib is: "The ultimate Python library in building OAuth and OpenID Connect servers. JWS,JWE,JWK,JWA,JWT included."
meta.homepage for python38Packages.authlib is: "https://github.com/lepture/authlib"
meta.changelog for python38Packages.authlib is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 0.15.4 with grep in /nix/store/00qlyndq599mipkk4p1ba71x5j3dh5iz-python3.8-authlib-0.15.4

found 0.15.4 in filename of file in /nix/store/00qlyndq599mipkk4p1ba71x5j3dh5iz-python3.8-authlib-0.15.4

directory tree listing: https://gist.github.com/37aa68b8b611eeb23cf63816dc619c5a

du listing: https://gist.github.com/ec913c2126ceeba4d69d04839a2465e5

Rebuild report (if merged into master) (click to expand)

44 total rebuild path(s)

12 package rebuild(s)

12 x86_64-linux rebuild(s)
11 i686-linux rebuild(s)
10 x86_64-darwin rebuild(s)
11 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
home-assistant
matrix-synapse
matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
powerdns-admin
python38Packages.authlib
python38Packages.pylitterbot
python38Packages.pypoint
python38Packages.simple-salesforce
python39Packages.authlib
python39Packages.pylitterbot
python39Packages.pypoint
python39Packages.simple-salesforce

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/00qlyndq599mipkk4p1ba71x5j3dh5iz-python3.8-authlib-0.15.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python38Packages.authlib https://github.com/r-ryantm/nixpkgs/archive/87bfa2b709b80d6ebbadc1152859e49cb2be492a.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/00qlyndq599mipkk4p1ba71x5j3dh5iz-python3.8-authlib-0.15.4
ls -la /nix/store/00qlyndq599mipkk4p1ba71x5j3dh5iz-python3.8-authlib-0.15.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

12 packages built:

home-assistant
matrix-synapse
matrix-synapse-plugins.matrix-synapse-mjolnir-antispam
powerdns-admin
python38Packages.authlib
python38Packages.pylitterbot
python38Packages.pypoint
python38Packages.simple-salesforce
python39Packages.authlib
python39Packages.pylitterbot
python39Packages.pypoint
python39Packages.simple-salesforce

Maintainer pings
cc @flokli for testing.

Contains a security fix, can we backport this?


Update BUILD to include Uniswap LP token

Allow voting with Uniswap pool tokens.

Closing this PR for now, feel free to open it again once you've done the changes.


Add ability to dim backlight

First: this project is awesome! I couldn't find any way to change the default rainbow setting on my G531GT until I found this project.
Could you add support for dimming the backlight?

Hi @mkreisel thanks for the issue report!
Backlight is normally controlled by the kernel, and you shouldn't need rogauracore to change the brightness.  This project just aims to support setting the keyboard colours.  Two caveats.  One: for me, rogauracore breaks backlight control until I reboot the machine (or restore from suspend).  Two: you can approximate dimming by scaling down the RGB colour you give rogauracore (like setting single_static to 990000 instead of ff0000).

i am getting this error


V0.11.13 compat

based off of @thejinx0r branch. it just needed a one-liner for @mafintosh truncate addition. the rest was just a fix for the incorrect use of HandleScope. it works for me, with both 0.10 and 0.11... though, I didn't actually test everything... just a few quick mounts to make sure it was working...
all the best

Merge please!

@bcle if you are up for it you can add me as a maintainer on this repo/npm-package and i'll maintain it? :)

+1 torrent-mount won't work on io.js without this... !!!

@heavyk since this project seems to be dead i've started writing alternate fuse-bindings, https://github.com/mafintosh/fuse-bindings. i'm gonna port torrent-mount to use them as well

Sorry for the long delay, guys. I added mafintosh as collaborator and would welcome others.

Bumped version and npm published'

Playing the fork card always gets results. :)
Thanks!


Persistent data of many aspects of audio player Musicplayer.html

The currentTime thing isn't working as intended, need to fix. Not sure why just yet


Use operators for set and set_mut

@eddyb Suggested | for set and << for set_mut.

Also + and +=, but we can't overload the latter yet ;(.

I don't think adding operators for this will make it more intuitive to use.

We could use operators to generate tuples, and then call .set at the end.
For example:
button.set_mut(Label("click me") | Position([0, 0]));