[BUG] Scratchpad wont hide on multi-monitor setup

Pyprland version

python3.11-pyprland-2.0.8/

Describe the bug

I use a multi-monitor setup, the 2nd display connects over HDMI internally attached to USB-C (Framework laptop w/ HDMI adapter card).
When I boot up my system with the HDMI cable attached, my scratchpads won't hide. They loose focus and can't be interacted with, but they remain on screen.

To Reproduce

Steps to reproduce the behavior:

Boot up laptop with HDMI cable connected,
Login via SDDM, which starts up hyprland which starts pypr
Open my kitty scratchpad
Hide my kitty scratchpad -- ISSUE
Open my kitty scratchpad, kitty works as expected
Hide my kitty scratchpad -- ISSUE

Steps 4 - 6 can be repeated indefinitely.
If HDMI cable is connected after step 2, everything works as expected.

I mostly use multi-monitors and don't have any problem.
Can you share your config and logs ?

I've updated to
❯ pypr version
2.0.8-16-gcc7def9

and can't reproduce anymore.
Closing this request as fixed.

Re-opening since the issue is still happening.

[WARN] [12:46:32.802505700] Orphaned wlr_surface 39f1130 in setPreferredScaleForSurface
[WARN] [12:46:32.802530738] Orphaned wlr_surface 39f1130 in setPreferredTransformForSurface
[LOG] [12:46:32.812908966] New Gamma event at 7ffef1d5cfc0
[LOG] [12:46:32.813516368] New Gamma event at 7ffef1d5cfc0
[LOG] [12:46:32.886605743] Registered signal for owner 39f3ee0: 39f3a28 -> 39f4318 (owner: layerSurface)
[LOG] [12:46:32.886709376] Registered signal for owner 39f3ee0: 39f3c08 -> 39f41e0 (owner: layerSurface)
[LOG] [12:46:32.886729666] Registered signal for owner 39f3ee0: 39f3a38 -> 39f4248 (owner: layerSurface)
[LOG] [12:46:32.886747187] Registered signal for owner 39f3ee0: 39f3a48 -> 39f42b0 (owner: layerSurface)
[LOG] [12:46:32.886767605] Registered signal for owner 39a2840: 39f3c18 -> 39a29c0 (owner: CPopup Head)
[LOG] [12:46:32.886785192] LayerSurface 39f3b40 (namespace waybar layer 1) created on monitor DP-4
[ERR] [12:46:32.886845316] BUG THIS: No CWLSurface for surface in damageSurface!!!
[WARN] [12:46:32.886874263] Orphaned wlr_surface 39f3750 in setPreferredScaleForSurface
[WARN] [12:46:32.886892997] Orphaned wlr_surface 39f3750 in setPreferredTransformForSurface
[LOG] [12:46:32.993911727] LayerSurface 39f3b40 mapped
[LOG] [12:46:32.993999913] Registered signal for owner 39f40c0: 39f3a68 -> 39f4108 (owner: CWLSurface)
[LOG] [12:46:32.994021433] Registered signal for owner 39f40c0: 39f3a28 -> 39f4170 (owner: CWLSurface)
[LOG] [12:46:32.994037233] CWLSurface 39f40c0 called init()
[LOG] [12:46:33.048167518] LayerSurface 39f1ac0 mapped
[LOG] [12:46:33.048296091] Registered signal for owner 39f1e50: 39f1448 -> 39f1e98 (owner: CWLSurface)
[LOG] [12:46:33.048319258] Registered signal for owner 39f1e50: 39f1408 -> 39f1f00 (owner: CWLSurface)
[LOG] [12:46:33.048333814] CWLSurface 39f1e50 called init()
[LOG] [12:46:33.459975208] OutputMgr Applied/Tested.
[LOG] [12:46:33.461359149] Applying monitor rule for eDP-1
[LOG] [12:46:33.461415670] Monitor eDP-1: Applying highest mode<EMAIL_ADDRESS>[LOG] [12:46:33.461443086] output eDP-1 succeeded basic test on format DRM_FORMAT_XRGB8888
[LOG] [12:46:33.481635935] arrangeMonitors: 2 to arrange
[LOG] [12:46:33.481713111] arrangeMonitors: eDP-1 explicit [792.00, 2160.00]
[LOG] [12:46:33.481756931] arrangeMonitors: DP-4 explicit [0.00, 0.00]
[LOG] [12:46:33.481778739] arrangeMonitors: eDP-1 xwayland [0, 0.00]
[LOG] [12:46:33.481798830] arrangeMonitors: DP-4 xwayland [2256, 0.00]
[LOG] [12:46:33.481846746] Monitor eDP-1 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 0, pos 792x2160, 10b 0
[LOG] [12:46:33.481912685] Applying monitor rule for DP-4
[LOG] [12:46:33.483952687] Monitor DP-4: Applying highest mode<EMAIL_ADDRESS>[LOG] [12:46:33.484006604] output DP-4 succeeded basic test on format DRM_FORMAT_XRGB8888
[LOG] [12:46:33.494789435] arrangeMonitors: 2 to arrange
[LOG] [12:46:33.494853648] arrangeMonitors: eDP-1 explicit [792.00, 2160.00]
[LOG] [12:46:33.494891546] arrangeMonitors: DP-4 explicit [0.00, 0.00]
[LOG] [12:46:33.494913010] arrangeMonitors: eDP-1 xwayland [0, 0.00]
[LOG] [12:46:33.494932429] arrangeMonitors: DP-4 xwayland [2256, 0.00]
[LOG] [12:46:33.494959008] Monitor DP-4 data dump: res<EMAIL_ADDRESS>scale 1.00, transform 0, pos 0x0, 10b 0
[wlr] [backend/drm/drm.c:826] connector DP-4: Failed to page-flip output: a page-flip is already pending```

When you say they can't be interacted with, you mean you can't focus them back ?
I suspect this is caused by Hyprland... I don't see any anomaly in the pyprland log...
What happens if you switch workspace and then return, is the window still visible ?
It would also be interesting to test commands "manually" to see if hyprland reacts, eg:
if you have something in the "ipc" log of pyprland such as:
dispatch movewindowpixel exact 499 151,address:0x3094440

you can just type
hyprctl dispatch movewindowpixel exact 499 151,address:0x3094440

such log:
[DEBUG] ipc :: dispatch ['moveworkspacetomonitor special:scratch_kitty DP-4', 'movetoworkspacesilent 4,address:0x3094440', 'alterzorder top,address:0x3094440'] :: ipc.py:114

means there are multiple commands issued, all starting with "dispatch".
By testing it manually you'll figure if it's a communication (pyprland?) issue or an hyprland issue...
Also double check the client address is correct even though I doubt this can be the problem.

Another issue I just realized is that the scratchpad that stays open also get pulled to the foreground when opening other scratchpads on the same monitor, irregardless of the workspace they are in.
If the focus is on a different monitor, opening any other scratchpad doesn't influence the stuck scratchpad.

When you say they can't be interacted with, you mean you can't focus them back ?

Happy to clarify: Since the stuck scratchpad is showing kitty, I can see by the ZSH cursor if the window is focused or not.
In the state where the scratchpad is mistakenly shown, the ZSH cursor is displayed the same as not having the keyboard cursor. I can see the window, but I can interact with it. Neither typing nor clicking events are forwarded to the window.

See the rectangular box as a cursor in this screenshot with ZSH not having a focus.
I hope that helps, happy to answer more questions or try to explain differently.

What happens if you switch workspace and then return, is the window still visible ?

Yes. My current workaround is to essentially park the scratchpad on an empty workspace by

Switching to an empty workspace
Open the scratchpad
Close the scratchpad
Continue my work on other workspaces. Whenever I switch to the workspace I used for parking, the scratchpad is displayed there but can only be interacted with by opening it again.

Opening the scratchpad on any workspace other than the one I parked it on will move the window from the parked workspace to the current workspace.

Also double check the client address is correct even though I doubt this can be the problem.

Yes address is correct.

By testing it manually you'll figure if it's a communication (pyprland?) issue or an hyprland issue...

I looked through the pyprland debug log and the command
hyprctl dispatch movetoworkspacesilent special:scratch_kitty,address:$ID

makes the window loose focus without being removed from the workspace.
I assume this is pointing to a hyprland bug?

Hm... as you describe it, it looks like so... but I'm very surprised you see such issue and nobody else, must be something in your configuration...
If you open any window, check its address, then issue such command:
hyprctl dispatch movetoworkspacesilent special:XXX,address:$ADDRESS
will the window disappear or just lose focus ?
Scratchpads indeed rely on the fact that those special workspaces aren't visible, so they are used to "hide" clients.
Do you have a rule which makes all the special workspaces visible or something like this ?

must be something in your configuration

Maybe

If you open any window, check its address, then issue such command:
hyprctl dispatch movetoworkspacesilent special:XXX,address:$ADDRESS
will the window disappear or just lose focus ?

Yes that's exactly how I tested. It works as expected and than randomly breaks after a suspend/hibernate cycle until I restart (by logging out) my desktop apps.

Do you have a rule which makes all the special workspaces visible or something like this ?
No. From my understanding this would also make the behaviour consistent and not randomly triggered at some point in time.

So if you can reproduce the same issue without involving pyprland I guess the bug for Hyprland is the solution... may we close this issue ?

off topic @dantefromhell : I pushed some experimental (absolutely untested) change in the monitors plugin, dropping support for wlr-randr... now it requires Hyprland >= 0.37.
Feedback is very welcome, I'll test it later (at the moment I have a single screen available...)

Thank you for creating this suite of hyprland utility!
To OP: You're not alone! I have this exact issue.
Please see the following video:
https://github.com/hyprland-community/pyprland/assets/57322459/ef09858b-f58e-4e1c-8faa-ca1bb7325ec0
Note:

It happens when I switch between monitor setups, i.e., from laptop monitor to external monitor + laptop monitor
Super+N is my keybinding to toggle the scratchpad; Basically, with this issue, Super+N is toggling between the "layers" instead of toggling the focus
Running hyprctl reload didn't fix the issue

$ pypr version
2.0.8-18-g2aa3716

$ hyprctl version
Hyprland, built from branch HEAD at commit c5e28ebcfe00a510922779b2c568cfa52a317445  (props: bump ver 0.37.1).
Date: Sat Mar 16 14:51:49 2024
Tag: v0.37.1

flags: (if any)

Thank you!

Super+N is my keybinding to toggle the scratchpad; Basically, with this issue, Super+N is toggling between the "layers" instead of toggling the focus

Without any log or configuration it's not very useful... can you provide more information about it ? Is it easy to reproduce the problem on your side ?

Any update on this issue ?

@fdev31 Thank you for checking in on this issue. I appreciate it. This issue remains whenever I switch monitor setups but I have yet to write a bug report. I'll try to do so soon. Thank you again!

off topic @dantefromhell

Sorry @fdev31 haven't had the time to retest. Should we take this testing to another place to keep this issue on topic?
Is it worth re-testing the original issue with hyprland 0.38 and the pyprland 2.1.4?

Why not, also check any extra config you have (scripts or hyprland.conf). This is probably more "troubleshoot" than a bug, we may continue in discussions...
Should I close this ticket?

Until we have more clarity on a potential bug in pyprland I'm closing it.

I have experienced it and believe I added logs which will help identify the issue if that happens.
Please always log the output using --debug <filename> and report it in case you can reproduce the issue.

Did you experience the issue since > 2.2.5 (2.2.6 is out now and also fixes a couple of things but I don't think it is related)

I just updated to hyprland 0.39.0 and pyprland 2.2.7 and will report back if/ when I see the issue occuring again.

It might have been fixed with the latest versions... what is your experience ?

I have experienced it again, once again I was tweaking my hyprland.conf & monitor layout & setup...  switching workspace and back recovered the problem.
After checking the code, I have quite high confidence this is due to unexpected active monitor or active workspace advertised by Hyprland's socket in such "transitioning" case.
I was unfortunately testing the alternative toggle, which didn't have logs for such scenario because I thought it wasn't impacted, now it's a bit more clear where the problem seats.
What is unclear are the conditions to trigger it and how to work around it.
Let's keep updating each other with hopefully more logs next time.

So far the issue hasn't happened to me. Not totally sure if related, but I'm using the alternative toggle now.
IIRC I've updated pyprland version + enabled alternative toggle the same day, so not sure what's the source of my improvement.

I was using the alternative toggle when this happened, and this mode didn't have the log which should help figuring the problem :'(
This has changed now, I may release a new version soon, the list of commits  from last version starts to be a bit long.

I did a lot of nasty things with Hyprland & Pyprland and never had this issue... if no activity I'll assume this has been fixed in one of those since the bug has been opened.

@fdev31 Thank you for following up with this bug! Really appreciate it:)
Good news is that I no have this issue (not sure about OP however); I can't reproduce it. Thank you again!

Thank you all for the feedback :100:
So many things have changed in the meantime,  including Hyprland, I also focused on the code simplification / clarity and it probably helped.
I'll close this ticket, keep reporting issues when you see them, thank you helping making Pyprland always better! I'm always excited to reach a "no open issues" state ;)

It's been almost 3 months. Thank YOU for following up! Have a nice day:)


Refactor parse_and_execute

Deprecates parse_and_execute and replaces it with a new parse_and_prepare function whose control flow is in my opinion way easier to read.
I invite you to check out the third commit to see what the new code looks like.
The reason for this change is that I'd like to get rid of the ServiceFactory and Components traits, which parse_and_execute uses.
This PR instead moves the ServiceFactory trait usage to when the user calls run(), which makes it possible in the future to add functions other than run() that don't require this trait.
As an example, we could add a function to ParseAndExecute::RevertChain that simple requires passing a Client by parameter, instead of asking for a ServiceFactory.

Another possible change in the future would be to add new functions to ParseAndPrepareRun, ParseAndPrepareImport and ParseAndPrepareExport that return a Future, thus letting the user control the blocks import or export and removing the exit parameter.

I'm not sure we want to have this code duplication in every run function.

I feel like the control flow is so much clearer that it is totally worth the code duplication.

However you change the Service, it will result in a breaking change anyway.

For now I'm not breaking anything. Updating Polkadot can be tricky, so if possible I'm trying to not break stuff.

I know that the current change does not break anything, but we will generate a new warning, that requires a new suppression or a switch to the new function.
I just want to make sure that we don't build any compatible intermediate state, just to not break interfaces. The current Service stuff is not well designed and I don't want that this bleeds into the new design in any way.

(Feel free to merge this)

I know that the current change does not break anything, but we will generate a new warning, that requires a new suppression or a switch to the new function.

No, what I mean is that my work-in-progress service refactoring (which I haven't shown anyone yet) doesn't break anything.
What I'm doing is: I'm adding commits that introduce new stuff without breaking anything, then on top add commits that remove the old stuff. And then I'd open two PRs (one that adds this intermediary step that you don't like, and one that cleans up the stuff). This way we can upgrade Polkadot in a smoother way, and potentially revert the clean-up if it turns out that I forgot something.

(Feel free to merge this)

(I'm not in a rush, so will leave this PR a bit open in case more people want to comment on it)

I know that the current change does not break anything, but we will generate a new warning, that requires a new suppression or a switch to the new function.

No, what I mean is that my work-in-progress service refactoring doesn't break anything.
What I'm doing is: I'm adding commits that introduce new stuff without breaking anything, then on top add commits that remove the old stuff. And then I'd open two PRs (one that adds this intermediary step that you don't like, and one that cleans up the stuff). This way we can upgrade Polkadot in a smoother way, and potentially revert the clean-up if it turns out that I forgot something.

If the intermediate state doesn't break anything, what is the reason to have it at all? The second pr will break stuff anyway and we will need to update Polkadot.
I think having one concrete pr, will make it easier to iterate on the interface.


Added support for file encoding

save file contents always as bytes
consider encoding parameter in open() / io.open()
use locale prefered encoding instead of utf-8 as default encoding
fixes #120

Another fine contribution from @mrbean-bremen.  Nice work.

Great!! I'll give it a try. Thank you @mrbean-bremen


Integrate data from SimaPro into the User Interface

User story

As a salesperson
I need to visualize and show to my customers what was calculated in SimaPro
So that I can convince my customer to decide for a product which reduces CO2 impact

Acceptance criteria

[ ] (Re-Initialize back end with new Framework?)
[x] The product grid-overview shows the products that are available on SimaPro
[ ] If there is only one model available on SimaPro, no drop-down window is shown (#74)
[ ] If there are more than one models available on SimaPro, the available models are shown in a drop-down window (#74)
[ ] The graphs are visualized based on the data received from the SimaPro API
[x] The basic backend Scaffolding has been done (#47)
[x] The backend has a middleware that does the login to the SimaPro API (#48)
[x] The backend controller can proxy various incoming requests (#49)

The basic backend Scaffolding has been done

The backend has a middleware that does the login to the SimaPro API

The backend controller can proxy various incoming requests

If there is only one model available on SimaPro, no drop-down window is shown

🎉

@olyaee  My question now:
Where should the scenarios go? Because they are now just within the same list of data, and we will have to do filtering stuff probably.

From the glossary:
Scenario: The scenario created by changing default values of a model.
So, if you press on a product/model then it first shows the baseline scenario. Then, when you change a variable it shows a different scenario. So the scenarios should be shown on the details page after selecting a different variable. Was this understandable? 😊

Yes that is clear to me. Thanks!
Then the next question is: where in the SimaPro data is the information about the variable? Or do we just say scenario 1 scenario 2 for now in the variable Dropdown on the details page? Because as you can see in the screenshot above, the only difference is the _Scenario1, _Scenario2 for now.

Seems like those informations are still missing. I will clarify that together with the industry partner. They would need to provide this information via SimaPro.
We have the same problem with the categories: "Which Projects belongs to which Category? e.g. Generation/Solutions". We talked to the SimaPro Experts, there is no way in SimaPro to tag or categorize the project. The only option will be to use the Project name or a comment field, which you also should be able to access via the API. The plan is to somehow encode this information in plain text in one of those field so its possible to automatically parse it.
For example something like: Categorie:Generation/Products#Name:"Gas Turbines"#Model:XYZ2#Location:Germany
So I guess the Information "which scenario changes which variable" will also be encoded in one of those fields in the future, but its not done yet. I try to find a solution as fast as possible but they didnt reply to my email yet.
For now I think there is no way to correctly connect the projects, except hardcoding them. So I think it would be best to leave it like this until we found the best solution.


[FLINK-9664][Doc] fixing documentation in ML quick start

What is the purpose of the change

Fix documentation to explicitly specify that +1 and -1 is required when using SVM library in flink-ml

Brief change log

Added explicit conversion requirement in document

Verifying this change

n/a

Does this pull request potentially affect one of the following parts:

n/a

Documentation

n/a

+1


cnc_values.yaml references old version of CNS

In CNC_Values.yaml, it has cnc_version: 6.3 however there is another input with this value inside of cnc_version.yaml which sets cnc_version: 8.1.
This might be confusing to users.
Is is possible to just have one value setting cnc_version and have it default to the latest (eg 9.0)?

@evberrypi 8.1 is focused for NVIDIA Certified Systems, that's where default version set to 8.1
But user always has an option to change this value.


Update ECHONET Lite library for faster device discovery

ECHONETLite2MQTT uses echonet-lite.js to communicate with the ECHONET Lite protocol.
The version currently in use is ver.2.6.0, but with ver.2.12.0 or later, getting multiple properties is faster.
If echonet-lite.js is updated, ECHONETLite2MQTT will discover devices faster at startup.
However, the timing and conditions for property acquisition are changed.
Needs testing and adjustment.

released at v2.3.0


Rename vendor in VSCode recommendations

Vendor moved owner of mauve.terraform repository to HashiCorp (https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform)

This definitely should be reflected in change log.


The spyder somehow got stuck

Problem Description

What steps reproduce the problem?

The spyder gave this warning without warning

What is the expected output? What do you see instead?
 How to solve this problem thoroughly, instead of restarting spyder again and again

Versions

Spyder version: 4.1.0
Python version: 3.6.8
Qt version: 5.9.7
PyQt version: 5.9.2
Operating System name/version: win10

Dependencies

PASTE DEPENDENCIES HERE

This is fixed in 4.1.2. Please update.


Add moveOnPath method

Add a method that allows passing a path for the character to move along.

this would be very useful for what im building, could it be viable to add a loop property? to make it auto restart the path move when finished

Regarding the loop functionality. Do you have something like this in mind:
If you have a path consisting of adjacent tile positions like: [pos1, pos2, ... posN] and the char arrives at posN. Should he then walk back again (walk the path in reverse order)?

this gif describes what i mean quite nicely, (its just me running around a house) but a npc with the 4 corners of the house being its path, once it gets to the end of the path, it just starts again and runs to pos1 if its not already

When implemented you will have an observable that notifies you when the character has reached the target. Then you can simply restart the movement. So this kind of looping should not be a problem.

Closing this, because it can be achieved using isPositionAllowedFn. Also see this example: https://annoraaq.github.io/grid-engine/examples/pathfinding-restriction.html


0   I got a error; the worbox precaching my Static files，for example js or css；At this time I setted workbox.routing.registerRoute is don't work；

I had a problem with this bag; The address of the question is https://stackoverflow.com/questions/61189799/why-my-setted-workbox-routing-registerroute-is-not-work-when-i-setted-workbox-pr

I've responded at https://stackoverflow.com/questions/61189799/using-runtime-caching-and-precaching-together-in-workbox/61191059#61191059


Adding Python 3.7 builder pod template

Corresponding builder https://github.com/jenkins-x/jenkins-x-builders/pull/141

/approve

/lgtm


Harmonize Hyperlinks

Is there perhaps a way to reach the same style of hyperlinks using your filter, i.e. get the same output using \ref as using quarto's @?
MWE:
---
filters:
  - parse-latex
---

\section{First Section}     \label{first section}

Reference to \ref{first section}.

# Second Section {#sec-second-section}

Reference to @sec-second-section.

I'm unaware if that is possible adding this to the lua filter, but we could deal with this using regex, e.g.
"\\section{first section}    \\label{first section}" |>
  # section
  stringr::str_replace_all("\\\\section\\{ *([^}]+) *\\} *", "# \\1 ") |>
  # label
  stringr::str_replace_all("\\\\label\\{ *(.+) *\\}", "\\{#sec-\\1\\}") |>
  # introducing the sec tag
  stringr::str_replace_all("[[:space:]]+(?=[^{#sec]*\\})", "-")

Handling of references is very different from the aims of this filter and would require a completely new filter. Sorry.


Upgrade wasmvm aka go-cosmwasm

Resolves #309
This got a bit bigger than expected:

Rename go-cosmwasm to wasmvm
Upgrade wasmvm to `v0.12.0-alpha1
Upgrade Dockerfile for new go-ext-builder
Fix WasmConfig parsing
New  --wasm.lru_cache_size and --wasm.query_gas_limit wasmd start parameter
Default "lru cache size" to 100 MiB
Upgrade CircleCI build container to Go 1.15
Stop tests on race conditions via GORACE=halt_on_error=1

Pushed a new version


Problem: We have no way of storing collections of entities

In the sample DQL we have the concept of an index, which is a collection of entities stored by key. We should add this to the spec.
create index 'products';

create invariant 'product-exists' (product_id) as (identifier) satisfied by (
	<:
		from aggregate
		check exists in index 'products' (product_id)
	:>
);

create event 'product-added' (product) as (entity\product) handled by (
	<:
		update aggregate
			add to index 'products' (product.id)
	:>
);

Solution: Implement index type
SuccessCriteria: Index behaves as expected, with a suite of tests that pass
There are a couple of sub problems here, which may need to be broken out into other issues.

Problem: Index key word interpreter does not exist
Problem: Invariants cannot process index statements
Problem: The event handlers cannot process index statements

Let's start with the validator, if we can't validate that a data structure is a collection of value objects, then it's not much use.
Here's a first draft of the AST
{
    "id": "c1fc1a0f-54cb-4813-8818-c4e37804ac14",
    "name": "products",
    "collection_of": "4ea61742-409a-48b6-9563-2587c681f838"
}

Now we have collection validation, let's add modifying a collection in an event handler.

Final step is checking to see if it exists in the root entity tree

This looks good enough to move forward. Some refactoring is needed to clean this up. I'm going to leave it open so we can have some discussion on how to clean the structure/tests.

Let's close this issue, it's working, there may be a restructure required in future, but it's good enough for now.


Run the tests in Example for every commit

use what's in https://github.com/ChainSafe/Multix/blob/main/.github/workflows/cypress-tests.yaml

closed by #16


Wrong name for Azure Virtual Desktop

[Enter feedback here]
The note in this document refers to Windows Virtual Dekstop but must be Azure Virtual Desktop

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

ID: 92449682-399e-5966-059f-6733e23e41fd
Version Independent ID: d9002b5e-944a-4bed-62a6-d02d573db8ff
Content: Integration with Microsoft Defender for Cloud
Content Source: microsoft-365/security/defender-endpoint/azure-server-integration.md
Service: microsoft-365-security
Sub-service: mde
GitHub Login: @mjcaparas
Microsoft Alias: macapara

@jkamping Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/13145
Once the author approves, the changes will be live.
Thanks
Sri


Tag a Release

Hey @spkrka,
I know that you've not worked on this repo for a while and are working on a full Java version now, but I was wondering if you could tag a release at whatever latest point you feel is reasonable. I'd like to use this as a dependency for a project, but I'm hesitant (out of habit) to simply refer to HEAD or a specific commit hash.
Thanks!

Sure, I've now made this tag:
https://github.com/spotify/sparkey/releases/tag/sparkey-1.0.0
Hope that helps1

Awesome. Thanks @spkrka!


Stronger typing for LifecycleRule conditions

Is your feature request related to a problem? Please describe.
It's easy to write an incorrect lifecycle condition resulting in unwanted results, particularly for a delete action. For example, the following rule uses a string for matchesPrefix when an array of strings is expected.
addLifecycleRule({ action: { type: "Delete" }, condition: { isLive: true, matchesPrefix: "tmp/", age: 1 }})

This rule will be added, but without the prefix condition, so that it (as far as I can tell) applies to all objects in the bucket:
// bucket.metadata.lifecycle.rule
[ { action: { type: 'Delete' }, condition: { age: 1, isLive: true } } ]

Describe the solution you'd like
Stronger typing on the LifecycleRule would help TS users write rules correctly.
(c.f. the go SDK: https://github.com/googleapis/google-cloud-go/blob/5a9102369b64e06a1564b9d769da7bd044035b7e/storage/bucket.go#L649)
Describe alternatives you've considered
The client SDK could throw an error if unexpected types are passed, to protect me from myself. However, gsutil appears to have the same behavior of creating rules while discarding conditions with unexpected types in the JSON.

Thanks for calling this out! I can see how this leads to a confusing user experience. We will take another look at this as we plan our next major release, as this would be a breaking change.

Released with 7.0.


Crane joins Cilium as a user

Signed-off-by: slzcc<EMAIL_ADDRESS>This is a request to join the Cilium user.

Thanks @slzcc! If you want some Cilium stickers, DM your address on Twitter and I can send them to you 🐝


Hyper.sh Integration into Drone Agent

Hello,
I've done some towards integrating https://github.com/hyperhq/hyper-api with the agent binary, to allow for dynamically provisioned virtual machines priced secondly for the optimal build agent configurations.
However, I've ran into some issues with the build process especially during environmental setting, as shown below,
{"time":"2017-09-09T16:48:52+08:00","level":"debug","repo":"xxxxxx","build":"12","id":"413","error":"Error response from daemon: Environment is invalid, should be [A-Za-z_][A-Za-z0-9_]*","exit_code":1,"message":"updating pipeline status"}

Anyone able to help chip in?

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

thanks @LFlare
I think the first step is to send a pull request to cncd/pipeline with an updated driver, as opposed to directly updating the vendor directory.
Note that the cncd/pipeline directory has a command line utility that allow you to test pipeline backends directly from the terminal, along with a bunch of samples that you you should be able to execute directly on hyper.
So lets get a PR for the hyper backend in cncd/pipeline:
https://github.com/cncd/pipeline/tree/master/pipeline/backend
And then you can also update the pipec binary to include the hyper token and optionally use the hyper backend:
https://github.com/cncd/pipeline/tree/master/pipec
Once you compile pipec you should be able to directly test one of the samples:
cd samples/sample_7_redis
pipec --hyper-access-key=... --hyper-secret-key=...

Once this is working in the pipeline library, we can then update the pipeline vendor code using the govendor tool and update the drone server and agent accordingly. THanks!

Fair enough. I'm still going to kindly request for your assistance @bradrydzewski with the pipeline part of the code with hyper, since there's that annoying error but I'll close this PR for now.


Use cargo semver-checks for release testing

What
We run cargo semver-checks before (pre-)releasing a new version. Maybe even for every PR (it's rather expensive though).
Why
Also see #13648.
While it doesn't necessarily prevent breaking changes, but it might make accidental ones more visible. For example, running this for 2ac8af894f9aefb3215b74044b7f177b42f7e65f (which compares against v43.0.0), we get the following things that I think could be avoided (this is a small subset of what the tool found):
--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_variant_added.ron

Failed in:
  variant PlanType:PhysicalPlanError in /home/mneumann/src/arrow-datafusion/datafusion/common/src/display/mod.rs:66

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/struct_missing.ron

Failed in:
  struct datafusion_expr::DocumentationBuilder, previously in file /home/mneumann/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-expr-43.0.0/src/udf_docs.rs:95
  struct datafusion_expr::DocSection, previously in file /home/mneumann/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-expr-43.0.0/src/udf_docs.rs:67
  struct datafusion_expr::Documentation, previously in file /home/mneumann/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-expr-43.0.0/src/udf_docs.rs:35

We could even add a config to the repo that defines what we accept, for example:
--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
        ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/auto_trait_impl_removed.ron

Failed in:
  type Max is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:383
  type Max is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:383
  type Min is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:298
  type Min is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:298
  type Count is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:214
  type Count is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:214
  type Sum is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:101
  type Sum is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:101
  type Statement is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
  type Statement is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
  type Statement is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
  type Statement is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
  type Avg is no longer UnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:456
  type Avg is no longer RefUnwindSafe, in /home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:456

How
TBD

I like the checks but note that we need to be able to introduce breaking changes, because sometimes there is no practical other way. If we enable API check, we should have a suppression- / allow-list for it.
DataFusion is great but it also needs a way to innovate. New processes that considerably reduce our pace may turn out not to be good for the project in the long run.
also, i got the impression that the sentiment in https://github.com/apache/datafusion/issues/13525 was that compilation-level breakages are not necessarily a problem (https://github.com/apache/datafusion/issues/13525#issuecomment-2496023457, seconded in https://github.com/apache/datafusion/issues/13525#issuecomment-2499064530)

To clarify: I don't want the checks to totally prevent breaking changes. I just want to make sure that they are visible and we don't break stuff that can easily be prevented (e.g. removing a valid re-export during some refactoring).

I agree with this desire, but it's also important to make this goal clear.
A check along may nudge us into wrong direction. For example, in OSS contributions i've seen people deteriorating their contribution because they saw a failing test that simply needs an update.

(e.g. removing a valid re-export during some refactoring).

Agreed.
But we also should deliberately hide elements that are not meant to be API or have sort of "internal" modules to imply no guarantees.
The smaller the API surface the less blame there can be for breaking it.


Spacing and bounding boxes (part 1)

Part of a series of PRs on fixing #32

Fixed large space above large matrices
Fixed several parsing bugs like \left( x\\ y\right)  which round-tripped to \left( x\\ y&\right)
Better error messages for \begin \end and \left \right pairs
And refactorings

CSharpMath.Rendering.Tests.TestIcon.DrawsAsUsual test was failed with NRE for some reason. It passes fine locally (on Windows though). After re-run all tests are passed as well. What could it be?
I don't think it's related to this PR but still curious.

CSharpMath.Rendering.Tests.TestIcon.DrawsAsUsual test was failed with NRE for some reason.

The NRE has happened before, albeit rarely. I suspect it is a multithreading issue. Not sure how to fix this apart from re-running tests on fail.


[nrf noup] cmake: add fw_metadata overlay if SECURE_BOOT

Also leverage new function 'add_overlay_config'.
This function does exactly what was inlined before.
Signed-off-by: Håkon Øye Amundsen<EMAIL_ADDRESS>

Will fix by adding FW_METADATA=y to prj.conf directly instead.


Application attempted to call on a destroyed WebView

Hello,
Is there a way to destroy and reinitialize the YouTube player api as in?
Application attempted to call on a destroyed WebView
    java.lang.Throwable
     at org.chromium.android_webview.AwContents.m(chromium-TrichromeWebViewGoogle.aab-stable-556311633:10)
     at com.android.webview.chromium.WebViewChromium.loadUrl(chromium-TrichromeWebViewGoogle.aab-stable-556311633:9)
     at android.webkit.WebView.loadUrl(WebView.java:739)
     at com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerImpl.invoke$lambda$2(WebViewYouTubePlayer.kt:62)
     at com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerImpl.$r8$lambda$765UGQvtKUt7m2Z71DWbxMJ90pY(Unknown Source:0)
     at com.pierfrancescosoffritti.androidyoutubeplayer.core.player.views.YouTubePlayerImpl$$ExternalSyntheticLambda0.run(Unknown Source:6)
     at android.os.Handler.handleCallback(Handler.java:938)
     at android.os.Handler.dispatchMessage(Handler.java:99)
     at android.os.Looper.loop(Looper.java:236)
     at android.app.ActivityThread.main(ActivityThread.java:8057)
     at java.lang.reflect.Method.invoke(Native Method)
     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)

Hi, you can't reuse a WebView that has been destroyed.

So how do we reset it and recreate it?
I was destorying and rebuilding while using youtube player api before.

Why do you need to destroy it? You should provide more information regarding what you're trying to do, otherwise I won't be able to help.

I host youtube player in fragment.  When I close the activity and open it again, I encounter the error as above.  Normally, when using the android youtube player api, I was destorying the youtube player before fragment destruction and not allowing any bugs to occur.  what I really want to do is to destory and restart whenever I want.  because I am constantly redirecting from app to app and back.  In the meantime, I want to prevent bugs.

When the fragment is created a new YouTubePlayerView is created. You need to use the YouTubePlayer from that.

This is how I solved it.
    if (youTubePlayer != null)  {             youTubePlayer.pause();             youTubePlayerView.release();             youTubePlayerView.removeYouTubePlayerListener(youTubePlayerListener);             youTubePlayer = null;         }


Connection timed out Error code 522

Error: Connection timed out Error code 522

Yep, same for me since 2 days. Server down. Sad.

Hey
The issue is now fixed and the server is back up!
Apologies for the interruption

Can confirm, works again just fine ^^

Yes working fine!! 🍾


fix: backup codes are not invalidated

invalidate_otp_backup_code! does not persist the user in the same way validate_and_consume_otp! does

persist the codes (without the invalidated one)
the method has a ! so I assumed it did this anyway

Thank you for the contribution! I've incorporated this into another commit to include in v6.0.0 as it will be a potentially breaking change.

Thanks!


Issue getting the Outbound Mail Server to send ticket confirmation/update emails

Followed the steps in the documentation including:

The Django Project I'm using uses the following settings for the SMTP in local_settings.py
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER =<EMAIL_ADDRESS>EMAIL_HOST_PASSWORD = 'yourpassword'
EMAIL_PORT = 587

$python manage.py create_usersettings

$python manage.py loaddata emailtemplate.json

But still cannot get the SMTP emails to send out ticket confirmations nor updates? Any steps/config I'm missing and/or any advise to debug? Thanks in advance

Just for context, I reviewed the tickets before submitting (namely #305) and I have the Inbound IMAP server working using imap.gmail.com and using gmail labels (note - use the exact lowcase label name as shown in gmails settings for IMAP folder name) to handle each queue type with a cron job setup and running to harvest... and I can verify that django was and is still able to send emails as the django project uses it to send out notifications.

Just so we're 100% clear - if you run python manage.py shell then execute the following, you receive the e-mail?
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.'<EMAIL_ADDRESS>['you@you.com',], fail_silently=False)

What about this?
python manage.py shell
from django.core.mail import EmailMultiAlternatives
from django.conf import settings
sender = settings.DEFAULT_FROM_EMAIL
subject = 'Test email'
recipient =<EMAIL_ADDRESS>sender =<EMAIL_ADDRESS>body = 'This is the email body'
msg = EmailMultiAlternatives(subject, body, sender, [recipient,])
msg.send(fail_silently=False)

The former is a standard Django email, the latter is the way we send an email in django-helpdesk (we also attach a HTML part and do some templating etc - but that's the core of it).
I'd double check your sender and recipient lists... perhaps django-helpdesk is emailing FROM your Queue address, but Gmail doesn't want you to use that as the sender? Try a few different values for sender above and test it out, keeping fail_silently=False to catch any issues.

Thanks for the assist in debugging!... We went though a series of scenarios with them, it was an error in settings precedence as we use a django-project wrapper we have two local_settings.py & settings.py files with the email settings override not containing the TLS and SSL ports. Note for those looking at this that google will not support sending HTML emails using a TLS protocol/port only SSL. Some other helpful commands to run were:
      sudo find / -name "*.log" -type f -exec grep -iH "smtp" {} \;

What python files have EMAIL_USE in them?
      sudo find / -name "*.py" -type f -exec grep -iH "email_use" {} \;

What logs have SMTP errors in them?
    sudo find / -name "*.log" -type f -exec grep -iH "smtp" {} \;

What log files have been opended most recently?
    /var/log# find . -type f -printf "%C@ %p\n" | sort -rn | head -n 10

Here are the settings that worked...
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER =<EMAIL_ADDRESS>EMAIL_HOST_PASSWORD = 'pwd'
#Port for TLS
EMAIL_PORT = 587
#EMAIL_USE_TLS = True
#Port for SSL
#EMAIL_PORT = 465
#EMAIL_USE_SSL = True


Cache issue

Seems like even when I do InvalidateCache or ImageService.Instance.InvalidateCacheEntryAsync
the cache isn't being updated if the url remains the same (i.e., things changed on the server side and filename remained the same).
Can you confirm?

Are you sure the server doesn't use its own cache? There were several issues with that, and every time it turned out that the server had its own cache and that cache could be controlled by sending correct http headers.

Good point. I’ll check that.
On Mon, Oct 30, 2017 at 5:51 AM Daniel Luberda<EMAIL_ADDRESS>wrote:

Are you sure the server doesn't use its own cache? There were several
issues with that, and every time it turned out that the server had its own
cache and that cache could be controlled by sending correct http headers.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/luberda-molinet/FFImageLoading/issues/785#issuecomment-340394938,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB4tDtosOrDk_eEEigEpB3jV6vBS_GENks5sxZw6gaJpZM4QKk2j
.

--
Shay Ohayon, PhD
Research Scientist, DiCarlo Lab, MIT
+1<PHONE_NUMBER>

Any news?

I wasn't able to confirm that it wasn't a server issue. I'm going to close this at the moment.


Not compatible with Android 11

Android 11 got rid of sbin completely and so magisk now uses /dev/randomstring/.magisk
The random string changes each boot so you need to use the
magisk --path

Command each time the script is run to get the proper path. I forget when this functionality was added though (some point early this year) so it'd probably be best to use sbin if it exists, the path command otherwise

I see, does the command works on devices below Android 11?

Ya but I think it was added to magisk earlier this year so it's only in recent versions of magisk. After playing around with it more, I favor doing this instead:
[ -d "/sbin/.magisk" ] && MAGISKTMP="/sbin/.magisk" || MAGISKTMP="$(find /dev -mindepth 2 -maxdepth 2 -type d -name ".magisk")"

It should work with older magisk versions. Either way, you get the idea

Ya but I think it was added to magisk earlier this year so it's only in recent versions of magisk. After playing around with it more, I favor doing this instead:
[ -d "/sbin/.magisk" ] && MAGISKTMP="/sbin/.magisk" || MAGISKTMP="$(find /dev -mindepth 2 -maxdepth 2 -type d -name ".magisk")"

It should work with older magisk versions. Either way, you get the idea

it'work like a charm.


Module not found: Can't resolve 'react' in '/vercel/path0/node_modules/next-i18next/dist/esm'

Hey there, Could you explain what is wrong with my webpack?
const withPWA = require('next-pwa')
const runtimeCaching = require('next-pwa/cache')
const { i18n } = require('./next-i18next.config')
const { withContentlayer } = require('next-contentlayer')

const withPlugins = require('next-compose-plugins')
const withBundleAnalyzer = require('@next/bundle-analyzer')({
	enabled: process.env.ANALYZE === 'true'
})

module.exports = withPlugins([
	[withBundleAnalyzer],
	[withContentlayer({})],
	withPWA({
		images: {
			domains: [
				'i.scdn.co', // Spotify Album Art
				'pbs.twimg.com' // Twitter Profile Picture
			]
		},
		webpack: (config, { dev, isServer }) => {
			config.module.rules.push({
				test: /\.(png|jpe?g|gif|mp4)$/i,
				use: [
					{
						loader: 'file-loader',
						options: {
							publicPath: '/_next',
							name: 'static/media/[name].[hash].[ext]',
						},
					},
				],
			})

			config.module.rules.push({
				test: /\.svg$/,
				use: ['@svgr/webpack'],
			})

			if (!dev && !isServer) {
				// Replace React with Preact only in client production build
				Object.assign(config.resolve.alias, {
					'react/jsx-runtime.js': 'preact/compat/jsx-runtime',
					react: 'preact/compat',
					'react-dom/test-utils': 'preact/test-utils',
					'react-dom': 'preact/compat',
				})
			}

			return config
		},

		pwa: {
			dest: 'public',
			runtimeCaching
		},
		i18n,
	}),
])

Generated 2 documents in node_modules/.contentlayer
--
01:13:00.854 | info  - Checking validity of types...
01:13:07.684 | info  - Creating an optimized production build...
01:13:07.742 | > [PWA] Compile client (static)
01:13:07.743 | > [PWA] Auto register service worker with: /vercel/path0/node_modules/next-pwa/register.js
01:13:07.743 | > [PWA] Service worker: /vercel/path0/public/sw.js
01:13:07.744 | > [PWA]   url: /sw.js
01:13:07.744 | > [PWA]   scope: /
01:13:07.931 | > [PWA] Compile server
01:13:19.893 | Failed to compile.
01:13:19.893 |
01:13:19.893 | ./node_modules/next-i18next/dist/esm/appWithTranslation.js
01:13:19.894 | Module not found: Can't resolve 'react' in '/vercel/path0/node_modules/next-i18next/dist/esm'

Sorry, missed dependencies...


I implemented sass in the project for the first time

I was able to change the vanilla css to scss, still retaining most of the styling. I will still like to improve on the sass in the future but for now this is what I've done.

I hope you like my work.

Oh I'm sorry bro. I'll change it now

Oh I'm sorry bro. I'll change it now

Okay
Thank you


[listview] not able to show properly after removing search term

Repo steps:

Go to Dashboards list view
Enter search term (that has zero result) and hit search
Instead of clicking X to remove the search term, delete string with delete button

Expected results
Dashboard list should show again as if no search term was entered
Actual results
Stuck on empty dashboards list. The only way out is go to other page then come back or refresh
https://user-images.githubusercontent.com/52086618/113227553-ca578a00-9247-11eb-98bd-96baf2188366.mov

Thank you for filing the first issue 🙏 @rosemarie-chiu
I believe it never worked as expected. 😅 tagged good first issue


grpc crashes my process when not authenticated.

I did not have GOOGLE_APPLICATION_CREDENTIALS set.
My gcloud auth was in a wonky state so that everything I tried failed with invalid_grant.
I called datastoredb to UpsertAsync() a new entity.  The process crashed with grpc at the top of the stack.
I expected to see an error message.

Are you able to reproduce this with a minimal example (e.g. a tiny console app and a description of the "wonky state")?

Ping for minimal example if possible...

gcloud doesn't have to be in a wonky state.  Working on a sample...

@SurferJeffAtGoogle: Did you get anywhere with this, and is it still an issue with Grpc.Core 1.3.6? (Would like to try to either address or close...)

Closing for the moment as we need more information - and when we do have information, it sounds like it may well be an issue better filed on the gRPC repo.


SageMaker prompt driver support

We need to add support for Amazon SageMaker Endpoints in the form of the AmazonSagemakerPromptDriver.

@vasinov this can be closed.


Bluetooth: host: Application control of data length and phy update

Add application control of initiating data length procedure and it's
parameters.
The reasons for allowing the application control over the data length:

Bandwidth control adjusted based on number of active connections.
Changing data length before switching to coded phy.
Applying workarounds for interoperability problems.
Controlling order of ATT MTU and data length procedures.

Add application control of initiating phy change procedure and it's
parameters.
The reasons for allowing the application control over the PHY:

Allow changing to Coded PHY.
Application may change PHY to react to changes in environment
to balance throughput and range.

Fixes:  #23989

I'm considering adding support for having conn= NULL in order to call the set_default_data_len and set_default_phy commands as well. Thoughts on this?

Added @kruithofa  to review, as he has recently address both PHY update and DLE implementation updates inside controller. Hope he can take a glance and provide any comments.


534 threshold preview tool v3

Adopt changes required for Threshold feauture

Superseded by https://github.com/pavel-kaiko/cornerstone3D/pull/2


Build update, added missed props, fixed dropdown

Summary:

Use es6 export for modules (both element names and elements/collections/modules/etc.. objects are exported)
Fixed webpack configuration. Use correct external definitions and export library target. Added sourcemap (previous devtool option was misspelled)
Updated main point to dist/semantic-react.js, no reason to keep it to server.js
Added few missed props (Docs were also regenerated)
Changed react-outsideclickhandler to react-onclickoutside. The first one installs react-0.13 which is not good if you're using 0.14 in project
Fixed dropdown, instead ruining your dropdown work as in https://github.com/hallister/semantic-react/pull/30 request

@asvetliakov Could you add an example to the docs for Dropdown and DropdownMenu maybe?

This commit doesn't include DropdownMenu. Going to send pull request for it (and may be for other stuff) if author accepts this one.
Also current doc generation is buggy - it couldn't annotate example code for decorated component now

Do you think the docs code should handle your new component's set-up, or is the fact that the example code displays it badly (I saw the functions all get printed out etc.) a sign that your component changes are not in line with the envisioned architecture of semantic-react? :)

it's not in the line of current arch, it's the just the problem in example generating. And i don't see anything wrong in HOC/decorator pattern, most of react components/libraries are utilizing it anyway.
Will try to fix doc generating :)

Awesome! Note: I just rebased to your branch; working off of that now. Great work, hope we can see some of those changes trickle back into the main. @hallister Do you need smaller PRs? Are they too massive to review in a reasonable time frame?

Going to merge this. The build up of PR's was mostly due to being on a Ember project at work. I should get to the other PR's soon.


Bugfix: Presentation score

Checklist

[x] I tested all changes and all related features with different users (student, tutor, instructor, admin) on the test server https://artemistest.ase.in.tum.de.
[x] Server: I added multiple integration tests (Spring) related to the features
[x] Server: I added @PreAuthorize and check the course groups for all new REST Calls (security)
[x] Server: I implemented the changes with a good performance and prevented too many database calls
[x] Server: I documented the Java code using JavaDoc style.
[x] Client: I added multiple integration tests (Jest) related to the features
[x] Client: I added authorities to all new routes and check the course groups for displaying navigation elements (links, buttons)
[x] Client: I documented the TypeScript code using JSDoc style.
[x] Client: I added multiple screenshots/screencasts of my UI changes
[x] Client: I translated all the newly inserted strings into German and English

Motivation and Context
The presentation-score component is only used for 4 exercise components so it does not make sense to load it in the ArtemisSharedModule that is imported for every module. Furthermore the presentation-score component import in the ArtemisSharedModule caused the issue
Unexpected value 'undefined' imported by the module 'ArtemisResultModule' in the beforeEach() for @sascha11110 's client test.
Furthermore it removes the notNullConstraint for presentation_score in the course table and presentation_score_enabled in the exercise column that led to the following error:
Error: 1048, SQLState: 23000 2019-10-08 09:04:56.357 ERROR 73659 --- [ XNIO-1 task-87] o.h.engine.jdbc.spi.SqlExceptionHelper   : Column 'presentation_score_enabled' cannot be null 2019-10-08 09:04:56.361 ERROR 73659 --- [ XNIO-1 task-87] .t.i.w.a.w.r.ProgrammingExerciseResource : Error while setting up programming exercise org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
Steps for Testing
Same as in #379

@lovaiible Can you please merge develop and resolve the conflict? This will also fix the Java documentation failure


naming conventions: consistent names in "Casing" column

For "Casing"-column in "Naming Rules and Restrictions"-table, both hyphenated and non-hyphenated form is used for same values (such as "Case-insensitive" and "Case insensitive"). This is PR for consistent names.

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

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/best-practices/naming-conventions.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


<EMAIL_ADDRESS>download via aria2 failed

PS C:\Users\ccire> scoop install mpv
WARN  Purging previous failed installation of mpv.
Uninstalling 'mpv' ().
'mpv' was uninstalled.
WARN  Scoop uses 'aria2c' for multi-connection downloads.
WARN  Should it cause issues, run 'scoop config aria2-enabled false' to disable it.
WARN  To disable this warning, run 'scoop config aria2-warning-enabled false'.
Installing 'mpv' (0.34.0) [64bit]
Starting download with aria2 ...
Download: 02/08 02:35:36 [ERROR] CUID#8 - Download aborted. URI=https://downloads.sourceforge.net/project/mpv-player-winDownload: Exception: [AbstractCommand.cc:312] errorCode=1 Network problem has occurred. cause:A socket operation was attDownload: Download Results:
Download: gid   |stat|avg speed  |path/URI
Download: ======+====+===========+=======================================================
Download: b5b718|ERR |       0B/s|C:/Users/ccire/scoop/cache/mpv#0.34.0#https_downloads.sourceforge.net_project_mpv-player-windows_release_mpv-0.34.0-x86_64.7z
Download: Status Legend:
Download: (ERR):error occurred.
Download: aria2 will resume download if the transfer is restarted.
Download: If there are any errors, then see the log file. See '-l' option in help/man page for details.
ERROR Download failed! (Error 1) An unknown error occurred
ERROR https://downloads.sourceforge.net/project/mpv-player-windows/release/mpv-0.34.0-x86_64.7z
dir=C:\Users\ccire\scoop\cache
out=mpv#0.34.0#https_downloads.sourceforge.net_project_mpv-player-windows_release_mpv-0.34.0-x86_64.7z
ERROR & 'C:\Users\ccire\scoop\apps\aria2\current\aria2c.exe' --input-file='C:\Users\ccire\scoop\cache\mpv.txt' --user-agent='Scoop/1.0 (+http://scoop.sh/) PowerShell/7.2 (Windows NT 10.0; Win64; x64; Core)' --allow-overwrite=true --auto-file-renaming=false --retry-wait=2 --split=5 --max-connection-per-server=5 --min-split-size=5M --console-log-level=warn --enable-color=false --no-conf=true --follow-metalink=true --metalink-preferred-protocol=https --min-tls-version=TLSv1.2 --stop-with-process=9664 --continue --summary-interval=0 --auto-save-interval=1

Cannot reproduce. Probably some network error.


Fonts are not loaded correctly on mobile devices

Fixed https://github.com/BlurredSoftware/BlurredSoftware.github.io/commit/6aafe13405b9959b1e4bb0adfbb18e3404e29d58


[Bug]: 'Pay instantly' suggestion before user has funds

Describe the bug
The wallet suggest the user to 'pay instantly' before it has any funds, just to inform him that he has no funds.
Reproduce

Create a wallet.
Click in 'pay instantly'

Screenshots / Recording

Operating system
iOS 16.1.2
Bitkit version
v1.0 (23)
Log output
No response

Hi and thanks for opening these issues, we'll be going over all of them in a bit (PRs welcome!). In this particular case it was an intentional design decision to make the user aware of the feature.


Refactor: SyftController.cs to create new tensor objects

Current implementations of tensor operations are in FloatTensor and they modify the calling object. This modifies the tensor of a Syft client. e.g a + b changes a.
We can implement a wrapper in the math package which SyftController can use and that wrapper could create new tensors as needed.
We can also consider removing all these ops out of FloatTensor.

If we are going to keep the ops in FloatTensor, we can simply modify the existing operators to create a new tensor as well.

@emregoynugur good to close?

Indeeed


Access Error on Android 8 (AudioManager  getMicrophones())

On a device with Android 8 (API Level 26) the app crashes with the method "CamerasLoaded or MicrophonesLoaded" with the error message:
"**Java.Lang.NoSuchMethodError:** 'no non-static method "Landroid/media/AudioManager;.getMicrophones()Ljava/util/List;"'"
The CamerView works on an emulator with Android 13.
Later I saw that there was already a post about this. I then tried to use the code from the README:
private void camerView_CamerasLoaded(object sender, EventArgs e)
    {
        if (cameraView.NumCamerasDetected > 0)
        {
            if (cameraView.NumMicrophonesDetected > 0)
                cameraView.Microphone = cameraView.Microphones.First();

            cameraView.Camera = cameraView.Cameras.First();
            MainThread.BeginInvokeOnMainThread(async () =>
            {
                await cameraView.StopCameraAsync();
                var result = await cameraView.StartCameraAsync();
                lblCameraResult.Text = "Camera: " + result.ToString();
            });
        }
    }

Then it doesn't crash, but you always get an AccessError as a result. Can this be fixed somehow?

Hi,
When do you get that error? In the last version of the plugging Android 8 does not read microphones...

After the update, only the AccessError came up
The CameraView is defined by: <cv:CameraView x:Name="cameraView" CamerasLoaded="camerView_CamerasLoaded"/>
When the page loads, the following code is executed:
private void camerView_CamerasLoaded(object sender, EventArgs e)
     {
             cameraView.Camera = cameraView.Cameras.First();
             MainThread.BeginInvokeOnMainThread(async () =>
             {
                 var result = await cameraView.StartCameraAsync();
                 lblCameraResult.Text = "Camera: " + result.ToString();
             });
     }

In the emulator (API 33) you can see the camera and the label says "Success". The device (API 26) only says "AccessError". If you disconnect the device from the computer or create a release version, the app stops or crashes.
This is the console output:

[ViewRootImpl@4390c06[MainActivity]] ViewPostIme pointer 0
[ViewRootImpl@4390c06[MainActivity]] ViewPostIme pointer 1
[zygote64] Do full code cache collection, code=112KB, data=97KB
[zygote64] After code cache collection, code=90KB, data=61KB
[monodroid-assembly] open_from_bundles: failed to load assembly Microsoft.Extensions.Primitives.dll
Loaded assembly: /data/data/com.companyname.mycloset/files/.override/Microsoft.Extensions.Primitives.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly System.Linq.Expressions.dll
Loaded assembly: /data/data/com.companyname.mycloset/files/.override/System.Linq.Expressions.dll [External]
[monodroid-assembly] open_from_bundles: failed to load assembly System.ComponentModel.Primitives.dll
Loaded assembly: /data/data/com.companyname.mycloset/files/.override/System.ComponentModel.Primitives.dll [External]
[CameraManagerGlobal] Connecting to camera service
[VendorTagDescriptor] addVendorDescriptor: vendor tag id<PHONE_NUMBER> added
[CameraManager] getCameraCharacteristics : cameraId = 0
[CameraManager] getCameraCharacteristics : cameraId = 1
[CameraManager] getCameraCharacteristics : cameraId = 0
[CameraManager] getCameraCharacteristics : cameraId = 0
[Surface] sf_framedrop debug : 0x4f4c, game : false, logging : 0
[Choreographer] Skipped 91 frames! The application may be doing too much work on its main thread.
[Surface] sf_framedrop debug : 0x4f4c, game : false, logging : 0

Is there a way to fix this problem?

Hi
The previous package versions were not compatible with Android 8. The new version 1.4.1 is compatible.


[v3-branch]: Settings for subtitle

Using the current v3 branch from git today on Debian unstable.
When running TMM the first time it recoginze the system language and setup its GUI correct (to "German") without problems. But there are three aspects/problems.
Settings -> Movie -> Subtitle -> Prefered Language is set to the first item in the drop-down-menu. It looks like arabia.
Settings -> Movie There is no subtitle scraper in the list to select.
Settings -> Series -> Subtitle -> Prefered Language is set to the 7th entrie "English".

The issue with the missing Subtitle Provider on Settings -> Movie -> Subtitle is confirmed.


refactor Refactor rewrite framework

Proposed changes
This pr refactor the rewrite framework from memo to plan tree, and speed up the analyze/rewrite stage.
Changes:

abandoned memo in the analysis/rewrite stage, so that we can skip some action , like new GroupExpression, distinct GroupExpression in the memo(high cost), update children to GroupPlan
change the most of rule to static rule, so that we can skip initialize Analyzer/Rewriter and lots of rule in every query. but some rules need context, like visitor rule, create rule at the runtime make it is easy to use, so make custom rule can help us to create it.
remove the logger field in the Job, Job are generated in large quantities at runtime, we don't need to use logger so save huge time to init logger.
skip some rule as far as possible, e.g. SelectMaterializedIndexWithoutAggregate, skip select mv if the table not exist rullup.
add some cache for frequent operation, like get Job.getDisableRule, Plan.getUnboundExpression
new bottom up rewrite rule, it can keep traverse multiple new plan which return by rules, this feature depends on Plan.mutableState, it is necessary to add this variable field for plan. if the plan is fully immutable, we must use withXxx to renew the plan and set the state for it, this not only take more runtime overhead and developing workload. another reason is we need multiple mutable state, e.g. whether is applied the rule,  whether this plan is manage by the rewrite framework. the good side of mutable state is the efficient, but I suggest we don't direct use mutable state in the rule as far as possible, if we need use it, please wrap the mutable state in the framework to correct modification and release it, a good example is AppliedAwareRuleCondition, it can update and get the state: whether this plan is applied to a rule before.
refactor the EliminateUnnecessaryProject by CustomRewritor, fix the problem which eliminate some Project which decided the query output order, the case is limit(project), sort(project).

Checklist(Required)

[ ] Does it affect the original behavior
[x] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

run buildall

run buildall


popmd/wasm: add @hemilabs/pop-miner package

Confirmation

[X] I have checked for similar issues.

Problem
No response
Suggested solution
The @hemilabs/pop-miner package is a TypeScript API wrapper for the WASM PoP Miner.
This package will contain types, API functions and utility functions for interacting with the PoP Miner from TypeScript/JavaScript.
Additional Information
No response

Closed by https://github.com/hemilabs/heminetwork/pull/162


universal-webpack/source/chunks.js   path of undefined

Thanks for this project.
I'm trying to follow the readme and have almost the same settings, but I'm having the following error when I run babel-node "./src/server/startServer"
TypeError: Cannot read property 'path' of undefined
at chunk_info_file_path (/Users/roy/development/projects/react-redux-boilerplate/node_modules/universal-webpack/source/chunks.js:5:19)
at /Users/roy/development/projects/react-redux-boilerplate/node_modules/universal-webpack/source/server.js:22:37
And also, I don't know if I'm setting up correctly ( the webpack.config.client.js and webpack.config.server.js seems okay, at least not throwing error )
Here is my start server
import { server } from 'universal-webpack'
import settings from '../../universal-webpack-settings'
// `configuration.context` and `configuration.output.path` are used
import configuration from '../../webpack.config.babel'

// somehow I need this or it will throw error that my config has no context
configuration.context = configuration.default.context

server(configuration, settings)

Thanks for helping, I wonder if there is any gitter or chat channel to talk about problems ?

https://github.com/halt-hammerzeit/universal-webpack/blob/master/source/chunks.js#L5
This could mean that the webpack_configuration you're passing to the library is undefined.
console.log it to make sure.

Let me check, and get back to this thread.

Ok, I think I found out where the issue is coming from.
Do you see any problem in my startServer.js script ??  I'm just testing it out right now with very basic setting, my goal is to get it working :)
// express.js
import path from 'path'
import express from 'express'

import { match, RouterContext } from 'react-router'

import React from 'react/dist/react.min'
import { Provider } from 'react-redux'
import { renderToString } from 'react-dom/server'

// react-router
import routes from '../js/routes'

// Redux
import store from '../js/redux/configureStore'

// The server code must export a function
// (`parameters` may contain some miscellaneous library-specific stuff)
export default function(parameters)
{

    const app = express();

    // React application rendering
    app.use((req, res) =>
    {
      match({ routes, location }, (err, redirectLocation, renderProps) => {
        if (err)
        {
            res.status(500)
            return res.send(`Server error ${err}`)
        }

        // Render React page

        const InitialView = (
          <Provider store={store}>
            <RouterContext {...renderProps} />
          </Provider>
        )

        const componentHTML = renderToString(InitialView)

        res.status(200)
        res.send('<!doctype html>' + '\n' + ReactDOM.renderToString(<Html>{componentHTML}</Html>))
      })
    })

    // Start the HTTP server
    app.listen(3000, () => {
      console.log('starting server')
    })
}

Well, it exports a function, so it should work, even with es6's default export.
If you share a sample project with the reproduction instructions and the error message then maybe I would have a look.

Thanks, here is the steps
https://github.com/iroy2000/react-redux-boilerplate/tree/adding-ssr-support
I basically follow your basic setup, and I'm very new to universal-webpack, basically run the following command in the PROJECT_ROOT ( same as the tutorial, but please let me know if I missed anything )
NODE_ENV=production webpack --config "./webpack.config.client.babel.js" --colors --display-error-details

NODE_ENV=production webpack --config "./webpack.config.server.babel.js" --colors --display-error-details

NODE_ENV=production babel-node "./src/server/startServer"

zsh: command not found: webpack

You should move these commands to package.json scripts so that they work with locally installed webpack

Hi @halt-hammerzeit
I added a script  npm run ssr-debug which is doing that
"ssr-debug": "NODE_ENV=production webpack --config './webpack.config.client.babel.js' --colors --display-error-details && NODE_ENV=production webpack --config './webpack.config.server.babel.js' --colors --display-error-details && NODE_ENV=production babel-node './src/server/startServer'"

@iroy2000

➜  react-redux-boilerplate git:(adding-ssr-support) npm run ssr-debug

<EMAIL_ADDRESS>ssr-debug /Users/kuchumovn/work/react-redux-boilerplate
NODE_ENV=production webpack --config './webpack.config.client.babel.js' --colors --display-error-details && NODE_ENV=production webpack --config './webpack.config.server.babel.js' --colors --display-error-details && NODE_ENV=production babel-node './src/server/startServer'

Yes, that outputs the error:
TypeError: i.default is not a constructor

Now split that command into smaller parts and find out which one of them causes the error.

It is the last one that caused the error, let me split that up.

Now, look at the stack trace and tell me, in which file and on which line is the error
TypeError: i.default is not a constructor
    at Object.t.default (/Users/kuchumovn/work/react-redux-boilerplate/build/server/server.js:4:163)
    at /Users/kuchumovn/work/react-redux-boilerplate/node_modules/universal-webpack/source/server.js:53:11
    at run (/Users/kuchumovn/work/react-redux-boilerplate/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:87:22)
    at /Users/kuchumovn/work/react-redux-boilerplate/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:100:28
    at flush (/Users/kuchumovn/work/react-redux-boilerplate/node_modules/babel-polyfill/node_modules/core-js/modules/_microtask.js:18:9)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickDomainCallback (internal/process/next_tick.js:122:9)

I believe it is coming from this line
https://github.com/iroy2000/react-redux-boilerplate/blob/adding-ssr-support/src/server/server.js#L22
function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=function(e){var t=new i["default"];t.use(function(e,t){(0,l.match)({routes:p["default"],location:location},function(e,r,n){if(e)return t.status(500),t.send("Server error "+e);var u=s["default"].createElement(c.Provider,{store:x["default"]},s["default"].createElement(l.RouterContext,n)),o=(0,d.renderToString)(u);t.status(200),t.send("<!doctype html>\n"+ReactDOM.renderToString(s["default"].createElement(Html,null,o)))})}),t.listen(3e3,function(){console.log("starting server")})};var u=r(/! path /27),o=(n(u),r(/! express /25)),i=n(o),l=r(/! react-router /5),a=r(/! react/dist/react.min /29),s=n(a),c=r(/! react-redux /4),d=r(/! react-dom/server /28),f=r(/! ../js/routes /13),p=n(f),m=r(/! ../js/redux/configureStore /10),x=n(m)},/!**********************!\

I just coded my webpack server config from scratch and it works fine.
I still like the concept of config generator though, I will come back to it later. But since now doing it from scratch works and I feel more comfortable that way.
Let's close this ticket then.
Thanks.

Well, you should have been turned minification off, then it would be
TypeError: _express2.default is not a constructor
    at Object.exports.default (/Users/kuchumovn/work/react-redux-boilerplate/build/server/server.js:59:14)
    at /Users/kuchumovn/work/react-redux-boilerplate/node_modules/universal-webpack/source/server.js:53:11
    at run (/Users/kuchumovn/work/react-redux-boilerplate/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:87:22)
    at /Users/kuchumovn/work/react-redux-boilerplate/node_modules/babel-polyfill/node_modules/core-js/modules/es6.promise.js:100:28
    at flush (/Users/kuchumovn/work/react-redux-boilerplate/node_modules/babel-polyfill/node_modules/core-js/modules/_microtask.js:18:9)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickDomainCallback (internal/process/next_tick.js:122:9)

Which means it didn't like this line:
    const app = new express()

And even when  new is removed it would still complain.
console.log('express', express)

Would give:
@@@@@@@@@@@@@@@ express { basicAuth: [Getter],
  bodyParser: [Getter],
  compiler: [Getter],
  compress: [Getter],
  cookieParser: [Getter],
  csrf: [Getter],
  directory: [Getter],
  errorHandler: [Getter],
  favicon: [Getter],
  limit: [Getter],
  logger: [Getter],
  methodOverride: [Getter],
  profiler: [Getter],
  query: [Getter],
  responseTime: [Getter],
  router: [Getter],
  session: [Getter],
  static: [Getter],
  staticCache: [Getter],
  vhost: [Getter],
  version: '2.5.11',
  createServer: [Function],
  HTTPServer: [Function: HTTPServer],
  HTTPSServer: [Function: HTTPSServer],
  Route: [Function: Route],
  view: { [Function: View] register: [Function], compile: [Function], lookup: [Function] },
  View: { [Function: View] register: [Function], compile: [Function], lookup: [Function] } }

Which means you have a really weird express installed.
Then I would direct you at your package.json and you would find that express dependency is missing from there.
Then you would install express@latest, remove new and the error would disappear.
And all those things are the things you could do by yourself if you had a bit of patience and diligence but I guess you don't.

Ha, let me do that again, as I said, I really like that config generation concept.  Thanks.

Thanks, that's actually really helpful.


Implement Bluetooth Chat Functionality

Summary
Implemented functionality for detecting and connecting to many Bluetooth devices at the same time.
Reasons

Provide functionality for detecting bluetooth devices.
Provide functionality for connecting bluetooth devices.
Enable multiple connection to many Bluetooth devices at the same time.

References
closes #36

@AlexJustUser It must be a PR to a separate branch. Don't merge it to the main.


add set/delete/update functions

Modeled after the same API in immutables.Map and pyrsistent.Map.

I see that the upstream PR that needed these changes has been superseded by another one. Is this still needed?

I see that the upstream PR that needed these changes has been superseded by another one. Is this still needed?

We would like to use these functions elsewhere, so this PR would still be useful to us.

Due to #263 (I think), there is now an incompatibility with dict. Not sure this was intentional:
$ python
>>> dict(a=1)
{'a': 1}
>>>
>>> from immutabledict import immutabledict
>>> immutabledict(a=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: immutabledict.__new__() got an unexpected keyword argument 'a'

Thanks for the MR!


Doc type-agnostic summarization

Currently, websites are summarized via a hook, :websum, whereas documents (pdf, docx, txt) are summarized when loaded into a DM. Consolidate these under a single hook, :summarize

Completed. Merged with main


Tutum is now dockercloud

_TUTUM_API_URL and TUTUM_AUTH variables are now _DOCKERCLOUD_SERVICE_API_URL and DOCKERCLOUD_AUTH

fixed it by copying dockercloud_auth into tutum_auth as environment variable.
environment:
    - 'BACKUP_CRON_SCHEDULE=0 2 * * *'
    - TUTUM_AUTH=$DOCKERCLOUD_AUTH


Support of YLYK01YL remote

Will the YLYK01YL remote be supported anytime soon here as it is functional in BLE Monitor? Or are there still some major problems in the way?
I opt in for testing if anything can be done.

PR is ready to implement this, see #65

This is very good news. Is there any help in testing this I can do?
And of course thank you for doing the work.

Not yet. I will merge this change in xiaomi-ble tomorrow, after that, I need to make some small changes to the integration in Home Assistant. But the big work has already been done. (adding the event entity in Home Assistant for the xiaomi-ble integration, which got merged a few hours ago). The event entity thing was something we needed first, as the remotes don't send "sensor states", but they send "events" (in HA terms).
After the PR for HA is ready, you can test it. I'll let you know. I expect somewhere this week.


I would like to build this component too

I have experience with building UI designs using figma, for this component I would like to build it with tailwindcss and nextjs.
Here is my portfolio:
Portfolio link

Closed issue related to issue #47.


Maintain backwards compatability with route53

Description

Changes alias_target and geo_location in a route53_recordset to allow either json or a resource_property
Motivation and Context

Previously, users needed to specify the json for alias_target and
geo_location for a route53_recordset.  In the add-alb branch, merged in
PR 214, this was changed in a backwards-incompatible way, requiring
anyone who had previously specified json to now specify a block for the
resource_property.  Now, either way is acceptable.
This is potentially a paradigm that can be used elsewhere, as there are
many places where a resource_property would be appropriate, but has not
existed and users have implemented the functionality directly with a
json (or ruby hash) object.  This will allow us to deprecate that method
in favor of the more clean resource_property approach, without breaking
everything in a 1.0 upgrade.
Usage Examples

Testing Steps

Post-merge Steps

I am going to change this to have a single method that handles both a block and a resource_property arg.  I misunderstood the results of my testing.
http://stackoverflow.com/questions/9373104/why-doesnt-ruby-support-method-overloading


Aggregation option when creating a bioblitz project not visible to non-curators

If someone who is not a site curator creates a bioblitz project, they can't see the option to "automatically add observations to this project" unless they first save and then edit the project.
I didn't know this until talking someone else (non-curator) through creating a bioblitz project.
Fixing this would cut down on the "why isn't my bioblitz project aggregating observations?" posts.

We've removed the project aggregation option, which makes this issue obsolete


getValuesFromState can cause an error in IE11

In some cases, the boolean "true" gets passed to getValuesFromState. While this returns an empty array in Chrome and Edge, it returns an error in IE11. This added check with prevent the error(and thusly, the form exploding) in IE11.
I have opened a pull request to fix this.

Also, if you were wondering when this happens, it's when you check a checkbox - it seems the value, true, leaks it's way into there.

Fixed by 1317101d5938652a50601eeda6a240ea311ad1b0


OPSEXP-1862 Add alfresco repository chart

Ref: OPSEXP-1862

[ ] https://github.com/Alfresco/acs-deployment/issues/930

I will wait for https://github.com/Alfresco/acs-deployment/pull/902 and integrating the changes before continuing but worth another round of review

Deprecated by https://github.com/Alfresco/alfresco-helm-charts/pull/84


The title, message, cancelLabel, removeText, and defaultEmailLabel attributes of the InboxOptions object do not take effect.

Q1. In Android, the settings of the title, message, cancelLabel, removeText, and defaultEmailLabel attributes do not take effect.
Q2. The app attribute is not set for iOS. Even if the attribute of title, message, cancelLabel, removeText, and defaultEmailLabel is set, they are not used.
Q3. After the app attribute in iOS is set to gmail or outlook, the title, message, cancelLabel, removeText, and defaultEmailLabel are not used even if the attributes are set.
Q4. How can I check whether attributes such as title, message, cancelLabel, removeText, and defaultEmailLabel take effect in iOS or Android?

I'm not sure if I fully understand.
These attributes for the text of the dialog should have effect, but only if there's more than one app available, otherwise the first app will be opened immediately.


Create a new resource with given ID

Is it possible to force the id of a resource to a specific guid?
Since multiple resources can be linked together via reference pointers, in case of migration, maintenance where bunch of records needs to be migrated, it would be good to have a way to preserve the original GUID for the resources.

Just do a PUT to a specific resource id, e.g.:
PUT /Patient/1234

with a payload of:
{
   "resourceType": "Patient",
   "id": "1234",

    // Other stuff
}

https://www.hl7.org/fhir/http.html#upsert

Brilliant! Thanks


Feature Request: use Docker TCP deamon.

Hi,
Could you add a possiblity to get stats from the tcp docker endpoint, plz ?
This would allow your plugin to collect all data from a swarm cluster, in one instance.
Without that, we need to add a container on each swarm node.
Regards,

It works with appropriate env variables set.


Added QOL improvements for doxygen

Includes several quality of life improvements for doxygen:

Strips the base directory from the path, so there is no github/workspace prefix in the file list.
Enables C syntax highlighting and more for the .cl files.
Removes the *.md and *.txt files from Doxygen. Although the introduction doc should persist, this is probably not wanted. Since doxygen grabs everything from the root folder (which is where the library is), it currently grabs unwanted *.txt and *.md files.
Adds a nice theme, with small modifications, so it's nicer to work with in a desktop and mobile.

Make the commit message
Add several quality of life improvements for doxygen:

Strips the base directory from the path, so there is no github/workspace prefix in the file list.

Enables C syntax highlighting and more for the .cl files.

Removes the *.md and *.txt files from Doxygen. Although the introduction doc, this is probably
not wanted. Since doxygen grabs everything from the root folder (which is where the library is),
it currently grabs unwanted *.txt and *.md files.

Adds a nice theme, with small modifications, so it's nicer to work with on a desktop and mobile.

thankyou @noamzaks


Unexpected behavior after removing cache and cache size keeps growing

Quick summary:
I run scheduled Restic commands within a cron docker container. I use a volume for the restic cache to persist this data between container reboots. I backup to 2 backends: AWS S3 and DigitalOcean Spaces. The repositories are ~250GB in size each.
First issue: when I remove the local cache and run a backup it's just a quick as with the cache being available.
Second issue: the cache size keeps growing over time even while I run hourly forget commands with the --cleanup-cache flag.
Please say if you need more information on certain steps or whatever, I'm happy to provide them.
Output of restic version
restic 0.9.6 compiled with go1.13.10 on linux/amd64
How did you run restic exactly?
We schedule different Restic commands using a docker container running cronjobs. We run a backup every 30 minutes at xx:18 and xx:48. We run a forget command hourly at xx:35 and we prune the repositories weekly.
Within our docker-compose.yml file we have a volume for the cache data mounted to this container:
cron:
        build:
            context: ./cron
            dockerfile: Dockerfile
        container_name: ${COMPOSE_PROJECT_NAME}-cron
        restart: unless-stopped
        working_dir: /var/log/cron
        environment:
            - RESTIC_PASSWORD=${RESTIC_PASSWORD}
        volumes:
            - ../:/var/www
            - restic-cache:/home/${HOST_USERNAME}/.cache/restic // this is the volume mount
        networks:
            - application-network

...

volumes:
    restic-cache:
        driver: local

When running restic cache from within this container we get the following output:
Repo ID     Last Used   Old  Size
----------------------------------------
bb256f1dc6  0 days ago        49.613 GiB
7ae1c44bde  0 days ago        50.102 GiB
----------------------------------------
2 cache dirs in /home/deployer/.cache/restic

So that seems to be working fine. When I delete the cache with: restic cache --cleanup --max-age=0 (any other age like 1, 2 etc won't work, Restic returns that it can't find old cache directories) and run a backup afterwards I would have expected Restic to be slower because of the cache missing, this however doesn't seem to be the case, the backup process is just as quick as it was before removing the cache (about 1,5/2minutes per repository for about 250GB of files)

What backend/server/service did you use to store the repository?
We backup to AWS S3 and DigitalOcean Spaces.
Expected behavior
I expect Restic to be slow(er) after removing the local cache. Also I'm not sure I understand why the cache directories keep on getting bigger over time when we run (as stated above) hourly forget commands with the --cleanup-cache flag.

Actual behavior
The backup process is just as quick as it is with the cache present. The cache directory size keeps getting bigger, I would expect the cache directory to get bigger a bit over time but it's increasing with multiple GBs per day.

Steps to reproduce the behavior
Make sure there is a local cache available, run a backup and check the timing on this one. Afterwards run restic cache --cleanup --max-age=0 on a repository which has a local cache. Run another backup a it should be just a quick as before removing the cache.

Do you have any idea what may have caused this?
I have two suspicions:

Restic may be reading the metadata from the repositories? I would still think that must be much slower than reading local directories/files.
The --cleanup-cache flags doesn't 'see' or use the local cache directory properly because of the docker volume in some way? It does when writing but maybe it doesn't when reading it.

Do you have an idea how to solve the issue?
I've tried numerous things to find out what causes the issue (if it's an issue after all, maybe I'm misunderstanding the way caching works and why the directories get big pretty fast).
Did restic help you today? Did it make you happy in any way?
Not only today ;) Amazing tool you guys made!

Hello there
@Jannick94 I'm not sure on a cache size (for me it stopped/slowed significant growth after few runs), but what really helps  is setting stable hostname for your container. When you start a new container with a new hostname it fails to find parent snapshot in cache, so it reads all the files (you should see no parent snapshot found, will read all files in the output) so that's effectively the same as no cache
But if your hostname is stable runs should be much faster and you should definitely see the difference with/without wiped cache
Also must notice that I was testing very similar to yours setup, but with the latest restic 0.12.1

Thanks for both answers! We managed to resolve this by running the prune command (after updating restic to a more recent version) more often and as advised giving the docker container a stable hostname.


Handling of nested 'html' documents

Apparently markup.ml  doesn't handle nested html documents (e.g. html document inserted into middle of another html document), currently markup.ml just silently ignores everything after the first closing  tag.
There is a quick example of such behavior:
let _ =
  let open Markup in
  string "
FOO

BAR
"
  |> parse_html
  |> signals
  |> write_html
  |> to_channel stdout

It's understood, that HTML document nesting is outside of any HTML specification, however its handled by all major browsers as well as by JS parsers.
For example there is link to parsing tree generater by https://github.com/inikulin/parse5 :
https://astexplorer.net/#/gist/16f24683fd56e8f65bf8beb8f6c8664d/latest

Hmmm, when I expanded the AST, I didn't see a nested  element:

I think you are referring not to allowing nested HTML elements, but to recovering from closing nested  tags, when they are preceded by an opening  tag (which remains a parse error) without ending the document. I guess we could support this.
For our own reference later, this is actually positively against the HTML spec:

A start tag whose tag name is "body"
Parse error.
If the second element on the stack of open elements is not a body element, if the stack of open elements has only one node on it, or if there is a template element on the stack of open elements, then ignore the token. (fragment case)
Otherwise, set the frameset-ok flag to "not ok"; then, for each attribute on the token, check to see if the attribute is already present on the body element (the second element) on the stack of open elements, and if it is not, add the attribute and its corresponding value to that element.

This says (in the common case) to add any new attributes on a nested  tag to the top-level tag, which will often be an  tag (which Markup.ml doesn't do either), and otherwise ignore the nested  tag.

An end tag whose tag name is "html"
If the stack of open elements does not have a body element in scope, this is a parse error; ignore the token.
Otherwise, if there is a node in the stack of open elements that is not either a dd element, a dt element, an li element, an optgroup element, an option element, a p element, an rb element, an rp element, an rt element, an rtc element, a tbody element, a td element, a tfoot element, a th element, a thead element, a tr element, the body element, or the html element, then this is a parse error.
Switch the insertion mode to "after body".
Reprocess the token.

This eventually causes the entire document to end when  is seen, after closing enclosing elements.
The  start tag in  is handled here:
https://github.com/aantron/markup.ml/blob/d2905e3ccf1abeac5314e24293d0bec47f23a6ad/src/html_parser.ml#L1638-L1639
I think we need to change that to insert a fake "nested HTML" element into the stack, that won't compare equal with real HTML elements (so we don't mess up the standards-compliance of the rest of the parser). We need to still not emit a parsing signal for it, though.
The  end tag in  is handled here:
https://github.com/aantron/markup.ml/blob/d2905e3ccf1abeac5314e24293d0bec47f23a6ad/src/html_parser.ml#L1689-L1698
We should probably change this to check for whether the top element on the stack is the fake "nested HTML" element. If so, we pop it and continue parsing, otherwise we run the code that is already there.
I haven't thought through how having this "nested HTML" element will interact with the rest of HTML5 error recovery.
Also, FYI, Markup.ml doesn't silently ignore things after . If you use the ~report callback of parse_html, you will see that it reports errors, as required by HTML5:
let _ =
  let open Markup in
  string "
FOO

BAR
"
  |> parse_html ~report:(fun location error -> Error.to_string ~location error |> prerr_endline)
  |> signals
  |> write_html
  |> to_channel stdout

results in
line 1, column 25: misnested tag: 'html' in 'body'
line 1, column 13: unmatched start tag 'div'
line 1, column 38: bad content in 'html'
line 1, column 39: bad content in 'html'
line 1, column 40: bad content in 'html'
line 1, column 41: bad content in 'html'
line 1, column 47: bad content in 'html'
line 1, column 59: bad content in 'html'
line 1, column 60: bad content in 'html'
line 1, column 61: bad content in 'html'
line 1, column 62: bad content in 'html'
line 1, column 68: bad content in 'html'
line 1, column 75: bad content in 'html'

It's arguably too literal to the spec and too noisy (probably because few people have used error reporting to date), but the first error reveals the problem.

Also, FYI, Markup.ml doesn't silently ignore things after .

Right, Markup.ml reports an parsing errors in all erogenous cases (extra , out of scope  and
 after . However there is no much practical error handle could do to actually recover from errors and let Markup.ml parse html after stray . And users of libraries that rely on Markup.ml (like Soup) could do nothing to process such html files.

I think we need to change that to insert a fake "nested HTML" element into the stack, that won't compare equal with real HTML elements (so we don't mess up the standards-compliance of the rest of the parser). We need to still not emit a parsing signal for it, though.

Well, this was also my initial though, however it seems to be rather complicated. It turns out there are is a much simple practical approach, since stray extra  and    are already ignored, it should be enough to ignore non terminating  and  to achieve similar results, so there is #29.
P.S. It appears that JS parser5 pretty much ignores   and
https://astexplorer.net/#/gist/c3c279e6505abbfb04189f35abd9f1f9/latest  .


[Feature Request] Embedutils

For the Embedutils cog, it would be convenient to view the stored embeds format in a code block. Another very useful change would be to be able to send stored embeds to specified channels. I dont believe there is an option for that yet, there is only a show one which could do the same thing but its more useful if using it in larger servers.

Hello,
Thanks for the ideas, you can now download a stored embed's JSON with [p]embed store download <name>. Additionally, a channel option has been added to the [p]embed post <name> [channel] command.


Use npm to manage external modules

Current situation
Currently, external modules like Bootstrap, jQuery, etc. are downloaded, extracted and copied manually into their corresponding directories.
Preferred situation
We have a module manager that automatically updates all external modules and solves dependencies correctly.
Why?
This PR introduces npm as module manager for external packages. This has several advantages:

We can update all packages by simply calling npm update
We can make use of ORT to audit our package.json bill of material
We can make use of Dependabot to check for known vulnerabilities.

The integration is a very poor man's approach as I have simply symlinked the relevant files to the corresponding package directory. However, introducing yet another tool like webpack.js is overwhelming and not really needed.

This PR addresses #203


add czech language

add czech language

Please revert the changes on package.json and package-lock.
Also please add the language shortcut to the the readme in alphabetical order
Else nice PR 👍🏼

which git command I can do it?