Can't read img attribute "src"

Version of the custom_component
6.7.1
Configuration

resource: https://www.lego.com/fr-fr/pick-and-build/pick-a-brick?query=3838
scan_interval: 1800
sensor:

unique_id: lego_3838
name: Mini Oxygen Bottles
select: "#pab-results-wrapper > div > div > ul > li:nth-child(1)"
attributes:

name: Couleur1
select: "#pab-results-wrapper > div > div > ul > li:nth-child(1) > div > span"
value_template: '{{ value.split(":")[1] }}'
name: Image1
select: "#pab-results-wrapper > div > div > ul > li:nth-child(1) > div > button > div > img"
attribute: "src"
name: Prix1
select: "#pab-results-wrapper > div > div > ul > li:nth-child(1) > div > div.ElementLeaf_priceAndMaxQuantity__8Wb6Z > span > span"

Describe the bug
All of a sudden after HA update to 2023.7.2 ha-multiscrape stopped to retrieve content of the "src" attribute of an img tag.
There was no change in the page source code, the html is the same.
Debug log
2023-07-20 19:36:09.838 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_1 # Mini Oxygen Bottles# image1 # Tag selected:
2023-07-20 19:36:09.838 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_1 # Mini Oxygen Bottles# image1 # Try to find attribute: src
2023-07-20 19:36:09.838 DEBUG (MainThread) [custom_components.multiscrape.entity] Scraper_noname_1 # Mini Oxygen Bottles # image1 # Exception selecting attribute data: 'src'
2023-07-20 19:36:09.839 ERROR (MainThread) [custom_components.multiscrape.entity] Scraper_noname_1 # Mini Oxygen Bottles # image1 # Unable to extract data from HTML
2023-07-20 19:36:09.847 DEBUG (MainThread) [custom_components.multiscrape.entity] Scraper_noname_1 # Mini Oxygen Bottles # image1 # On-error, set value to None

After looking at the HA core logs it appears that the html source code retrieved by multiscrape is different that the code retrieved by Chrome.
The html retrieved by multi scrape:
2023-07-22 11:02:42.899 DEBUG (MainThread) [custom_components.multiscrape.scraper] Scraper_noname_1 # Mini Oxygen Bottles# image1 # Tag selected: <img alt="Element 6268852" class="ElementImage_listing__sPRJ8 ElementImage_hidden__ZBfQ_" data-test="pab-item-image" style="display:none"/>
The html retrieved by Chrome:

There is no "src" attribute in the code retrieved by multi scrape hence the images are not loaded
I wonder why these differences? How to fix that?

I think the src attribute is composed in the javascript code of the site and not in the original html file that's being scraped. Hence it cannot be scraped.
I don't see how HA version 2023.7.2 plays a role in that...

Thank you for your answer.
It might just be a coincidence, I noticed that after the update go my HA setup.
The HTML code in Chrome seems to be the same as it was previously when multi scrape was able to trace the image src attribute. They would have change it to prevent scrapping of the result page images?

Not sure, because I think you can still scrape the element ID and then compose the URL yourself.
I'll close the issue as this seems to be more of a support question.


caffe compile error

it's strange that no one else ran into.
when I take this command:
sh script/train_tsn.sh ucf101 rgb
it occurs error as follows:
I0614 15:15:42.363035 142386 solver.cpp:87] Creating training net from net file: models/ucf101/tsn_bn_inception_rgb_train_val.prototxt
libprotobuf ERROR google/protobuf/text_format.cc:245] Error parsing text-format caffe.NetParameter: 11:17: Message type "caffe.VideoDataParameter" has no field named "num_segments".
F0614 15:15:42.403738 142386 upgrade_proto.cpp:88] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: models/ucf101/tsn_bn_inception_rgb_train_val.prototxt

Check you current Caffe installation. This mostly happens when you are running other installations.

@qijiezhao 你的问题解决了吗， 能说一下你的解决办法吗？我也碰到这种类似的问题了，非常感谢！


define error set for all sqlite errors

anyerror could be any error in the entire program, so also errors by the user of zqlite, but errorFromCode() cannot return those.
For libraries, it is better to declare an explicit error set.

thanks for this.


UI/UX tweaks

Message Pane

better readability (alternating colors, borders, more space ... ?)
highlight links in messages
better visualization of long nicknames

Modal Window

fix bad contrast (tooltips should match)
pimp form elements
decrease font size?
highlight error messages somehow? (should have no impact on JS side)

Message Form

Fix #49

When we do this, we could also add a mobile-capable css-stylesheet & improve the handling on mobiles

Maybe it's a good idea to track the XMPP "/me " command (XEP-0245) here. It's tricky to implement as a separate plugin, since it requires tweaking the design, like in 3cc4448.

I want to share the progress I've made so far. It's not yet finished, but you can get an idea where I'm heading to.
(Click to see in original size)

Hey, just checked out your branch. First I was a little bit concerned about the dark color of the roster & tabs but it looks nice in the browser. :)
The borders are really nice and provide a great visual distinction.
On a second thought, I think a little bit a lighter bg-color (for roster&tabs) wouldn't hurt. It seems to me that the eye can't really fade it out from the sight because it's that dark. What do you think?
About the time of a message display: somehow i'd like to have them without hovering, too. Maybe a light grey or something like that would be nice (it shouldn't take too much attention from the messages away).
The modal's and tooltips need the redesigned, but I assume you did plan that :)
You should maybe post this issue & the screenshot or maybe even a small demo (on e.g. the nodester instance) to the mailinglist. I assume people would give you feedback there.

@dragonsblaze about the /me command: I somehow agree with you although I'm not sure if it's such an important feature (i.e. are people really using it?).
Maybe we could further decouple the message display in order to provide a hook for a plugin which implements features like that?

@mweibel yes, people do use it, and since it's a part of the standards, I'm in favor of implementing it.

This issue is in progress on branch theme-v2).

Just wanted to pipe in to say that I myself often use /me as it's a carry-over habit from IRC as well.
Looking forward to the updates on theme-v2. I might check it out myself to work on the changes needed for embedding while we're at it (is that something any of you are working on already?).

I deployed theme-v2 and will keep this up-to-date until we merge into master: http://candy-theme-v2.nodejitsu.com/
It is a bit slow because there are two redirects, but it's good enough for the purpose.

Based on dragon's comments and my own tweaking, I made a little mockup screen...
http://i32.photobucket.com/albums/d12/phreadom/theme-v2-2.png
Basically rounding the top corners on the top tabs... making the user list a bit brighter so that it's a little easier to visually get an idea how many people are in the room... and tweaking the "Send" button... given that we're already making a "custom" button, why not make it look a little better? Not that it's probably going to be used very much, but as it stands it looks a bit out of place to me. A button should look like a button I think. :)
He said he would also leave a comment here with his own ideas, so let's see what he has to say as well.

Thank you, @jstressman !
The green send button looks good; using the blue version is another option. Foundation CSS offers some decent prototyping options, and is also well known for its flexible CSS grids.
jQuery timeago makes timestamps human friendly.

The timestamps were also an issue for me since I was wondering how they would denote a time/date further back than 12 or 24 hours ago? I think I'd like the option of having it either specific or relative... not just only one or the other. (Since sometimes I don't want to have to do the math in my head to figure out which day a message was sent on if it's in a low traffic room.)

I agree. Unless both absolute and relative timestamps are displayed at the same time, the user should be able to pick.

Hey guys. Thanks for you contributions!
I like the roster and the round corners on the tabs.
The button doesn't really fit and it is too agressive. Users won't click on it once they get used to the fact, that they can hit enter to send the message.

http://i32.photobucket.com/albums/d12/phreadom/theme-v2-4.png
How about something like that? Very subdued, but better looking. It could "come into focus" more clearly if the user mouses over it, but be faded out of the way otherwise.

Thanks for your comments :)
I like the idea about the faded button, a lot better than the proposal with the green one.
About the timeago thingy: In case you don't know this, @ddevlin created a plugin for this feature:
https://github.com/candy-chat/candy-plugins/tree/master/timeago

By the way, I also wanted to mention (in response to Patrick, who I missed again in the test chat) that I do like the new modal window with the border, rounded corners, subtle shadow, etc. :) Looks sharp.


error LNK2019

error LNK2019: 无法解析的外部符号 rand，函数 main 中引用了该符号

#![no_std]
#![no_main]

extern crate libc;

use libc::{*};
use core::arch::asm;

#[no_mangle]
unsafe extern "C" fn main() -> i32 {
    unsafe{
         asm!("int $3");
         rand();
    }
    0
}

#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
    loop {}
}

[build]
target = "x86_64-pc-windows-msvc"
rustflags = [
    "-C", "link-arg=/ENTRY:main",
    "-C", "target-feature=+crt-static",
]

[package]
name = "libc"
version = "0.0.0"
edition = "2021"

[profile.release]
panic = 'abort'

[profile.dev]
panic = 'abort'

[dependencies]
libc = { version = "0.2.147", default-features = false }

You may need to link a C runtime library. For example:
[build]
target = "x86_64-pc-windows-msvc"
rustflags = [
    "-C", "link-arg=/ENTRY:main",
    "-C", "target-feature=+crt-static",
+   "-C", "link-arg=libcmt.lib"
]

The error still shows
how to link
link-arg=libcmt.lib is not valid
Do you want to specify the full path
Or use the compile script

You may need to add it to the libpath.
Note that the libc crate only exposes wrappers, i.e., it's not the issue on the libc.
The user forum may be a good place to ask, while this issue tracker is for libc's bugs/feature requests etc.


[release-1.20] K3s docker image cannot be run on a cgroup v2 host

Backport fix for K3s docker image cannot be run on a cgroup v2 host to branch release-1.20

#4085

Validated in v1.20.11-rc1+k3s2 in a cgroups v2 system
$ docker exec -it k3s-server-1 kubectl  get nodes,pods -A -o wide
NAME                STATUS   ROLES                  AGE     VERSION             INTERNAL-IP   EXTERNAL-IP   OS-IMAGE   KERNEL-VERSION           CONTAINER-RUNTIME
node/k3s-server-1   Ready    control-plane,master   2m11s   v1.20.11-rc1+k3s2   <IP_ADDRESS>    <none>        Unknown    5.8.15-301.fc33.x86_64   containerd://1.4.11-k3s1

NAMESPACE     NAME                                          READY   STATUS      RESTARTS   AGE    IP          NODE           NOMINATED NODE   READINESS GATES
kube-system   pod/local-path-provisioner-5ff76fc89d-t8v94   1/1     Running     0          118s   <IP_ADDRESS>   k3s-server-1   <none>           <none>
kube-system   pod/metrics-server-86cbb8457f-wsvrw           1/1     Running     0          118s   <IP_ADDRESS>   k3s-server-1   <none>           <none>
kube-system   pod/coredns-6488c6fcc6-v6qp5                  1/1     Running     0          118s   <IP_ADDRESS>   k3s-server-1   <none>           <none>
kube-system   pod/helm-install-traefik-zz5mb                0/1     Completed   0          118s   <IP_ADDRESS>   k3s-server-1   <none>           <none>
kube-system   pod/svclb-traefik-rj97f                       2/2     Running     0          102s   <IP_ADDRESS>   k3s-server-1   <none>           <none>
kube-system   pod/traefik-6f9cbd9bd4-8fwhw                  1/1     Running     0          102s   <IP_ADDRESS>   k3s-server-1   <none>           <none>


Color change on hovering the link icons

Color change on hovering the instagram, twitter  and youtube icons. It makes the user to understand well.

I want to work on this issue
@Sanskriti1102 assign me this work with the labels gssoc-ext,hacktoberfest-accepted and level according the issue.

@Shirisha-16 what would the colour be?

#007bff . This is the color of icons used in website mostly

@Shirisha-16 assigned

i can help under gssoc 24 extnd. can you assign that to me ?

@Sanskriti1102 I would like to contribute in this task under hacktoberfest. Plz assign it to me.

@Sanskriti1102 hello, is this issue free? i am intrested in contributing on it

@Sourabh782 u can

@Sourabh782 u can

Can you assign me?


Broken link replacement

Replaced broken link to an article about Variables.
Check it out and let me know what do you think about it:)

Hey, @Artemmkin  can you take a look?

@mariuszmichalowski thank you for updating the links!


Feature/smhi class to match 0.2.0

Naive update of parent class to new structure. To be updated later. Ambition here is simply to support 0.2.0 release.

[x] Restructure base code to new format
[x] Fix superstructure (find station from gps and place name, interpolation etc)
[x] Test functionality
[x] Re-write tests
( - [ ] Update documentation )

I hate mutating an object's state. I'd rather a method called get_ returns something and not also mutated an object's internal state.
I'd also write the unit tests in a way that will be easier for us when updating the code in the future. That is, as little patching as possible and assert calls and stuff. The important underlying stuff has been tested and we can assume it'll run fine. I know this isn't strictly a unit test, but they are too brittle to upkeep for our small organisation. Define some input data at some defined interface and some output data your module should produce, mock requests.get, the Metobs modules or so, and let the code run. Call that the unit test of the module. In the integration test, we can actually call the API and run through.
I've simplified it a bit in 57c3e05. I'd probably add a separate method called get_data_by_city (and also allow for interpolation) or so and refactor some of the code in get_data so it can be reused.

I still think you should refactor the _interpolate method in c4dfcca.

Sorry @mgcth, didn't realize until now that you had also commited here. I will look into your work and update. Agree we shouldn't mutate the object.

I will verify the functionality of the support functions you have refactored out of their respective contexts tomorrow @mgcth and also check that it the functionality is there in the main functions to call for the function as necessary. Some work still to be done.

All the code seems to work now and the adjustments were minor. Will continue to learn about patching schemes this weekend and fix the rest of the tests.

@mgcth now the integration tests for MetObs fail?!?!

They are testing the live API, which can change at any point. Perhaps you can have a look at
https://github.com/Ingenjorsarbete-For-Klimatet/ifk-smhi/blob/1f2b9889c56568ee1c63d1d9e048f574c0fd7a39/src/smhi/metobs.py#L365

They are testing the live API, which can change at any point. Perhaps you can have a look at
https://github.com/Ingenjorsarbete-For-Klimatet/ifk-smhi/blob/1f2b9889c56568ee1c63d1d9e048f574c0fd7a39/src/smhi/metobs.py#L365

Sure - but shouldn't that be a new PR/issue?

Sure.

There is no "corrected-archive" returned. That is what the code gets hung up about, I think:
from smhi.metobs import Parameters, Stations, Periods, Data
>>> parameters = Parameters()
>>> stations = Stations(parameters, 21)
>>> periods = Periods(stations, stations.data[1][0])
>>> periods.data
('latest-day', 'latest-hour', 'latest-months')
>>> data = Data(periods)

Returns the following error message:
Traceback (most recent call last):
  File "C:\SCRATCH\ifk-smhi\src\smhi\metobs.py", line 87, in _get_url
    requested_data = [x for x in data if getattr(x, key) == str(parameter)][0]
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\SCRATCH\ifk-smhi\src\smhi\metobs.py", line 345, in __init__
    url, _ = self._get_url(periods_in_station.period, "key", period, data_type)
  File "C:\SCRATCH\ifk-smhi\src\smhi\metobs.py", line 92, in _get_url
    raise IndexError("Can't find data for parameters: {p}".format(p=parameter))
IndexError: Can't find data for parameters: corrected-archive

I would argue that the error stems from the initiation of the Data class @mgcth 👍
    def __init__(
        self,
        periods_in_station: Periods,
        period: str = "corrected-archive",
        data_type: str = "json",

Here, period is explicitly set as "corrected-archive". I have a proposal to instead choose the first available period periods_in_station.data[0] which I think is what you have tried to implement a bit further down. I'll implement it and commit it in this PR.

I would argue that the error stems from the initiation of the Data class @mgcth 👍
    def __init__(
        self,
        periods_in_station: Periods,
        period: str = "corrected-archive",
        data_type: str = "json",

Here, period is explicitly set as "corrected-archive". I have a proposal to instead choose the first available period periods_in_station.data[0] which I think is what you have tried to implement a bit further down. I'll implement it and commit it in this PR.

That wasn't what I tried to implement. It was a special case for when only one period was present. It can probably be generalised to select the period closest to corrected-archive with a user warning if corrected-archive is the default.

...aaand that caused typing errors.

Alright, now we are always sorting alphabetically: ['corrected-archive', 'latest-day', 'latest-hour', 'latest-month'] Will push one more commit to sort.

Alright you will have to approve this now @mgcth . Now integration tests for Strang are failing too, but only for MacOs. Please let me out of this PR!

Alright, now we are always sorting alphabetically: ['corrected-archive', 'latest-day', 'latest-hour', 'latest-month'] Will push one more commit to sort.

We were always sorting in that order but the order isn't very logical. If we will just select the first item from that list it is hard to predict for the user what they get back. Sorting by hour, day, month and archive or the reverse has some logic to it at least.

Alright, now we are always sorting alphabetically: ['corrected-archive', 'latest-day', 'latest-hour', 'latest-month'] Will push one more commit to sort.

We were always sorting in that order but the order isn't very logical. If we will just select the first item from that list it is hard to predict for the user what they get back. Sorting by hour, day, month and archive or the reverse has some logic to it at least.

Ok, so if you've not said anything you'll get the latest reading? Yeah, that makes sense. I will sort that out. Out of curiosity, did you find out what happened with the MacOs integration test?

Alright, now we are always sorting alphabetically: ['corrected-archive', 'latest-day', 'latest-hour', 'latest-month'] Will push one more commit to sort.

We were always sorting in that order but the order isn't very logical. If we will just select the first item from that list it is hard to predict for the user what they get back. Sorting by hour, day, month and archive or the reverse has some logic to it at least.

Ok, so if you've not said anything you'll get the latest reading? Yeah, that makes sense. I will sort that out. Out of curiosity, did you find out what happened with the MacOs integration test?

I couldn’t open the link strang errored on. If it works now I think it was an error/maintenance on SMHI’s side.

This is a really ugly and inconvenient abuse of code to circumvent the typing issues @mgcth. Should really be fixed, but I am not able to come up with a more pretty solution right now I'm afraid and at least this works.

Just when I thought we were out of the woods, metobs_integration fails again... 🙄

Got it! ok now @mgcth ?

@mgcth ...?

Thanks for the input. I will try to get an integration test going and sort out the remaining stuff to the extent that I can.

@mgcth it seems your fix to use IntEnum changed the order of the list so that default is now "corrected-archive" again, was that deliberate?

@mgcth it seems your fix to use IntEnum changed the order of the list so that default is now "corrected-archive" again, was that deliberate?

Yes. Do you prefer it the other way around?

@mgcth it seems your fix to use IntEnum changed the order of the list so that default is now "corrected-archive" again, was that deliberate?

@mgcth it seems your fix to use IntEnum changed the order of the list so that default is now "corrected-archive" again, was that deliberate?

Yes. Do you prefer it the other way around?

Not at all - I thought you wanted it the other way around after that discussion we had earlier, but I have absolutely no opinion on the matter. I will continue with this way of working, seems good to me. 👍

Ping @mgcth

I don't know if I managed to get the figure in the build properly @mgcth, could you have a look please? Other than that, I am quite happy.


Remove references to addSubOperations option

The main README still references the addSubOperations option, despite it being removed in favor of better link support.

The links hyperlink is also broken.

See #198


Let the user know when a request was intercepted

one idea is to make the currently selected request a "sticky" row, so it is always visible, but that might be more confusing than useful.

one idea is to make the currently selected request a "sticky" row, so it is always visible, but that might be more confusing than useful.

The behavior in Wireshark seems sensible. It automatically scrolls the user down (so the latest request is always visible) unless the user has ever "scrolled up", in which case no autoscrolling ever happens, unless the user scrolls all the way down again.
In essence, the scrolling behavior is "leave at the bottom, unless the user is not at the bottom".

The behavior in Wireshark seems sensible. It automatically scrolls the user down (so the latest request is always visible) unless the user has ever "scrolled up", in which case no autoscrolling ever happens, unless the user scrolls all the way down again.
In essence, the scrolling behavior is "leave at the bottom, unless the user is not at the bottom".


TypeError: Cannot read properties of undefined (reading 'edition')

Hello ! I'm getting this error when trying to upload the uploadMetas.js file with the fix code provided, not sure what I'm doing wrong.
Thank you!
_h_v1> node utils/nftport/uploadMetas.jsC:\Users\hendr\Downloads\hashlips_art_engine-1.1.2_patch_v1\hashlips_art_engine-1.1.2_patch_v1\utils\nftport\uploadMetas.js:29          return item.custom_fields.edition === metaData.custom_fields.edition;
^
TypeError: Cannot read properties of undefined (reading 'edition')
at C:\Users\hendr\Downloads\hashlips_art_engine-1.1.2_patch_v1\hashlips_art_engine-1.1.2_patch_v1\utils\nftport\uploadMetas.js:29:37    at Array.find ()
at C:\Users\hendr\Downloads\hashlips_art_engine-1.1.2_patch_v1\hashlips_art_engine-1.1.2_patch_v1\utils\nftport\uploadMetas.js:28:40    at FSReqCallback.oncomplete (node:fs:188:23)
PS C:\Users\hendr\Downloads\hashlips_art_engine-1.1.2_patch_v1\hashlips_art_engine-1.1.2_patch_v1> ^CPS C:\Users\hendr\Downloads\hashlips_art_engine-1.1.2_patch_v1\hashlips_art_engine-1.1.2_patch_v1>_

Got it fixed !
I erased the _ipfsMetas.json file under json and ran the uploadMeta.js file again. Everything was updated !

Got it fixed !
I erased the _ipfsMetas.json file under json and ran the uploadMeta.js file again. Everything was updated !

Got it fixed ! I erased the _ipfsMetas.json file under json and ran the uploadMeta.js file again. Everything was updated !

Can you show what you did exactly ?

Where you got _ipfsMetas.json file?


Difficulty selecting precise written and audio sentences

Hi,
I have been struggling to export the exact sentence I want and especially to extract the exact audio piece  I want from YTB videos.
There, the subtitles are rarely divided into sentences (especially EU languages), thus one phrase starts and the end finishes in another. For the sentence, I've tried hold and drag from the side panel but I honestly don't really get where I'm supposed to drag it to, and using the toggle on the export panel isn't accurate to get the specific audio sentence without extra words.
Is there a way around this please? or am I missing sth perhaps?
A Million thanks ! :)
(if the export could be more precise it would be such an amazing tool because it's still working very well !!)

If you can link a YT video + timestamp I'll be able to precisely understand what you're reporting and can try to suggest workarounds.
Beyond that, precise audio recording is something that asbplayer can do a lot better and there are tasks in the TODO list to help with this such as displaying wave forms on the Anki dialog and intelligently detecting sentence boundaries across subtitles. However, these features may not come in the near short term.

@killergerbah Thank you so much for the answer ! I think you understood well my issue, but I won't bother you any further with it as you are saying that it's a feature that will be improved in the future so for now I guess we just need to wait.
EXAMPLE :
If you still want to have an example of what I meant :
On this YTB video : https://www.youtube.com/watch?v=ZRm7FDGz7kA&t=101s
I want to create an ANKI audio flashcard with the exact sentence "Contrairement à d’autres manuscrits, qui restent à l'Institut de France".
This sentence starts at 7:17min and finishes at 7:20. (divided in 2 different subtitles)
PROBLEM :
I struggle to extract exactly this part of the sentence as an audio to add it to Anki. The pb is that It starts either too early or finishes too late when I try to adjust with the red toggle (at the very bottom of export menu opened with ctrl+shift+x)

I wish we could more precisely be able to choose when the audio recording starts and end basically. Anyways, wishing you best of luck with the improvement of the features :) The concept is really amazing.

My workaround for now if it helps anyone :
-I copy paste the extact sentence I want from YTB transcript
-I find the exact beginning of the sentence in the video
-then I record the audio manually with ANKI's feature we can use when creating a card. I open ANKI card tab, click record, go to YTB, play the video, then pause the video when the desired sentence end and then go back to ANKI to stop the recording.

Got it I understand your problem now and thanks for reporting it. Yes it seems like something that could improved in asbplayer by merging together lines that appear to be part of the same sentence.
One suggestion I have based on the workaround you are using: maybe you didn't notice this but asbplayer has a manual audio recording bind as well.

Right, I have tried using the shortcut to record the audio via asbplayer manually, but it doesn't always work, many times nothing happens. Thanks a lot for the suggestion though :)

got the same problem as yours and also tried the workaround, it works perfectly! I think this should be disclosed in the readme


Improvements to PaperUtils

Servers built on top of paper like Purpur were considered as NOT being able to use paper API.

Should be fine @Zettovec^


NumberInput change event data or type is off

The change event dispatches the value property as its payload.
The event is typed as number, the property as number | string.
value, can implicitly be undefined as well, maybe that needs to be considered, too.

Just a thought: null is perhaps a better value to signify "no value" than an empty string or undefined.

I agree. When the component already exposes the value in a parsed form, then no longer having any string values would be best.
Currently I have to manually convert the empty value so my server-side validation does not fail because it expects the JSON property to contain a number or be undefined.
Of course that would be a breaking change, but this is still in 0.x anyway, so...


Time Picker Fields Not Work in Modals

I can't focus and change Time Picker Fields when modal is open. Can you fix this error?
https://github.com/user-attachments/assets/bea3d201-429e-4ae4-8d73-b3bdfc9b82d3

+1

Sorry for the delay:
Screencast from 2024-10-18 11-52-39.webm
I have tried the feature and its working as expected now.
If you are still facing the same issue. please provide a reproduction repository to invistigate further.
Thank you for your time


[React Version] Update Home Page Animation

Task:

Update the animation for I am into .. to the animation in/animation out shown [here]
Keep in mind that only the words like "Machine Learning", "Web Development", etc should have the animation while the text I am into should not. [Similar to how it is given in reference]

I want to work on this under JWoC'22


Add: Firewall Landing and Routing

Description
Adds Firewall Landing with Routing!
Type of Change

Non breaking change ('update', 'change')

Note to Reviewers
The big change here is in the PrimaryNav component. I wanted an easier way to add nav items between other items, without having to do if(something) {  list.push(newNavItem } which was getting a little verbose and frankly is a slower solution than the one proposed.

@johnwcallahan feedback addressed


Put Red Fly Material in game and send me the file name.

@wadek2 Added sprite at Sprites/enemies/fly_red.png.


Screen truncation in Explorer-Sandbox

Environment:TestNet
URL:https://explorer-git-feat-microblocks-final-blockstack.vercel.app/sandbox/contract-call
Seems like the middle section in sandbox-explorer is truncated and is not able to navigate from left to right as there is no scroll from left to right.There is a scrol

l from top to bottom however.

I'd say this is out of scope for the microblocks PR, and should be fixed in a separate PR.

Would this be apt for https://github.com/blockstack/explorer/pull/469

Would this be apt for #469

no, it should be a new, different PR

Is this more of an enhancement than a bug? Or is this a regression on expected formatting behavior?

Thank you for opening this issue. I'll close it since there has been no recent activity.
If you still believe the issue is relevant, please feel free to reopen it.


Raspbian support

It would be awesome if Lackey can support Raspbian (for Raspberry Pi). Working on a RPI project, and would love to use Lackey.

This should be part of the Linux PlatformManager implementation in #56, so I'll go ahead and close this one as a duplicate.


Added verification and error handling for GCC builder when compiler doesn't exist

In the current GCC build algorithm, there is no clear indicator that the compiler executable doesn't exist. For example, let's assume that I typed "g+++" instead of "g++." In this case, there will be output on the compilation, but details about why it failed won't be present.
To mitigate this issue, there is a need to add a simple check at the beginning of the GccBuilder::BuildPackage method.
Output with change:
Saving
----- ide/Builders ( GCC POSIX LINUX ) (1 / 12)
Error: Failed to find the 'aarch64-linux-gnu-c++a' compiler executable! Make sure the compiler is installed and is present in the executables path.

There were errors. (0:00.00)

Output before:
Saving
----- ide/Builders ( GCC POSIX LINUX ) (1 / 12)
CppBuilder.cpp
MakeFile.cpp
CCJ.cpp
GccBuilder.cpp
MscBuilder.cpp
JavaBuilder.cpp
ScriptBuilder.cpp
Cocoa.cpp
AndroidProject.cpp
AndroidApplicationMakeFile.cpp
AndroidMakeFile.cpp
AndroidModuleMakeFile.cpp
AndroidBuilder.cpp
AndroidBuilderCommands.cpp
AndroidBuilderUtils.cpp
AndroidModuleMakeFileBuilder.cpp
Blitz.cpp
Build.cpp
Install.cpp
BuilderUtils.cpp

There were errors. (0:00.04)

In the above output the root cause is unknown.

Good idea, but I did not like doing the check in each package compile, so changed that a bit.


Disable failing kfunc

There is a number of functions that are listed as traceable in kfunc, but their tracing crashes bpftrace. This PR disables tracing of 2 kinds of such functions:

Functions not listed in /sys/kernel/debug/tracing/available_filter_functions (e.g. inlined functions or functions marked as "notrace"). These should not be traceable even though there is BTF info for them (which makes them appear on the kfunc list). This fixes #1366.
Functions having more than 6 parameters. Kernel currently doesn't support BPF trampolines for functions with more than 6 parameters.

Checklist

[x] Language changes are updated in docs/reference_guide.md
[x] User-visible and non-trivial changes updated in CHANGELOG.md

Thanks for fixing this. Looks good to me.


How to affect specular power?

I haven't found a way to affect the specularity of my material - this is a very important aspect of PBR, that is necessary for many effects like deep holes in a surface or special materials.
For example - here's a little concrete wall material with regular holes in it:

Note that the hole doesn't look like a hole partly because it still has a specular reflection from it's bottom, which completely breaks the illusion.
Is there a way to fix this in Material Maker?

In Godot, specular power is defined as a global parameter in SpatialMaterial. We'd need a viewport settings menu to be able to configure it.

@unfa do you only need to be able to tune specularity for the material, or do you need to save a specular map for Blender?
It seems to be easy to convert between metalness to specular, and maybe it would be the way to go for some export targets?
Anyway, whatever change we decide, we need to know how it affects exports.

Some oldschool game engines still use specular maps, so there might be an argument for exporting specular maps.

I didn't intend to generate specular maps before exporting.
But even if we wanted to provide an alternate Material node that supports specular PBR, wouldn't it be possible to write a shader to render it?

Hey! Strangely enough - when I made a black spot on the Albedo map the specular reflection has disappeared.
I am not sure if that's actually how PBR shaders should work?
In some implementation AO map affects the specularity, but I don't think it should really (if it were to simulate AO, and not... dirt?).
I am a bit confused, I think you understood my question in a way I didn't expect :D

Hey! Strangely enough - when I made a black spot on the Albedo map the specular reflection has disappeared.
I am not sure if that's actually how PBR shaders should work?

Maybe this is related to https://github.com/godotengine/godot/issues/40753?


Can Saleor do the job of Point of Sales system in a restaurant? Possible to create plugins that could make it work like that?

What I'm trying to achieve
I have been asked by a small local coffee shop what it might take for their staff to have access to a POS system from their iPads when they take orders. I immediately thought of Saleor, but potentially this is outside of the area you hope to support.
Describe a proposed solution
I want the waiters/waitresses to each have an iPad with Safari or Chrome (or your PWApp) connected to a local server (PC at the back of the restaurant). From here they would complete the order, which would generate an invoice payable by cash or credit card at the store front.
Is this already supported? A good idea? Or is there a better fitting open-source software for this? If so, is there integration? Because maybe the restaurant can use Saleor for online sales and the other system for taking orders and they can be integrated where necessary.

Hey, sorry for the late response. It's definitely a good idea and it would be very exciting to support some POS solution with Saleor! Currently, there is no integration to support that, but that's an area that we'd like to explore at some point. I don't know how much customization to our PWA client it would require. But even if it meant building a new app from scratch, that should be definitely doable, since we have the GraphQL API.
If you ever wanted to tackle that issue, feel free to reach out to us if you need any help!

I am quite keen to try a very simple front end built in Elm. I will share
here but I think it would be it's own project.
Could always make a more simple one for starters, then make plans to
support a more fully featured one after that.
Will post progress here soon.
On Tue, May 21, 2019, 5:26 PM Marcin Gębala<EMAIL_ADDRESS>wrote:

Hey, sorry for the late response. It's definitely a good idea and it would
be very exciting to support some POS solution with Saleor! Currently, there
is no integration to support that, but that's an area that we'd like to
explore at some point. I don't know how much customization to our PWA
client it would require. But even if it meant building a new app from
scratch, that should be definitely doable, since we have the GraphQL API.
If you ever wanted to tackle that issue, feel free to reach out to us if
you need any help!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mirumee/saleor/issues/4091?email_source=notifications&email_token=AAZHR2MKCXNVS2KKXWM7UWDPWQIDTA5CNFSM4HLYY5UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV4I2QA#issuecomment-494439744,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAZHR2JHLRO3VG64XAEENDLPWQIDTANCNFSM4HLYY5UA
.

Thinking about this a bit more.
Is it possible to have two instances of saleor server load-balanced and in-sync?
I am thinking one instance would be on an internal network local to the shop and the other would be public facing on the public internet. The two instances would be connected but the public could not access the shop's local saleor instance.
The reason is because I would want shoppers to be able to purchase from within the shop without going online. The shop frontend would talk directly to the local saleor server (which would then sync with the other instance). This reduces latency.
For this issue, it would allow a much more responsive POS frontend client that only needs access to the local network and no internet usage at all.
Thoughts / ideas?

Instead of some syncing functionality, all that would actually be needed is only one database, accessible to both instances. The instances themselves don't need access to each other actually.

So on further thoughts, a load-balancer isn't required at all. Sorry for the over-share of me thinking out loud (should have had coffee first).
This is what I mean. Maybe an image explains better

I have a Stripe POS terminal sitting on my desk currently so we're definitely looking at adding support for collecting payments physically ("card present"). Can't promise any dates though.
I imagine this would have to be a separate mutation in the API. I'm not sure whether any of this will ever get integrated into the PWA client though as it's built to be a typical online storefront. So even if we merge it your options could be limited to draft orders in the dashboard, or implementing a custom POS user interface.

I think many micro-servers each doing only one thing very well is the way to go.
So even if it is a new POS client + POS backend that syncs with the current Saleor backend via the graphql API.

But the idea is for Saleor to keep track of the stock and the accounting at the end of the day.

Closing this for now. I'm pretty sure we'll get back to this idea in the future.


pd.read_json() no longer accepts json strings

As of pandas 1.1.0 (apparently) pd.read_json() no longer accepts json strings as input, resulting in a "Protocol not known" exception. This breaks safe_read_json(). Details here, including a fix:
from io import StringIO
newdf = pd.read_json(StringIO(temp))
Have tested this, works.

I  still get the same error when I want to pull cash flow and income statement.... Does anyone have a solution?


Provide a quick-start guide in the README

Improve documentation
Link
README
Describe the problem
In other supabase components, such as postgrest-js, realtime-js and gotrue-js, there are short quick start sections in the readme to show you how you can get up and running without using the supabase-js package.
Describe the improvement
Add a few code snippets that will document a quick start procedure.

I noticed this because I have to use this module in my project now and I had to check the source code to see how I can create a new SupabaseStorageClient. Not that it is the end of the world, but it would be nice to have a quick guide in the readme like the other modules do.
I may take a look at it and provide some code samples and a PR this week.

:tada: This issue has been resolved in version 1.7.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.8.0-next.1 :tada:
The release is available on:

GitHub release
npm package (@next dist-tag)

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 2.0.0-rc.1 :tada:
The release is available on:

GitHub release
npm package (@rc dist-tag)

Your semantic-release bot :package::rocket:


Assigning events dynamically

Hello,
thanks for amazing GUI library!
In this code I have elements (in this case Buttons) added to container and seq[Button] dynamically (it should be Label and Checkbox in one horizontal layout in the future, but I'm only experimenting for now):
import nigui

var buts: seq[Button]

app.init()

var cont = newLayoutContainer(Layout_Vertical)

var label = newLabel("")
cont.add(label)

for i in 1..3:
  var but = newButton("Button " & $i)
  but.onClick = proc(event: ClickEvent) = label.text = but.text
  buts.add(but)

for button in buts:
  cont.add(button)

var window = newWindow()
window.width = 800
window.height = 600
window.add(cont)
window.show()

app.run()

But when I run the code, the event triggers only last Button, which is Button 3.
Should seq to contain Button elements along with onClick events as one object, or do I have to use another method here?
Thank you!

I'm pretty sure it's the same as #167, see my comment there.

Thanks a lot. I got it. Apologies for raising duplicated issue

No problem. I appreciate when a questioner writes a good description!


controller: Fix race in TestRunJobAttached

This test was racing with the one-sided close detection in the controller handler.

LGTM


[BUG]<PHONE_NUMBER> seconds instead of 1 second?

Potential error I noticed:
let oneSecond = TimeInterval(1_000_000_000)
I think this should be TimeInterval(1), as TimeInterval is specified in seconds, right?
https://github.com/superwall-me/Superwall-iOS/blob/aaf3d6ed793978d3248b469c19f6f4cb948b90cb/Sources/SuperwallKit/Network/Custom URL Session/TaskRetryLogic.swift#LL23C34-L23C34

Yeah TimeInterval is just a typealias for double. There's no issue here although maybe it'd be better to have a Nanosecond typealias instead for clarity.


Hotkey for Your Mix on YT Music

Checklist:

[x] I have checked that there are no issues with similar or the same content
YOU SHOULD CHECK CLOSED ISSUES AS WELL

[x] I have checked the FAQ (https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/wiki/FAQ) and the answer I am looking for is not there

[x] I have double checked and can reproduce the issue

OS:
Win 10
GPMDP Version:
Version: 4.7.1
Issue Descriptions:
The GMDP app has an option for a hotkey for 'Im Feeling Lucky'. I would like to see the same for 'Your Mix' on the YT music app, since that is the last thing keeping me with Gmusic.
Steps to Reproduce:
None

I toyed with this for a few and I'm not 100% sure its possible yet. The Feeling lucky happened to be its own button in the GPM UI so I was able to target it specifically from anywhere. However the "Your Mix" playlist is not as easy to single out.

I don't know if it's worth a separate ticket, but thumbs up/down hotkeys seem to have the same issue.  Likely fall in the same bucket as to whether they're able to be supported or not.

The thumbs up/down icons are always visible while playing audio, so the hotkey would always correspond to these two buttons.

@jostrander that's true but i've tried several hotkey combinations (i.e. ctrl+shift+up for thumbs up) in the settings and i can't get any of them to work for thumbs up/down.  hotkeys work fine for next/prev (i.e. i currently have ctrl+shift+right for next track).  thumbs up/down worked fine for GPM but doesn't seem to work for YTM.  if this feels unrelated, i'll break it off to a separate issue.

There seems to be some kind of disconnect between the hot keys and ytmusic.js, but it ytmusic.js has it implemented, so it should be fine in future builds once that's resolved. A separate issue would be fine.

 And I think it is safe to assume that the My Mix text is a constant. Wouldnt it then be possible to use e.g jquery's getElementById (or similar, again, im no JS dev) function to find the text, and then go to the parent object a couple times until you are able to get the element which needs to be clicked to start the playlist.

@TheDutchMC In vanilla browser JS it's possible to find that element using document.querySelector('[title="My Mix"]'), however this has two implications.
1.) "My mix" is an english string, and will change based on the users locale.
2.) This query selector breaks when the page longer contains an element containing this title.
We had a similar issue in GPM but GPM is a little different in its implementation. On the right bar on the home page is a customElement powered by GPM code called gpm-ifl-button, so if  you put an element anywhere inside of  with the tag <gpm-ifl-button> then force a click to that element it fires that native application code, from anywhere, hence why we can create a hotkey for it. You can see this here and here.
My initial research is showing that in YTM there is no specific element for "My Mix". Its just a standard playlist element. I am however still trying to figure out if the playlist ID that it calls is generic, or generic per user, or just random altogether based on some backend playlist that they've generated for "my mix". If I can narrow it down to being generic/generic per user I can probably do what I did with GPM and create a new playlist element off screen with the my mix ID, if not it's going to be trickier.

If there were multiple, it would just return an array right? Then you should be able to just take the 0th element from that list and use that, since the button does the same regardless of where it is on the page (to my knowledge)
For the multi language thing I wouldn't know a solution straight away, if there's a specific tag or Id like you mentioned that'd be great. But if not, translation files maybe?
Again though I'm not at all familiar with how YouTube music is layed out in the code, and JS isn't my strong suit 😃

What if there is none? That's the problem I'm running into. On the explore and library pages as well as I'm sure multiple other pages in the UI the my mix link disappears.

Hm that is a good point yeah. That'd cause all kinds of errors.
Is there any way to maybe switch pages, without pulling the application to the foreground? E.g when the user is not on the home page, note where they are now, switch to home, select My Mix and move back?

That is a potential option, however it could be jarring to someone if they are actively viewing the application when that happens. Ideally finding some kind of an internal hook for it would be ideal. I'll toy around with it some more and see if I can find anything more concrete to hook into.

If you can, could you run this in the console when viewing the home page with "Your mix" visible and screenshot the result?
document.querySelector('[title="Your Mix"]').href.replace('https://music.youtube.com/', '')
I'm curious what the playlist ID is for other accounts other than mine.

Output of that is watch?playlist=RDMMCOt5MibFxMs

From what I can gather, all "Your mix" playlists start with RDMM, however the part after that is actually the unique ID per account. If you've never listened to music on an account the list ID is just "RDMM". The other problem I've come across is, creating a dummy dom node with that playlist ID then virtually clicking it does not actually work as intended.

Virtually creating the element doesn't work you say, what if you (if you're able to get it) click the real element, rather than creating your own?

Were back to the original issue at that point, how do I access that element 100% of the time when its not available 100% of the time. If you use that JS from a couple comments back document.querySelector('[title="Your Mix"]') and click around the interface while trying to use it, you'll notice its blank most of the time.

Yeah that's a good point. Only thing I could imagine doing then is either switching the tab, clicking it, and switching back. Or opening a hidden page of Home, click it, and destroy the hidden page again

The ID is in the source code, in some JSON. How about this?
let longpath = initialData[1].data.contents.singleColumnBrowseResultsRenderer.tabs[0].tabRenderer.content.sectionListRenderer.contents[0].musicCarouselShelfRenderer.contents;
for (var i = 0; i < longpath.length; i++) {
  if (longpath[i].musicTwoRowItemRenderer.thumbnailRenderer.musicThumbnailRenderer.thumbnail.thumbnails[0].url.includes("/ytm/images/pbg/my-mixtape-")) {
    console.log("My Mix Playlist ID: " + longpath[i].musicTwoRowItemRenderer.navigationEndpoint.watchPlaylistEndpoint.playlistId)
  }
}

Where does initialData come from?

I'm thinking we can close this now that YouTube has nixed the My Mix feature and turned it into a bunch of mix playlists.


Repository description: "--" should be merged into "–".

Currently, the description uses a pseudo en-dash which is actually two hyphens and looks ugly. It should be changed to an actual en-dash (– | Alt+0150).

Thanks for the catch :)


[Bug] Elasticsearch read timeouts occurring in twitter_monitor, embedder, and reindex.

Fix directly by increasing client default timeout to a higher (configurable) value.
Also, optimize twitter_monitor by reducing chattiness with Elasticsearch - instead of indexing each new tweet in a separate request, collect them in a bucket and make a bulk index request when the bucket is full.

Fixed by 8a24dd1d9247f22000a87ab0f3eacd7a276bca35


Update limitations.md

clean up
Need to link directly to ## Migrations limitations workaround

@Rick-Anderson,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

entity-framework/core/providers/sqlite/limitations.md
:white_check_mark:Succeeded

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.

LGTM, but why are these PRs going directly to live branch instead of master?

That's the only option. Maybe we need to get them on a master -> live flow.


Enemy ai

This patch adds basic behaviour to enemies. They know now how and when to move and attack.

Fixes on spawners mainly, made non-windows friendly and tweaks on enemies. Updates, clean ups.


Move everything off of the head/doc builder

This will move the doc and android-nightly builds to the linux reserved and cross builders, respectively.
I suspect we'll still want to redo our nightly infra, but this will at least get us down to only one remaining linode instance (servo-master).
r? @edunham

This change is

@bors-servo r+

:pushpin: Commit b116c42 has been approved by edunham

:hourglass: Testing commit b116c42 with merge 40e3ab6...

:broken_heart: Test failed - travis

@bors-servo retry

:hourglass: Testing commit b116c42 with merge d0141dc...

:sunny: Test successful - travis


Unittest-Library (YUnit)

Hi
where to get the unittest-library you are using? (namely <v2\Yunit\Yunit> and <v2\Yunit\Window>)
Trying to use Uberi's most recent Unittests (https://github.com/Uberi/Yunit) does not work - do you have a more recent personal version?
Cheers
hoppfrosch

Hey.
Im using uberis' there's a v2 branch.
I only modified the YunitWindow a little bit visually.
https://github.com/Uberi/Yunit/tree/v2
Is thatThe one that doesn't work for you?
I can share my version in any case.


Cannot use with node 18

Expected Behavior

Running npx @backstage/create-app with node --version of 18 or above
Actual Behavior

 Building the app:
  executing     yarn install ◠ error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version "14 || 16". Got "18.3.0"
error Found incompatible module.

Steps to Reproduce

Install node current, 18.4.0
Run npx @backstage/create-app

Your Environment

$ node --version
18.3.0

Relevant
I see the engine was last modified as per https://github.com/backstage/backstage/pull/6889, version 12 was in maintenance, 14 was LTS, and 16 was soon to be LTS (was August then, and LTS in October)
https://nodejs.org/en/about/releases/
As of today, version 14 is in maintenance, node 16 is current LTS, and node 18 will be LTS in October
This might be more of a feature request than a bug, but, users will need to download current LTS to use, which will be no longer a presented option come October

Hi! You're right that it's not supported, yet! :) We plan to switch over to node 18 in a month or two.
Some clarification have just been added in https://github.com/backstage/backstage/pull/12217
We have node 18 on our radar so I'm going to close this issue for now. Feel free to reopen if anything is unclear!


Colorized output breaks special chars (output as HTML entities)

Required Information
Type: Bug
Enter Task Name: PowerShell@2
Environment
Azure Pipelines
Hosted Agent
Issue Description
We're calling Terraform during our pipeline, which creates colorised output. Unfortunately special characters like /<> are shown as HTML entities instead of the actual character:

The log output for the same is:
2019-04-09T21:14:07.3412325Z     id:              "<computed>"
2019-04-09T21:14:07.3412940Z     key_vault_id:    "<computed>"
2019-04-09T21:14:07.3413512Z     name:            "6a8a82ba-556a-424c-82d8-18f9e4d1f60a"
2019-04-09T21:14:07.3414102Z     tags.%:          "2"
2019-04-09T21:14:07.3414724Z     tags.APP_ID:     "6a8a82ba-556a-424c-82d8-18f9e4d1f60a"

We're calling the external program with the following expression:
& { $(Build.BinariesDirectory)/terragrunt plan --input=false  2>&1 } | landscape

This is a known limitation with the ANSII color code support.
This is getting addressed, we already have a view that's in internal preview that addresses this.
This will be out to public soon.
This is AzureDevOps rendering issue, not a task issue.
For reference - https://developercommunity.visualstudio.com/topics/Azure+DevOps.html is the right place for such things.
Thanks for reporting and sorry for the current limited support with it.


Config changes to reflect the default branch from master to main. Please merge to complete the default branch renaming job.

Auto branch renaming content.

Docs Build status updates of commit ab55cf4:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch 1fae6083-d78c-4c9c-9ede-bd5cc891305c has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Optimization: remove unnecessary liftEffects throughout codebase

I'm pretty sure the liftEffect here is redundant.
pure $ unsafePerformEffect $ liftEffect $ Ref.modify_ fn stateRef

unsafePerformEffect takes an Effect as its argument and Ref.modify_ already returns an Effect, so I'm not sure why liftEffect is there. I imagine it was from when Thomas was originally working on this code and exploring different design approaches.

Yes, this isn't necessary. I'm happy to accept a PR which removes these uses of liftEffect.


[BEIT3] How to apply GradCam on the beit3 models?

Hi. I want to see the gradcam image of the beit3 model. I used the grad-cam library [https://github.com/jacobgil/pytorch-grad-cam], but I got this error. 'RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn'.
Please help..
Thank you!

Could you provide more information about how you see the gradcam image of the beit3 model?

I can't export the gradcam image of the beit3 model. I'm using the grad-cam library to export. But it got the error as above.

Sorry, I do not know why. But could you print the name of the param where the error occurs?

Thank you.
This is error log.
Traceback (most recent call last):
File "show_gradcam_beit3.py", line 108, in
grayscale_cam = cam(input_tensor=input_tensor,
File "/home/coreai/anaconda3/envs/fake-image-detection/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 188, in call
return self.forward(input_tensor,
File "/home/coreai/anaconda3/envs/fake-image-detection/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 84, in forward
loss.backward(retain_graph=True)
File "/home/coreai/anaconda3/envs/fake-image-detection/lib/python3.8/site-packages/torch/_tensor.py", line 487, in backward
torch.autograd.backward(
File "/home/coreai/anaconda3/envs/fake-image-detection/lib/python3.8/site-packages/torch/autograd/init.py", line 197, in backward
Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

It seems that the issue was caused by the pytorch-grad-cam package.

Hi @donglixp,
Is there any way to export the gradcam image of beit3 model?


Add page numbers categories in motion TOC

Also upgrades pdfmake.
Removed the "Categories" page from motion catalog.
If motions are sorted by identifier or category, a TOC with categories will be exported.
please review and test.
@FinnStutzenstein
@emanuelschuetze
Page 1 of the attached example shows a TOC with categories, page 2 shows a TOC without categories.
toc_example.pdf

Travis (jslint) failed...

How can I get a ToC without categories?

you will (only) get a ToC with categories if you sort your motions by "Identifier" or "Category".
Everything will export a ToC without categories

@emanuelschuetze @FinnStutzenstein
should be fine now.

@tsiegleauq As discussed with @FinnStutzenstein you should rework this pull request by using pageRef feature to make it less complex, see https://github.com/bpampuch/pdfmake/issues/1116
Also please use the discussed format $categoryPrefix – $categoryName in TOC.

@emanuelschuetze
made the required changes. Content, such as styling, is now fully adjustable and should work nicely

Hi, I tested again. I get an Uncaught Unrecognized document structure: {"pageReference":"","style":"tocEntry","alignment":"right"} error trying to create a PDF with motion without identifiers. You may better use the id instead of the identifiert, because a motion may not have an identifier.

id did not exist in a ContentProvider. Created it now.
@FinnStutzenstein
@emanuelschuetze

Travis fixed. Changelog updated.
@FinnStutzenstein Please review and merge.

Two little things:

Category names as "prefix - name"
Show grouping if there is one category and motions without categories

apparently, pdfMake does not like empty tables. Fixed it.
@emanuelschuetze

@normanjaeckel @FinnStutzenstein You can review later if you like.

Ok.


Initialize backend

I want to set up basic modules in Python for Django and related
because there is currently no backend
and this will help me to have a base from which the backend will be built congruent with cas-registration.
Acceptance criteria:

[ ] Backend 'hello world' application api runs.

Consideration and notes

See Task/updated initial backend setup/15 by Sepehr-Sobhani · Pull Request #49 · bcgov/cas-registration (github.com) for implementation on cas-registration.

Tasks

[ ] Install and configure Poetry
[ ] Django & Django-ninja
[ ] .env file (and env.example) for storing local settings (e.g., connecting to local database)
[ ] Python linting & formatting using Black
[ ] Initialize base api endpoint
[ ] Initialize basic unit test
[ ] Establish subfolder structure
[ ] readme w/ instructions for local installation/development

Are we using Django 5 for this?


Bind to input sequence

For notes app we need some kind of API which will trigger action on matching input sequence.
E.g. when user type // on paragraph beginning this paragraph must turn to comment or if user type [] paragraph must turn to issue.
@oliver----, could you help us with that?

Linking #413 as well, as this idea sounds similar to what we would like to do in another application.

Yes, it's the almost the same api I would say.

We have keyboard macro support now. Being part of beta4, coming with an example,too.


Preferences are broken on Safari

Description
https://user-images.githubusercontent.com/1402241/216770855-5f14d342-134d-4b5f-8af8-84f661ffa227.mov
How to replicate the issue + URL
See video
Extension version
23.2.1, but 22.11.21 reported
Browser(s) used
Safari 16.2 on Ventura 13.1

Have you tried turning it off and on again?
Preferences work and the version is right after a browser restart


net/http: allow user-defined behaviour on malformed HTTP requests

The net/http HTTP server handles certain malformed HTTP requests completely autonomously, without ever passing control to non-library code.  This means that the application is never made aware of them, so it cannot take any action, e.g. logging that a malformed request was received.  It also prevents the application from customising the response.
For example, running a minimal Go HTTP server at localhost:8000 and doing this:
curl -v "http://localhost:8000/foo bar"

results in
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to localhost (<IP_ADDRESS>) port 8000 (#0)
> GET /foo bar HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.55.1
> Accept: */*
>
< HTTP/1.1 400 Bad Request
< Content-Type: text/plain; charset=utf-8
< Connection: close
<
* Closing connection 0
400 Bad Request

(The error is caused by the whitespace in the first line of the request - the parser naively splits it on space and expects [method, URI, protocol]).
This is a problem because:

The application can't log the malformed request.
I can't make a guarantee like "my API always returns JSON", because "400 Bad Request" is not valid JSON.
The error message is very little help to the end user, and when the end user contacts me for support I have nothing to go on when diagnosing the problem because I couldn't log the request.
Certain proxy_pass directives in Nginx do a silent (and probably unexpected) URL-decode on the request URI.  So if you run a Go HTTP server behind an Nginx reverse proxy (surely a common scenario), the error above will be triggered by a correct-looking request with a %20 somewhere in it.

I propose adding an exported variable of type
func(error, http.ResponseWriter, []byte)

to http.Server.  It can be set by the application before ListenAndServe or ListenAndServeTLS is called.  If this is nil (the default), the current behaviour stays.  If it is not nil, then it is called (with the error, responseWriter and, optionally, a byte slice containing the offending part of the request - or even all of it?) when the server encounters a malformed request which it cannot pass on to the handler.

CC: @bradfitz

Related bug: #14952 (net/http: add switches to accept/send bogus HTTP?)
The signature func(error, http.ResponseWriter, []byte) is a bit bizarre, especially that last argument. If it's malformed, that means we don't really understand it, so it's not clear we even know what's wrong. And how does this work with HTTP/2? Give you the whole binary frame? Or is this an HTTP/1-only thing, with the idea that HTTP/2 requests are all well formed since they haven't degraded over years yet?
I think I'd be fine adding in some HTTP1-specific hook for malformed requests, but I don't think I'd want to involve ResponseWriter at all. I'd prefer to just provide the net.Conn and the bytes consumed. It'd probably look more like the Hijacker interface. i.e. "On bogus HTTP/1.x request, the connection is all yours... have fun!"

If somebody wants to make a prototype along those lines and send a CL we can take a look.

Regarding the signature, the idea is that control is passed to the application to do whatever it wants.  It might just discard the []byte (if, as you say, it just doesn't know what to do with a malformed request), but why not let the application decide whether the request is so broken it can't be dealt with?  For example, in the "literal space in the URL" example I gave originally, it's conceivable that application code could in fact rescue the request.
I can't comment on how this would interact with HTTP/2 because I don't know enough (i.e. anything, really) about HTTP/2.
The Hijacker-style solution sounds great to me.  Happy to knock out a first draft and send it for review.

it's conceivable that application code could in fact rescue the request.

Maybe, but you won't be able to pass it back to net/http to continue using. But yeah, you might be able to fire back a response that the client is happy with & then close the TCP connection. If you're cool with that.

Yes, that's what I had in mind - when a malformed request comes in, the hook gets called and from then on it's up to the application to handle it entirely - if it wants to rescue the request it has to do all the header parsing and so on by itself.
I expect the real-life use cases would simply be to respond with a 400 Bad Request, but in a more customisable way than literally putting "400 Bad Request" on the wire.  Also logging.

Proposed change submitted.  This is a somewhat simpler design than what we've been discussing - it does the minimum required to give the application a reasonable say in how malformed requests are handled.

Just to pile on here:
A user is adamant that not being able to supress this is a security vulnerability, because when they allow users to manually configure URLs, those users can then specify URLs that are not actually HTTP endpoints, leading to lines like net/http: HTTP/1.x transport connection broken: malformed HTTP response \"SSH-2.0-OpenSSH_7.4\". This allows the users that they have allowed to craft URLs to then craft URLs that disclose to them information about the local and/or remote systems.
The proposed change only seems to affect the http.Server. Addressing this user's concern would require being able to specify such a handler per-request and/or per-client and/or globally.

Duplicate of #21548


handle _for_update as in the standard generate_select function

When running with peewee 2.9.2, I ran into the error
TypeError: 'NoneType' object is not iterable

Looks like the _for_update attribute changed in the last peewee version. Changed it to the same code as the standard generate_select() function uses.

Oh, I had some problems installing the module. the setup.py had from peewee_mssql import __version__ which obviously does not work, if peewee is not installed yet. I was in a rush and it's now a really dirty solution, having the version in two places!

My latest merge should have fixed that issue.


TypeError: 'NoneType' object is not subscriptable

Recently upgraded system (manjaro). Previous set up worked flawlessly. Now, running oauth2ms gives the following error:
Traceback (most recent call last):
  File "/usr/bin/oauth2ms", line 247, in <module>
    token = fetch_token_from_cache(app_state)
  File "/usr/bin/oauth2ms", line 181, in fetch_token_from_cache
    return result["access_token"]
TypeError: 'NoneType' object is not subscriptable

I am not sure what might have caused this and happy to provide any additional info. This package has been great and it appears that something else has now broken it. Thanks for the work and making this available to us

Just tried to install with the installation instructions on the readme instead of from AUR. Received the following error:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
pyopenssl 22.1.0 requires cryptography<39,>=38.0.0, but you have cryptography 3.4.8 which is incompatible.
pdfminer-six 20220524 requires cryptography>=36.0.0, but you have cryptography 3.4.8 which is incompatible.

I came across this issue too. My Azure app's client secret key had expired. Perhaps oauth2ms could provide guidance, rather than TypeError: 'NoneType' object is not subscriptable. Either a hint to check if a client secret key may have expired, or a hint to remove ~/.local/share/oauth2ms/credentials.bin.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:17: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:29: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:30: host_section_needs_exact_pinnings: Packages in host must have exact version pinnings, except python build tools.
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:30: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:42: missing_imports_or_run_test_py: Python packages require imports or a python test file in tests.
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:42: missing_pip_check: For pypi packages, pip check should be present in the test commands
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:49: invalid_url: https://pythonhosted.org/GPy/ : Not reachable: 404
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:50: missing_license_family: The recipe is missing the about/license_family key.
WARNING: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:50: missing_description: The recipe is missing a description
ERROR: /tmp/abs_c21d64jvq6/clone/recipe/meta.yaml:50: http_url: http://github.com/SheffieldML/GPy is not https
Errors were found


[WIP] Refactor and implement ChangeDataHolderEvent.ValueChange

SpongeAPI | SpongeCommon | SpongeForge
This pull request implements ChangeDataHolderEvent.ValueChange, and extends the Data API to better support plugins using the event.
Overview
This PR makes three main sets of changes: Improvements to ChangeDataHolderEvent.ValueChange, the addition of a new event filter @GetKey, and the addition of extra utility methods to the Data API.

ChangeDataHolderEvent.ValueChange
For consistency with other events, this event now follows the getOriginalXXX, getXXX, setXXX format for its methods.
To give maximum flexibility to plugins, the previous DataTransactionResult is completely replaced when calling setChanges. Plugins wishing to preserve existing changes can use DataTransactionResult$Builder#absorbResult to combine their desired changes with previous changes.

@GetKey event filter
As demonstrated in the attached demonstration plugin, the event can be somewhat cumbersome to use. To make it easier for plugins to listen for data changes, a new event filter @GetKey is added. Using the specified key id, this event filter sets the annotated parameter to the value retrieved from either a ChangeDataHolderEvent.ValueChange, or a DataHolder.
For example, this listener:
@Listener
public void eventListener(ChangeDataHolderEvent.ValueChange event, @GetKey("FOOD_LEVEL") int foodLevel) {
    System.out.println("Food level: " + foodLevel);
 }

will be called with foodLevel set to the value associated with Keys.FOOD_LEVEL. If a value for Keys.FOOD_LEVEL is not present in the event, the listener will not be called. The parameter can be specified as the underlying value (e.g. int), a Value, or an ImmutableValue.
As described in the javadocs for @GetKey, this event filter can also be used with a DataHolder.

Data API Changes
To support the usage of this event, several changes have been made to the Data API. The most significant of these is DataHolder#offerWithEvent. This method is used by the implementation (and optionally by plugins) to fire a ChangeDataHolderEvent.ValueChange event. This method retrieves the current value from the DataHolder, constructs a DataTransactionResult containing the old and new values, and fires the ChangeDataHolderEvent.ValueChange event. If the event is not cancelled, the SUCCESS values will be actually offered to the DataHolder.
However, this method isn't sufficient to make ChangeDataHolderEvent.ValueChange easily usable for plugins. To make DataTransactionResult easier to use even without the event filter, a new enum DataCategory is added. This enum can be used with @GetKey, as well as the newly added get and getKey methods on DataTransactionResult, to lookup a value from the sucessful, rejected, or replaced set of values. (It also has the advantage of greatly simplifying the implementation of @GetKey)
getDefault and getDefaultValue
Finally, two methods are added to ValueContainer - getDefault and getDefaultValue. These methods solve the problem of creating a new value wrapper (a subtype of Value or ImmutableValue) given the underlying object.
For example, consider Keys.FOOD_LEVEL. Since this is a MutableBoundedValue, it has extra information associated with it - a minimum and a maximum value. These pieces of additional information may vary depending on the DataHolder the value came from. If a plugin wants to create a new MutableBoundedValue for a food level - if it wants to add it to a ChangeDataHolderEvent.ValueChange, for instance - it must first get access to an existing value from the proper DataHolder. Otherwise, it has no way of knowing the proper minimum and maximum values.
Unfortunately, the current Data API only allows retrieving a Value or ImmutableValue when it is already stored in a DataContainer. While FOOD_LEVEL will always exist on a player, this will not be the case for other values. The new getDefault and getDefaultValues allow a plugin to create such a value - crucially, with all additional data (e.g. minimum and maximum values) filled in. This ensures that a plugin can always add a proper ImmutableValue to a ChangeDataHolderEvent.ValueChange event, even if it doesn't yet exist on the target DataHolder.

TODO
This pull request is not yet complete. There are still many unresolved issues that need to be addressed:

[ ] ChangeDataHolderEvent.ValueChange, as the name suggests, only deals with values. Does it make sense to have an event for DataManipulator changes?
[ ] When writing the implementation of this PR, I discovered that's there's no simply way to convert a BaseValue into either a Value or ImmutableValue. While these are the only subclasses that currently exist, the API provides no guarantee that this will always be the case. Should we add convenience methods for getting a concrete Value/ImmutableValue from a BaseValue, or do we not want to commit to this in the API?
[ ] The current implementation of DataTransactionResult#get is inefficient, as it iterates over the entire list of values each time. Should we require that there can only be one ImmutableValue per key in a given DataCategory? Are the any circumstances where this would pose an issue?
[ ] Each DataCategory on DataTransactionResult sort of behaves like an immutable ValueContainer. Would it make sense to implement this interface on a 'view' into a DataTransactionResult?
[ ] DataTransactionResult#absorbResult has very little documentation, and (to me) gives unintuitive results. Is this method the right one to use when dealing with a ChangeDataHolderEvent.ValueChange? If not, what should be used instead? Under what circumstances would a plugin call this method?
[ ] Should DataHolder#offerWithEvent be:

Available alongside offer through the API?
Be the only option for plugins, and replace offer?
Be completely inaccessible to plugins, and only be used by the implementation?

Demonstration plugin
To demonstrate how these changes will work in practice, I've added support for firing ChangeDataHolderEvent.ValueChange for changes to food level (Keys.FOOD_LEVEL). This plugin shows how to use the event:
package org.spongepowered.test;

import static org.spongepowered.api.data.DataTransactionResult.DataCategory.REPLACED;
import static org.spongepowered.api.data.DataTransactionResult.DataCategory.SUCCESSFUL;

import org.spongepowered.api.data.DataTransactionResult;
import org.spongepowered.api.data.key.Keys;
import org.spongepowered.api.data.value.immutable.ImmutableValue;
import org.spongepowered.api.data.value.mutable.MutableBoundedValue;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.Order;
import org.spongepowered.api.event.data.ChangeDataHolderEvent;
import org.spongepowered.api.event.filter.cause.First;
import org.spongepowered.api.event.filter.data.GetKey;
import org.spongepowered.api.plugin.Plugin;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.channel.MessageChannel;

import java.util.Optional;

@Plugin(id = "food-change-test", authors = "Aaron1011")
public class FoodChangeTest {

    @Listener(order = Order.EARLY)
    public void simpleListener(ChangeDataHolderEvent.ValueChange event) {
        Optional<ImmutableValue<?>> oldFood = event.getChanges().get(DataTransactionResult.DataCategory.REPLACED, Keys.FOOD_LEVEL);
        Optional<ImmutableValue<?>> newFood = event.getChanges().get(DataTransactionResult.DataCategory.SUCCESSFUL, Keys.FOOD_LEVEL);

        if (!oldFood.isPresent() || !newFood.isPresent()) {
            return;
        }

        MessageChannel.TO_ALL.send(Text.of(String.format("Simple listener: %s %s", oldFood.get().get(), newFood.get().get())));
    }

    @Listener
    public void getKeyListener(ChangeDataHolderEvent.ValueChange event,
            @GetKey(value = "FOOD_LEVEL", from = REPLACED) int oldFood,
            @GetKey(value = "FOOD_LEVEL", from = SUCCESSFUL) MutableBoundedValue<Integer> newFood,
            @First(tag = "a") Player player,
            @GetKey(value = "DISPLAY_NAME", tag = "a") Text name) {

        MessageChannel.TO_ALL.send(Text.of(String.format("GetKey listener: %s %s from player ", oldFood, newFood.get())).concat(name));

        event.setChanges(DataTransactionResult.builder().from(event.getChanges()).absorbResult(DataTransactionResult.successResult(newFood.asImmutable().with(newFood.getMaxValue()))).build());
    }

}

Please excuse me if this is a stupid question, but would the @GetKey event filter work in TargetEntityEvents as a shortcut to get key values from entities?
As an example:
// Prevent entities that aren't well fed from being tamed
void onEntityTame(TameEntityEvent event, @GetKey("FOOD_LEVEL") int foodLevel) {
    if (foodLevel < 5) { event.setCancelled(true); }
}

I know you said "[the] event filter can also be used with a DataHolder", but I'm not quite sure what that implies.


Bug: Updating cyInstance Data -> "Uncaught TypeError: target.is is not a function"

Hi :)
A console error occurs when I change data in the Cytoscape instance:

For example, I set the data object "test" to the value "123" using cyInstance.data ("test", "123").
When I do this in a project in which I have installed the HTML node plugin, the following bug appears:
Here is an example:
      // create Cy instance
      var cyInstance = cytoscape({
        container: document.getElementById("cy"),
        layout: {
          name: "random",
        },
        elements: [
          // your cy elements
          { group: "nodes", data: { id: "a1", name: "a10" }, classes: "l2" },
        ],
      });

      // set nodeHtmlLabel for your Cy instance
      cyInstance.nodeHtmlLabel([
        {
          query: ".l2",
          tpl: function (data) {
            return '
' + data.id + "
" + '
' + data.name + "
";
          },
        },
      ]);

      // update node data --> cytoscape-node-html-label.js:215 --> Uncaught TypeError: target.is is not a function
      cyInstance.data("test", "123");

Thanks, the problem is that the updateDataOrStyleCyHandler function is expecting only elements data updates, when we get a cy data change the crash occurs.
I think we should trigger an update on every element, as any element could use that from within their template.


Adding new page for CSS Grid Animation support

Attempt No 2.
As discussed in #6298.
Supported in Firefox since FF66. https://hacks.mozilla.org/2019/03/firefox-66-the-sound-of-silence/
Supported in Safari 16 and STP. https://developer.apple.com/documentation/safari-release-notes/safari-16-release-notes
Not supported in Chromium browsers (I tested using CodePen demo at https://css-irl.info/animating-css-grid/)

I'm not sure what's wrong. I don't understand the error message. Probably something to do with the very end of the file. But everything regarding the content about Grids + animation, and about browser support is correct.
Can someone who knows the Can I Use build process better fix this file?

I'm not totally sure, but maybe it's the spacing, as in it maybe wants 2 spaces per level? Currently it seems to be tabs...

Grr.


No NgModule metadata found for 'AppModule' (again)

Bug Report or Feature Request (mark with an x)
- [X] bug report -> please search issues before submitting
- [ ] feature request

Area
- [X] devkit
- [ ] schematics

Versions

node v8.11.2
npm version 5.6.0 (tho I use yarn 1.7.0)
MacOS High Sierra
Repro steps

Repro case with instructions here:
https://github.com/wiltzius/ng-toolkit/tree/angular_and_webpack_demystified_step3
The log given by the failure

app.js:861 Uncaught Error: No NgModule metadata found for 'class{}'.
at e.resolve (app.js:861)
at e.getNgModuleMetadata (app.js:839)
at e._loadModules (app.js:1065)
at e._compileModuleAndComponents (app.js:1065)
at e.compileModuleAsync (app.js:1065)
at e.compileModuleAsync (app.js:1365)
at e.bootstrapModule (app.js:220)
at Module. (app.js:1373)
at n (app.js:1)
at app.js:1
Desired functionality

The @ngtools/webpack plugin doesn't produce any runtime errors?
Mention any other details that might be useful

This is roughly the same issue that's described in issue #8798 however that issue has a lot of different complaints in it and has been closed, so I thought it would be cleaner as a new one.

You wrote in your tsconfig.json
"angularCompilerOptions": {
    "mainPath": "./app/main.ts"
}

I could be wrong but seems there is no such option here. Anyway your path is incorrect. It should be ./src/main.ts
If you open webpack.config.json you can specify mainPath there.
new AngularCompilerPlugin({
  tsConfigPath: './tsconfig.json',
  mainPath: './src/main.ts',   <==== this line
  sourceMap: true
})

Also you should inject your scripts in body instead of head when use HtmlWebpackPlugin otherwise angular won't find my-app element when bootstrapping app.
new HtmlWebpackPlugin({
  template: __dirname + '/src/index.html',
  output: __dirname + '/dist',
  inject: 'body'   <=== this line
}),

Another way to solve your issue is use angularCompilerOptions.entryModule option like:
"angularCompilerOptions": {
  "entryModule": "src/app/app.module#AppModule"
}

Ah, yes I see -- the angularCompilerOptions are not the same as the AngularCompilerPlugin options, and the mainPath can only be set in the latter not in the former. That does indeed explain it, thank you for the help! Sorry this wasn't a real bug.

@wiltzius Hey again
You should go through the following steps:

Open webpack.config.js
https://github.com/wiltzius/ng-toolkit/blob/5785dfa4fd61faaa7da3b745c80f1ddc910a1f4a/webpack.config.js#L38

Replace './src/app/app.module.ts#AppModule' with './src/app/app.module#AppModule'
Note i removed .ts

Open main.ts
https://github.com/wiltzius/ng-toolkit/blob/5785dfa4fd61faaa7da3b745c80f1ddc910a1f4a/src/main.ts#L16-L17

Replace

const platformRef = platformBrowserDynamic();
return platformRef.bootstrapModule(AppModule);

with
return platformBrowserDynamic().bootstrapModule(AppModule);

Don't ask me why is it so :)))
Now it's time to get the following error :)

app.js:formatted:43405 Unhandled Promise rejection: StaticInjectorError(Dr)[$injector]:
StaticInjectorError(Platform: core)[$injector]:
NullInjectorError: No provider for $injector!

Wow! Thank you, once again. That's pretty unexpected haha.
I copied that line of code about platformRef bootstrapping directly from the Angular docs:
https://angular.io/guide/upgrade-performance#specifying-a-factory-for-the-angular-module
So if a specific invocation of platformRef bootstrapping is required by @ngtools/webpack, I wonder if maybe it should be mentioned somewhere in the @ngtools/webpack docs?

I would like the following code in my main.ts file work with AOT - currently it breaks:
if (environment.isCordova) {
    let onDeviceReady = () => {
        window.open = cordova.InAppBrowser.open;
        platformBrowserDynamic().bootstrapModule(ApplicationModule);
    };
    document.addEventListener("deviceready", onDeviceReady, false);
} else {
    platformBrowserDynamic().bootstrapModule(ApplicationModule);
}

I know I can do replace the main.ts when compiling to cordova, but the above still doesn't work in cordova due to the fact that it is ran inside the onDeviveReady method...
Any suggestions how to solve this?

@HarelM Will this work for you?
if (environment.isCordova) {
    let onDeviceReady = () => {
        window.open = cordova.InAppBrowser.open;
        bootstrapFn();
    };
    document.addEventListener("deviceready", onDeviceReady, false);
} else {
    bootstrapFn();
}

function bootstrapFn() {
  platformBrowserDynamic().bootstrapModule(ApplicationModule);
}

@alexzuza Thanks for the tip!
I have tested it and it works.
Never the less, there's a bug here.

I solve the issue, in the file main.ts, I remove this part .catch(err => console.error(err));  and the final line is just: platformBrowserDynamic().bootstrapModule(AppModule);

I solve the issue, in the file main.ts, I remove this part .catch(err => console.error(err)); and the final line is just: platformBrowserDynamic().bootstrapModule(AppModule);

I think that's not great solution for this error...You need to add
 "files": [       "../src/app/app.module.ts"        ]
in your tsconfig.app.json file...

I am facing the same issue and I tried by adding the below line to my tsconfig.app.json file but it didn't work:
"files": [ "../src/app/app.module.ts" ]
Can someone please help me with this?

@alexeagle  I think I found the root cause in my case I was having a custom builder and by using mine I was getting this error and if I switched to cli one it works totally fine after some debugging if found that compile cli try to read class declaration https://github.com/angular/angular/blob/5332b04f35e60ddb2567b2288efd561e25a2a23b/packages/compiler-cli/src/metadata/collector.ts#L299
but ts.SyntaxKind.ClassDeclaration kind (240,244) is different between typescript versions for example (3.7 and 3.3)
so in my case, my builder was not an external dependency I was trying something in angular project
apps/builder and in angular.json  "builder": "./builder:todo" and this folder was a package with different ts version
I hope it helps someone else short answer make sure typescript version is consistent between your packages and maybe global ng

if nothing else works try following to create the ngmodule offline
if (environment.production) {
        // there is no need of this if block, angular internally creates following code structure when it sees --prod
        // but at the time of writting this code, else block was not working in the production mode and NgModule metadata
        // not found for AppModule error was coming at run time, added follow code to fix that, it can be removed probably
        // when angular is upgraded to latest version or if it start working automatically. :)
        // we could also avoid else block but building without --prod saves time in building app locally.
        platformBrowser(extraProviders).bootstrapModuleFactory(<any>AppModuleNgFactory);
    } else {
        platformBrowserDynamic(extraProviders).bootstrapModule(AppModule);
    }

@HarelM Will this work for you?
if (environment.isCordova) {
    let onDeviceReady = () => {
        window.open = cordova.InAppBrowser.open;
        bootstrapFn();
    };
    document.addEventListener("deviceready", onDeviceReady, false);
} else {
    bootstrapFn();
}

function bootstrapFn() {
  platformBrowserDynamic().bootstrapModule(ApplicationModule);
}

@HarelM Will this work for you?
if (environment.isCordova) {
    let onDeviceReady = () => {
        window.open = cordova.InAppBrowser.open;
        bootstrapFn();
    };
    document.addEventListener("deviceready", onDeviceReady, false);
} else {
    bootstrapFn();
}

function bootstrapFn() {
  platformBrowserDynamic().bootstrapModule(ApplicationModule);
}

Thanks! But why this work in AOT????

Might be helpful for someone. Earlier (few months ago) I turned on npm config set link true to reduce the node_modules size, but now understood it has consequences like this. For me resetting the npm config npm config edit or particularly  npm config set link false worked for me. I almost wasted 3 days for this.

Thanks for reporting this issue. This issue is now obsolete due to changes in the recent releases. Please update to the most recent Angular CLI version.
If the problem persists after upgrading, please open a new issue, provide a simple repository reproducing the problem, and describe the difference between the expected and current behavior.


[NEW GAME]: Pac-Man Game

🎮 Game Request
Pac-Man is a classic arcade game where the player controls a character named Pac-Man, who navigates a maze filled with pellets and ghosts. The objective is to eat all the pellets while avoiding the ghosts.
Basic logic behind this games will be:
Display a maze consisting of walls, pellets, power pellets and ghosts.
Allow the player to control Pac-Man using arrow keys to navigate the maze.
Generate ghosts that move through the maze and chase Pac-Man.
Implement collision detection to check if Pac-Man collides with a ghost or vice versa.
When Pac-Man eats a power pellet, the ghosts turn blue and become edible for a limited time.
Keep track of the player's score based on the number of pellets.
End the game if any of the following conditions are met:
Pac-Man loses live by colliding with a ghost.
Pac-Man eats all the pellets in the maze.
Features: -
Features I'm going to add in this game are:

Pac-Man control - Allow the player to control Pac-Man's movement using arrow keys or WASD keys to navigate the maze.
Maze-Design: Create a maze with walls and corridors where Pac-Man and the ghosts can move.
Pellets and Power Pellets: Scatter small pellets throughout the maze for Pac-Man to eat.
Collision Detection: Detect collisions between Pac-Man and the ghosts, as well as between Pac-Man and the walls of the maze.
Score Tracking: Keep track of the player's score based on the number of pellets and ghosts eaten. Display the current score on the game screen.
Lives and Game Over: Give Pac-Man a live at the start of the game. When Pac-Man collides with a ghost, game stops there.

Please assign me this issue I will give my best to the project.

May I know am I assigned or not? So, that I can start working on it.

May I know am I assigned or not? So, that I can start working on it.

game is not consider


Add a Monitor trait

This is a request that will add a new compiler trait for monitors. That would be applied like other built in traits like copy
A Monitor is a type of object that provides built in mutual exclusion and synchronization for greater safety about some shared data.
To have this the following would need to be implemented: the trait, a non-mutex flag, and a wait for command.
This would allow for writing something like the following:
#[Derive(Monitor)]
struct atomic_counter {
    u32 count;
}

impl atomic_counter {
    #[NonMutex]
    fn count() -> u32 {
        count
    }

    fn increment() {
        if count = u32::max {
            #[Wait(decru32nt)]
        }
        count += 1;
    }

    fn decrement() {
        if count = 0 {
            #[Wait(increment)]
        }
        count -= 1;
    }

    #[NonMutex]
    fn new() -> atomic_counter {
        atomic_counter {
            count = 0;
        }
    }
}

So this is a mutual exclusive around a u32 counter that makes sure that the counter never falls below 0 or above max u32. With the waiting it is allowed to pull a waiting task ahead to do its action (more useful for things like a buffer). The reason to implement this in the compiler is so that the cooperation and mutual exclusion can be done simply and surrounding the functions. Deriving Monitor would also block visibility to be pub on an item.

There is one problem that is not completely solved by this. This is when the decision of who should be waited for is not dependent on what function is called but on what the parameters are. This could be done by a macro after the function name that works like a reduce function that consumes a "list" of parameters and must return an index within range. If the list is empty then it acts like a normal wait.

This seems like something that should be developed as a third party library first.

I see where you are coming from and I would be willing to try but I don't believe that this is possible unless macros is powerful enough


Validate User's Table data type and format

As the discussion at https://github.com/lecle/aloxide/issues/8. We will validate the data type to make sure the user only inputs the supported type and format

https://github.com/lecle/aloxide/pull/36


fixed issue #1799 (dump for  < or > in attributes)

on top of a new regular expression I added support for submatches.
If relevant_submatch is not 0, a match is only reported if the relevant submatch has length > 0
Also, I added code to highlight XML tags which don't close on the line they open
I noticed a potential problem in attributes starting on a new line (regex starts with \s, so if not indented they're not recognised) but decided to leave those alone, worst case they won't be highlighted

Didn't realize there were any, will do
On Sat, Sep 15, 2018 at 9:35 AM Christian Günter<EMAIL_ADDRESS>wrote:

@christianguenter2 commented on this pull request.
Did some tests. Looks good. Maybe we should add more unit tests?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/larshp/abapGit/pull/1923#pullrequestreview-155707825,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACVvHTuXorW7Fpq85-mRALq6afl2KIPmks5ubLvdgaJpZM4Wo6iQ
.


Custom error response

Is there any way to catch and transform the authentication errors that are generated by the middleware before they get sent as a response?
If not do you think this would be best implemented by adding a error_handler to the middleware initialisation, or maybe having an alternative signature for the validator function that takes a cred: Result<BasicAuth, Error> ?

Hi, @jacob-pro, sorry for a such a long response. Well, it is not possible right now, as you can see.
Some error_handler fn sounds better than accepting the Result<..> in the validator function, but at the moment I can't commit any time to this crate, so pull request would be the best option.
Other (probably impossible) way would be the global error handling mechanism for actix, but it would require work from actix developers, so.. ¯_(ツ)_/¯


Please add a link to the docs repo / issues on the docs

Would greatly help reporting bugs / issues if there was a link on the docs site that pointed to the this repo or directly to the Issues tab for this repo

this should be resolved: https://docs.hiro.so/stacks/contributors-guide

Good to know, thanks. Just fyi, it's not very intuitive. Users need to go up a level, and then into the contributing guide to find the contribution link. Also a bit weird that the contributing guide has a link to "Edit on Github" but the other pages don't?


get_bundleIdentifier can only be called from the main thread during a SaveAsync() call

Unity 5.2.1p1 (OSX Editor)
Parse 1.6.0
While executing the following code in the editor:
	ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("SomeClass")
		.WhereEqualTo("someField", "someValue");
	query.FirstAsync().ContinueWith(delegate(Task<ParseObject> arg) {

		// change any value of arg.Result to make the ParseObject dirty

		arg.Result.SaveAsync();
	});

The ParseObject is not saved to the database and the editor console has the following output:
get_bundleIdentifier can only be called from the main thread.
Constructors and field initializers will be executed from the loading thread when loading a scene.
Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.

Thanks for the report. This should be fixed in #15